Урок 3. Первая программа в Pascal
Обычно, изучение любого языка программирования начинается с программы Hello, world! Но мы с вами займемся этим чуть попозже, потому что сейчас я хочу рассказать вам о величинах и типах данных в Pascal.
Виды величин
Обычно, изучение любого языка программирования начинается с программы Hello, world! Но мы с вами займемся этим чуть попозже, потому что сейчас я хочу рассказать вам о величинах и типах данных в Pascal. Что такое величина? Величина — это отдельный информационный объект, хранящийся в памяти компьютера. Существуют две классификации величин. Мы рассмотрим каждую в отдельности.
Более подробно мы поговорим о них в последующих уроках.
В свою очередь числовой делится на два типа.
Привожу сразу обозначение этого типа в Паскаль
Символьные тоже делятся на два типа.
Вторая классификация величин.Константа — значение неизменно. Переменная — значение может меняться в течение работы программы. Переменные обозначаются символическими именами, которые называются идентификаторами. Как присвоить значение какой либо переменной? С помощью команды присваивания! Команда присваивания в Паскаль: :=
Первая программа на Pascal
Структура программы в Паскаль
Заголовок
Объявление переменных и констант
Раздел операторов
Ввод и вывод в Паскаль
У вас, наверняка, возникает вопрос: «Как вводить значения переменных с клавиатуры?», а также: «Как вывести на экран полученный результат?». Для этого используются четыре специальных оператора:
Для ввода:
И для вывода:
«В чем разница между read и readln, write и writeln?»: снова озадачитесь вы. Ответ прост. Если добавляете «ln» (что расшифровывается, как Line), то курсор переносится на следующую строку.
Hello, World на Pascal
Теперь вы готовы написать первую программу.
Ну, тут все понятно. Чтобы разнообразить решение предлагаю решить несколько задачек этого типа.
Задача 2. Требуется узнать сколько лет пользователю, а затем вывести «Вам лет». Очевидно, что для решения этой задачи нам потребуется целочисленный тип данных — Integer.
Ну, вот и все! Все, что я хотел рассказать вам в сегодняшнем уроке. Вы узнали, что такое величина в Pascal, и выучили основные типы. А также научились создавать простейшие линейные программы. Более подробно про типы в PascalABC.Net мы поговорим в следующих уроках. Кстати, про PascalABC.Net. Понятно, что писать программы на листочках бесполезно, и вы должны тренироваться на компьютере. По этой ссылке скачайте последнюю версию PascalABC.Net для Windows.
Вот, как выглядит интерфейс программы при запуске.
P.S. Давайте выделим две особенности Pascal:
Первая программа
После установки интегрированной среды разработки Lazarus, как было описано в предыдущей теме, мы можем приступить к разработке программ на языке Free Pascal. Итак, напишем первую простую программу.
Запустите программу для разработки Лазарус. Не пугайтесь большого количества окон после загрузки приложения.
Консольное приложение
Для создания первой программы, необходимо выбрать в меню Файл –> Создать. В открывшемся окне выбираем папку Проект, а в ней Простая программа
У нас откроется редактор кода для простого консольного приложения. Пишем в редакторе следующий код на языке Паскаль:
Процедура writeln выводит в консоль сообщение, которое передается ей в качестве параметра, в данном случае Hello World!, окончание ln в ней говорит о том, что после вывода текста, курсор будет перемещен на новую строку.
Процедура write делает то же самое, только без перевода каретки.
Запустить выполнение программы можно тремя способами:
После запуска программы на выполнение, мы увидим окно консоли, которое сразу же закрывается. Есть несколько вариантов решения данной проблемы.
Программа будет ждать нажатия клавиши Enter
Программа ждет нажатия любой клавиши
Проблему исчезновения окна решили. Теперь после запуска мы сможем увидеть результат.
Если в программе вы используете русские буквы, а они не правильно отображаются в консоли, добавте в самое начало программы строку .
Смена кодировки на Unicode должна решить проблему вывода кирилических символов на экран.
Оконное приложение
Многих начинающих программистов пугают консольные приложения, а Windows формы кажутся слишком сложными. Но это не так.
Откроем пункт меню Файл –> Создать, выбираем Проект, а в нем Приложение
После этого откроется редактор Форм.
Перемещаем на форму элемент управления Кнопка, делаем на ней двойной щелчек мышкой, после чего мы попадаем в обработчик нажатия кнопки. Дописываем код для вывода сообщения, в итоге получим следующий код обработчика.
Запускаем проект. Мы увидим Windows форму с кнопкой, после нажатия на которую выводиться окно сообщения с текстом Hello World!
Exe файл программы можно найти в папке в которую вы сохранили проект.
Урок 1. Привет!
Если вы впервые пишете программу на каком-то языке программирования, то уже давно существует обычай писать первой программу, которая выводит на экран сообщение «Привет, мир!» («Hello, world!» в английской версии).
Мы немного отклонимся от этой традиции и напишем программу, которая скажет «Привет!» лично вам, а не всему миру.
Запустите Free Pascal. Перейдите в меню «File» (чтобы быстро оказаться в меню «File», не используя мышь, нажмите Alt + F).
На экране появится окно для ввода новой программы.
В правом верхнем углу синего окна вы можете увидеть его номер — 1. В центре вверху окна выводится название файла с вашей программой — noname01.pas.
Пока вы не придумали свое название для вашего файла, Free Pascal назвал его по умолчанию «noname01.pas» («no name» означает по-английски «без имени»).
Введите в окне следующий текст:
Нажмите «F2», чтобы сохранить программу. Так как имя файла еще не было задано, то появится диалоговое окно:
Перейдите в папку «C:\FPC\3.0.0\work». Введите имя программы «hello.pas» в поле Name. Нажмите «ОК».
Вернемся к нашей программе. Чтобы вы не листали страницу вверх, я повторю её текст:
После названия программы должна стоять точка с запятой. Между ключевыми словами begin и end идет непосредственно наша программа, которая пока состоит из одной единственной команды Writeln (тоже с точкой запятой после).
А вот после end идет точка, а не точка с запятой, потому что это конец всей программы. После end никаких инструкций в программе уже не будет: точка — значит точка 🙂
Итак, всё, что делает наша программа — это выводит на экран сообщение « Привет ».
Чтобы запустить нашу программу на исполнение, нажмите Ctrl + F9 (или через меню: Run | Run).
Вы можете не успеть увидеть результат работы вашей программы, как на экране снова появится окно нашего редактора, в котором мы набирали программу:
А где же сообщение « Привет »?
Нажмите Alt + F5 и вы увидете тот самый экран, на который наша программа и вывела сообщение « Привет »:
В самой последней строчке вы можете увидеть свое сообщение (« Привет »).
А что за строчки идут выше? Это служебная информация, которую Free Pascal вывел на экран во время своего запуска.
Было бы неплохо, если мы могли очистить экран, прежде чем выводить свое сообщение.
В следующем уроке мы разберем как это сделать.
Чтобы вернуться в окно редактора, нажмите любую клавишу, например, «Пробел».
Всё? Урок закончен? Казалось бы, пример — очень простой. Что он делает — понятно. Что ещё тут можно разобрать?
Нет 🙂 Всё только начинается.
О внимательности или сообщениях об ошибках
Для начала посмотрите на заголовок нашего урока. Мы планировали вывести сообщение « Привет! », а не « Привет ». Исправьте программу так, чтобы сообщение выводилось на экран с восклицательным знаком.
Запустите программу и убедитесь, что теперь на экран выводится « Привет! ».
А теперь смоделируем разные ситуации, в которых наша программа не будет запускаться.
Появляется сообщение о том, что компиляция не прошла (компиляция — это перевод вашей программы на Паскале в машинные инструкции, понятные компьютеру) — Compile failed.
Total errors = 2 (Общее число ошибок равно 2).
На самом деле мы допустили ровно одну ошибку, второй ошибкой Free Pascal считает сам факт неудавшейся компиляции.
Нажмите любую клавишу (например, пробел), чтобы убрать окно с сообщением «Compile failed» и прочитать, на что, собственно говоря, жалуется компилятор (Free Pascal).
Здесь стрелками показаны номера окон, соответственно между нашими окнами можно переключаться с помощью Alt + 2, Alt + 3 (где 2 и 3 — это номера наших окон — с программой и с сообщениями об ошибках).
А также показано основное сообщение об ошибке. Чтобы увидеть всё сообщение, используйте клавиши управления курсором «вправо» и «влево». Только убедитесь вначале, что вы находитесь в окне №3 и курсор стоит на сообщении.
В сообщении сказано: « Синтаксическая ошибка, ожидается BEGIN, а вместо этого идет идентификатор PROGRAMM ». О чем это он?
Например, если бы мы написали программу вот так, компилятор согласился бы её выполнить:
Именно поэтому я столько внимания уделяю возможным ошибкам в самом первом уроке.
2. Верните нашу программу к исходному, правильному варианту. А теперь удалите точку с запятой после названия программы « hello ».
Что мы получим после запуска программы (Ctrl + F9)?
Сообщение « Синтаксическая ошибка, ожидается «;», а вместо этого идет BEGIN ». Если вы нажмете клавишу Enter на сообщении об ошибке, то компилятор перебросит вас в редакторе ровно в то место, где он ждет точку с запятой.
Означает ли это, что точку с запятой нужно ставить именно там? Нет. Нужно посмотреть чуть выше и тогда вы увидете, что забыли поставить « ; » в конце предыдущей строки.
Почему же компилятор опять показывает нам место ошибки не там, где реально допущена ошибка? Ну вот такой он немного тупой. К этому нужно просто привыкнуть и понимать, куда реально надо смотреть в поисках ошибки.
А если серьезно, это связано с тем, что компилятор «не видит» переводов строки. Это для нас программа красиво отформатирована. Каждая инструкция начинается с новой строки и т. д.
Компилятор исполнил бы нашу программу даже если бы она была написана вот так:
Не верите? Можете попробовать. Запустите программу (Ctrl + F9) и она отлично скомпилируется и выполнится, выведя на экран сообщение « Привет! ».
3. Теперь предположим, что вы забыли поставить закрывающую кавычку в сообщении « Привет! ». Верните программу в исходный, правильный вид, и уберите закрывающую одинарную кавычку.
Запустите программу (Ctrl + F9).
Вы получите сообщение, которое дословно можно перевести как «Строка (как набор символов) выходит за пределы строки (как линии)».
Здесь нужно пояснить подробнее.
Что такое ‘Привет!’ в нашей программе? Это строка (по-английски, string). Строка в нашей программе — это набор символов, заключенный между двумя одинарными кавычками. В то же время наша программа также состоит из строк (по-английски, lines). Например, первая строка нашей программы — это « program hello; », а вторая строка — пустая. В третьей строке идет begin и т. д. Как видите, в русском языке для обоих понятий мы используем одно и то же слово «строка». В английском же используются разные слова — string и line соответственно. Постарайтесь не путать между собой эти понятия. Где заканчивается строка, которая line в английском языке? Она заканчивается там, где вы нажали клавишу Enter.
Как «рассуждает» компилятор? Он «видит» открывающую одинарную кавычку и далее начинает «двигаться» по тексту нашей программы, ожидая закрывающую кавычку. При этом закрывающую скобку и точку с запятой он воспринимает как часть текста, который надо напечатать — « Привет ); ». В реальности же строка (line) заканчивается (там, где вы нажали Enter, т. е. после точки с запятой), а кавычки как не было, так и нет. Тут компилятор и выдает: «Эй, алло, строка уже закончилась, а твоему тексту (string) конца чего-то не видно!». Вот, что означает сообщение об ошибке выше. Мы же должны сразу понять, что забыли закрыть кавычку, после чего исправить свою ошибку.
Что мы получим при попытке запустить программу с такой ошибкой? Нажимаем Ctrl + F9 и смотрим на экран:
Компилятор сообщает нам о 3-х ошибках (Total errors = 3), хотя в реальности нами допущена всего одна ошибка. Тем не менее в окне Compiler Messages (сообщения компилятора) только одно сообщение идет с пометкой Error (ошибка). Остальные 2 сообщения идут с пометкой Fatal (фатальный сбой).
Fatal: There were 1 errors compiling module, stopping — при компиляции модуля допущена 1 ошибка, компиляция остановлена.
Fatal: Compilation aborted — компиляция прервана.
Как правильно набирать программу
Да, это тоже важно. Почему? Потому что, правильно набирая текст программы, вы минимизируете вероятность появления ошибок при наборе программы.
Разберем последовательность набора текста нашей программы «Привет!».
Сначала набираем « program hello; », жмем Enter 2 раза. Второй раз необходим для того, чтобы отделить название программы от основного тела программы пустой строкой.
Набираем « begin », жмем Enter, набираем « end. ». Получаем:
Нажимаем Tab, чтобы сделать отступ.
Вообще, в интернете давно бушуют споры на тему как делать отступы — с помощью табуляции или же с помощью клавиши «Пробел».
Лично я предпочитаю табуляцию, именно поэтому в настройках редактора (Options | Enviroment | Editor. ) мы установили галочку напротив «Use Tab characters».
Печатаем « Writeln(); ». Да, именно так.
Затем возвращаем курсор на закрывающую скобку, нажимаем «Пробел», одинарную кавычку « ‘ », еще раз одинарную кавычку « ‘ » и снова «Пробел».
В итоге, мы получаем следующее:
Теперь переводим курсор на закрывающую одинарную кавычку и печатаем « Привет! ». Набор программы закончен!
Краткое содержание урока
✔ Мы изучили как работать с Free Pascal:
✔ Написали нашу первую программу на Паскале:
✔ Выучили несколько ключевых слов языка Паскаль:
✔ Познакомились с первой командой (процедурой):
✔ Научились как правильно набирать текст программы и рассмотрели типовые ошибки, которые могут возникать при наборе программы.
На этом наш первый урок мы можем считать законченным.
Задания
Сегодня в нашем магазине акция!
Обратите внимание, что во второй строчке сообщение начинается с пробела.
И еще подсказка: чтобы вывести это объявление, вам понадобятся 3 команды Writeln.
Неочевидные вещи
Практика общения с начинающими показывает, что некоторые вещи для новичков могут быть неочевидны. Например, после закрытия окна Free Pascal, и его повторного запуска позже, Free Pascal восстанавливает все окна, которые были в нем открыты в момент закрытия. Например, после запуска Free Pascal вы можете сразу увидеть свою программу hello.pas. И тут новичок нажимает Alt + F5, чтобы посмотреть окно с результатами работы программы, и не видит ничего, кроме служебных сообщений. А где же «Привет!», спрашивает он? Новичок упускает из виду, что чтобы получить результат, нужно запустить программу, т. е. нажать Ctrl + F9 (или через меню: Run | Run). И только после этого переключаться в окно с результатами работы программы (Alt + F5).