Разное

Составной оператор в паскале: Составной оператор в Паскале — Инфоучка

Page not found — Сайт skobelevserg!

  • Главная
  • Информатика
  • Практикумы
  • Подготовка к ОГЭ
  • Рабочие программы
  • Используемая литература
  • Об авторах

Unfortunately the page you’re looking doesn’t exist (anymore) or there was an error in the link you followed or typed. This way to the home page.

  • Главная
  • Информатика
    • 5 класс (ФГОС)
      • Информация вокруг нас
      • Компьютер — универсальная машина для работы с информацией
      • Ввод информации в память компьютера
      • Управление компьютером
      • Хранение информации
      • Передача информации
      • Кодирование информации
      • Текстовая информация
      • Представление информации в виде таблиц
      • Наглядные формы представления информации
      • Компьютерная графика
      • Обработка информации
    • 6 класс (ФГОС)
      • Объекты окружающего мира
      • Компьютерные объекты
      • Отношения объектов и их множеств
      • Разновидности объектов и их классификация
      • Системы объектов
      • Персональный компьютер как система
      • Как мы познаем окружающий мир
      • Понятие как форма мышления
      • Информационное моделирование
      • Знаковые информационные модели
      • Табличные информационные объекты
      • Графики и диаграммы
      • Схемы
      • Что такое алгоритм
      • Исполнители вокруг нас
      • Формы записи алгоритмов
      • Типы алгоритмов
      • Управление исполнителем Чертежник
      • Компьютерный практикум
    • 7 класс (ФГОС)
      • Информация и информационные процессы
      • Компьютер универсальное устройство для работы с информацией
      • Обработка графической информации
      • Обработка текстовой информации
      • Технология мультимедиа
    • 8 класс (ФГОС)
      • Математические основы информатики
      • Основы алгоритмизации
      • Начала программирования
    • 9 класс (ФГОС)
      • Моделирование и формализация
      • Алгоритмизация и программирование
      • Обработка числовой информации в электронных таблицах
      • Коммуникационные технологии
    • 10 класс (ФГОС)
      • Информация и информационные процессы
      • Компьютер и его программное обеспечение
      • Представление информации в компьютере
      • Элементы теории множеств и алгебры логики
      • Современные технологии создания и обработки информационных объектов
    • 11 класс (ФГОС)
      • Обработка информации в электронных таблицах
      • Алгоритмы и элементы программирования
      • Информационное моделирование
      • Сетевые информационные технологии
      • Основы социальной информатики
    • Безопасность в сети Интернет
  • Практикумы
    • Google формы
    • Основы работы в Microsoft PowerPoint
    • Создание анимации в презентациях
    • Основы работы в Microsoft Word
    • Основы работы в Microsoft Excel
    • Создание простейшей базы данных
    • Практикум по MS Excel
  • Подготовка к ОГЭ
  • Рабочие программы
  • Используемая литература
  • Об авторах
    • Блоги
    • Сайты

§ 3.

4. Программирование разветвляющихся алгоритмов

Планирование уроков на учебный год (ФГОС)

Главная | Информатика и информационно-коммуникационные технологии | Планирование уроков и материалы к урокам | 8 классы | Планирование уроков на учебный год (ФГОС) | § 3.4. Программирование разветвляющихся алгоритмов







Ключевые слова:

• условный оператор
• неполный условный оператор
• составной оператор
• вложенные ветвления


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

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

if <условие> then <оператор_1> else <оператор_2>

Для записи неполных ветвлений используется неполная форма условного оператора:

if <условие> then <оператор>

Слова if — then — else переводятся с английского языка на русский как если — то — иначе, что полностью соответствует записи ветвления на алгоритмическом языке.

Перед else знак «;» не ставится.

В качестве условий используются логические выражения:

• простые — записанные с помощью операций отношения;
• сложные — записанные с помощью логических операций.

Пример 1. Запишем на языке Паскаль рассмотренный в п. 2.4.2 (пример 8) алгоритм определения принадлежности точки х отрезку [

а, b].

Пример 2. Воспользуемся неполным условным оператором для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 9) алгоритма присваивания переменной у значения наибольшей из трёх величин а, b и с.

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

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

В условном операторе и после then, и после else можно использовать только один оператор. Если при некотором условий требуется выполнить определённую последовательность операторов, то их объединяют в один составной оператор.

Конструкция вида

begin <последовательность операторов>

end называется составным оператором.

Пример. Алгоритм решения квадратного уравнения вам хорошо известен. Запишем соответствующую программу на языке Паскаль.


3.4.3. Многообразие способов записи ветвлений

В качестве оператора после then и else можно использовать условный оператор. Например, возможна следующая конструкция:

if <условие1> then

if <условие2> then <оператор1>

else <оператор2>

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

Пример. Воспользуемся вложенным ветвлением для записи на языке Паскаль рассмотренного в п. 2.4.2 (пример 10) алгоритма решения линейного уравнения.

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

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

if <условие> then <оператор_1> else <оператор_2>

Используйте вложенные ветвления для записи программы, определяющей принадлежность точки х отрезку [а, b].

if <условие> then <оператор>


САМОЕ ГЛАВНОЕ

При записи на языке Паскаль разветвляющихся алгоритмов используют условный оператор:

if <условие> then <оператор_1> else <оператор_2>

Для записи неполных ветвлений используется неполный условный оператор:

if <условие> then <оператор>

Если при некотором условии требуется выполнить определённую последовательных операторов, то их объединяют в один составной оператор, имеющий вид:

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


Вопросы и задания

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

2. Как на языке Паскаль записывается полное и неполное ветвление?

3. Является ли условным оператором следующая последовательность символов?

а) if х<у then х:=0 else read (у)
б) if

х>=у then х:=0; у:=0 else write (z)
в) if x<y<z then a:=a+l

4. Что такое составной оператор? Для чего он используется в условном операторе?

5. Используя составной оператор, упростите следующий фрагмент программы:

if a>b then с:=1;
if a>b then d:=2;
if a<=b then c:=3;
if a<=b then d:=4

6. Дано трёхзначное число. Напишите программу, которая определяет:

а) есть ли среди цифр заданного целого трёхзначного числа одинаковые;


б) является ли число «перевёртышем», т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево.

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

8. Даны три натуральных числа. Напишите программу, определяющую, существует ли треугольник с такими длинами сторон. Если такой треугольник существует, то определите его тип (равносторонний, равнобедренный, разносторонний).

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

10. Напишите программу, определяющую, лежит ли точка А(ха, уа) на прямой у = kx + l на ней или под ней.

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

12. Дан условный оператор:

if а<5 then с:=1 else

if а>5

then с: =2

else с:=3

Какое значение имеет переменная а, если в результате выполнения условного оператора переменной с присваивается значение 3?

13. Напишите программу, вычисляющую значение функции:

14. Составьте программу для решения задачи № 21 к § 2.4 (определение дня недели).

15. Поле шахматной доски определяется парой натуральных чисел, каждое из которых не превосходит 8. Напишите программу, которая по введённым координатам двух полей (k, l) и (m, n) определяет, имеют ли эти поля один цвет.

16. Напишите программу, в которой пользователю предлагается дополнить до 100 некоторое целое число а (а — случайное число, меньшее 100). Ответ пользователя проверяется и комментируется.


Файлы Материалы урока Ресурсы ЭОР

Cкачать материалы урока





Препроцессор Inno Setup: Синтаксис выражений

ISPP использует синтаксис выражений, подобный C/C++. Он поддерживает простые и составные операторы присваивания, условный оператор и оператор последовательного вычисления. Хотя ISPP является интерпретатором, он поддерживает логические вычисления с коротким замыканием и никогда не оценивает выражения (и не вызывает какие-либо определяемые пользователем функции, упомянутые в этих выражениях), которые не должны оцениваться из-за определенных правил (например, когда используется условный оператор, всегда только оцениваются 2 из 3 операндов).

ISPPBuiltins.iss содержит множество примеров выражений.

Различия между синтаксисом выражения C и ISPP

  • ISPP не поддерживает ряд операторов (ссылка, разыменование, разрешение пространства имен, выбор члена и т. д.).
  • ISPP рассматривает идентификатор и знак равенства как имя аргумента, если он используется в списке аргументов.
  • Оператор арифметического деления (косая черта) выполняет целочисленное деление, поскольку ISPP не поддерживает математические операции с плавающей запятой.
  • ISPP не проверяет корректность выражений в некоторых случаях. Например, в условном выражении «истинный» операнд может быть строкового типа, тогда как «ложный» операнд может быть целочисленного типа.
  • Строковые литералы могут заключаться как в одинарные, так и в двойные кавычки (в обоих режимах — в стиле C или в стиле Pascal). Если литерал начинается с одинарной кавычки, он также должен заканчиваться одинарной кавычкой. Двойные кавычки можно использовать в строке с одинарными кавычками без экранирования и наоборот. Внутри строки символ, используемый для заключения строки в кавычки, должен быть экранирован (способ зависит от текущего состояния параметра синтаксического анализатора «Строковые литералы в стиле Pascal», см. прагму).

Типы данных

В ISPP есть три типа: void, integer и string. Переменная типа void объявляется простым указанием ее имени после директивы определения без какого-либо значения. Такие переменные следует использовать с директивой ifdef или функцией Defined.

Если опция парсера «разрешить необъявленные идентификаторы» отключена (состояние по умолчанию, см. pragma), возникает ошибка при упоминании неопределенной переменной. В противном случае оно будет рассматриваться как значение типа void.

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

Комментарии

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

#emit Var1 /* это комментарий */ + Var2 /* это тоже комментарий */

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

#выдать Var1 + Var2 ; это комментарий
#emit Var1 + Var2 // это тоже комментарий

Обратите внимание, что функция переноса строк срабатывает перед любой дальнейшей обработкой, так что это также допустимый комментарий:

#emit Var1 + Var2 ; это \
  все еще комментарий

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

// Это комментарий

Все перечисленные выше комментарии не включаются в вывод препроцессора, в отличие от (не ISPP) комментариев, использующих точку с запятой в начале строки. Например:

#выдать Var1 + Var2 ; этот комментарий не включен
// Этот комментарий не включен
; Этот комментарий ВКЛЮЧЕН

Расширенный синтаксис вызова определяемой пользователем функции

В ISPP можно использовать именованные аргументы при вызове определяемой пользователем функции. Учитывая объявление:

#define MyFunction(int A = 2, int B = 2) A + B

Эту функцию можно вызвать, указав имена аргументов:

#emit MyFunction(A = 5, B = 10)
#выпустить MyFunction(B = 3)
#emit MyFunction(B = 10, A = 5)

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

    #выпустить MyFunction((MyVar = 5), 10)

    В приведенном выше примере знак равенства обрабатывается как оператор прямого присваивания.

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

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

    #emit MyFunction((SaveToFile(«script.txt»), 5), 10)

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

Irie Pascal Справочное руководство программиста

Irie Pascal Справочное руководство программиста

Содержание | Предыдущий

Начальным символом для этой грамматики является программа .

    фактический параметр = выражение | переменный доступ |
идентификатор процедуры | идентификатор функции
список фактических параметров =   '('  фактический параметр {   ','  фактический параметр}   ')'  оператор добавления =   '+'   |  '-'   |  'или'   |  'или_иначе'   |  'хор'  тип-массива =   'массив' [   список-типов-индексов  ']' 'из'   тип-компонента
массив-переменная = переменная-доступ
оператор-назначения = оператор-назначения-lhs  ':='   выражение
оператор-присваивания-lhs = доступ к переменным | идентификатор функции | обозначение свойства
базовый тип = порядковый номер
двоичная цифра =  '0'   |  '1'  двоичная-цифровая последовательность = двоичная-цифра { двоичная-цифра }
двоично-целое =  9'   | файл-переменная  '@'  c-string-type =   'cstring'   [ max-string-length ]
case-body = case-list-elements [ [   ';'   ] case-statement-completer ] |
case-statement-completer
case-constant = порядковая-константа
case-constant-list = case-specifier {   ','   case-specifier }
case-index = порядковое-выражение
case-list-element = case-constant-list  ':'   оператор
case-list-elements = case-list-element {   ';'   элемент списка дел }
case-specifier = case-constant [   '. .'   case-constant ]
case-statement =   'case'   case-index case-body [   ';'   ]   'конец'  case-statement-completer = (   'иначе'   |   'else'   ) оператор-последовательность
код-символа = последовательность цифр
символьный литерал =  '''   строковый элемент-один  '''   |  '"'   строковый элемент-два  '"'   |  '#'   символьный код
тип компонента = обозначение типа
переменная-компонент = переменная-индекс | указатель поля
составной оператор =  'начало'   последовательность операторов  'конец'  условное-оператор = если-оператор | выписка из дела
константа = [знак] целое число |
[знак] действительное число |
[знак] идентификатор-константы |
символьный литерал |
строковый литерал
константное-определение = идентификатор  '='   константа
группа-определения-константы =  'const'   определение-константы  ';'   { определение константы  ';'   }
идентификатор-константы = идентификатор
контрольная переменная = целая переменная
десятичное целое = последовательность цифр
группа объявлений =
метка-декларация-группа |
группа определения константы |
группа определения типа |
группа объявлений переменных |
объявление функции  |
процедура-декларация
декларативная часть = { группа объявлений}
цифра =  '0'   |  '1'   |  '2'   |  '3'   |  '4'   |  '5'   |  '6'   |  '7'   |  '8'   |  '9'  последовательность цифр = цифра { цифра }
директива = прямая директива | внешняя директива
dllname = строковый литерал
тип домена = идентификатор типа
else-part =   'else'   оператор
пустой оператор =
пустая строка =   ''''   |  '""'  вся-переменная = переменная-идентификатор
перечисляемая-константа = идентификатор
перечисленный-константный-список = перечисленный-константа {   ','  перечислимая константа }
enumerated-type =   '('   enumerated-constant-list  ')'  показатель степени =  'e'  выражение = выражение-сдвига [ выражение-оператора отношения сдвига ]
external-directive =   'external' 'dll' '='   dllname [   'name' '='   name ] [   'stdcall'   |  'cdecl'  ]
фактор = [ знак ] беззнаковая константа |
[знак] доступ к переменным |
[знак]   '('   выражение  ')'   |
[знак] обозначение-функции |
[знак] обозначение-метода-функции |
[знак]  'не'  фактор |
набор-конструктор
Обозначение поля = переменная записи  '. '   описатель поля | идентификатор-обозначения-поля
идентификатор поля = идентификатор
идентификатор поля = идентификатор
список полей = [
фиксированная часть  ';'   вариант-часть [   ';'   ] |
фиксированная часть [   ';'   ] |
вариантная часть [   ';'   ] |
]
спецификатор поля = идентификатор поля
тип файла =  'файл' 'из'  тип компонента
файл-переменная = доступ к переменной
конечное значение = порядковое выражение
фиксированная часть = раздел записи {   ';'   раздел записи }
for-statement =   'for'   control-variable  ':='  initial-value (   'to'   |   'downto'   ) final-value  'делать'   оператор
список формальных параметров =   '('   формальный-параметр-раздел {   ';'   формальный-параметр-раздел }   ')'  формальный-параметр-раздел = значение-параметр-спецификация |
переменная-параметр-спецификация |
спецификация параметра-процедуры |
функция-параметр-спецификация
прямая-директива =   'вперед'  дробная часть = последовательность цифр
функциональный блок = блок
объявление функции =
функциональный заголовок  ';'   директива |
функция-идентификация  ';'   функциональный блок |
функциональный заголовок  ';'  функциональный блок
Обозначение-функции = идентификатор-функции [список-фактических-параметров]
function-heading =   'функция'  идентификатор [список-формальных-параметров]  ':'  тип-результата
идентификатор функции =  'функция'  идентификатор функции
идентификатор функции = идентификатор
указатель-метода-функции = переменная-объекта  '. '   идентификатор метода-функции [ фактический-список-параметров ]
идентификатор метода-функции = идентификатор
спецификация-параметра-функции = заголовок-функции
оператор перехода =  9'   | указатель-переменная  '@'  идентификатор = буква { буква | цифра }
список-идентификаторов = идентификатор {   ','  идентификатор}
if-statement =   'if'  boolean-expression  'then'   statement [else-part]
индекс-выражение = выражение
тип индекса = порядковый номер
список-индексов = тип-индекса {   ','   тип-индекса }
индексированная-переменная = массив индексированных-переменных | индексированная переменная-строка
индексированная-переменная-массив = переменная-массива  '['   выражение-индекса {   ','   выражение-индекса }   ']'  индексированная-переменная-строка = строковая-переменная  '['  интегральное-выражение  ']'  начальное-значение = порядковое-выражение
целое число = десятичное целое число | шестнадцатеричное целое | двоично-целое число
интегральная постоянная = постоянная
интегральное-выражение = выражение
метка = последовательность цифр | идентификатор
label-declaration-group =   'метка'   метка {   ','  метка }   ';'  буква =  'а'   |  'б'   |  'с'   |  'д'   |  'е'   |  'ф'   |  'г'   |  'ч'   |  'я'   |  'й'   |  'к'   |  'л'   |  'м'   |  'n'   |  'о'   |  'р'   |  'к'   |  'р'   |  's'   |  'т'   |  'у'   |  'в'   |  'ш'   |  'х'   |  'г'   |  'г'   |  '_'  list-type =   'список' 'из'   component-type
list-variable = переменная-доступ
max-string-length =   '['   интегральная константа  ']'   |  '('   постоянная интеграла  ')'  обозначение-элемента = порядковое-выражение [   '. .'   порядковое-выражение ]
оператор умножения =  '*'   |  '/'   |  'дел'   |  'мод'   |  'и' 9'   тип домена |  '@'   тип домена
новый структурированный тип =
[   'упакованный'   ] тип-массива |
[   'упакованный'   ] тип-записи |
[   'упакованный'   ] тип набора |
[   'упакованный'   ] тип файла |
[   'упакованный'   ] тип-списка |
тип объекта |
строковый тип
новый тип = новый порядковый номер | новый структурированный тип | новый тип указателя
непустая строка =  '''   элемент-строки-один элемент-строки-один { элемент-строки-один }   '''   |  '"'   строка-элемент-два строка-элемент-два { строка-элемент-два }   '"'  тип объекта =   'объект'   |  'класс'  объект-переменная = переменная-доступ
порядковый номер = константа
порядковое-выражение = выражение
порядковый номер = новый порядковый номер | порядковый идентификатор типа
идентификатор порядкового номера = идентификатор
pascal-string-type =   'string'   [ max-string-length ]
переменная-указатель = доступ к переменной
printable-character = любой символ (включая пробел), имеющий визуальное представление. блок-процедуры = блок
процедура-декларация =
процедура-заголовок  ';'   директива |
идентификатор процедуры  ';'   процедурный блок |
процедура-заголовок  ';'   блок-процедуры
заголовок-процедуры =   'процедура'  идентификатор [список-формальных-параметров]
идентификатор процедуры =   'процедура'  идентификатор процедуры
идентификатор процедуры = идентификатор
идентификатор метода-процедуры = идентификатор
процедура-метод-спецификатор = объектная переменная  '.'   идентификатор метода-процедуры
инструкция-метода-процедуры = спецификатор-метода-процедуры [список-фактических-параметров]
спецификация-параметра-процедуры = заголовок-процедуры
оператор-процедуры = идентификатор-процедуры (
[список-фактических-параметров] |
чтение-список-параметров | readln-список-параметров |
список параметров записи | writeln-список-параметров
)
программа = заголовок программы  ';'   программный блок
программный блок = блок
заголовок программы =   'программа'   идентификатор [   '('   список параметров-программы  ')'   ]
список-параметров-программы = список-идентификаторов
Обозначение свойства = объектная переменная  '. '  спецификатор свойства
идентификатор свойства = идентификатор
спецификатор свойства = идентификатор свойства |  '('   строка-свойства  ')'  строка-свойства = строка-выражение
чтение-список-параметров =   '('   [ file-variable  ','   ] variable-access {   ','   variable-access }   ')'  readln-parameter-list = [   '('   ( file-variable | variable-access) {   ','   variable-access }   ')'   ]
действительное число =
последовательность цифр  '.'   дробная-часть [ коэффициент масштабирования степени ] |
масштабный коэффициент степени последовательности цифр
раздел-записи = список-идентификаторов  ':'  тип-обозначение
тип записи =   'запись'   список полей  'конец'  запись-переменная = доступ к переменной
список переменных-записей = переменная-записей {   ';'   переменная-запись }
оператор отношения =   '='   |  '<>'   |  '<'   |  '<='   |  '>'   |  '>='   |  'в'  оператор повтора =  'повторить'   последовательность операторов  'до'  логическое выражение
повторяющийся оператор = повторный оператор | пока оператор | for-statement
тип результата = идентификатор типа
масштабный коэффициент = [знак] последовательность цифр
выбранная-переменная = переменная-списка  '['   выражение-индекса {   ','   выражение-индекса }   ']'  set-constructor =   '['   [ обозначение элемента {   ','   обозначение элемента } ]   ']'  set-type =   'набор' 'из'   базовый тип
shift-expression = simple-expression [ shift-operator simple-expression]
оператор сдвига =  'шл'   |  'шр'  знак =   '-'  |  '+'  простое-выражение = термин { термин оператора-добавления}
простой оператор = пустой оператор | оператор назначения |
оператор-процедура | инструкция-метод-процедура |
goto-оператор
оператор = [ метка  ':'   ] ( простой оператор | структурированный оператор )
часть оператора = составной оператор
последовательность операторов = оператор {   ';'   оператор }
строка-элемент-один =   ''''   | печатный символ
строка-элемент-два =   '""'   | печатный символ
строковое выражение = выражение
строковый литерал = пустая строка | непустая строка
тип строки = паскаль тип строки | c-строка типа
строка-переменная = переменная-доступ
структурированный оператор = составной оператор |
условный оператор |
повторяющееся заявление |
с-оператор
тип поддиапазона = константа  '.

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

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