Когда перед else не ставится знак
Перейти к содержимому

Когда перед else не ставится знак

  • автор:

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

Составной оператор– это последовательность произвольных операторов программы, заключенная в операторные скобки – зарезервированные слова begin . end. Операторы разделяются точкой с запятой ;.

Исполняемая часть программы является составным оператором такого рода.

Составной оператор служит, в первую очередь, для того, чтобы несколько операторов синтаксически объединить в один. Это часто требуется там, где нужно выполнить несколько операторов, когда допустим лишь один. Понятие составного оператора позволяет с помощью команд begin и end объединить несколько операторов и рассматривать их с точки зрения синтаксиса как один оператор. На характер операторов, входящих в составной оператор, не накладывается никаких ограничений. Среди них могут быть и другие составные операторы.

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

Обе записи верны, поскольку можно считать, что между write(i); и end находится пустой оператор. Пустой оператор– оператор, который не выполняет никаких операций и ничего не изменяет в данных и в программе. Пустому оператору соответствует отсутствие записи на том месте, где по правилам должен быть какой-нибудь оператор. После него можно ставить символ точки с запятой, например:

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

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

((А, В, С, Д), (К, М), Е, (Х, У))

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

Условный оператор

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

Структура условного оператора:

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

где IF, THEN, ELSE – зарезервированные слова (если, то, иначе);

<условие> – произвольное выражение логического типа;

<оператор1>,<оператор2> – любые операторы языка.

Условный оператор работает по следующему алгоритму. Вначале вычисляется условное выражение <условие>. Если результат есть TRUE (истина), то выполняется <оператор1>, а <оператор2> пропускается; если результат есть FALSE (ложь), наоборот, <оператор1> пропускается, а выполняется <оператор2>. Например:

Этот условный оператор читается: если условие x > max выполняется, то y := max, иначе y := x.

Часть ELSE <оператор2>условного оператораможет быть опущена. Тогда при значении TRUE условного выражения выполняется <оператор1>, в противном случае этот оператор пропускается.

Если требуется выполнить после then или else несколько операторов, они обрамляются командами begin и end, образуя тем самым составной оператор. Перед else никогда не ставится точка с запятой (поскольку это еще не конец оператора if).

Задача. Пусть задана функция

Написать программу вычисления значения Y по значению X.

Программа может выглядеть так:

if x <= 0 then y:= 0 else y := x*x*x;

<Оператор1> и <Оператор2> по определению любой оператор языка, следовательно и условный.

Задача. Пусть значение Y зависит от значения X.

Сocтавить программу вычисления значения Y по значению X.

Если удовлетворено условие х < 2, то y получит значение, равное значению х, это значение затем будет выведено. Если условие х < 2 не удовлетворяется, то значение y будет определено выполнением условного оператора

if x < 3 then y := 2 else y := –x + 5

Если else отсутствует, а после оператора then вновь стоит оператор if, то возникает неоднозначность трактовки условий. Эта неоднозначность решается следующим образом: любая встретившаяся часть else соответствует ближайшей к ней “сверху” части then условного оператора. Приведенное высказывание понимается так

Love Soft

Загрузки всякие

Связь

Содержание

Язык pascal для скриптов

Литература

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

При желании можно еще освоить:

Можно почитать любой учебник по паскалю, например, соответствующие главы книги

Структура программы

Программа на языке Паскаль состоит из:

Последовательность именно такая и изменять ее нельзя.

Ниже структура модуля дана более подробно (в разделе Процедуры и функции).

Операторы должны заканчиваться точкой с запятой.

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

Константы

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

Константы должны быть описаны в специальном разделе, который начинается зарезервированным словом const (constant – константа).

Константы не меняют своего значения в ходе выполнения программы.

Использование именованных констант позволяет улучшить читаемость программы и облегчает внесение в нее изменений.

Переменные

Все переменные должны быть объявлены в разделе описания переменных

В скриптах тип переменной можно опускать (в стандарте языка тип указывать обязательно).

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

Идентификаторы в скрипте (имена переменных, функций, процедур и т.д.) подчиняются следующим правилам: должны начинаться с буквы (a..z или A..Z), или знака подчеркивания '_', и затем могут следовать буквы или цифры или знак '_'. Пробелы или другие символы в именах не допустимы.

Примеры: VarName, _Some, V1A2

Пример неправильных имен: 2Var, My Name, Some-more

В паскале прописные и строчные буквы в именах переменных не различаются.

Комментарии

Можно использовать символы // в начале или середине строки — это позволяет закомментировать часть строки до конца текущий строки.

Чтобы закомментировать несколько строк, используйте (* *) или < >. Пример

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

Обычно переменная получает текущее значение в результате выполнения оператора присваивания.

Например, s := 0 – переменной s присваивается значение 0.

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

Логические операции

Над логическими аргументами в паскале определены следующие операции:

Условия, соединенные связками and или or, необходимо заключать в скобки.

Операции отношения

Типы данных

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

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

В скриптах поддерживаются многие стандартные типы данных.

Строки

Строки заключаются в одинарные кавычки. Оператор + служит для склеивания двух строк.

С помощью символа # можно задать символ по его коду.

Строковые переменные описываются с помощью слова string.

Также в скриптах поддерживаются типы Char, PChar, WideChar, PWideChar, AnsiString, WideString

Числа

Целые числа описываются с помощью слова integer, вещественные (дробные) — с помощью слова real.

Также в скриптах поддерживаются типы данных: Double, Extended, Currency, Variant, Longint, Cardinal, Longword, Single, Byte, Shortint, Word, Smallint.

Логические значения

Логические переменные описываются с помощью слова boolean. Есть две константы, которые могут хранится в логических переменных — это false (ложь) и true (истина).

Для описания дат служит тип DateTime. Он представляет собой число, в целой части которого записано число дней, а в дробной части — часть суток, прошедшая с полуночи. То есть 0.5 — это 12 часов, 1.25 — это один день и 6 часов и т.д.

Условный оператор

Существует две формы условного оператора:

Если условие истинно, то оператор1 (или блок операторов между begin и end) выполняется.

Если условие ложно и присутствует часть else, то оператор2 выполняется.

Перед else точка с запятой никогда не ставится.

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

Вложенные условные операторы

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

Задача. На вход программе поступают три целых числа. Выведите наибольшее из них.

Рассмотрим запись вида:

Такая запись может быть истолкована двояко с точки зрения принадлежности части else оператор2 первому или второму оператору if. Эта двусмысленность разрешается следующим правилом: else всегда соответствует первому предшествующему ему оператору if, для которого ветка else еще не указана.

Цикл for

for переменная-счетчик := начальное_значение to конечное_значение do оператор

Счетчик устанавливает в начальное_значение, затем в цикле выполняется оператор (или блок), счетчик увеличивается на 1, и если счетчик превысил конечное_значение цикл завершается.

Форма оператора for с указанием шага приращения step:

break — досрочный выход из цикла.

continue — продолжить цикл

Цикл while .. do

Тело цикла while выполняется до тех пор, пока истинно условие, указанное после ключевого слова while. Если условие ложно при первой же проверке, то цикл ни разу не выполнится.

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

Цикл repeat

После слова until указывается условие выхода из цикла. Тело цикла выполняется хотя бы один раз, после чего проверяется истинность условия.

Оператор выбора case

Вычисляется выражение selectorExpression и сравнивается с каждым из выражений caseexprn, выполняется тот оператор (или блок), где значения совпали. В противном случае выполняется оператор elsestatement.

Часть Else указывать необязательно.

Процедуры и функции

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

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

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

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

Аргументы функций могут передаваться по значению и по ссылке (с указанием слова var).

Локальные и глобальные переменные

Внутри процедур и функций могут быть описаны свои внутренние переменные — они называются локальными. Пример — переменная Temp, см. выше. Они создаются при входе в процедуру или функцию и разрушаются при выходе из нее. Это удобно, так как внутри процедуры не нужно беспокоиться о выборе имен и о том, чтобы не произошла накладка с переменными в других процедурах. Если в двух разных процедурах два программиста завели переменные по имени i — то это две разные переменные, и каждая из них ограничена своей областью видимости — той процедурой, в которой она описана.

Глобальные переменные — это переменные, которые описаны вне всех процедур и функций. В скриптах их можно описывать только в самом начале модуля. Область видимости этих глобальных переменных простирается вниз от места описания до конца модуля. К ним могут обращаться все процедуры и функции этого модуля. Через глобальные переменные можно производить обмен информацией между процедурами. Также в глобальных переменных можно хранить некоторые значения между вызовами процедур, так как они не разрушаются по мере завершения процедуры.

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

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

Структура модуля

Уточним структуру модуля с учетом локальных и глобальных переменных:

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

Отличия от стандарта

В скриптах есть дополнительные возможности по сравнению со стандартом языка.

Модуль uSystemLibrary

Функции этого модуля доступны по умолчанию (явно подключать не нужно).

Описание этих стандартных функций можно посмотреть в справке по языку delphi (или например по запросу гугл типа 'delphi trim')

Когда перед else не ставится знак

11 ноября, 2015 Andrey K

Продолжаем изучать язык программирования Паскаль. Рассмотрим первую алгоритмическую конструкцию, которая изучается при изучении языка — условие (ветвление). Статья предназначения для начинающих программистов, а также для учителей информатики. Задачи в конце статьи помогут закрепить знания и проверить себя.

Алгоритмическая конструкция УСЛОВИЕ используется в тех случаях, когда перед нами стоит выбор: сделать так или иначе.

  1. Неполное
  2. Полное

Неполное условие

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

Неполное условие Паскаль

ЕСЛИ УСЛОВИЕ ИСТИННО, ТО ВЫПОЛНЯЕТСЯ ДЕЙСТВИЕ , ИНАЧЕ НИЧЕГО НЕ ПРОИСХОДИТ

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

IF условие THEN действие;

Если условие, стоящее после IF истинно, то выполняется действие, стоящее после слова THEN.

Что такое условие?

Условие — это выражение, которое может быть либо истинным, либо ложным. Условие обязательно содержит логические операторы <, >, =, <=, >=, <> (не равно).

Например:

Если введенное значение переменной a равно 7, то на экране мы увидим слово Привет! Если не равно — то на экран ничего выводится не будет.

Рассмотрим другой пример:

Что мы увидим на экране, введя число 7? Увидим:

Привет!
До встречи

Что мы увидим на экране, введя число 10?

Почему так? Почему До встречи выводится на экран в любом случае? Команда

не относится к конструкции If-Then

Как сделать так, чтобы оба действия относились к конструкции If-Then?

Необходимо заключить эти действия в так называемые операторные скобки: begin… end;

end.
Теперь, если мы введем число 10, то на экране ничего не увидим.

Составное (сложное) условие

Иногда приходится использовать сложное условие. Для его составления используются логические союзы: and или or.

  • Если мы используем and, то составное условие будет истинно, когда все простые условия истинны.
  • Если мы используем or, то составное условие будет истинно, когда хотя бы одно простое условие будет истинно.

Например:

a>7 и a<15 на языке паскаль будет записываться

т.е. оба условия должны выполняться одновременно, чтобы составное условие было истинно

Составное условие будет истинно, если: либо a=7, либо a>17.

Используя конструкцию If-Then, найти максимальное среди трех введенных чисел.

Решение

Полное условие

Блок-схема полного условия выглядит так:

Полное условие. Блок-схема

Полное условие. Блок-схема

IF условие THEN действие_1 ELSE действие_2;
  • Если условие истинно, то выполняется действие, стоящее после слова Then.
  • Если условие ложно, то выполняется действие, стоящее после слова Else.

Если действий, которые выполняются, если условие истинно или ложно несколько — используются операторные скобки .

(перед else точка с запятой не ставится)

Задачи для самостоятельного выполнения:

  1. Сумма покупки составляет а рублей. Если а больше 1000 рублей, то предоставляется скидка 15%. Вывести на экран сумму покупки с учетом скидки либо сообщение о том, что скидка не предоставляется.
  2. Известны площади круга и квадрата. Определить:
    • уместится ли круг в квадрате
    • уместится ли квадрат в круге
  3. Определить, является ли число а делителем числа b
  4. Проверить, принадлежит ли число введенное с клавиатуры, интервалу (-5;3).
  5. Дано двузначное число. Определить:
    • входит ли в него цифра 3
    • входит ли в него цифра а
  6. Определить, является ли треугольник со сторонами a, b, c равнобедренным
  7. Даны три различных числа. Определить, какое из них (первое, второе или третье)
    • самое большое
    • самое маленькое
    • является средним

(список задач будет пополняться)

Опубликовано в рубрике Программирование Метки: задачи на программирование, Паскаль, программирование

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

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