Теория недели 15.01 - 22.01.2013: Программирование на языке Pascal

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

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

А что общего в этих двух определениях?

Выберите и запишите любое определение в тетрадь.

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

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

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

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

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

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

Существует два различных подхода к трансляции – интерпретация и компиляция. Интерпретатор переводит и выполняет программу строка за строкой. Компилятор переводит программу целиком, а затем выполняет ее.

Все языки программирования делятся на: языки низкого уровня (например: двоичный язык, шестнадцатеричный язык); языки высокого уровня (например: Фортран, Basic, Алгол, Кобол, ПЛ\1, Паскаль, Ада).

Наиболее известным и широко распространенным языком программирования является Pascal.

Язык программирования Pascal был назван в честь французского ученого Блеза Паскаля, который еще в 1642 г. изобрел первую механическую счетную машину. Она представляла собой систему взаимодействующих зубчатых колесиков, каждое из которых соответствовало одному разряду десятичного числа и содержало цифры от 0 до 9. Когда колесико совершало полный оборот, следующее сдвигалось на одну цифру. Машина Паскаля была суммирующей машиной.

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

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

В состав интегрированной среды TurboPascal входят:

·       текстовый редактор;

·       компилятор;

·       отладчик;

·       справочная система;

·       среда выполнения программы.

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

·               все латинские прописные и строчные буквы;

·               арабские символы (0-9);

·               символы +,-,/,*,=,<,>, и т.д.;

·               служебные (зарезервированные) слова.

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

Служебные слова делятся на три группы:

1.             операторы (read, writeln и др.)

2.             имена функций (sin, cos и др.)

3.             ключевые слова (var, begin, end и др.)

Любая программа на Паскале имеет определенную структуру:

Program имя;

Const;  - раздел констант;

Var;  - раздел переменных: тип данных;

Begin

оператор 1;

оператор 2;

…..

оператор n-1;

оператор  n;

Readln

End.

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

Program p1; 
Var a,b,
с: integer;

Begin 
WriteLn
('Введите два целых числа через пробел'); 
ReadLn (a,b); 
с:=a*b; 
WriteLn ('Их произведение равно ', с); 
ReadLn 
End.

Комментарий:

Программа начинается с заголовка, имеющего следующий вид: Program имя программы; Имя нашей программы p1.

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

После раздела описаний идет тело программы (раздел операторов), начинающееся со служебного (ключевого) слова Begin, после которого записываются операторы языка. Первый оператор нашей программы это WriteLn (‘Введите два целых числа через пробел’); – вывести на экран текст, заключенный между апострофами. Символы «Ln» после Write означает, что курсор автоматически переходит на следующую строку после вывода. Следующий оператор ReadLn (a,b) – читать данные с клавиатуры. В данном случае необходимо ввести два целых числа через пробел. Переменной а присваивается значение, равное первому введенному числу, а переменной b присваивается значение, равное второму введенному числу. В операторе ReadLn символы «Ln» имеют тот же смысл, что и в операторе Writeln. После этих двух операторов стоит оператор присваивания: с:=а*b. Значение выражения из правой части оператора присваивания заменяет текущее значение переменной из левой части. Тип значения выражения обычно должен совпадать с типом переменной. При выполнении оператора переменная с получит значение, равное произведению числа а на число b. Так как в результате умножения двух целых чисел получается целое число, то переменную с мы описали как тип Integer (значениями которого могут быть лишь целые числа).

Следующий оператор – это снова оператор WriteLn ('Их произведение равно', с) – он выведет на экран текст, заключенный между апострофами, а за текстом - значение переменной с. Затем следующий оператор ReadLn будет ожидать нажатия клавиши Enter в окне выполнения. Раздел операторов завершается служебным (ключевым) словом End, после которого ставится точка.

После того как текст программы набран, его следует перевести в машинный код. Для этого программу отправляют на компиляцию, выбрав из главного меню – меню Compile и в вертикальном меню пункт Compile (или Alt+F9).

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

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

Для того чтобы запустить программу, из главного меню выбираем меню Run и в вертикальном меню выбираем пункт Run (или Ctrl+F9).После этого появляется окно, в котором осуществляется диалог с программой. На экране появляется сообщение:

Введите два целых числа через пробел

Курсор находится в следующей строке. Вводим два целых числа через пробел и нажимаем <Enter>, после этого появляется сообщение:

Их произведение равно...

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