Что означает в паскале точка с запятой
Перейти к содержимому

Что означает в паскале точка с запятой

Что означает в паскале точка с запятой

страницы: 1 2 3

Простейшие операторы

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

Если говорить строго, то оператором называется (минимальная) структурно законченная единица программы .

Важно! Все операторы языка Pascal должны заканчиваться знаком «;» (точка с запятой), и ни один оператор не может разрываться этим знаком. Единственная возможность не ставить после оператора «;» появляется в том случае, когда сразу за этим оператором следует ключевое слово end или else .

К простейшим операторам языка Pascal относятся:

  1. a := b; — присваивание переменной а значения переменной b. В правой части присваивания может находиться переменная , константа , арифметическое выражение или вызов функции.
  2. ; — пустой оператор , который можно вставлять куда угодно, а также вычёркивать откуда угодно, поскольку на целостность программы это никак не влияет.
  3. Операторные скобки , превращающие несколько операторов в один:

begin
< несколько операторов >
end ;

Везде далее, где в записи конструкций языка Pascal мы будем использовать обозначение , его следует понимать как «один оператор или несколько операторов, заключённые в операторные скобки begin — end ».

Метки и безусловный переход

Метка помечает какое-либо место в тексте программы . Метками могут быть числа от 0 до 9999 или идентификаторы , которые в этом случае уже нельзя использовать для каких-либо иных нужд. Все метки должны быть описаны в специальном разделе label :

Меткой может быть помечен любой оператор программы

Любая метка может встретиться в тексте программы только один раз. Используются метки только операторами безусловного перехода goto :

Это означает, что сразу после оператора goto будет выполнен не следующий за ним оператор (как это происходит в обычном случае), а тот оператор , который помечен соответствующей меткой .

В принципе, передавать управление можно вперёд и назад по тексту программы , внутрь составных операторов и наружу и т. п. Исключением являются только процедуры и функции (см. лекцию 8 ): внутрь них и наружу безусловные переходы невозможны.

Вообще же использование безусловных переходов в структурном и надёжном программировании считается «дурным тоном». Поэтому мы настоятельно советуем нашим читателям воздерживаться от употребления операторов goto . Язык Pascal обладает достаточным количеством структурных конструкций и возможностей, позволяющих достичь хороших результатов надёжными средствами.

Ввод и вывод: консоль

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

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

Ввод с консоли

Для того чтобы получить данные, вводимые пользователем вручную (то есть с консоли ), применяются команды

Первая из этих команд считывает все предложенные ей данные, оставляя курсор в конце последней строки ввода, а вторая — сразу после окончания ввода переводит курсор на начало следующей строки. В остальном же их действия полностью совпадают.

Список ввода — это последовательность имён переменных , разделённых запятыми. Например, при помощи команды

ReadLn (k , x , c , s) ;

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

Вводимые значения необходимо разделять пробелами, а завершать ввод — нажатием клавиши Enter. Ввод данных заканчивается в тот момент, когда последняя переменная из списка ввода получила своё значение. Следовательно, вводя данные при помощи приведённой выше команды, вы можете нажать Enter четыре раза — после каждой из вводимых переменных , — либо же только один раз, предварительно введя все четыре переменные в одну строчку (обязательно нужно разделить их пробелами).

Типы вводимых значений должны совпадать с типами указанных переменных , иначе возникает ошибка. Поэтому нужно внимательно следить за правильностью вводимых данных.

Вообще, вводить с клавиатуры можно только данные базовых типов (за исключением логического). Если же программе всё–таки необходимо получить с консоли значение для Boolean –величины, придётся действовать более хитро: вводить оговоренный символ, а уже на его основе присваивать логической переменной соответствующее значение. Например 1 :

repeat
WriteLn ( ‘Согласны ли Вы с этим утверждением? y — да, n — нет’ ) ;
ReadLn (c) ;
case c of
‘y’ : b := True ;
‘n’ : b := False ;
else WriteLn ( ‘Ошибка!’ ) ;
end ;
until (c = ‘n’ ) or (c = ‘y’ ) ;

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

Вывод на консоль

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

Примером неплохого приглашения служит, скажем, такая строчка:

Введите два вещественных числа (0.1 < x, y < 1000000) - длины катетов.

Впрочем, и её можно улучшить, сообщив пользователю не только допустимый диапазон ввода, но и ожидаемую точность (количество знаков после запятой).

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

Для того, чтобы вывести на экран какое-либо сообщение, воспользуйтесь процедурой Write (< список_вывода >) или WriteLn () .

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

Список вывода может состоять из нескольких переменных , записанных через запятую; все эти переменные должны иметь тип либо базовый 2 , либо строчный. Например, WriteLn (a, b, c);

Форматный вывод

Если для вывода информации воспользоваться командой, приведённой в конце предыдущего пункта, то выводимые символы окажутся «слепленными». Чтобы этого не случилось, нужно либо позаботиться о пробелах между выводимыми переменными :

WriteLn (a , ‘ ‘ , b , ‘ ‘ , c) ;

либо задать для всех (или хотя бы для некоторых) переменных формат вывода :

WriteLn (a : 5 , b , c : 20 : 5 ) ;

Первое число после знака «:» обозначает количество позиций, выделяемых под всю переменную , а второе — под дробную часть числа. Десятичная точка тоже считается отдельным символом.

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

Например, если a = 25, b = ‘x’, а c = 10.5, то после выполнения команды WriteLn(a : 5, ‘ ‘, b, c : 10 : 5) на экране или в файле будет записано следующее (подчерки в данном случае служат лишь для визуализации пробелов):

_ _ _25_x_ _10.50000

Особенно важен формат при выводе вещественных переменных . К примеру, если не указать формат, то число 10.5 будет выведено как 1.0500000000Е+0001. Такой формат называется записью с плавающей точкой.

Если же задать только общую длину вещественного числа, не указывая длину дробной части, то оно будет занимать на экране заданное количество символов (в случае надобности, спереди будет добавлено соответствующее количество пробелов), но при этом останется в формате плавающей точки. Минимальной длиной для вывода вещественных чисел является 10 (при формате _x.xE+yyyy). Первая позиция зарезервирована под знак «-».

Необходимо помнить, что в случае недостаточной длины вывода число будет автоматически округлено, например (подчерк служит для визуализации пробела):

Оператор форматного вывода Результат вывода на экран
Write (125.2367 : 10); _1.3E+0002
Write (125.2367 : 11); _1.25E+0002
Write (125.2367 : 12); _1.252E+0002
Write (125.2367 : 13); _1.2524E+0002
Write (125.2367 : 14); _1.25237E+0002
Write (125.2367 : 15); _1.252367E+0002
Write (125.2367 : 16); _1.2523670E+0002
Пример простейшей программы на языке Pascal

program start ;
var s : String ;
begin
Write ( ‘Пожалуйста, введите Ваше имя: ‘ ) ;
ReadLn (s) ;
WriteLn ( ‘Мы рады Вас приветствовать, ‘ , s , ‘!’ ) ;
end .

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

Пожалуйста, введите Ваше имя: Иван Иваныч Мы рады Вас приветствовать, Иван Иваныч!

страницы: 1 2 3

Примечания

  1. ^ Правила использования оператора выбора case и оператора цикла repeat описаны в лекции 3 .
  2. ^ Результатом вывода величины логического типа будет строка TRUE или FALSE

Что означает в паскале точка с запятой

ЗНАКОМСТВО С ЯЗЫКОМ ПАСКАЛЬ

Программа на языке Паскаль близка по своему виду к описанию на алгоритмическом языке. Если сравнить алгоритм решения задачи рассматриваемой ранее с соответствующей программой на Паскале:

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

На алгоритмическом языке это будет выглядеть так:

На Паскале:

Структура программы на Паскале

Заголовок программы начинается со слова Program , за которым следует произвольное имя, придуманное программистом:

Имя программы, имена констант, переменных и других объектов программы называются ИДЕНТИФИКАТОРАМИ. Они записываются по правилам:

1. Имя должно лаконично отражать сущность объекта.

S,v,t — общепринятые обозначения;

Summa, N_max — значения суммы номера максимума.

2. Длина идентификатора не должна превышать 127 символов, но для Паскаля значимы только первые 63 знака.

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

4. Начинаться идентификатор должен с буквы или знака подчеркивания.

5. Маленькие и большие буквы в записи идентификаторов Паскаль не различает
.

Раздел описания переменных начинается со слова Var ( variables – переменные ), за которым идет список имен переменных через запятую. Тип указывается после двоеточия. В стандарте языка Паскаль существует два типа числовых величин: вещественный и целый .

Слово integer обозначает целый тип (является идентификатором целого типа). Вещественный тип обозначается словом real . Например, раздел описания переменных может быть таким:

var a, b: integer; c, d: real;

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

Раздел операторов – основная часть программы. Начало и конец раздела операторов программы отмечаются служебными словами begin (начало) и end (конец).

В самом конце программы ставится точка:

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

Ввод исходных данных с клавиатуры происходит по оператору read или readln :

При выполнении команды ввода компьютер ожидает действий пользователя. Пользователь набирает на клавиатуре значения переменных в том порядке, в каком они указаны в списке, отделяя их друг от друга пробелами. Одновременно с набором данных на клавиатуре они появляются на экране. В конце нажимается клавиша (< ENTER >).

Разница в выполнении операторов readln и read состоит в том, что после выполнения ввода по оператору readln экранный курсор перемещается в начало новой строки, а по оператору read этого не происходит.

Вывод результатов происходит по оператору write или writeln :

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

Разница выполнения операторов writeln и write состоит в том, что после выполнения вывода по оператору writeln экранный курсор перемещается в начало новой строки, а по оператору write этого не происходит.

Арифметические выражения

Арифметический оператор присваивания на Паскале имеет следующий формат:

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

Некоторые формы записи арифметических операций:

Зачем нужна точка с запятой в программировании

Продолжаем разбирать неочевидные моменты в программировании. В прошлый раз мы рассказали про разницу между табами и пробелами. Теперь — о точках с запятой: зачем они нужны и когда не нужны.

Зачем нужна точка с запятой

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

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

На примере: почему важно разделять команды

В большинстве случаев, если не разделить команды, компилятор или интерпретатор просто сообщат об ошибке: мол, ожидали конец команды, а ты нам ерунду какую-то подсунул. Но иногда ошибки не будет, хотя программа будет работать совсем не так, как имел в виду разработчик. Это похоже на расстановку запятых в предложении «Казнить нельзя помиловать». Вот пример.

В C++ есть команда автоинкремента после обращения. Она выглядит как два плюса подряд, и её можно поставить до или после переменной. Место расположения переменной важно: в зависимости от него алгоритм автоинкремента будет работать по-разному.

Вот пример: j = i++ . Предположим, что в переменной i находится число 2. Работать будет так:

  1. Компьютер берёт значение переменной i и отправляет его в переменную j.
  2. После присваивания компьютер увеличивает значение переменной i на единицу.
  3. По итогу в переменной j число 2, в переменной i число 3.

Обратный пример: j = ++i (то есть переместили автоинкремент до переменной). Теперь он работает так:

  1. Компьютер сначала увеличивает i на единицу.
  2. После увеличения он присваивает новое значение в J.
  3. По итогу в переменных i и j число 3.

Теперь представьте, что у нас вот такой кусок кода:

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

Из этого кода не очевидно, к какой переменной относится оператор ++. Компьютер либо выполнит какое-то стандартное действие для таких случаев, либо выбросит ошибку.

Чтобы стало очевидно, нужно просто разделить команды точкой с запятой:

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

Точка с запятой в JavaScript

Чаще всего в проектах мы используем JavaScript, в котором точка с запятой тоже разделяет команды:

a = 3; b = 5; c = a + b; console.log(c);

Зачем нужна точка с запятой в программировании

Но если мы возьмём тот же код, уберём оттуда точки с запятой и выполним его в браузере, то ошибки почему-то тоже не будет:

a = 3 b = 5 c = a + b console.log(c)

Зачем нужна точка с запятой в программировании

Дело в том, что в JavaScript есть встроенный механизм автоматической вставки точек с запятой, который называется ASI. Он распознаёт команды и сам добавляет разделители в нужных местах. Этот механизм справляется с большинством случаев, но иногда он тоже не понимает, где ставить точку с запятой.

Например, с этим алгоритм точно не справится:

a = b + c
(d + e).print()

Дело в том, что это необязательно сложение и вызов какого-то метода второй командой — ещё это может быть вызовом метода print() функции c с аргументом (d + e) :

a = b + c(d + e).print()

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

Механизм ASI не значит, что в JavaScript не нужны точки с запятой. Скорее это значит, что разработчики JavaScript позаботились о вашем комфорте и постарались защитить от некоторых ошибок. Так-то точки с запятой нужны.

В каких ещё языках есть точка с запятой

Точка с запятой есть в большинстве современных языков программирования, на которые повлияли C и C++:

Также она используется в языке запросов SQL. Иногда её используют для разделения данных внутри CSV-файлов — в них Excel может сохранять свои таблицы с данными (хотя CSV расшифровывается как comma-separated values, то есть «значения, разделённые запятой»).

Когда точка с запятой не нужна

Точка с запятой не нужна в тех языках, в которых явно задаются границы команд — так компьютер сразу определяет начало и конец команды без точки с запятой. Например, в Python для этого используют отступы и переносы строк — с ними интерпретатор понимает, что начинается новая команда и к чему она относится.

Когда Python только появлялся, многие программисты по привычке ставили в нём точку с запятой. Разработчики решили научить язык не воспринимать это как ошибку, а просто игнорировать этот символ. При этом редактор кода подсветит точки с запятой красным, чтобы программист обратил на это внимание и убрал их из кода:

Зачем нужна точка с запятой в программировании

Комментарии

В совсем старых языках программирования, например в ассемблерах и Лиспе, точка с запятой используется для обозначения комментария в коде:

MOV AL, 61h ; Отправляем в AL десятичное число 97 (61 в шестнадцатеричной системе)

В современных языках точку с запятой для комментариев не используют — вместо этого ставят решётку, слеш, звёздочки или угловые скобки.

Хотите больше? Скачивайте наш гид

В нем мы собрали всё, что нужно знать о старте в сфере ИТ. Читайте на компьютере и телефоне, распечатывайте на принтере, пересылайте друзьям, используйте как учебное пособие в вузе и школе.

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

Хотите больше? Скачивайте наш гид Хотите больше? Скачивайте наш гид

Получите ИТ-профессию

В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.

Пунктуация в программах на Паскале

Слова begin и end не являются операторами – они служат знаками пунктуации. Слово begin выступает в качестве левой, а end – правой скобки. Так как они сами знаки пунктуации, то точка запятой после begin и перед end не обязательна. В программах на Паскаль слова begin и end используются преимущественно для образования составных операторов. Составной оператор может быть использован в любом месте, где мог бы быть использован простой оператор. Пример составного оператора:

begin t := a; a := b; b := t end;

Слова в других операторах также действуют как знаки пунктуации.

if ab > bd then write(‘yes’) else write(‘no’);

Слова if , then , else выступают внутри оператора в качестве знаков пунктуации.

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

  • Не писать слова вместе;
  • Не разрывать слово пробелами или переходом на новую строку.

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

Слова program , const , var , begin , end , а также множество других называются зарезервированными словами. Зарезервированные слова нельзя расширять (например, constant будет ошибкой) и сокращать (например, prog также будет ошибкой).

Использовать в программном коде на Pascal можно как прописные, так и строчные буквы, а также их чередовать. Однако в строках (тип данных) разница между прописными и строчными буквами существует.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *