Обычно, изучение любого языка программирования начинается с программы 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. Понятно, что писать программы на листочках бесполезно, и вы должны тренироваться на компьютере. По этой ссылке скачайте последнюю версию PascalABC.Net для Windows.
Вот, как выглядит интерфейс программы при запуске.
P.S. Давайте выделим две особенности Pascal:
- Паскаль НЕ чувствителен к регистру, то есть и program, и Program, и PrOgRaM для него ничем не отличаются. А потому с самого начала привыкайте писать в нижнем регистре, чтобы при переходе на другой язык программирования не испытывать никаких проблем с этим;
- Имя программы в Pascal не играет никакого значения, оно не несет в себе никаких полезных функций. Если хотите вы можете просто не писать ЕГО!
P.P.S. В мире наиболее популярны три операционные системы: Linux, Mac OS и Windows. А если у вас не Windows? Какой компилятор выбрать тогда? Об этом мы с вами поговорим в уроке номер N.
После установки интегрированной среды разработки Lazarus, как было описано в предыдущей теме, мы можем приступить к разработке программ на языке Free Pascal.
Итак, напишем первую простую программу.
Запустите программу для разработки Лазарус.
Не пугайтесь большого количества окон после загрузки приложения.
Консольное приложение
Для создания первой программы, необходимо выбрать в меню Файл –> Создать. В открывшемся окне выбираем папку Проект, а в ней Простая программа
Подтверждаем выбор кнопкой Ок.
У нас откроется редактор кода для простого консольного приложения.
Пишем в редакторе следующий код на языке Паскаль:
program HelloWorld;
begin
writeln('Hello World!');
end.
Процедура writeln выводит в консоль сообщение, которое передается ей в качестве параметра, в данном случае Hello World!, окончание ln в ней говорит о том, что после вывода текста, курсор будет перемещен на новую строку.
Процедура write делает то же самое, только без перевода каретки.
Запустить выполнение программы можно тремя способами:
- кликнув на панели кнопку Запустить
- выбрать пункт меню Запуск –> Запустить
- нажать на клавиатуре клавишу F9
После запуска программы на выполнение, мы увидим окно консоли, которое сразу же закрывается.
Есть несколько вариантов решения данной проблемы.
Программа будет ждать нажатия клавиши Enter
program HelloWorld;
begin
writeln('Hello World!');
writeln('Press Enter to Exit...');
readln;
end.
Программа ждет нажатия любой клавиши
program HelloWorld;
uses Crt; {подключаем модуль Crt, в нем находится функция KeyPressed}
begin
writeln('Hello World!');
writeln('Press any key to Exit...');
repeat until KeyPressed;
end.
Проблему исчезновения окна решили. Теперь после запуска мы сможем увидеть результат.
Если в программе вы используете русские буквы, а они не правильно отображаются в консоли, добавте в самое начало программы строку {$CODEPAGE UTF8}.
Смена кодировки на Unicode должна решить проблему вывода кирилических символов на экран.
Оконное приложение
Многих начинающих программистов пугают консольные приложения, а Windows формы кажутся слишком сложными. Но это не так.
Откроем пункт меню Файл –> Создать, выбираем Проект, а в нем Приложение
После этого откроется редактор Форм.
Перемещаем на форму элемент управления Кнопка, делаем на ней двойной щелчек мышкой, после чего мы попадаем в обработчик нажатия кнопки. Дописываем код для вывода сообщения, в итоге получим следующий код обработчика.
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Hello World!');
end;
Запускаем проект. Мы увидим Windows форму с кнопкой, после нажатия на которую выводиться окно сообщения с текстом Hello World!
Exe файл программы можно найти в папке в которую вы сохранили проект.
Смотрите также:
Welcome back to another installment of Hello World in Every Language. Today, we’re going to look at Hello World in Pascal, a language recommended to me by Gayane Muradyan:
Table of Contents
Pascal Background
According to Wikipedia, Pascal is an imperative and procedural language which first appeared in 1970. Pascal’s creator, Niklaus Wirth, designed the language with compiler and runtime efficiency in mind. In addition, Wirth drew much of the inspiration for Pascal from the ALGOL family of languages.
That said, Pascal isn’t simply an ALGOL clone. In fact, Pascal includes many additions to ALGOL such as mechanisms for defining custom datatypes. Likewise, the language includes several additional features like enumerations, subranges, and records.
As an added bonus, Pascal is a strongly typed language. This forces the user to explicitly write conversions between types, so errors can be caught at compile time. Unfortunately, I’ve read that Pascal has a loophole in the type system. I just haven’t found any articles describing it. If you know, let me know in the comments.
Before we get into Hello World, I want to look a bit deeper at sets because I find them interesting. In Pascal, we can define a set as follows:
var Set1 : set of 5..20; Set2 : set of 'f'..'m';
With Pascal being such an old language, I find it interesting how intuitive the set syntax is. In fact, I can’t think of many industrial languages that have such a nice syntax for setting up lists or sets. In fact, here’s how you would generate a list of numbers in a few languages:
// Java 8+ int[] range = IntStream.rangeClosed(5, 20).toArray();
# Python 3 list(range(5, 20))
// JavaScript var list = []; for (var i = 5; i <= 20; i++) { list.push(i); }
// C# int[] values = Enumerable.Range(5, 15).ToArray();
That Pascal set syntax is great. In fact, it even allows us to do fun things like check values in some range:
if i in [5..20] then
At any rate, I think we’ve played around enough. We have to get to our Hello World implementation.
There’s no time to waste! Let’s dig right into Hello World in Pascal:
program HelloWorld(output); begin writeln('Hello, World!'); end.
As usual, we’ll tackle this implementation line by line. Up first, we have the program line which declares the name of the program and a list of file descriptors.
Up next, we have our main block which is denoted by the begin and end keywords. Within this block, we have the print statement. Of course, the function we use in Pascal is called writeln.
Finally, we have a period, also known as a full stop. This indicates the end of the program.
As an added tidbit, semicolons mark the ends of statements, but they are optional on the last statement in a block. In other words, we could have removed the semicolon after the writeln command.
How to Run the Solution
If we want to try any of the Pascal code snippets from this article, we can use an online Pascal compiler. We just need to drop the snippets into the online editor and hit run.
Of course, we can always download and install Pascal locally. While we’re downloading stuff, we should probably get a copy of the solution.
Assuming Pascal is now in our path, we can navigate to our folder containing the solution and run the following commands from the terminal:
fpc hello-world.p hello-world.exe # Windows ./hello-world # Unix/Linux/Mac
Since Pascal is a compiled language, we first need to compile our script. After compilation, we’ll have an executable we can run. When we run it, the “Hello, World!” string should print to the console.
Sample Programs in Every Language
And, that’s it! We’re all finished with Hello World in Pascal. If you liked this article, make sure to give it a share. And of course, feel free to recommend the next language in the comments. Thanks for stopping by!
Sample Programs in Every Language (44 Articles)—Series Navigation
For 100 Days of Code, I’ve decided to implement a few sample programs in as many languages as possible. Each implementation details a brief history of the language and a description of the code.
The plan for the series is to explore the major general-purpose language like Java, Python, C, C++, and C#. From there, we’ll take a look at some sample programs in web development languages like Ruby, PHP, and JavaScript. As we continue, we’ll cover proprietary languages like Swift and Objective-C. Eventually, we’ll start to tackle less popular languages like Rust, x86, and Verilog. Finally, we’ll play around with some of the esoteric languages like Brainf*ck and LOLCODE.
Who knows? Maybe the Sample Programs in Every Language series will become so popular it’ll never end. To help this series grow, consider sharing it on social media with your friends. Or, if you have a language you want to see, drop your suggestion in the comments.
Hello, World! — это программа зачастую создается начинающими программистами (обычно школьниками или студентами) в качестве их самой первой программы. Суть ее заключается в том чтобы вывести сообщение ‘Hello, World!’ на экран.
Реализация программы ‘Hello, world!’ на языках Pascal и Delphi:
begin write('Hello, World!'); end.
Ссылки:
Статья Hello, World! в Википедии
Так уж заведено в мире программирования, что первая программа на любом языке программирования называется «Hello, World!». Это связанно с тем, что результатом данный программы будет вывод строки «Hello, World!».
Как я уже сказал, я попытаюсь избежать излишнего текста и приступаю сразу к первому коду программы «Hello, World!», а после кода начнем разбираться «что к чему».
Листинг 1.1.
Program Hello_World;
Begin
Write('Hello, World');
End.
Запустите Turbo Pascal(если он еще у Вас не запущен =)) и перепишите Листинг 1.1. Теперь запустите программу, это можно сделать зажав сочетание клавиш
Ctrl+F9
Результат выполнения программы всегда можно посмотреть зажав сочетание клавиш
Alt+F5
Ну как? Неплохо? Это всего четыре строчки кода. Теперь по порядку разбиремся что здесь для чего.
Program Hello_World;
— это название вашей программы, зачастую его не используют.
Все что пишется до первого
Begin
(позже я расскажу, когда еще используются дополнительные контсрукции
Begin..End;
) — это раздел описания. Здесь программа просто сообщает компилятору сведения об используемых объектах и еще некоторую информацию. В данной программе, в разделе описаний у нас всего одна строчка:
Program Hello_World;
.
Основной блок кода, так называемый раздел операторов, всегда начинается с
Begin
и заканчивается
End.
(обратите внимание:
Begin
всегда без точки, а последний закрывающий
End.
всегда с точкой).
Write(‘Hello, World’);
— это первый исполняемый оператор в нашей программе, который сообщает компилятору о том, что необходимо напечатать строку «Hello, World!».
Пока мы с Вами не ушли далеко, хочу сказать, что Турбо Паскаль не чувствителен к регистру символов, т.е. write(), Write(), WRITE(), и даже WrItE() — все это для Паскаля означает одно и тоже.
Если Вы владеете английским языком, то Вам наверо известно, как переводятся ключевые слова в программе:
- Begin — Начинать;
- Write — Писать;
- End — Завершать.
Просто? Да, в коде программы просто написаны команды, которые должен выполнять компилятор, после выполнения которых он выдает нам готовый результат.
Before we study basic building blocks of the Pascal programming language, let us look a bare minimum Pascal program structure so that we can take it as a reference in upcoming chapters.
Pascal Program Structure
A Pascal program basically consists of the following parts −
- Program name
- Uses command
- Type declarations
- Constant declarations
- Variables declarations
- Functions declarations
- Procedures declarations
- Main program block
- Statements and Expressions within each block
- Comments
Every pascal program generally has a heading statement, a declaration and an execution part strictly in that order. Following format shows the basic syntax for a Pascal program −
program {name of the program} uses {comma delimited names of libraries you use} const {global constant declaration block} var {global variable declaration block} function {function declarations, if any} { local variables } begin ... end; procedure { procedure declarations, if any} { local variables } begin ... end; begin { main program block starts} ... end. { the end of main program block }
Pascal Hello World Example
Following is a simple pascal code that would print the words «Hello, World!» −
program HelloWorld; uses crt; (* Here the main program block starts *) begin writeln('Hello, World!'); readkey; end.
This will produce following result −
Hello, World!
Let us look various parts of the above program −
-
The first line of the program program HelloWorld; indicates the name of the program.
-
The second line of the program uses crt; is a preprocessor command, which tells the compiler to include the crt unit before going to actual compilation.
-
The next lines enclosed within begin and end statements are the main program block. Every block in Pascal is enclosed within a begin statement and an end statement. However, the end statement indicating the end of the main program is followed by a full stop (.) instead of semicolon (;).
-
The begin statement of the main program block is where the program execution begins.
-
The lines within (*…*) will be ignored by the compiler and it has been put to add a comment in the program.
-
The statement writeln(‘Hello, World!’); uses the writeln function available in Pascal which causes the message «Hello, World!» to be displayed on the screen.
-
The statement readkey; allows the display to pause until the user presses a key. It is part of the crt unit. A unit is like a library in Pascal.
-
The last statement end. ends your program.
Compile and Execute Pascal Program
-
Open a text editor and add the above-mentioned code.
-
Save the file as hello.pas
-
Open a command prompt and go to the directory, where you saved the file.
-
Type fpc hello.pas at command prompt and press enter to compile your code.
-
If there are no errors in your code, the command prompt will take you to the next line and would generate hello executable file and hello.o object file.
-
Now, type hello at command prompt to execute your program.
-
You will be able to see «Hello World» printed on the screen and program waits till you press any key.
$ fpc hello.pas Free Pascal Compiler version 2.6.0 [2011/12/23] for x86_64 Copyright (c) 1993-2011 by Florian Klaempfl and others Target OS: Linux for x86-64 Compiling hello.pas Linking hello 8 lines compiled, 0.1 sec $ ./hello Hello, World!
Make sure that free pascal compiler fpc is in your path and that you are running it in the directory containing source file hello.pas.
Лиха беда начало
Если вы впервые пишете программу на каком-то языке программирования, то уже давно существует обычай писать первой программу, которая выводит на экран сообщение «Привет, мир!» («Hello, world!» в английской версии).
Мы немного отклонимся от этой традиции и напишем программу, которая скажет «Привет!» лично вам, а не всему миру.
Запустите Free Pascal. Перейдите в меню «File» (чтобы быстро оказаться в меню «File», не используя мышь, нажмите Alt + F).
Нажмите «New».
На экране появится окно для ввода новой программы.
В правом верхнем углу синего окна вы можете увидеть его номер — 1. В центре вверху окна выводится название файла с вашей программой — noname01.pas.
Пока вы не придумали свое название для вашего файла, Free Pascal назвал его по умолчанию «noname01.pas» («no name» означает по-английски «без имени»).
Введите в окне следующий текст:
program hello; begin Writeln( 'Привет' ); end.
Нажмите «F2», чтобы сохранить программу. Так как имя файла еще не было задано, то появится диалоговое окно:
Перейдите в папку «C:FPC3.0.0work». Введите имя программы «hello.pas» в поле Name. Нажмите «ОК».
Программа сохранена.
Вернемся к нашей программе. Чтобы вы не листали страницу вверх, я повторю её текст:
program hello; begin Writeln( 'Привет' ); end.
Разберем программу построчно. Программа начинается с ключевого слова program, вслед за которым, через пробел, указывается название программы (название придумываем мы сами). Наша программа называется hello.
После названия программы должна стоять точка с запятой. Между ключевыми словами begin и end идет непосредственно наша программа, которая пока состоит из одной единственной команды Writeln (тоже с точкой запятой после).
А вот после end идет точка, а не точка с запятой, потому что это конец всей программы. После end никаких инструкций в программе уже не будет: точка — значит точка
Что же делает Writeln? Команда Writeln выводит на экран сообщение, которое вы укажете ей в скобках и кавычках. В нашем случае это ‘Привет’.
Итак, всё, что делает наша программа — это выводит на экран сообщение «Привет».
Чтобы запустить нашу программу на исполнение, нажмите Ctrl + F9 (или через меню: Run | Run).
Вы можете не успеть увидеть результат работы вашей программы, как на экране снова появится окно нашего редактора, в котором мы набирали программу:
А где же сообщение «Привет»?
Нажмите Alt + F5 и вы увидете тот самый экран, на который наша программа и вывела сообщение «Привет»:
В самой последней строчке вы можете увидеть свое сообщение («Привет»).
А что за строчки идут выше? Это служебная информация, которую Free Pascal вывел на экран во время своего запуска.
Было бы неплохо, если мы могли очистить экран, прежде чем выводить свое сообщение.
В следующем уроке мы разберем как это сделать.
Чтобы вернуться в окно редактора, нажмите любую клавишу, например, «Пробел».
Всё? Урок закончен? Казалось бы, пример — очень простой. Что он делает — понятно. Что ещё тут можно разобрать?
Нет Всё только начинается.
О внимательности или сообщениях об ошибках
Для начала посмотрите на заголовок нашего урока. Мы планировали вывести сообщение «Привет!», а не «Привет». Исправьте программу так, чтобы сообщение выводилось на экран с восклицательным знаком.
Запустите программу и убедитесь, что теперь на экран выводится «Привет!».
А теперь смоделируем разные ситуации, в которых наша программа не будет запускаться.
1. Допустим, вы по ошибке вместо program написали programm. Прежде чем намеренно добавить лишнюю букву «m», обратите внимание, что слово program отображается белым цветом. А после того, как вы добавляете лишнюю «m», слово programm становится желтым. Таким образом редактор сразу подсказывает вам, что вы ошиблись в наборе ключевого слова. Но допустим, вы не заметили ни саму ошибку, ни подсказку редактора, и запустили программу на исполнение (Ctrl + F9). Что будет?
Смотрим:
Появляется сообщение о том, что компиляция не прошла (компиляция — это перевод вашей программы на Паскале в машинные инструкции, понятные компьютеру) — Compile failed.
Total errors = 2 (Общее число ошибок равно 2).
На самом деле мы допустили ровно одну ошибку, второй ошибкой Free Pascal считает сам факт неудавшейся компиляции.
Нажмите любую клавишу (например, пробел), чтобы убрать окно с сообщением «Compile failed» и прочитать, на что, собственно говоря, жалуется компилятор (Free Pascal).
Здесь стрелками показаны номера окон, соответственно между нашими окнами можно переключаться с помощью Alt + 2, Alt + 3 (где 2 и 3 — это номера наших окон — с программой и с сообщениями об ошибках).
А также показано основное сообщение об ошибке. Чтобы увидеть всё сообщение, используйте клавиши управления курсором «вправо» и «влево». Только убедитесь вначале, что вы находитесь в окне №3 и курсор стоит на сообщении.
В сообщении сказано: «Синтаксическая ошибка, ожидается BEGIN, а вместо этого идет идентификатор PROGRAMM». О чем это он?
Компилятор не знает слова programm. Для него слово programm — некий идентификатор (имя), которому совершенно нечего делать в начале программы. Он готов смириться с отсутствием слова program, но тогда требует, чтобы программа начиналась со слова begin.
Например, если бы мы написали программу вот так, компилятор согласился бы её выполнить:
Еще раз: компилятор смотрит на первую строчку, ожидая слово program. Слова program он не видит, и потому ждет хотя бы begin. А вместо begin идет какой-то programm. Поэтому компилятор и говорит: «а я ждал begin». Понятно, что было бы логичнее, если бы компилятор сказал: «Эй, у тебя лишняя m в конце слова programm!», но, к сожалению, компилятор не настолько умен. Поэтому нужен определенный навык, чтобы разбираться в сообщениях компилятора.
Именно поэтому я столько внимания уделяю возможным ошибкам в самом первом уроке.
2. Верните нашу программу к исходному, правильному варианту. А теперь удалите точку с запятой после названия программы «hello».
Что мы получим после запуска программы (Ctrl + F9)?
Сообщение «Синтаксическая ошибка, ожидается «;», а вместо этого идет BEGIN». Если вы нажмете клавишу Enter на сообщении об ошибке, то компилятор перебросит вас в редакторе ровно в то место, где он ждет точку с запятой.
Означает ли это, что точку с запятой нужно ставить именно там? Нет. Нужно посмотреть чуть выше и тогда вы увидете, что забыли поставить «;» в конце предыдущей строки.
Почему же компилятор опять показывает нам место ошибки не там, где реально допущена ошибка? Ну вот такой он немного тупой. К этому нужно просто привыкнуть и понимать, куда реально надо смотреть в поисках ошибки.
А если серьезно, это связано с тем, что компилятор «не видит» переводов строки. Это для нас программа красиво отформатирована. Каждая инструкция начинается с новой строки и т. д.
Компилятор исполнил бы нашу программу даже если бы она была написана вот так:
Не верите? Можете попробовать. Запустите программу (Ctrl + F9) и она отлично скомпилируется и выполнится, выведя на экран сообщение «Привет!».
3. Теперь предположим, что вы забыли поставить закрывающую кавычку в сообщении «Привет!». Верните программу в исходный, правильный вид, и уберите закрывающую одинарную кавычку.
Запустите программу (Ctrl + F9).
Вы получите сообщение, которое дословно можно перевести как «Строка (как набор символов) выходит за пределы строки (как линии)».
Здесь нужно пояснить подробнее.
Что такое ‘Привет!’ в нашей программе? Это строка (по-английски, string). Строка в нашей программе — это набор символов, заключенный между двумя одинарными кавычками. В то же время наша программа также состоит из строк (по-английски, lines). Например, первая строка нашей программы — это «program hello;», а вторая строка — пустая. В третьей строке идет begin и т. д. Как видите, в русском языке для обоих понятий мы используем одно и то же слово «строка». В английском же используются разные слова — string и line соответственно. Постарайтесь не путать между собой эти понятия. Где заканчивается строка, которая line в английском языке? Она заканчивается там, где вы нажали клавишу Enter.
Как «рассуждает» компилятор? Он «видит» открывающую одинарную кавычку и далее начинает «двигаться» по тексту нашей программы, ожидая закрывающую кавычку. При этом закрывающую скобку и точку с запятой он воспринимает как часть текста, который надо напечатать — «Привет );». В реальности же строка (line) заканчивается (там, где вы нажали Enter, т. е. после точки с запятой), а кавычки как не было, так и нет. Тут компилятор и выдает: «Эй, алло, строка уже закончилась, а твоему тексту (string) конца чего-то не видно!». Вот, что означает сообщение об ошибке выше. Мы же должны сразу понять, что забыли закрыть кавычку, после чего исправить свою ошибку.
4. И снова вернем нашу программу к исходному, правильному виду, и сделаем еще одну ошибку. На этот раз сотрем букву «e» в слове Writeln, т. е. вместо Writeln в нашей программе будет Writln. Такое бывает, когда печатаешь текст и не дожимаешь какую-то клавишу. При этом из-за частокола букв можно и не увидеть, что какая-либо буква пропущена. К сожалению, редактор не сможет нам подсказать, что мы допустили ошибку, т. к. Writeln подсвечивается желтым цветом, а не белым как program или begin/end.
Что мы получим при попытке запустить программу с такой ошибкой? Нажимаем Ctrl + F9 и смотрим на экран:
Компилятор сообщает нам о 3-х ошибках (Total errors = 3), хотя в реальности нами допущена всего одна ошибка. Тем не менее в окне Compiler Messages (сообщения компилятора) только одно сообщение идет с пометкой Error (ошибка). Остальные 2 сообщения идут с пометкой Fatal (фатальный сбой).
Fatal: There were 1 errors compiling module, stopping — при компиляции модуля допущена 1 ошибка, компиляция остановлена.
Fatal: Compilation aborted — компиляция прервана.
Нас же интересует первое сообщение: «Error: Identifier not found «Writln»», которое переводится как «Ошибка: идентификатор «Writln» не найден». Что говорит нам компилятор? Что он не знает такого слова как Writln. Когда мы видим подобное сообщение, то в первую очередь мы должны проверить: а правильно ли мы написали тот идентификатор, на который ругается Free Pascal? Исправьте ошибку и убедитесь, что программа успешно запускается.
Как правильно набирать программу
Да, это тоже важно. Почему? Потому что, правильно набирая текст программы, вы минимизируете вероятность появления ошибок при наборе программы.
Разберем последовательность набора текста нашей программы «Привет!».
Сначала набираем «program hello;», жмем Enter 2 раза. Второй раз необходим для того, чтобы отделить название программы от основного тела программы пустой строкой.
Набираем «begin», жмем Enter, набираем «end.». Получаем:
program hello; begin end.
Переводим курсор наверх (на строку с begin), жмем End, чтобы перейти в конец строки, и Enter, чтобы начать набирать основное тело программы между begin и end.
Нажимаем Tab, чтобы сделать отступ.
Вообще, в интернете давно бушуют споры на тему как делать отступы — с помощью табуляции или же с помощью клавиши «Пробел».
Лично я предпочитаю табуляцию, именно поэтому в настройках редактора (Options | Enviroment | Editor…) мы установили галочку напротив «Use Tab characters».
Печатаем «Writeln();». Да, именно так.
Затем возвращаем курсор на закрывающую скобку, нажимаем «Пробел», одинарную кавычку «‘», еще раз одинарную кавычку «‘» и снова «Пробел».
В итоге, мы получаем следующее:
program hello; begin Writeln( '' ); end.
Теперь переводим курсор на закрывающую одинарную кавычку и печатаем «Привет!». Набор программы закончен!
Если вы внимательно пересмотрите алгоритм набора программы, приведенный выше, то можете заметить определенную закономерность: при наборе программы мы набирали все парные элементы сразу, за один раз. Например, begin и end. Открывающую и закрывающую скобки «()». Открывающую и закрывающую одинарные кавычки «»». Такой подход позволяет сразу видеть структуру программы, не забывать закрывать за собой кавычки, скобки, и т. п. элементы. Начинающему такой подход может показаться избыточным на начальном этапе, но хорошие привычки лучше усваивать сразу, чем переучиваться потом. Поэтому я настоятельно рекомендую осваивать навыки правильного набора программы сразу, с самых первых уроков.
Краткое содержание урока
✔ Мы изучили как работать с Free Pascal:
- File (Alt + F) | New — начать набор новой программы;
- F2 — сохранить программу;
- Ctrl + F9 — запустить программу;
- Alt + номер окна — переключиться в окно с заданным номером;
- Alt + F3 — закрыть текущее окно (это мы узнали из главы «Подготовка к работе»);
- Alt + F5 — переключиться в окно вывода результатов работы программы;
- F1 или Shift + F1 — открыть «Помощь»;
✔ Написали нашу первую программу на Паскале:
program hello; begin Writeln( 'Привет!' ); end.
✔ Выучили несколько ключевых слов языка Паскаль:
- program, begin, end.
✔ Познакомились с первой командой (процедурой):
- Writeln — процедура вывода данных на экран;
✔ Научились как правильно набирать текст программы и рассмотрели типовые ошибки, которые могут возникать при наборе программы.
На этом наш первый урок мы можем считать законченным.
Задания
- Напишите программу, которая выводит на экран вместо «Привет!» сообщение «Привет, ваше имя!» (вместо ваше имя, очевидно, нужно вписать ваше имя
- Напишите программу, которая выводит на экран объявление:
=================================
Сегодня в нашем магазине акция!
=================================
Обратите внимание, что во второй строчке сообщение начинается с пробела.
И еще подсказка: чтобы вывести это объявление, вам понадобятся 3 команды Writeln.
Неочевидные вещи
Практика общения с начинающими показывает, что некоторые вещи для новичков могут быть неочевидны. Например, после закрытия окна Free Pascal, и его повторного запуска позже, Free Pascal восстанавливает все окна, которые были в нем открыты в момент закрытия. Например, после запуска Free Pascal вы можете сразу увидеть свою программу hello.pas. И тут новичок нажимает Alt + F5, чтобы посмотреть окно с результатами работы программы, и не видит ничего, кроме служебных сообщений. А где же «Привет!», спрашивает он? Новичок упускает из виду, что чтобы получить результат, нужно запустить программу, т. е. нажать Ctrl + F9 (или через меню: Run | Run). И только после этого переключаться в окно с результатами работы программы (Alt + F5).
Во втором задании я прошу вывести на экран объявление, и даю подсказку, что нам понадобятся 3 команды Writeln. Почему 3? — удивляются некоторые. Не для всех очевидно, что строчки со знаками «=» — это тоже строки, которые нужно вывести на экран, а не просто красиво оформленное задание.