Структура программы на Паскале. По определению стандартного Паскаля программа состоит из заголовка программы и тела программы (блока), за которым следует точка — признак конца программы. В свою очередь, блок содержит разделы описаний и раздел операторов.
Раздел операторов имеется в любой программе и является основным. Предшествующие разделы носят характер описаний и не все обязательно присутствуют в каждой программе.
В Турбо Паскале, в отличие от стандарта, возможно следующее:
• отсутствие заголовка программы;
• разделы Const, Type, Var, Label могут следовать друг за другом в любом порядке и встречаться в разделе описаний сколько угодно раз.
Примеры программ. Уже было сказано, что Паскаль разрабатывался Н. Виртом как учебный язык. Основной принцип, заложенный в нем, — это поддержка структурной методики программирования. Этот же принцип лежит в основе псевдокода, который мы здесь называем Алгоритмическим языком (АЯ). По сути дела, расхождение между АЯ и Паскалем заключается в следующем: АЯ — русскоязычный, Паскаль — англоязычный; синтаксис Паскаля определен строго и однозначно в отличие от сравнительно свободного синтаксиса АЯ.
ПАСКАЛЬ В 2022? История, преемники, вакансии
Запись программы на Паскале похожа на английский перевод алгоритма, записанного на Алгоритмическом языке. Сравните алгоритм деления простых дробей, записанный на АЯ, с соответствующей программой на Паскале.
Здесь использовано следующее равенство:
Ввод исходных данных с клавиатуры производится с помощью процедуры ReadLn (read line — читать строку). На клавиатуре набирают четыре числа, отделяемые друг от друга пробелами, которые отражаются строкой на экране дисплея. После набора чисел нажимают на клавишу ввода.
Операторы присваивания в Паскале записываются так же, как в АЯ. Знак умножения — * (звездочка).
Вывод результатов на экран дисплея производится с помощью процедуры WriteLn (write line — писать в строку). В рассмотренном примере два целых числа т и п выведутся в строчку, курсор на экране перейдет в начало следующей свободной строки и работа программы завершится.
Необходимо строгое соблюдение правил правописания (синтаксиса) программы. В частности, в Паскале однозначно определено назначение знаков пунктуации. Точка с запятой (;) ставится в конце заголовка программы, в конце раздела описания переменных, после каждого оператора. Перед словом End точку с запятой можно не ставить. Запятая (,) является разделителем элементов во всевозможных списках: списке переменных в разделе описания, списке вводимых и выводимых величин.
Строгий синтаксис в языке программирования необходим прежде всего для транслятора. Транслятор — это программа, которая исполняется формально. Если, допустим, разделителем в списке переменных должна быть запятая, то любой другой знак будет восприниматься как ошибка. Если точка с запятой является разделителем операторов, то транслятор в качестве оператора воспринимает всю часть текста программы от одной точки с запятой до другой. Если вы забыли поставить этот знак между какими-то двумя операторами, то транслятор будет принимать их за один, что неизбежно приведет к ошибке.
Условный оператор if на языке Pascal
Основное назначение синтаксических правил — придать однозначный смысл языковым конструкциям. Если какая-то конструкция может трактоваться двусмысленно, значит, в ней обязательно содержится ошибка. Лучше не полагаться на интуицию, а выучить правила языка.
В дальнейшем мы строго опишем синтаксические правила Паскаля, а пока для получения первоначального представления о языке обратимся еще к нескольким примерам программирования несложных алгоритмов.
«Оттранслируем» алгоритм вычисления факториала натурального числа (N!) на Паскале.
Из этого примера, во-первых, видно, как записывается на Паскале оператор цикла с предусловием (цикл-пока):
(While — пока, Do — делать). Если тело цикла содержит последовательность операторов, то говорят, что оно образует составной оператор, в начале и в конце которого надо писать Begin и End
Служебные слова Begin и End часто называют операторными скобками, которые объединяют несколько операторов в один составной. Если же тело цикла — один оператор (не составной), то операторных скобок не требуется. Тогда транслятор считает, что тело цикла заканчивается на ближайшем знаке «;».
Рассмотрим еще один пример программы — решение квадратного уравнения.
В этой программе по сравнению с предыдущими появилось много новых элементов. Имя вещественного типа в Паскале — real.
Цикл с постусловием (цикл-до) программируется оператором
(здесь Repeat — повторять, Until — до). Тело цикла может быть как одиночным, так и составным оператором, однако употребления Begin и End не требуется, поскольку сами слова Repeat и Until выполняют роль операторных скобок.
Знак не равно в Паскале пишется так: <>, знак больше или равно: >=.
Правила записи арифметических выражений мы подробно рассмотрим немного позже. В формулах вычисления корней используется стандартная функция квадратного корня (), которая в Паскале записывается так: sqrt (x). Порядок выполнения операций в выражении определяется скобками и старшинством операций. Старшинство операций такое же, как и в алгебре. Операции одинакового старшинства выполняются в порядке их записи (слева направо).
Ветвление в Паскале программируется с помощью условного оператора, который имеет следующую форму:
(здесь If — если, Then — то, Else — иначе). Операторы 1 и 2 могут быть как простыми, так и составными. Составной оператор следует заключать в операторные скобки Begin и End.
Так же, как и в Алгоритмическом языке, возможно использование неполной формы условного оператора:
Характерной чертой данной программы является использование в тексте комментариев. Комментарий — это любая последовательность символов, заключенных в фигурные скобки <. >. Можно употреблять также следующие ограничители комментариев (*. *). Комментарий не определяет никаких действий программы и является лишь пояснительным текстом. Он может присутствовать в любом месте программы, где можно поставить пробел
Программист пишет комментарии не для компьютера, а для себя. Комментарий придает тексту программы большую ясность. Хорошо откомментированные программы называют самодокументированными. Во многих подобных программах объем комментариев превышает объем вычислительных операторов.
Удачное использование комментариев — признак хорошего стиля программирования.
Чтобы выполнить программу на ЭВМ, ее нужно ввести в память, оттранслировать и исполнить. Для того чтобы проделать всю эту работу, на компьютере должны быть специальные средства программного обеспечения. На ПК они составляют систему Турбо Паскаль.
Источник: studfile.net
Структура программ на Паскале
Программы в Турбо-Паскале пишутся по определенной структуре, которая соответствует схеме:
Каждый раздел заканчивается точкой с запятой. В конце программы ставится точка.
Список модулей. Модули содержат библиотеки вспомогательных программ: вычисление стандартных функций, поддержка графического режима экрана и др. Модули бывают стандартные и созданные программистом. Стандартные модули Турбо-Паскаля записаны в файле turbo.tpl, кроме модуля Graph, который находится в файле graph.tpu.
Раздел описания констант. В принципе, любую программу можно написать без использования имен констант, применяя вместо них числа. Но иногда использование имен констант целесообразно, т. к. их имена, подобранные в соответствии со смыслом выполняемых действий, облегчают чтение программы. Кроме того, использование имен констант облегчает проведение изменений в программе. В этом случае достаточно изменить значение константы в разделе описания. В общем виде раздел описания констант выглядит так:
Const =;. ; =; Раздел описания типов. В этом разделе описывают нестандартные типы данных, образованные программистом.
Раздел описания меток. Перед любым оператором можно поставить метку, что позволяет перейти к нему из любого места программы оператором goto. Например:
Использовать метки без крайней необходимости не следует, т.к. это усложняет чтение и понимание программы.
Раздел описания переменных. Каждая встречающаяся в программе пере-менная должна быть описана. В общем виде раздел описания прееменных вы-глядит так:
В разделе описания переменных обычно описывают также массивы. Пример описания одномерного массива из пятидесяти элементов:
Процедуры и функции
При решении ряда задач необходимо повторять одни и те же действия при различных значениях параметров в разных частях программы. Для этого используют подпрограммы – процедуры и функции. Главное различие между ними в том, что функция может быть использована в выражении, например:
х: =sin(а); Процедура может быть вызвана, например: write(a);
Процедуры и функции представляют собой важный инструмент Турбо Паскаля, позволяющий писать хорошо структурированные программы
Процедура – это особым образом оформленный фрагмент программы, имеющий собственное имя. Упоминание этого имени в тексте программы приводит к активизации процедуры и называется ее вызовом.
Функция отличается от процедуры тем, что результат ее работы возвращается в виде значения этой функции, и, следовательно, вызов функции может использоваться наряду с другими операндами в выражениях.
Процедуры и функции в Паскале бывают стандартные и нестандартные, т.е. определённые пользователем. Стандартные функции и процедуры не требуют описания
Нестандартные процедуры и функции необходимо описать, чтобы компилятор мог установить связь между оператором вызова и теми действиями, которые предусмотрены в процедуре (функции). Описание процедуры (функции) помещается в разделе описаний и внешне выглядит как программа, но вместо заголовка программы фигурирует заголовок процедуры (функции).
Раздел операторов. Операторы могут быть простые и составные. Составной оператор состоит из нескольких простых операторов и ограничен операторными скобками begin и end.
Операторы присваивания имеют вид a: = b;
Например:
В любом месте программы можно использовать комментарий, т.е. пояснительный текст. Он ограничивается символами < >или (* *). Комментарий игнорируется компилятором и потому влияние на программу не оказывает.
Ввод и вывод данных
Для ввода данных с клавиатуры в Паскале используют операторы вида
read(a1, a2, …, an);
readln(a1, a2, …,an);
Эти операторы приостанавливают выполнение программы до тех пор, пока с клавиатуры не будут введены значения переменных a1, a2, … an. Значения при наборе разделяются пробелом. Если есть два оператора read, данные для второго оператора будут вводиться в той же строке, что и для первого. Оператор readln обеспечивает переход курсора к новой строке.
Для вывода информации на экран в Паскале используются операторы вида
write(y1, y2,…,yn);
writeln(y1, y2,…,yn);
Оператор writeln после вывода всех значений переводит курсор на следующую строку.
Операторы вывода можно записывать в виде
write(b: m);
write(b: m: n);
Здесь b – имя переменной, m – поле для записи значения переменной, n – поле для записи дробной части.
Условный оператор
Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Таким образом, условный оператор — это средство ветвления вычислительного процесса.
Структура условного оператора имеет следующий вид:
где IF, THEN, ELSE — зарезервированные слова (если, то, иначе); — произвольное выражение логического типа; , — любые операторы языка Турбо Паскаль.
Операторы повторений
Используются для циклов. Циклы – это многократно повторяемые последовательности однотипных действий. Бывают циклы с известным числом повторений и с неизвестным числом повторений. Для организации цикла с известным числом повторений в Паскале служит оператор вида
FOR := ТО DO .
Здесь FOR, TO, DO — зарезервированные слова (для, до, выполнить);
Циклы с неизвестным числом повторений бывают двух видов: с предусловитем и с постусловием.
— Оператор цикла с предусловием (можно использовать в циклах с неизвестным или с известным числом повторений). Вид оператора: While b do s;
Здесь b – логическое выражение, s – тело цикла. При выполнении оператора предварительно проверяется значение логического выражения. Пока оно истинно, выполняется тело цикла, т.е. операторы циклической части. Когда оно становится ложным, происходит выход из цикла. Если с самого начала значение логического выражения ложно, тело цикла не выполнится ни разу.
— Оператор цикла с постусловием в Паскале также используется в циклах с неизвестным числом повторений и с известным числом повторений. Вид оператора: repeat s until b;
Здесь s – тело цикла, b — логическое выражение. При выполнении оператора сначала выполняется тело цикла, а затем проверяется логическое условие. Таким образом, обеспечивается, по меньшей мере, одно выполнение тела цикла. Цикл повторяется, пока логическое выражение ложно. Когда оно становится истинным, происходит выход из цикла.
Оператор выбора
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора -выражение любого порядкового типа (любого кроме типов REAL и STRING).
Структура оператора выбора такова:
Здесь CASE, OF, ELSE, END — зарезервированные слова (случай, из, иначе, конец).
Источник: megalektsii.ru
Презентация к уроку «Знакомство с языком программирования Паскаль»
Никлаус Вирт (род.1934) — швейцарский учёный, специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор компьютерных наук (ETH), Лауреат премии Тьюринга 1984 года. Никлаус Вирт (род.1934) — швейцарский учёный, специалист в области информатики, один из известнейших теоретиков в области разработки языков программирования, профессор компьютерных наук (ETH), Лауреат премии Тьюринга 1984 года. Разработчик языка программирования Паскаль. Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Блез Паска́ль (1623-1662 г.г.) — французский математик, физик, литератор и философ. Классик французской литературы, один из основателей математического анализа, теории вероятностей и проективной геометрии, создатель первых образцов счётной техники, автор основного закона гидростатики. Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Задача: разделить одну простую дробь на другую — получить результат Программа начинается с заголовка (служебное слово PROGRAM). За служебным словом следует произвольное имя, придуманное программистом. В конце заголовка ставится точка с запятой. m := a d начало конец ввод a, b, c, d вывод m вывод n n := b c цел a, b, c, d, m, n ввод a, b, c, d нач кон вывод m вывод n m := a d n := b c VAR READLN WRITELN : INTEGER a, b, c, d, m, n ( ) ; a, b, c, d ; END . ( ) m := m a d BEGIN ; := n b c ; WRITELN ; ( ) n a b c d : = a d b c = m n Структура программы на Паскале алг Деление дробей PROGRAM Division ; Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Задача: разделить одну простую дробь на другую — получить результат Раздел описания переменных, начинается со слова VAR (от variables — переменные), за которым следует список имен однотипных переменных через запятую. Тип указывается через двоеточие. В нашем примере все переменные имеют целый тип (INTEGER). В конце описания каждого типа необходимо ставить разделитель – точку с запятой m := a d начало конец ввод a, b, c, d вывод m вывод n n := b c алг Деление дробей ввод a, b, c, d нач кон вывод m вывод n m := a d n := b c a b c d : = a d b c = m n PROGRAM READLN WRITELN ( ) Division ; a, b, c, d ; END . ( ) m := m a d BEGIN ; WRITELN ; ( ) n := n b c ; Структура программы на Паскале VAR : INTEGER a, b, c, d, m, n ; цел a, b, c, d, m, n a b c d m n 1 3 2 5 m n Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Задача: разделить одну простую дробь на другую — получить результат Служебное слово BEGIN (начало) является операторной скобкой и с него начинается раздел операторов. Используется вместе с другой операторной скобкой — END (конец). Между этими служебными словами помещаются все операторы, из которых складывается программа. m := a d начало конец ввод a, b, c, d вывод m вывод n n := b c алг Деление дробей цел a, b, c, d, m, n ввод a, b, c, d кон вывод m вывод n m := a d n := b c a b c d : = a d b c = m n PROGRAM VAR READLN WRITELN : INTEGER a, b, c, d, m, n ( ) ; Division ; a, b, c, d ; END . ( ) m := m a d ; WRITELN ; ( ) n := n b c ; Структура программы на Паскале BEGIN нач a b c d m n 1 3 2 5 m n Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Задача: разделить одну простую дробь на другую — получить результат По оператору READ (READLN) происходит ввод данных с клавиатуры. При выполнении команды ввода компьютер ожидает действий пользователя, который должен набрать на клавиатуре значения переменных в том порядке, в котором они указаны в списке, отделяя их друг от друга пробелами. Одновременно с набором данных на клавиатуре они появляются на экране (пример: 5, 9, 7, 13). В конце набора нажимается клавиша ВВОД (Enter). m := a d начало конец ввод a, b, c, d вывод m вывод n n := b c алг Деление дробей цел a, b, c, d, m, n нач кон вывод m вывод n m := a d n := b c a b c d : = a d b c = m n PROGRAM VAR WRITELN : INTEGER a, b, c, d, m, n ; Division ; END . ( ) m := m a d BEGIN ; WRITELN ; ( ) n 1 3 2 5 := n b c ; Структура программы на Паскале READLN ( ) a, b, c, d ; ввод a, b, c, d a b c d m n 1 3 2 5 m n Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Задача: разделить одну простую дробь на другую — получить результат m := a d начало конец ввод a, b, c, d вывод m вывод n n := b c алг Деление дробей цел a, b, c, d, m, n ввод a, b, c, d нач кон вывод m вывод n a b c d : = a d b c = m n PROGRAM VAR READLN WRITELN : INTEGER a, b, c, d, m, n ( ) ; Division ; a, b, c, d ; END . ( ) m BEGIN WRITELN ; ( ) n В данном разделе программы с помощью операторов присваивания организован процесс вычисления значений переменных m и n по исходным данным a, b, c, d, значения которых были предварительно введены в компьютер с клавиатуры. Структура программы на Паскале := m a d ; := n b c ; m := a d n := b c a b c d m n 1 3 2 5 1 3 2 5 5 n Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Задача: разделить одну простую дробь на другую — получить результат начало конец ввод a, b, c, d вывод m вывод n n := b c алг Деление дробей цел a, b, c, d, m, n ввод a, b, c, d нач кон вывод m вывод n a b c d : = a d b c = m n PROGRAM VAR READLN WRITELN : INTEGER a, b, c, d, m, n ( ) ; Division ; a, b, c, d ; END . ( ) m BEGIN WRITELN ; ( ) n В данном разделе программы с помощью операторов присваивания организован процесс вычисления значений переменных m и n по исходным данным a, b, c, d, значения которых были предварительно введены в компьютер с клавиатуры. Структура программы на Паскале := m a d ; := n b c ; m := a d n := b c a b c d m n 1 3 2 5 m := a d 1 3 2 5 5 6 Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Задача: разделить одну простую дробь на другую — получить результат m := a d начало конец ввод a, b, c, d вывод m вывод n n := b c алг Деление дробей цел a, b, c, d, m, n ввод a, b, c, d нач кон вывод n m := a d n := b c a b c d : = a d b c = m n PROGRAM VAR READLN : INTEGER a, b, c, d, m, n ( ) ; Division ; a, b, c, d ; END . := m a d BEGIN ; WRITELN ( ) n Вывод результата на экран по оператору WRITE (WRITELN). На этом шаге производится вывод значения переменной m ( 5 ) := n b c ; Структура программы на Паскале WRITELN ( ) m ; вывод m a b c d m n 1 3 2 5 5 6 1 3 2 5 5 Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Задача: разделить одну простую дробь на другую — получить результат m := a d начало конец ввод a, b, c, d вывод m вывод n n := b c алг Деление дробей цел a, b, c, d, m, n ввод a, b, c, d нач кон вывод m m := a d n := b c a b c d : = a d b c = m n PROGRAM VAR READLN WRITELN : INTEGER a, b, c, d, m, n ( ) ; Division ; a, b, c, d ; END . ( ) m := m a d BEGIN ; ; := n b c ; Вывод результата на экран по оператору WRITE (WRITELN). На этом шаге производится вывод значения переменной n ( 6 ) Структура программы на Паскале WRITELN ( ) n вывод n a b c d m n 1 3 2 5 5 6 1 3 2 5 5 6 Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Задача: разделить одну простую дробь на другую — получить результат m := a d начало конец ввод a, b, c, d вывод m вывод n n := b c алг Деление дробей цел a, b, c, d, m, n ввод a, b, c, d нач вывод m вывод n m := a d n := b c a b c d : = a d b c = m n PROGRAM VAR READLN WRITELN : INTEGER a, b, c, d, m, n ( ) ; Division ; a, b, c, d ; ( ) m := m a d BEGIN ; WRITELN ; ( ) n Замыкающая операторная скобка END, означающая КОНЕЦ ПРОГРАММЫ. Используется вместе с другой операторной скобкой BEGIN (начало). Между этими служебными словами размещается программа на языке Паскаль. После слова END (в самом конце программы) ставится точка. := n b c ; Структура программы на Паскале END . кон 1 3 2 5 5 6 Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Правила записи арифметических выражений + сложение — вычитание * умножение / деление. Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
ОБЫЧНАЯ ЗАПИСЬ А2+В2-12С ЗАПИСЬ НА ПАСКАЛЕ А*А+В*В-12*С или SQR(A)+SQR(B)-12*C Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Пунктуация Паскаля (;) – ставится в конце заголовка программы, в конце раздела описания переменных, является разделителем операторов (,) – разделяет переменные в различных списках (.) – ставится в конце программы после слова end () — комментарии Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Решение: Program Summa; var a, b, c, d, m, n; begin readln (a,b,c,d); m:= a*d+c*b; n:= b*d; writeln (m); writeln (n) end. Задача: Написать программу для сложения двух простых дробей Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Домашнее задание §35 1. Напишите на языке Паскаль программу вычисления y по формуле: y = ( 1- x2 + 5×4 )2, где x — данное целое число. Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
2. Перепишите программу на языке паскаль, исправив ошибки: Program primer Var a,b: integer; Begin ; ReadLn( a,b); s=a+b; m:=a*b; d:=a:b; WriteLn(s); WriteLn(m); WriteLn(d) End Данилина Юлия Николаевна, учитель информатики МОУ «Средняя школа 32»
Источник: xn--j1ahfl.xn--p1ai