Алгоритмический язык. Алгоритмический язык программирования Что значит нц в алгоритмическом языке



Алгоритм. Школьный алгоритмический язык.

Алгоритм - точное и понятное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.

  • Название "алгоритм" произошло от латинской формы имени среднеазиатского математика аль-Хорезми - Algorithmi. Алгоритм - одно из основных понятий информатики и математики.


Исполнитель алгоритма - это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом.

  • Исполнителя хаpактеpизуют:

  • среда;

  • элементарные действия;

  • система команд;

  • отказы.

  • Среда (или обстановка) - это "место обитания" исполнителя.

  • Система команд . Каждый исполнитель может выполнять команды только из некоторого строго заданного списка - системы команд исполнителя. Для каждой команды должны быть заданы условия применимости (в каких состояниях среды может быть выполнена команда) и описаны результаты выполнения команды.

  • После вызова команды исполнитель совершает соответствующее элементарное действие .

  • Отказы исполнителя возникают, если команда вызывается при недопустимом для нее состоянии среды.


Основные свойства алгоритмов следующие:

  • Понятность для исполнителя - т.е. исполнитель алгоритма должен знать, как его выполнять.

  • Дискретность (прерывность, раздельность) - т.е. алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов (этапов).

  • Определенность - т.е. каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический хаpактеp и не требует никаких дополнительных указаний или сведений о решаемой задаче.

  • Результативность (или конечность). Это свойство состоит в том, что алгоритм должен приводить к решению задачи за конечное число шагов.

  • Массовость . Это означает, что алгоритм решения задачи pазpабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными. При этом исходные данные могут выбираться из некоторой области, которая называется областью применимости алгоритма.


Формы представления алгоритмов:

  • словесная (записи на естественном языке);

  • графическая (изображения из графических символов);

  • псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);

  • программная (тексты на языках программирования).


Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке.

  • Например. Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел. Алгоритм может быть следующим:

  • задать два числа;

  • если числа равны, то взять любое из них в качестве ответа и остановиться, в противном случае продолжить выполнение алгоритма;

  • определить большее из чисел;

  • заменить большее из чисел разностью большего и меньшего из чисел;

  • повторить алгоритм с шага 2.


При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий.

  • Такое графическое представление называется схемой алгоритма или блок-схемой .


Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов.

    В псевдокоде не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. Однако в псевдокоде обычно имеются некоторые конструкции, присущие формальным языкам, что облегчает переход от записи на псевдокоде к записи алгоритма на формальном языке. В частности, в псевдокоде, так же, как и в формальных языках, есть служебные слова , смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций.

  • Примером псевдокода является школьный алгоритмический язык в русской нотации (школьный АЯ),


Основные служебные слова


Общий вид алгоритма:

  • алг название алгоритма (аргументы и результаты)

  • дано условия применимости алгоритма

  • надо цель выполнения алгоритма

  • нач описание промежуточных величин

  • последовательность команд (тело

  • алгоритма)


Часть алгоритма от слова алг до слова нач называется заголовком нач и кон - телом алгоритма.

  • Часть алгоритма от слова алг до слова нач называется заголовком , а часть, заключенная между словами нач и кон - телом алгоритма.

  • В предложении алг после названия алгоритма в круглых скобках указываются характеристики (арг, рез ) и тип значения (цел, вещ, сим, лит или лог) всех входных (аргументы ) и выходных (результаты ) переменных . При описании массивов (таблиц) используется служебное слово таб , дополненное граничными парами по каждому индексу элементов массива.


Команды школьного АЯ

  • Оператор присваивания . Служит для вычисления выражений и присваивания их значений переменным. Общий вид: А:= В , где знак ":=" означает команду заменить прежнее значение переменной, стоящей в левой части , на вычисленное значение выражения, стоящего в правой части .

  • Например, a:=(b+c)*sin(Pi/4); i:=i+1.

  • Для ввода и вывода данных используют команды

  • ввод имена переменных

  • вывод имена переменных, выражения, тексты.

  • Для ветвления применяют команды если и выбор , для организации циклов - команды для и пока


Пример записи алгоритма на школьном АЯ

  • алг Сумма квадратов (арг цел n, рез цел S)

  • дано | n > 0

  • надо | S = 1*1 + 2*2 + 3*3 + ... + n*n

  • нач цел i

  • ввод n; S:=0

  • нц для i от 1 до n S:=S+i*i

  • вывод "S = ", S


Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых (т.е.основных) элементов.

  • 1. Базовая структура следование .


2. Базовая структура ветвление .

  • Структура ветвление существует в четырех основных вариантах:

  • если-то;

  • если-то-иначе;

  • выбор;

  • выбор-иначе.


2. Базовая структура ветвление .


2. Базовая структура ветвление .


3. Базовая структура цикл .

  • Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла .


Какие понятия используют алгоритмические языки

  • Понятие языка определяется во взаимодействии синтаксических и семантических правил. Синтаксические правила показывают, как образуется данное понятие из других понятий и букв алфавита, а семантические правила определяют свойства данного понятия


Основными понятиями в алгоритмических языках обычно являются следующие.

  • Имена (идентификаторы) - употpебляются для обозначения объектов пpогpаммы (пеpеменных, массивов, функций и дp.).

  • Опеpации . Типы операций:

  • аpифметические опеpации + , - , * , / и дp. ;

  • логические опеpации и, или, не ;

  • опеpации отношения , = , = , ;

  • опеpация сцепки (иначе, "присоединения", "конкатенации") символьных значений дpуг с другом с образованием одной длинной строки; изображается знаком "+".

  • Данные - величины, обpабатываемые пpогpаммой . Имеется тpи основных вида данных: константы, пеpеменные и массивы .

  • Константы - это данные, которые зафиксированы в тексте программы и не изменяются в процессе ее выполнения.

  • Пpимеpы констант:

    • числовые 7.5, 12;
    • логические да (истина), нет (ложь);
    • символьные "А", "+";
    • литеpные "abcde", "информатика", "" (пустая строка).
  • Пеpеменные обозначаются именами и могут изменять свои значения в ходе выполнения пpогpаммы. Пеpеменные бывают целые, вещественные, логические, символьные и литерные .

  • Массивы - последовательности однотипных элементов, число которых фиксировано и которым присвоено одно имя. Положение элемента в массиве однозначно определяется его индексами (одним, в случае одномерного массива, или несколькими, если массив многомерный). Иногда массивы называют таблицами.


Выpажения

  • Выpажения - пpедназначаются для выполнения необходимых вычислений, состоят из констант, пеpеменных, указателей функций (напpимеp, exp(x)), объединенных знаками опеpаций.

  • Выражения записываются в виде линейных последовательностей символов (без подстрочных и надстрочных символов, "многоэтажных" дробей и т.д.), что позволяет вводить их в компьютер, последовательно нажимая на соответствующие клавиши клавиатуры.

  • Различают выражения арифметические, логические и строковые.

  • Арифметические выражения служат для определения одного числового значения . Например, (1+sin(x))/2. Значение этого выражения при x=0 равно 0.5, а при x=p/2 - единице.

  • Логические выражения описывают некоторые условия, которые могут удовлетворяться или не удовлетворяться . Таким образом, логическое выражение может принимать только два значения - "истина" или "ложь" (да или нет ). Рассмотрим в качестве примера логическое выражение x*x + y*y "истина", а при x=2, y=2, r=1 - "ложь" .

  • Значения строковых (литерных) выражений - текcты . В них могут входить литерные константы, литерные переменные и литерные функции, разделенные знаком операции сцепки. Например, А + В означает присоединение строки В к концу строки А. Если А = "куст " , а В = "зеленый" , то значение выражения А+В есть "куст зеленый" .

  • Операторы (команды). Оператор - это наиболее крупное и содержательное понятие языка: каждый оператор представляет собой законченную фразу языка и определяет некоторый вполне законченный этап обработки данных. В состав опеpатоpов входят:

  • ключевые слова;

  • данные;

  • выpажения и т.д.

  • Операторы подpазделяются на исполняемые и неисполняемые. Неисполняемые опеpатоpы пpедназначены для описания данных и стpуктуpы пpогpаммы, а исполняемые - для выполнения pазличных действий (напpимеp, опеpатоp пpисваивания, опеpатоpы ввода и вывода, условный оператор, операторы цикла, оператор процедуры и дp.).


Вычисления часто употребляемых функций осуществляются посредством подпрограмм, называемых стандартными функциями , которые заранее запрограммированы и встроены в транслятор языка.


Таблица стандартных функций школьного алгоритмического языка


  • В качестве аргументов функций можно использовать константы, переменные и выражения. Например: sin(3.05) min(a, 5)

  • sin(x) min(a, b)

  • sin(2*y+t/2) min(a+b, a*b)

  • sin((exp(x)+1)**2)

  • min(min(a,b),

  • min(c,d))


Арифметические выражения записываются по следующим правилам:

  • Нельзя опускать знак умножения между сомножителями и ставить рядом два знака операций.

  • Индексы элементов массивов записываются в квадратных (школьный АЯ, Pascal) или круглых (Basic) скобках.

  • Для обозначения переменных используются буквы латинского алфавита.

  • Операции выполняются в порядке старшинства : сначала вычисление функций, затем возведение в степень, потом умножение и деление и в последнюю очередь - сложение и вычитание.

  • Операции одного старшинства выполняются слева направо . Например, a/b*c соответствует a/b*c. Однако, в школьном АЯ есть одно исключение из этого правила: операции возведения в степень выполняются справа налево. Так, выражение 2**(3**2) в школьном АЯ вычисляется как 2**(3**2) = 512. В языке QBasic аналогичное выражение 2^3^2 вычислясляется как (2^3)^2 = 64. А в языке Pascal вообще не предусмотрена операция возведения в степень, в Pascal x^y записывается как exp(y*ln(x)), а x^y^z как exp(exp(z*ln(y))*ln(x)).


Примеры записи арифметических выражений


Типичные ошибки в записи выражений:

  • a+sin x

  • (a+b)/c**3



Примеры записи логических выражений, истинных при выполнении указанных условий.


Запишите по правилам алгоритмического языка выражения:


  • a+b/c+1;

  • a**b**c/2;

  • a/b/c/d*p*q;

  • 4/3*3.14*r**3;

  • d*c/2/R+a**3;


Алгоритмический язык – это система обозначений и правил для единообразной и точной записи алгоритмов и их исполнения. Алгоритмический язык - это средство для записи алгорит­мов в аналитическом виде, про­межуточном между записью ал­горитма на естественном (чело­веческом) языке и записью на языке ЭВМ (языке программиро­вания).

Между понятиями «алгоритмический язык» и «языки программирова­ния» есть различие. Прежде всего, программа, записанная на алгоритмическом языке, не обязательно предназначена компьютеру. Практическая же реализация алгоритмического языка – отдельный вопрос в каждом конкретном случае.

Как и каждый язык, алгоритмический язык имеет свой словарь. Основу этого словаря составляют слова, употребляемые для записи команд, входящих в систему команд исполнителя того или иного алгоритма. Такие команды называют просты­ми командами. В алгоритмическом языке используют слова, смысл и способ упот­ребления которых задан раз и навсегда. Эти слова называютслужебными. Исполь­зование служебных слов делает запись алгоритма более наглядной, а форму пред­ставления различных алгоритмов – единообразной.

Алгоритм, записанный на алгоритмическом языке, должен иметь название. Назва­ние желательно выбирать так, чтобы было ясно, решение какой задачи описывает данный алгоритм. Для выделения названия алгоритма перед ним записывают служеб­ное слово АЛГ (АЛГоритм). За названием алгоритма (обычно с новой строки) записывают его команды. Для указания начала и конца алгоритма его команды заключают в пару служебных слов НАЧ (НАЧало) и КОН (КОНец). Команды записывают последовательно.

АЛГ – название алгоритма

серия команд алгоритма

Например, алгоритм, определяющий движение исполнителя-робота, может иметь вид:

АЛГ – в_склад

При построении новых алгоритмов могут использоваться алгоритмы, состав­ленные ранее. Алгоритмы, целиком используемые в составе других алгоритмов, называют вспомогательными алгоритмами. Вспомогательным может оказаться любой алгоритм из числа ранее составленных. Не исключается также, что вспомо­гательным в определенной ситуации может оказаться алгоритм, сам содержащий ссылку на вспомогательные алгоритмы.

Очень часто при составлении алгоритмов возникает необходимость использования в качестве вспомогательного одного и того же алгоритма, который к тому же может быть весьма сложным и громоздким. Было бы нерационально, начиная работу, каждый раз заново составлять и запоминать такой алгоритм для его последующего использования. Поэтому в практике широко используют так называемые встроенные (или стандартные) вспомогательные алгоритмы, т.е. такие алгоритмы, которые постоянно имеются в распоряжении исполнителя. Обращение к таким алгоритмам осуществляется так же, как и к «обычным» вспомогательным алгоритмам. У испол­нителя-робота встроенным вспомогательным алгоритмом может быть перемещение в склад из любой точки рабочего поля; у исполнителя-языка программирования Бейсик – это, например, встроенный алгоритм «SIN».

Алгоритм может содержать обращение к самому себе как вспомогательному, и в этом случае его называютрекурсивным. Если команда обращения алгоритма к самому себе находится в самом алгоритме, то такую рекурсию называютпрямой. Возможны случаи, когда рекурсивный вызов данного алгоритма происходит из вспомогательного алгоритма, к которому в данном алгоритме имеется обращение. Такая рекурсия называетсякосвенной. Пример прямой рекурсии:

АЛГ – движение

движение

Алгоритмы, при исполнении которых порядок следования команд определяется в зависимости от результатов проверки некоторых условий, называютразветвляющи­мися. Для их описания в алгоритмическом языке используют специальную составную команду – командуветвления. Применительно к исполнителю-роботу условием может быть проверка нахождения робота у края рабочего поля (край/не_край); проверка наличия объекта в текущей клетке (есть/нет) и некоторые другие:

ЕСЛИ условие ЕСЛИ условие ЕСЛИ край

ТО серия1 ТО серия ТО вправо

ИНАЧЕ серия2 ВСЕ ИНАЧЕ вперед

Ниже приводится запись на алгоритмическом языке команды выбора, являющейся развитием команды ветвления:

ПРИ условие 1: серия 1

ПРИ условие 2: серия 2

ПРИ условие N: серия N

ИНАЧЕ серия N+1

Алгоритмы, при исполнении которых отдельные команды или серии команд выполняются неоднократно, называют циклическими. Для организации цикличе­ских алгоритмов в алгоритмическом языке используют специальную составную команду цикла. Она соответствует блок-схемам типа «итерация» и может прини­мать следующий вид:

ПОКА условие НЦ

серия ДО условие

Наиболее часто инструкции составляют в виде записи на алгоритмическом языке. Он необходим для точных предписаний всех шагов и их исполнения. Между школьным алгоритмическим языком и языками программирования имеются явные отличия. Как правило, в качестве исполнителя в первом варианте выступает не только компьютер, но и другое устройство, которое способно выполнять работу. Любая программа, написанная на алгоритмическом языке, не обязательно должна совершаться техникой. Реализация всех инструкций на практике является сугубо отдельным вопросом. Ниже также будет рассмотрено описание алгоритма на алгоритмическом языке. Оно поможет разобраться с устройством данной системы.

Изучение в школе

Зачастую в школах изучается алгоритмический язык, наиболее известный как учебный. Он получил масштабное распространение благодаря тому, что в нем используются максимально понятные любому ученику слова. Подобный язык с синтаксисом на русском был введен давно, а именно в середине 1980-х годов. Его применяли для того, чтобы дать основу школьникам и преподавать им без компьютера курс информатики. Опубликован данный язык был в 1985 году в одном из учебников. Также его перепечатали несколько раз и для специальных книг, которые предназначались для обучения в 9 и 10 классах. Общий тираж издания составил 7 млн экземпляров.

Последовательность записи алгоритма

Прежде всего необходимо записать буквосочетание АЛГ. Далее следует название алгоритма. Затем после НАЧ нужно описать серию команд. Оператор КОН означает конец программы.

Описание алгоритма на алгоритмическом языке:

АЛГ Компания

НАЧ

поворот на 90 градусов влево

КОН

При написании ключевые слова необходимо подчеркивать либо выделять полужирным шрифтом. Для того чтобы указать логические блоки, следует применять отступы, а при наличии парных слов начала и конца необходимо воспользоваться вертикальной чертой, которая обозначает соединение.

Составление алгоритмов

Для того чтобы составить новые инструкции, можно использовать старые записи. Такие инструкции называются вспомогательными. Подобным алгоритмом может оказаться любой из всех описанных, составленных ранее. Также имеется вероятность того, что в этой системе будет применяться дополнительно алгоритм, который сам получил отсылку к вспомогательным системам.

Нередко при создании инструкции имеется необходимость использовать лишь один алгоритм в качестве дополнительного. Именно поэтому часто записи могут быть сложными и громоздкими. Но стоит заметить, что возможность делать отсылку является более простой, чем несколько раз переписывать одни и те же записи.

Именно поэтому на практике часто используется стандартный вспомогательный алгоритм, который находится постоянно в подчинении у пользователя. Инструкция может иметь отсылку, как самому себе, так и к любому другому. Команды алгоритмического языка предназначены для таких действий. Именно такие инструкции называют рекурсивными.

Команда связывания к самому себе находится внутри самой системы. Такая рекурсия является прямой. Косвенной же считается такая, где вызов алгоритма происходит в любой другой вспомогательной инструкции.

Алгоритмы, которые имеют определенный порядок следования команд, постоянно могут меняться в зависимости от результатов выполнения специальных частей программы. Такие системы называются разветвляющимися. Для того чтобы их создать, необходимо использовать специальную команду ветвления. Она имеет сокращенную и полную схему написания. Нередко встречаются циклические алгоритмы, которые выполняют особые команды по несколько раз.

E-практикум

Для того чтобы усовершенствовать изучение теории по грамматическому языку, профессионалы мехмата МГУ в 1985 году создали специальный компилятор. Он получил название "E-практикум". С его помощью можно было вводить, изменять и выполнять программы. На следующий год был выпущен определенный комплект исполнителей. Речь идет о «Роботе», «Чертежнике», «Двуногом», «Вездеходе». Это позволило просто и с легкостью реализовывать алгоритмы. Данный компилятор получил огромное распространение, был использован на некоторых компьютерах. Довольно долгое время этот язык программирования дорабатывался и изменялся. В 1990 году его более поздний вариант появился в учебнике.

Кумир

Сейчас школьный алгоритмический язык переживает свое второе рождение, после того как был разработан специальный пакет «Кумир» для Windows и Linux. Система функционирует с несколькими исполнителями. Классическими среди них являются «Робот», «Чертежник». Этот же пакет входит в установочный файл Linux «Школьный». Данная система разработана была специально по заказу Российской Академии наук. Она распространяется бесплатно и свободно. Последние несколько лет описываемый язык активно предлагают использовать в ЕГЭ как один из

Назначение языка

Алгоритмический язык используется для решения довольно большого круга задач. Он подходит для освоения как математических, так и упражнений по другим предметам. Нужно заметить, что он также используется для более простого изучения школьниками подобных тем.

Различия машинного и алгоритмического языков

Наиболее известным представителем машинно-зависимых языков является "Ассемблер". Во время программирования на нем человек должен ясно указать транслятору благодаря специальным операторам, какие ячейки памяти следует заполнить или перенести. Так как синтаксис "Ассемблера" максимально приближен к компьютерной форме записи, то и изучать его довольно сложно. Именно поэтому алгоритмический язык преподается в школе, а также в начале обучения программированию на первом курсе высшего учебного заведения.

Стандартные функции

Алгоритмический язык имеет специальные стандартные функции, которые получили статус «встроенных». Именно благодаря им можно с легкостью написать многие операции с числами и выражениями, не выполняя рутинных записей. Программа на алгоритмическом языке довольно проста. Штатные функции могут позволить вычислить квадратный корень, логарифмы, модуль и так далее. Наиболее популярными встроенными методами являются следующие:

  • абсолютный модуль abs(X);
  • корень квадратный sqrt(X);
  • натуральный и ln(X), lg(X);
  • минимум и максимум min (X,Y), max (X, Y);
  • тригонометрические функции sin(X), cos(X), tg(X), ctg(X).

Благодаря этому любой программист или просто человек, который обучается работе с алгоритмическим языком, сможет с легкостью написать математическую задачу, не прибегая к изобретению велосипеда. Таким образом, нужно заметить, что данный язык довольно удобный. Он прост в понимании, а также максимально легок в восприятии. Не зря его внесли в школьную программу. Школьники с удовольствием его изучают.

Школьный алгоритмический язык

Алгоритми́ческий язык (также русский алгоритмический язык, РАЯ ) - язык программирования , используемый для записи и изучения алгоритмов . При изучении информатики в школах для изучения основ алгоритмизации применяется т. н. школьный алгоритмический язык (учебный алгоритмический язык ), использующий понятные школьнику слова на русском языке. В отличие от большинства языков программирования, алгоритмический язык не привязан к архитектуре компьютера , не содержит деталей, связанных с устройством машины.

Примеры

Алгоритм на алгоритмическом языке в общем виде записывается в форме:

алг название алгоритма (аргументы и результаты) дано условия применимости алгоритма надо цель выполнения алгоритма нач описание промежуточных величин | последовательность команд (тело алгоритма) кон

В записи алгоритма ключевые слова обычно подчёркивались либо выделялись полужирным шрифтом. Для выделения логических блоков применялись отступы, а парные слова начала и конца блока соединялись вертикальной чертой.

Пример вычисления суммы квадратов:

алг Сумма квадратов (арг цел n, рез цел S) дано | n > 0 надо | S = 1*1 + 2*2 + 3*3 + … + n*n нач цел i | ввод n; S:=0 | нц для i от 1 до n | | S:= S + i * i | кц | вывод "S = ", S кон

Е-практикум

Для подкрепления теоретического изучения программирования по алгоритмическому языку, специалистами мехмата МГУ в 1985 г. был создан редактор-компилятор «Е-практикум» («Е» - в честь Ершова), позволяющий вводить, редактировать и исполнять программы на алгоритмическом языке.

В 1986 г. для «Е-практикума» был выпущен комплект учебных миров (исполнителей): «Робот», «Чертежник»», «Двуног», «Вездеход», которые позволяют просто вводить понятия алгоритма. «Е-практикум» был реализован на компьютерах: Ямаха , Корвет , УКНЦ и получил широкое распространение.

Данный язык программирования постоянно дорабатывался и описание более позднего варианта «Е-практикума» появилось в учебнике 1990 года. Система программирования «КуМир» («Комплект Учебных Миров»), поддерживающая этот учебник, была выпущена в свет предприятием «ИнфоМир» в 1990 году. Язык этой системы также называется «КуМир».

В 1995 году «КуМир» был рекомендован Министерством образования РФ в качестве основного учебного материала по курсу «Основы информатики и вычислительной техники» на основе учебника А. Г. Кушниренко, Г.В.Лебедева и Р.А.Свореня. .

Критика

Однако, следует заметить, что алгоритмический язык при отсутствии деталей, связывающих его с архитектурой компьютера напрямую, тем не менее, относясь к Алголо -подобным языкам, неявно обучает школьников опираться на фон-неймановскую архитектуру машин. (Архитектура фон Неймана является практической реализацией более ранней идеи, имеющей название Машина Тьюринга . Кроме идеи Тьюринга существуют и другие идеи. Популярнейшая из них имеет название Лямбда-исчисление : над ней работал Алонзо Чёрч. Лисп-машина - это архитектура, которая основывается на Лямбда-исчислении.)

Ссылки

  • А. П. Ершов. Алгоритмический язык в школьном курсе основ информатики и вычислительной техники. 07.05.1985
  • Форум по русским языкам программирования и средств разработки

Wikimedia Foundation . 2010 .

Смотреть что такое "Школьный алгоритмический язык" в других словарях:

    Алгоритмический язык формальный язык, используемый для записи, реализации или изучения алгоритмов. Всякий язык программирования является алгоритмическим языком, но не всякий алгоритмический язык пригоден для использования в качестве языка… … Википедия

    У этого термина существуют и другие значения, см. Алгоритмический язык. Учебный алгоритмический язык формальный язык, используемый для записи, реализации и изучения алгоритмов. В отличие от большинства языков программирования, не привязан к … Википедия

    У этого термина существуют и другие значения, см. Дракон (значения). Пример блок схемы алгоритма на языке ДРАКОН дракон схемы ДРАКОН (Дружелюбный Русский Алгоритмический язык, Который Обеспечивает Наглядность) визуальный… … Википедия

    Учебный язык программирования язык программирования, предназначенный для обучения. В качестве таковых разрабатывались такие языки как BASIC и Паскаль. Из разработанного для обучения языка ABC вырос Python. Популярным языком,… … Википедия

    Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/28 сентября 2012. Пока процесс обсуждения не завершён, статью мож … Википедия

    Алгоритмический язык (также русский алгоритмический язык, РАЯ) язык программирования, используемый для записи и изучения алгоритмов. При изучении информатики в школах для изучения основ алгоритмизации применяется т. н. школьный алгоритмический… … Википедия

    У этого термина существуют и другие значения, см. Кумир. КуМир … Википедия

    Edumandriva … Википедия

    - (Комплект учебных Миров или Миры Кушниренко) система программирования, предназначенная для поддержки начальных курсов информатики и программирования в средней и высшей школе. Основана на методике, разработанной во второй половине 1980 х годов… … Википедия

Книги

  • Программирование на алгоритмическом языке КуМир под редакцией А Г Кушниренко , Анеликова Л., Гусева О.. Данное пособие предназначено учителям и учащимся для поддержки начальных курсов информатики и программирования в средней, старшей и высшей школе. . В нем рассматриваются основные этапы и…

Запись алгоритма на алгоритмическом (формальном) языке называется программой. Иногда само понятие алгоритма отождествляется с его записью, так что слова "алгоритм" и "программа" - почти синонимы. Небольшое различие заключается в том, что при упоминании алгоритма, как правило, имеют в виду основную идею его построения, общую для всех алгоритмических языков. Программа же всегда связана с записью алгоритма на конкретном формальном языке.

При изложении идеи алгоритма, например, при публикации в научной статье, не всегда целесообразно пользоваться каким-либо конкретным языком программирования, чтобы не загромождать изложение несущественными деталями. В таких случаях применяется неформальный алгоритмический язык , максимально приближенный к естественному. Язык такого типа называют псевдокодом . Для специалиста не составляет труда переписать программу с псевдокода на любой конкретный язык программирования. Запись алгоритма на псевдокоде зачастую яснее и нагляднее, она дает возможность свободно выбирать уровень детализации, начиная от описания в самых общих чертах и кончая подробным изложением.

Псевдокоды – это полуформализованные описания алгоритмов на условном алгоритмическом языке , включающие как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и другое.

Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов.

Псевдокод занимает промежуточное место между естественным языком и языками программирования. С одной стороны, он близок к обычному, естественному языку, поэтому алгоритмы могут на нем записываться и читаться как обычный текст. С другой стороны, в псевдокоде используются некоторые формальные конструкции и математическая символика, что приближает запись алгоритма к общепринятой математической записи.

В псевдокоде обычно имеются некоторые конструкции, присущие языкам программирования. Это облегчает переход от записи на псевдокоде к записи алгоритма на язык программирования для конкретной ЭВМ. В частности, в псевдокоде, так же как и в языках программирования, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются.

Общий вид алгоритма :

алг название алгоритма (аргументы и результаты)

дано условия применимости алгоритма

надо цель выполнения алгоритма

нач описание промежуточных величин

последовательность команд (тело алгоритма)

Часть алгоритма от слова алг до слова нач называется заголовком, а часть, заключенная между словами нач и кон - телом алгоритма.

В предложении алг после названия алгоритма в круглых скобках указываются характеристики (арг, рез) и тип значения (цел, вещ, сим, лит или лог) всех входных (аргументы) и выходных (результаты) переменных. При описании массивов (таблиц) используется служебное слово таб , дополненное граничными парами по каждому индексу элементов массива.

Примеры предложений алг :

алг Объем и площадь цилиндра (арг вещ R, H, рез вещ V, S)

алг Корни КвУр (арг вещ а, b, c, рез вещ x1, x2, рез лит t)

алг Исключить элемент (арг цел N, арг рез вещ таб А)

алг Диагональ (арг цел N, арг цел таб A, рез лит Otvet)

Предложения дано и надо не обязательны. В них рекомендуется записывать утверждения, описывающие состояние среды исполнителя алгоритма, например:

алг Замена (арг лит Str1, Str2, арг рез лит Text)

дано | длины подстрок Str1 и Str2 совпадают

надо | всюду в строке Text подстрока Str1 заменена на Str2

алг Число максимумов (арг цел N, арг вещ таб A, рез цел K)

дано | N>0

надо | К - число максимальных элементов в таблице А

алг Сопротивление (арг вещ R1, R2, арг цел N, рез вещ R)

дано | N>5, R1>0, R2>0

надо | R - сопротивление схемы

Здесь в предложениях дано и надо после знака "|" записаны комментарии. Комментарии можно помещать в конце любой строки. Они не обрабатываются транслятором, но существенно облегчают понимание алгоритма.

Основные служебные слова алгоритмического языка:

алг (алгоритм) сим (символьный) дано для да

арг (аргумент) лит (литерный) надо от нет

рез (результат) лог (логический) если до при

нач (начало) таб(таблица) то знач выбор

кон (конец) нц (начало цикла) иначе и ввод

цел (целый) кц (конец цикла) все или вывод

вещ (вещественный) длин (длина) пока не утв

Основные команды:

1. Команда присваивания. Служит для вычисления выражений и присваивания их значений переменным. Общий вид: А:= В , где знак ":=" означает команду заменить прежнее значение переменной, стоящей в левой части, на вычисленное значение выражения, стоящего в правой части.

Например: a:= (b+c) * sin(Pi/4); i:= i+1.

Команды ввода и вывода.

ввод имена переменных (ввод данных с клавиатуры)

вывод имена переменных, выражения, тексты. (вывод данных на экран)

Команды ветвления.

Данные команды обеспечивают в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.

Структура ветвление существует в четырех основных вариантах:

1. Командаесли - то;

если условие

то действия

2. Командаесли - то - иначе;

если условие

то действия 1

иначе действия 2

3. Командавыбор;

Выбор

при условие 1: действия 1

при условие 2: действия 2

. . . . . . . . . . . .

при условие N: действия N

4. Командавыбор - иначе.

Выбор

при условие 1: действия 1

при условие 2: действия 2

. . . . . . . . . . . .

при условие N: действия N

иначе действия N+1

Команды цикла.

Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла.

Для организации циклов существуют две команды:

1. Цикл типа Пока - Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока .

нц пока условие

тело цикла

(последовательность действий)

кц

2. Цикл типа Для - Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне.

нц для i от i1 до i2

тело цикла

(последовательность действий)

кц

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

В настоящее время в мире существует несколько сотен реально используемых языков программирования. Для каждого есть своя область применения.

Любой алгоритм, как мы знаем, есть последовательность предписаний, выполнив которые можно за конечное число шагов перейти от исходных данных к результату. В зависимости от степени детализации предписаний обычно определяется уровень языка программирования - чем меньше детализация, тем выше уровень языка.

Язык программирования (алгоритмический язык) - набор правил, опреде­ляющих, какие последовательности символов составляют программу (синтаксические правила) и какие вычисления описывает программа (семантические правила).

Языки программированияимеют следующие характеристики:

  • Уровень языка - характеризуется сложностью задач, решаемых с помощью этого языка.
  • Мощность языка - характеризуется количеством и многообразием задач, алгоритмы решения которых можно записать, используя этот язык.
  • Надежность - язык должен обеспечивать минимум ошибок при написа­нии программ. Более того, язык должен быть таким, чтобы неправильные программы было трудно писать.
  • Удобочитаемост ь - легкость восприятия программ человеком. Это харак­теристика важна при коллективной работе, когда несколько человек работают с одними и теми же текстами программ.
  • Полнота - характеризует способность описать класс задач в некоторой предметной области.
  • Гибкость - характеризует легкость выражения необходимых действий.

По этому критерию можно выделить следующие уровни языков программирования:

  • машинные;
  • машинно-оpиентиpованные (ассемблеpы);
  • машинно-независимые (языки высокого уровня).

Машинные языки и машинно-ориентированные языки - это языки низкого уровня, требующие указания мелких деталей процесса обработки данных. Языки же высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека.

Языки высокого уровня делятся на:

  • процедурные (алгоритмические) (Basic, Pascal, C и др.), которые предназначены для однозначного описания алгоритмов; для решения задачи процедурные языки требуют в той или иной форме явно записать процедуру ее решения;
  • логические (Prolog, Lisp и др.) , которые ориентированы не на разработку алгоритма решения задачи, а на систематическое и формализованное описание задачи с тем, чтобы решение следовало из составленного описания;
  • объектно-ориентированные (Object Pascal, C++, Java и др.), в основе которых лежит понятие объекта, сочетающего в себе данные и действия над нами. Программа на объектно-ориентированном языке, решая некоторую задачу, по сути описывает часть мира, относящуюся к этой задаче. Описание действительности в форме системы взаимодействующих объектов естественнее, чем в форме взаимодействующих процедур.

Создание программы для ЭВМ включает следующие стадии:

§ анализ;

§ проектирование;

§ программирование;

§ тестирование и отладка;

§ эксплуатация.

К сегодняшнему дню насчитывают шесть поколений языков программиро­вания. Каждое из последующих поколений по своей функциональной мощности качественно отличается от предыдущего.

  • Первое поколение: Машинные языки. Появились в середине 40-х годов XX века.
  • Второе поколение: Ассемблеры. Фактически это те же машинные языки, но более красиво "обернутые". Появились в конце 50-х годов XX века
  • Третье поколение: Процедурные языки. Появились в начале 60-х годов XX века. К этому поколению относят универсальные языки высокого уровня, с помощью которых можно решать задачи из любых областей (например, Algol-60).
  • Четвертое поколение: Языки поддержки сложных структур данных (напри­мер, SQL). Появились в конце 60-х годов XX века.
  • Пятое поколение: Языки искусственного интеллекта (например, Prolog). Появились в начале 70-х годов XX века.
  • Шестое поколение: Языки нейронных сетей (самообучающиеся языки). Исследовательские работы в этой области начались в середине 80-х годов XX века.

ЗАКЛЮЧЕНИЕ

Для того чтобы ЭВМ могла выполнить какую-либо задачу ей необходимо выполнить определенную программу. Программа должна быть написана по строгим правилам, в виде, доступной для обработки на ЭВМ Такой набор правил называется языком программирования или алгоритмическим языком. Зная общий принцип построения и написания программ на ЭВМ, можно решать практически любые задачи необходимые в работе по информационной обработке данных.