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

Обновлено: 05.07.2024

История развития языков программирования, их особенности и назначение. Универсальный язык программирования COBOL. Развитие средств программирования. Универсальный код символических инструкций BASIC и сущность алгоритмического языка программирования.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 11.01.2010
Размер файла 46,7 K

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Содержание

1. История развития языков программирования

1.1 Универсальный язык программирования COBOL

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

1.3 Универсальный код символических инструкций BASIC"а

1.4 Алгоритмический язык Паскаль

2. Развитие средств программирования

Введение

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

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

Язык программирования - это совокупность набора символов (алфавит) системы, правил образования (синтаксис) и истолкования конструкций из символов (семантика) для задания алгоритмов с использованием символов естественного языка.

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

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

1. История развития языков программирования

С 1954 годов группа инженеров всем известной (теперь) компании IBM под руководством Джона Бекуса занималась созданием компилятора для Fortran. Эти работы велись более 2-х лет и, в конце концов, привели к созданию нового языка. Fortran - это сокращение от двух английских слов FORmula TRANslator - что переводится как "транслятор формул". Как видно из названия, первоначально язык создавался с целью использования при математических расчетах. Он предназначался для написания программ, используемых при решении прикладных технических задач. Основу языка составляли арифметические операторы, соответствующие по своему синтаксису традиционной записи математических выражений. В дополнение к этому в языке имелись средства разбиения сложных алгоритмов на более простые за счет явного определения подпрограмм (SUBROUTINE) и функций (FUNCTION). Описания данных в Fortran были ориентированы на представление главным образом числовой информации, поэтому и типы данных были просты: это целые и действительные числа, а также массивы из таких чисел. Однако программирование на Фортране представляло собой задачу непростую. К примеру, оператор DO 150 I=1,10 определяет начало цикла выполнения команд, идущих непосредственно за ним вплоть до строки с отметкой 150, причем параметр I при каждом новом начале цикла увеличивается на 1, и так до 10. А если вместо запятой между 1 и 10 поставить точку, то вместо цикла мы получим присвоение переменной DO150I значения 1.10. Но поскольку Fortran обладает хорошо развитым математическим аппаратом, и под него за время его существования было написано множество удобных и полезных библиотек, он до сих пор иногда используется при программировании сложных вычислений. Первая версия была предназначена специально для компьютера IBM-704, который работал на лампах (!). Позднее появились более проработанные версии: Фортран II позволял присоединять куски кода на ассемблере, Фортран III и Фортран IV, который вышел в свет в 1962 году, а также Фортран V, который умел работать с комплексными числами. Большим неудобством было то, что на разных машинах стояли Fortran"ы разных версий и между ними не было никакой совместимости, поэтому в 1966 году решено было принять единый стандарт. Следующая стандартизация была проведена в 1977, и версия стандарта Fortran77 стала особенно популярна. Стоит заметить, что это был первый пример коммерчески успешного языка. Fortran не умер и сегодня, как думают многие, хотя область его применения остается достаточно специфической. Появились даже пакеты Visual Fortran, позволяющие писать программы с графическим интерфейсом пользователя под среду Windows. К тому же Fortran до сих пор продолжают изучать при подготовке по некоторым физико-математическим специальностям во многих университетах, где он остается профилирующим языком программирования. Но Fortran приносил радость и утешение лишь ученым, которые решали с его помощью свои специфические научные и инженерные задачи.

1.1 Универсальный язык программирования COBOL

ЭВМ между тем развивались, и становилось понятным, что с их помощью можно решать самые разнообразные проблемы, зачастую не связанные с научными приложениями. Поэтому постепенно разрабатывались и компиляторы других языков программирования. Так в конце 1959 года в США группа разработчиков представила совершенно новый универсальный язык программирования COBOL - это аббревиатура от Common Business-Oriented Language - универсальный язык, ориентированный на задачи бизнеса. В Коболе, в отличие от большинства других языков, все данные описываются в отдельной секции, которая не совпадает с секцией команд. Это позволяет использовать одни и те же описания данных в различных программах. COBOL был аппаратно независим, и это также способствовало его потрясающей популярности в 60-х - 70-х годах, особенно после выхода в 1962 году его новой версии. Особенно эффективно программы, написанные на COBOL"е, производят простые арифметические операции с большими массивами данных, что довольно часто приходится делать в бухгалтерских расчетах. В нашей стране этот язык тоже достаточно широко использовался, причем он, один из немногих, был переведен на русский язык.

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

Языков программирования было все еще мало, да и те, что были, не всегда устраивали привередливых разработчиков. Поэтому ряд ведущих программистов в Цюрихе представили в 1958 году свое новое детище - Алгол (сокращение от ALGOrithmic Language - алгоритмический язык программирования). Первая версия языка так и называлась - Алгол 58, а позднее, в 60 году, уже в Париже, был принят стандарт Алгол 60, который и стал основным на долгие годы, и хотя несколько раз вносились новые поправки и дополнения, это название оставалось неизменным до 1968 года. Язык приняли неоднозначно, как удачно заметила Грейс Хоппер - один из крупнейших специалистов по языкам высокого уровня (если не сказать "крестная мать" языков программирования) - "Алгол похож на большую поэму: простой и ясный с точки зрения математики, но отнюдь не практичный". В США Алгол не получил широкого распространения, зато европейцы сразу приняли Алгол. Он дал возможность европейской компьютерной индустрии обрести независимость от американской технологии и распространился от Великобритании до Советского Союза. В начале 80-х множество советских программистов работали на Алголе-60. Но основная заслуга этого языка в другом - он заложил базу для дальнейшего развития программистской мысли, и многие языки программирования, разработанные впоследствии и получившие широкое распространение как в кругу профессионалов, так и среди любителей, содержат многие идеи и решения, взятые из Алгола. В первую очередь, это создание специальной нотации для определения синтаксиса алгоритмических языков (нотация Бэкуса-Наура). Во-вторых, доведение до логического завершения самой концепции операторных алгоритмических языков с заранее фиксированными типами данных и блочной структурой. Из дополнительных нововведений можно выделить возможность разработки отдельных модулей проекта независимо друг от друга, а также реализацию вызовов фрагментов кода программы, способов передачи параметров между процедурами и функциями. Достаточно сказать, что именно в Алголе появились понятия блока и рекурсивного вызова функции.

1.3 Универсальный код символических инструкций BASIC

1.4 Алгоритмический язык Паскаль

Существуют два способа трансляции:

1. ИНТЕРПРЕТАЦИЯ (Interpretation) - метод выполнения в ЭВМ программы, заданной на языке программирования, при котором инструкция исходной программы переводится и сразу выполняется.

2. КОМПИЛЯЦИЯ (Compile - собирать) - метод выполнения в ЭВМ программы, но не сразу, а лишь тогда, когда собран перевод всего текста программы.

Разницу между компиляцией и интерпретацией можно выяснить с помощью аналогии. Фармацевты в аптеке приготовляют микстуру по старинному рецепту, написанному на латыни. Есть два пути: можно сначала перевести (скомпилировать) рецепт на родной язык и лишь затем готовить лекарство на родном языке. А можно, по мере чтения перевода рецепта, сразу готовить лекарство, но не записывать сам текст перевода (т.е. только интерпретировать). В последнем случае мы не получим текста рецепта на родном языке. А можно, по мере чтения перевода рецепта, сразу готовить лекарство, но не записывать сам текст перевода (т.е. только интерпретировать). В последнем случае мы не получим текста рецепта на родном языке, а сразу получим микстуру, правда, если лекарство нужно готовить несколько раз, рецепт придется переводить многократно. Интерпретация используется в простых языках, где требуется несложная трансляция (Бейсик), или там, где компиляция слишком сложна или даже невозможна (язык ЛИСП). Часто используют оба эти способа совместно: интерпретатор - для отладки и компилятор - для трансляции отлаженной программы. Работа с программой, написанной на алгоритмическом языке, очень упрощается за счет относительной простоты написания программы, удобной читаемости, возможности ее подкорректировать. Однако при этом всплывают и недостатки: требуется дополнительное время на трансляцию и дополнительная память для размещения транслятора.

Итак, в 1955 году увидел свет первый алгоритмический язык Фортран. Он использовался для решения научно-технических и инженерных задач. Слово "Фортран" образовано от начальных слогов английских слов - formula translator (переводчик формул). Он был разработан сотрудниками фирмы IBM под руководством Джона Бэкуса. Основным назначением этого языка является программирование численных расчетов на ЭВМ.

Как и многие естественные языки (украинский, русский, английский и т.д.), Фортан (и другие языки) имеет много "диалектов" (их называют версиями), различающихся правилами записи некоторых команд, но по сути одинаковых. За прошедшие годы было много новых версий языка Фортан. Он все время менялся и развивался. Одна из последних версий - Фортран-77. Благодаря простоте и тому, что этим языком написаны большие библиотеки программ, Фортран и в наши дни является одним из самых распространенных в мире языков программирования.

Затем в 1960 г. появился Алгол (Algoritmic language - алгоритмический язык), также ориентированный на научное применение, в него было введено множество новых понятий, подхваченных позднейшими языками, например, понятие блочной структуры. Также при поддержке фирмы IBM появился язык Кобол (Cobol - сокращенное от английских слов Comnon business oriented language - общепринятый деловой ориентированный язык). Он был ориентирован на решение экономических задач, а точнее - на обработку информации.

Язык Бейсик (Basic - beginners all-parpouse sumbolic instraction code, что в переводе с английского означает "многоцелевой язык символических инструкций для начинающих") был разработан профессорами Дартмутского колледжа (СИГА) Т.Куртцем и Дж. Кемени в 1965 году для обучения студентов, незнакомых с вычислительной техникой. Этот язык, напоминающий Фортран, но более простой, быстро стал очень популярным. Особенно его популярность повысилась благодаря "взрыву микроинформатики" - появлению персональных микрокомпьютеров, где Бейсик стал основным языком программирования. Достоинствами Бейсика являются удобные средства ввода, отладки и испытания программ, а также возможность доступа ко всем основным ресурсам компьютера. Его отличает простота конструкций и возможность осуществления диалогового режима работы с ЭВМ. Вместе с тем Бейсик имеет и ряд недостатков. Это прежде всего отсутствие явных ограничений на составление запутанных программ (этот недостаток присущ и Фортрану). Его оператор Goto при бездумном применении сильно запутывает программу и порой делает ее совсем непонятной с точки зрения логики выполнения. Кроме того, программы на языке Бейсик обычно выполняются относительно медленно, поскольку ЭВМ применяют, как правило, не компиляторы, а интерпретаторы языка. Но последние диалекты языка Бейсик все больше устраняют перечисленные недостатки и приближают его к языку Паскаль и другим процедурным языкам (т.е. основанным па понятиях алгоритмов, программ, инструкции). С его помощью можно решать достаточно сложные задачи. Например, так называемая версия расширенного Бейсика, имеющая матричные операции, позволяет с помощью одного оператора преобразовывать большие таблицы (матрицы). Есть версии Бейсика, работающие в режиме компиляции, что значительно ускоряет прогон программ, написанных на этом языке.

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

В 1967-1968 гг. появился язык PL/1 (Programming language - универсальный программно-ориентированный). Он также был создан на фирме IBM, но уже в качестве универсального языка программирования. Этот язык, как языки программирования СИ, Ада и Паскаль, может использоваться как для научных задач, так и для задач управления. Он очень мощный, но и очень сложный, используется лишь в высших учебных заведениях и научно-исследовательских центрах.

В 1970 г. профессор Никлаус Вирт создал в Цюрихском политехническом университете язык Паскаль (Pascal). Создатель языка назвал его в честь Блеза Паскаля первого конструктора устройства, которое теперь относится к классу цифровых вычислительных машин. Он создавался как язык, который, с одной стороны, был бы хорошо приспособлен для обучения программированию, а с другой - давал бы возможность эффективно решать самые разнообразные задачи на современных ЭВМ. При создании этого языка Вирт большое внимание уделял хорошему стилю программирования (так называемое структурное программирование), благодаря которому конструкции Паскаля позволяют писать надежные, легко проверяемые программы с ясной и четкой структурой. Работая в среде данных языков, компьютер решает задачу, а программист лишь ее формулирует. ЭВМ пробегает все рабочее пространство в поисках решения специальным способом, но зато полностью исчерпывающим (возможен обратный ход). Существует огромное множество специализированных языков, позволяющих эффективно решать задачи в некоторых областях: моделирования (языки Симула, Симкрит и GPSS), управления аппаратурой (ФОРТ), для написания системных программ (СИ), написания баз данных (Кодасил), обучения программированию (Лого, Робик, алгоритмический язык А.П.Ершова) и другие. Но в целом эволюция машинных языков происходит в направлении естественного языка - идеальное решение, состоящее в том, что пользователю надо будет только сформулировать задачу на естественном языке, а все остальное сделает компьютер. Конечно, в настоящее время это всего лишь мечта, но тем не менее языки последних поколений более близки к языку человеческих рассуждений.

2. Развитие средств программирования

Заключение

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

Именно такие языки и ориентированы на описание алгоритмов. Поэтому их еще называют алгоритмическими языками.

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

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

Литература

1. “Язык программирования Си.” Б.В. Керниган, Д. Ритчи, А. Фьюэр. Русский перевод: Москва: Финансы и Статистика. 1985 г.;

2. “Основы автоматизации” ч.1, Золотарев В.В., 1978 г.;

3. “Языки программирования” кн.5, Ваулин А.С., 1993 г.;

4. “Языки программирования: разработка и реализация”, П. Терренс, 1979 г.

5. “Алгоритмические языки реального времени”, Янг С., 1985 г.

6. Можаров Р.В., Можарова Н.Р., Евтеев В.В., Кузьменко О.А., Шевченко М.О. Программное обеспечение персональных компьютеров//Учебное пособие для вузов. - М.: Финстатинформ, 1999.

7. В.И. Пономарёва. Практикум по программированию в среде Turbo Pascal. Симферополь, Таврида, 1998, 256

8. Глушаков С.В., Коваль А.В., Смирнов С.В. Язык программирования С++. Харьков, Фолио, 2002, 500.

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

Содержание

Введение……………………………………………………………. ……………3
1. Определение и свойства алгоритма………………………………….………..4
2. Методы изображение алгоритмов……………………………………..…….10
2.1 Словесное описание алгоритма……………………………………….…….10
2.2 Блок-схема алгоритма…………………………………………………. …..11
2.3 Псевдокод……………………………………………………………….……14
2.4 Программное представление алгоритма………………………………..….16
3. Порядок разработки иерархической схемы реализации алгоритмов…. …17
4. Автоматизация деятельности человека на основе алгоритмизации.………20
5. Значение алгоритмов при решении повседневных задач………..…………24
6. Стадии создания алгоритма………………………………………….……….27
7. Основные алгоритмические структуры: следование, ветвление, цикл; изображение на блок-схемах. Разбиение задачи на подзадачи. Вспомогательные алгоритмы……………………………………………..…….30
7.1 Линейный алгоритм……………..…………………………………………..30
7.2 Циклический алгоритм………………………………………………. ……31
7.3 Разветвляющийся алгоритм…………………………………………………33
7.4 Вспомогательный алгоритм…………………………………………. ……34
7.5 Метод последовательной детализации……………………………………..34
8. Величины: константы, переменные, типы величин. Присваивание, ввод и вывод величин. Линейные алгоритмы работы с величинами……………. …37
9. Логические величины, операции, выражения. Логические выражения в качестве условий в ветвящихся и циклических алгоритмах……………….…43
Заключение……………………………………………………………….………48
Список литературы…………………

Работа состоит из 1 файл

Алгоритмические языки.doc

    • Механические алгоритмы, или иначе детерминированные, жесткие (например алгоритм работы машины, двигателя и т.п.);
    • Гибкие алгоритмы, например стохастические, т.е. вероятностные и эвристические.

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

      • Вероятностный (стохастический) алгоритм дает программу решения задачи несколькими путями или способами, приводящими к вероятному достижению результата.
      • Эвристический алгоритм (от греческого слова “эврика”) – это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоцияциях и прошлом опыте решения схожих задач.
      • Линейный алгоритм – набор команд (указаний), выполняемых последовательно во времени друг за другом.
      • Разветвляющийся алгоритм – алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов.
      • Циклический алгоритм – алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов.

      Цикл программы – последовательность команд (серия, тело цикла), которая может выполняться многократно (для новых исходных данных) до удовлетворения некоторого условия.

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

        2. Методы изображение алгоритмов

        На практике наиболее распространены следующие формы представления алгоритмов:

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

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

          Данный способ получил значительно меньшее распространение из-за его многословности и отсутствия наглядности.

          Рассмотрим пример на алгоритме нахождение максимального из двух значений:

          Определим форматы переменных X, Y, M, где X и Y – значения для сравнения, M – переменная для хранения максимального значения;

          получим два значения чисел X и Y для сравнения;

          если X меньше Y, значит большее число Y.

          Поместим в переменную M значение Y.

          Если X не меньше (больше) Y, значит большее число X.

          Поместим в переменную M значение X.

          Словесный способ не имеет широкого распространения по следующим причинам:

          такие описания строго не формализуемы;

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

          допускают неоднозначность толкования отдельных предписаний.

          2.2 Блок-схема алгоритма

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

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

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

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

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

          В таблице 1 приведены наиболее часто употребляемые символы.

          Название символа Обозначение и пример заполнения Пояснение
          Процесс Вычислительное действие или последовательность действий
          Решение Проверка условий
          Модификация Начало цикла
          Предопределенный процесс Вычисления по подпрограмме, стандартной подпрограмме
          Ввод-вывод Ввод-вывод в общем виде
          Пуск-останов Начало, конец алгоритма, вход и выход в подпрограмму
          Документ Вывод результатов на печать

          В таблице 2 приведены стандартные графические объекты блок-схемы:

          Вид стандартного графического объекта Назначение
          Начало алгоритма
          Конец алгоритма
          Выполняемое действие записывается внутри прямоугольника
          Условие выполнения действий записывается внутри ромба
          Счетчик кол-во повторов
          Последовательность выполнения действий

          2.3 Псевдокод

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

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

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

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

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

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

          нц для i от 1 до n

          вывод "S center"> 2.4 Программное представление алгоритма

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

          Нажмите, чтобы узнать подробности

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

          ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ

          Кафедра информатики и вычислительной техники

          ОБЩИЕ КОНСТРУКЦИИ АЛГОРИТМИЧЕСКИХ ЯЗЫКОВ: АЛФАВИТ, ВЕЛИЧИНА (ТИП, ИМЯ И ЗНАЧЕНИЕ). ВЫРАЖЕНИЕ. ТИП ВЫРАЖЕНИЯ. АРИФМЕТИЧЕСКОЕ ВЫРАЖЕНИЕ. СИМВОЛЬНОЕ ВЫРАЖЕНИЕ. ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ. СТАНДАРТНЫЕ ФУНКЦИИ. СТРУКТУРА ПРОГРАММЫ.

          студентка 5 курса группы МДФ-117 ________________________ А. Н. Родькина

          Направление подготовки 44.03.05 Педагогическое образование.

          Профиль Физика. Информатика

          канд. физ.-мат. наук, доцент__________________________ Т. В. Кормилицына

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

          Для изучения основ алгоритмизации применяется так называемый Русский алгоритмический язык (школьный алгоритмический язык), использующий понятные школьнику слова на русском языке.

          Алфавит языка

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

          Синтаксис – это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза.

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

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

          Алфавит языка включает:

          • буквы латинского алфавита от A до Z (строчные и прописные)

          • арабские цифры: 0 1 2 … 9

          • знаки арифметических операций: + – * / ^ \

          • круглые скобки ( ) кавычки “ ” апостроф ’ , подчеркивание _

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

          Величина (тип, имя, значение)

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

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

          Во время выполнения алгоритма в каждый конкретный момент времени величина может иметь какое-то значение(например, 3 или -502,78) либо ее значение может быть не определено(к данному моменту не вычислено). С точки зрения ЭВМ: значение величины – это содержимое соответствующей ей ячейки памяти.

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

          Для того чтобы ЭВМ могла работать с величиной, ей необходимо ее описание. Описать величину - значит указать ее тип и имя (например, цел n).

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

          Алг график (арг вещ a,b, цел n)
          нач цел k, m, l, вещ x,y

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

          В алгоритмическом языке не существует специальных правил именования переменных. Однако их названия не должны совпадать со служебными словами алгоритмического языка. Во многих языках программирования для имен можно использовать только латинские буквы, цифры, знак подчеркивания. Имена обязательно должны начинаться с буквы, при этом строчные и прописные буквы в именах не различаются. В одном алгоритме не могут существовать разные объекты с одинаковыми именами. Все имена являются уникальными. Имена переменных и констант стараются выбирать так, чтобы они напоминали их смысл. Например, имена переменных и констант: S, p12, result, итог.

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

          Величина — переменная, с которой связывается определенное множество значений. Этой величине присваивается имя (в языках программирования его называют идентификатор).

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

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

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

          2. Индексы элементов массивов записываются в скобках.

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

          4. Операции одного старшинства выполняются слева направо.

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

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

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

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

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

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

          1. Если программа большая, разделение ее на части облегчает создание, тестирование и ее сборку.

          2. Если программа большая и повторная компиляция всего исходного текста занимает много времени, разделение ее на части экономит время компиляции.

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

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

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

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

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

          Признаком заголовка алгоритма является ключевое слово алг.

          Итак, алгоритм, записанный на учебном алгоритмическом языке, имеет следующую форму:

          алг название алгоритма

          aрг список исходных данных

          рез список результатов

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

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

          Записывается она так:

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

          1) значение выражения, записанного в правой части команды присваивания, вычисляется с использованием текущих значений всех величин, входящих в это выражение;

          2) переменной присваивается новое вычисленное текущее значение. При этом предшествующее значение переменной уничтожается.

          Следовательно, команда b: = а + b означает, что к предыдущему текущему значению величины b прибавляется значение переменной а и полученный результат становится новым текущим значением величины b.

          Этот пример иллюстрирует три основных свойства присваивания:

          1) пока переменной не присвоено значение, она остается не определенной;

          2) значение, присвоенное переменной, сохраняется в ней вплоть до выполнения следующего присваивания этой переменной нового значения;

          3) новое значение, присвоенное переменной, заменяет ее предыдущее значение.

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

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

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

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

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

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

          И, наконец, базовая структура цикл с помощью школьного алгоритмического языка будет выглядеть следующим образом.

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

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

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

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

          1.4 Решение трудностей изучения раздела учащимися

          При изучении данной темы можно столкнуться со следующими сложностями:

          · неправильное приведение примеров алгоритма (не выполняются все его свойства, команды не входят в систему команд исполнителя);

          · неправильное представление алгоритма в виде блок-схемы;

          · неправильное использование простейших алгоритмических конструкций;

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

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

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

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

          1. выполнить роль исполнителя: дан алгоритм, формально исполнить его;

          2. определить исполнителя и систему команд для данного вида работы;

          3. в рамках данной системы команд построить алгоритм;

          4. определить необходимый набор исходных данных для решения задачи.

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

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

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

          Следует обсуждать с учащимися необходимость использования команды ветвления. Для этого можно задать следующие вопросы: почему алгоритм решения задачи не может иметь линейную структуру? Какое условие надо проверять при выполнении алгоритма? Какие действия выполняются при соблюдении условия, а какие — при его несоблюдении? Какая форма команды ветвления применена? В каких задачах используется данная структура алгоритма? и т. п.

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

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

          Читайте также: