Как написать подпрограмму в паскале. Паскаль (Pascal) — основы программирования для начинающих. Паскаль для начинающих – основные понятия

Рассмотрим простейший пример программы на языке Pascal ABC.NET. Изначально я думал дать более сложный пример на рассмотрение, но понял, что его придется слишком долго Вам обьяснять, поэтому мы рассмотрим стандартный пример "Hello World!".

Program Pascal; begin writeln("Pascal ABC.NET"); end.

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

Program Pascal; begin writeln("Pascal ABC.NET"); end.

Единственное ограничение к такому коду (в одну строку) это наличие пробелов между коммандами (в данном примере это пробел между begin и writeln), а пробел между новой строкой и строкой, заканчивающуюся на ";" не обязателен. Тоесть допустим следующий код:

Program pascal;begin writeln("Pascal ABC.NET");end.

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

PROGRAM PASCAL; BEGIN WRITELN("Pascal ABC.NET"); END.

Абсолютно эквивалентен предыдущему коду.

Теперь начнем анализировать сам код. Код начинается со слов "Program Pascal;". Слово "Program" указывает об обьявлении названия программы, что в моем случае случае это "Pascal". Это название может быть каким угодно (только нельзя брать зарезервированные имена они приведены в данной таблице), да и вообще эта строка является необязательной, поскольку никак это в дальнейшем не используется, поэтому можно писать свои коды и без нее (что я и буду делать в дальнейшем).

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

Все, что находится между ""Program" и первым "begin", находится в секции, называемой "Секцией описания". В ней можно создавать свои подпрограммы (об этом чуть позже), описывать переменные или постоянные. А самый первый "begin" и "end." Ограничивают секцию операторов, в которой и находится, собственно, код всей нашей программы. Данный пример можно было бы сделать чуть более гибким:

Program Pascal; const my_text="Pascal ABC.NET"; begin writeln(my_text); end.

Здесь я в секции описания создал переменную с постоянным значением (константу) с помощью слова "const", за которым должно идти описание одной или нескольких констант. Описав какую-либо константу в языке программирования, Вы сможете пользоваться ее значением где угодно (в пределах данной программы), но при этом Вы не сможете изменить ее значение. В некоторых случаях это очень удобно. Например, значение числа Pi, равное 3.14... Очевидно, при расчете каких-либо геометрических формул ей очень удобно пользоваться. И это значение должно быть одним и тем же в не зависимости от внешних факторов (Страны, где Вы проживаете; времени года; времени суток...). Поменяв значение данной константы, Вы будете получать некорректные значения в геометрических формулах. А это неправильно. Поэтому и придумали в языках программирования константы. Их нужно описывать в секции описания и использовать их в своем коде. При этом во время сборки готовой программы, везде вместо имени данной константы будет подставлено ее значение. Вы можете подумать, что это глупо писать везде имя данной константы, если все равно оно будет заменено на ее значение. Не проще ли сразу писать ее значение?

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

Const Mytext="Я люблю язык Pascal ABC.NET, и поэтому создаю сайт, где Вы можете обучиться етому языку";

И везде, где нужно, удобнее писать название данной константы "Mytext", а не это длинное предложение.

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

Var f:text; i:integer; begin assign(f, "data.bat"); reset(f); read(f,i); i:=(i*10 - 125)*(-1); close(f); assign(f, "data.bat"); rewrite(f); write(f,i); close(f); end.

Скорее всего вы почти ничего в этом коде не поняли (я не хотел приводить этот пример, но для большей понятности решил его привести). Вы сейчас можете не вникать в данный код (поскольку я писал его наугад). Этот код открывает файл "data.bat", считывает из него значение, преобразует это значение и обратно записывает в этот файл новое значение. Но не суть. Вы можете увидеть в данном коде строки "assign(f, "data.bat");" Вданном примере их 2 строки. Если вдруг измениться имя файла, то нам придется переписывать эти две строки. А представьте, если таких строк будет тысячи. Их всех придется переписывать. Именно для этой причины ввели переменные и константы.

Вернемся к первому коду. Описать константу в языке программирования - это значит указать ее имя и ее значение. То есть в примере:

Const my_text="Pascal ABC.NET";

Имя константы "my_text", а ее значение это "Pascal ABC.NET". Возможно, у Вас появилось чувство, что константам можно придавать значения только строк, но это не так:

Const my_Pi=3.1428;

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

В нашем примере в разделе операторов содержится только один оператор "writeln("Pascal ABC.NET");". Комманда "writeln" является подпрограммой (с ними мы познакомимся чуть позже), которая на экран выводит все то, что содержится в ее скобках (В нашем случае программа выведет на экран "Pascal ABC.NET").

Завершает всю программу слово "end.". Этот набор символов указывает на конец программы. Все, что идет за этой коммандой не выполняется.

Обычно, изучение любого языка программирования начинается с программы Hello, world! Но мы с вами займемся этим чуть попозже, потому что сейчас я хочу рассказать вам о величинах и типах данных в Pascal.

Виды величин

Обычно, изучение любого языка программирования начинается с программы Hello, world! Но мы с вами займемся этим чуть попозже, потому что сейчас я хочу рассказать вам о величинах и типах данных в Pascal. Что такое величина? Величина — это отдельный информационный объект, хранящийся в памяти компьютера. Существуют две классификации величин. Мы рассмотрим каждую в отдельности.


Более подробно мы поговорим о них в последующих уроках.

В свою очередь числовой делится на два типа.


Привожу сразу обозначение этого типа в Паскаль

Символьные тоже делятся на два типа.

Вторая классификация величин.
Константа — значение неизменно. Переменная — значение может меняться в течение работы программы. Переменные обозначаются символическими именами, которые называются идентификаторами. Как присвоить значение какой либо переменной? С помощью команды присваивания! Команда присваивания в Паскаль: < переменная >:= < выражение >

Первая программа на Pascal

Структура программы в Паскаль

Заголовок

Program < имя переменной >;

Объявление переменных и констант

const <Символическое имя> = <выражение>;
var <Однотипные переменные> : <тип>;

Раздел операторов

Begin
<оператор 1>;
<оператор 2>;

end.

Ввод и вывод в Паскаль

У вас, наверняка, возникает вопрос: «Как вводить значения переменных с клавиатуры?», а также: «Как вывести на экран полученный результат?». Для этого используются четыре специальных оператора:

Для ввода:

  • read(Переменную)
  • readln(Переменную)

И для вывода:

  • write(Текст в »)
  • writeln(Текст в »)

«В чем разница между read и readln, write и writeln?»: снова озадачитесь вы. Ответ прост. Если добавляете «ln» (что расшифровывается, как Line), то курсор переносится на следующую строку.

Hello, World на Pascal

Теперь вы готовы написать первую программу.

Program Hello_World; {фигурные кавычки позволяют вставить комментарий к коду} Begin Write("Hello, World!"); End.

Ну, тут все понятно. Чтобы разнообразить решение предлагаю решить несколько задачек этого типа.

Задача 1 . Требуется запросить имя пользователя, а затем вывести «Привет, <имя>!» Для решения этой задачи нам потребуется строковой тип данных — string.

Program Hello_boy_girl; {фигурные кавычки позволяют вставить комментарий к коду} var name: string; {объявляем name -- это новая переменная} Begin Write("Введите свое имя: "); {так как мы используем write, курсор будет мигать после двоеточия} Read(name); {Считываем все, что ввел пользователь} Write("Привет,", name,"!"); {Обратите внимание! Переменная отделяется от кавычек ЗАПЯТЫМИ!} End.

Задача 2. Требуется узнать сколько лет пользователю, а затем вывести «Вам <возраст> лет». Очевидно, что для решения этой задачи нам потребуется целочисленный тип данных — Integer.

Program How_old_are_you; var years: integer; {объявляем years -- это новая переменная} Begin Writeln("Сколько вам лет?"); {так как мы используем writeln, каретка будет мигать под надписью} Read(years); {Считываем все, что ввел пользователь} Write("Вам ", years," лет."); End.

Ну, вот и все! Все, что я хотел рассказать вам в сегодняшнем уроке. Вы узнали, что такое величина в Pascal, и выучили основные типы. А также научились создавать простейшие линейные программы. Более подробно про типы в PascalABC.Net мы поговорим в следующих уроках. Кстати, про PascalABC.Net. Понятно, что писать программы на листочках бесполезно, и вы должны тренироваться на компьютере. По этой ссылке скачайте последнюю версию для Windows.
Вот, как выглядит интерфейс программы при запуске.


P.S. Давайте выделим две особенности Pascal:

  1. Паскаль НЕ чувствителен к регистру, то есть и program, и Program, и PrOgRaM для него ничем не отличаются. А потому с самого начала привыкайте писать в нижнем регистре, чтобы при переходе на другой язык программирования не испытывать никаких проблем с этим;
  2. Имя программы в Pascal не играет никакого значения, оно не несет в себе никаких полезных функций. Если хотите вы можете просто не писать ЕГО!

P.P.S. В мире наиболее популярны три операционные системы: Linux, Mac OS и Windows. А если у вас не Windows? Какой компилятор выбрать тогда? Об этом мы с вами поговорим в уроке номер N.

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

2 шаг

И так. Чтобы оформить наши переменные перейдите на английский язык и напишите в начале программы слово “var”. А после через запятую наши 3 переменные, а, в, с, и через двоеточие поставьте тип “integer” Далее напишите begin – начать.
На данном этапе программа будет выглядеть так:

var a,b,c:integer;
begin

3 шаг

Ну а далее сама программа! Мы сделаем так, чтобы при начале работы, наша программа запрашивала ввести значение наших переменных. Для этого пишем английское слово прочти "read " и в скобках укажите какие именно надо прочесть переменные.
read(a,b);
Потом как в математике пишите формулу. Только обязательно перед равно должно быть двоеточие! c:=a+b;
Потом нам надо, чтобы программа выводила ответ: write©;
ну вот и все! заканчиваем програмку и пишем end.
Наша программа выглядит так:
var a,b,c:integer;
begin
read(a,b);
c:=a+b;
write©;
end.
Можете кстати скопировать эту программку в паскаль, и проверить или напишите ее сами.
После запуска программа запросит ввод, числа вводите через пробел!

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

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

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

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

Элементарные конструкции - это минимальные единицы, которые имеют собственный смысл.

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

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

Язык "Паскаль"

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

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

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

Элементарные конструкции языка

"Паскаль" для начинающих включает в себя строки, числа и имена.

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

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

Имя - это последовательность, которая начинается с буквы и может содержать в своем составе цифры. Идентификаторами принято называть метки, типы, константы, функции, процедуры, переменные, объекты и даже модули. Формируя идентификаторы можно использовать символ подчеркивания. Имя может иметь массу символов, но компилятор будет считывать лишь первые 63 знака. "Паскаль", описание которого может показаться таким сложным, не так уж страшен, поэтому не спешите пугаться и закрывать страницу браузера!

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

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

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

Каждая строка должна заканчиваться точкой с запятой в программе, написанной на рассматриваемом нами языке ("Паскаль"). Информатика учит этому школьников и студентов, а вы сможете осознать эти правила сами!

Точка с запятой (;) - это условный сигнал, который говорит об окончании текущей строки и необходимости перейти на новую. Но исключением могут быть служебные команды: const, var, begin и другие.

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

Для присвоения переменной определенного значения перед знаком равно необходимо поставить двоеточие. К примеру, вы ходите задать n=13, а в коде это будет выглядеть как n:=13.

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

Классические операторы языка "Паскаль"

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

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

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

Оператор присваивания

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

Составные операторы

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

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

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

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

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

IF <условие> THEN <оператор1> ELSE <оператор2>.

В этом выражении else, then и if являются зарезервированными словами, условие - логическим выражением с произвольным содержанием, а операторы - любыми командами используемого языка программирования.

Структура программного кода

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

В заголовке, как правило, содержится имя кода. К примеру, Program MyFirst.

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

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

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

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

В разделе описания используемых переменных следует указать все типы, которые будут задействованы: "var c,a,r: integer; k,l, m: char; h1,h2: boolean;".

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

Текст кода должен заканчиваться точкой.

Примеры программ

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

Давайте сделаем так, чтобы приложение вывело на экран фразу «It is my first program!»

Примеры программ на "Паскале" очень важно понять, поэтому попытайтесь это сделать прямо сейчас.

Begin
Writeln (It is my first program!");
End.

Вот так все просто!

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

Надеемся, были для вас полезными.

Итак, на предыдущей странице мы определились со следующими понятиями: program, integer, real, const, var, begin, end, write, writeln, read, readln. Давайте напишем простые программы на Паскале с их использованием. Но сначала выясним, из каких частей состоит программа на Паскале.

Любая программа на языке программирования Pascal имеет три составляющие: 1) заголовок; 2) раздел описаний; 3) тело программы.

✎ 1) Заголовок – это слово Program , после которого идет название программы латиницей и точка с запятой в конце. Название не может начинаться с цифры, не должно совпадать с зарезервированными словами (begin, end, integer и т.п.) или с названиями переменных из раздела описаний (см. ниже), а также недопустимо использование каких бы то ни было символов (‘@’, ‘%’, ‘&’ и т.п.), кроме подчеркивания. Название желательно давать со смыслом, которое отображало бы суть самой программы. Но заголовок писать не обязательно.

✎ 2) Раздел описаний – Поскольку сначала мы будем рассматривать простейшие задачи, то у нас во втором разделе будет находиться или описание констант, или переменных (см. пп. 4 и 5 статьи Введение в Pascal).

✎ 3) Тело программы – блок операторов, в котором записываются команды для выполнения. Начинается этот блок словом begin («начало»), а заканчивается словом end. («конец») с точкой в конце(пп. 6, 7 той же статьи).

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


При решении простейших задач ограничимся сначала целыми числами. Перед тем как начать программировать, укажем простейшие 4 действия над числами в Паскале: «+» − сложение, «-» − вычитание, «*» − умножение, «/» − деление. Как видим, в программировании и математике элементарные действия над числами обозначаются одинаково. Решим следующую задачу:

Задача. Пусть даны целые числа A и B. Найти их сумму.


Назовем программу нахождения суммы как Summa. Тогда часть кода, отвечающая за название программы, будет иметь вид:

1 Program Summa; { программа называется Summa }

Обозначим сумму чисел A и B через S. Поскольку числа целые, то и сумма будет целым числом. Таким образом, в описании чисел A, B, S будем использовать переменную целого типа integer . Но как описать эти числа в разделе описаний – как константы (const ) или как переменные (var )? Все зависит от условия задачи. Мы можем числа A и B записать и как константы, и как переменные. Но в любом случае сумма S будет переменного типа, поскольку нам неизвестно её значение.

Итак, пусть дано значение чисел A и B, равное, например, 23 и 76 соответственно. Поскольку мы знаем значения наперед, то A и B будут типа const , а S опишем как var . Учитывая, что описание констант идет перед описанием переменных, раздел описаний в этом случае будет следующим:


Таким образом, тело программы будет состоять из вычисления суммы S и вывода её на экран. В паскале, чтобы вычислить сумму А и В, нельзя просто записать S = A + B; такая запись возможна, если надо проверить, не равно ли число S сумме A + B. А чтобы в переменную S записать значение суммы А + В, надо значение этой суммы «присвоить» переменной S , т.е. сумму А + В записать в то место памяти компьютера, которое выделено для переменной S. Это как бы «впихивание» значения одного числа в значение другого. Записывается присваивание так:

Для вывода результата используется оператор вывода write с комментарием на экране:

write("Сумма чисел 23 и 76 равна: S = ", S);

Объединяя наши 1)заголовок программы, 2)раздел описаний и 3)тело программы, получим небольшой код, который можно скопировать в PascalABC.Net или в другую версию Pascal:


После выполнения этой программы на экране мы увидим:

Сумма чисел 23 и 76 равна: S = 99

Все хорошо и программа работает. Но здесь мы написали кое-что лишнее. Посмотрите внимательно на оператор вывода write в конце – там выводится сумма S. Изменится ли что-нибудь, если вместо S написать само значение суммы, то есть А + В? Правильно, ничего. Только тогда надо убрать переменную S из нашего кода, а вместо неё при выводе на экран использовать сумму А + В. Вот упрощенный код:


В этом случае результат на экране будет такой:

Сумма чисел 23 и 76 равна 99

Это и есть наша простейшая первая программа. Другие задачи такого типа можете посмотреть на странице Прямоугольник, круг и параллелепипед. Вычисление площадей, периметров и объемов . Там, правда, используются переменные действительного типа real, но суть та же: решать задачу без оператора присваивания. Вообще этот оператор используется там, где надо вычислить промежуточную переменную, которая задействуется при вычислении основного результата. Поэтому там, где при вычислении результата (ответа к задаче) можно обойтись без присваивания, записывать выражение надо прямо в оператор вывода write. Только, если выражение слишком большое и не помещается в оператор вывода, надо вычислять его отдельно, вводя дополнительные переменные (var). Но в простейших случаях, как правило, можно обойтись и без оператора присваивания.


На следующей странице поговорим о процентах. А пока, если вы любитель World of Warcraft, тогда в этом вам поможет

В продолжение темы:
Windows 10

Выберите документ из архива для просмотра: Лабораторная работа по Excel №1.doc Библиотека материалов Лабораторная работа №1 Упражнение 1 Введение основных понятий, связанных...