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) алгоритм определения принадлежности точки х отрезку [
Пример 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
в) 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
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-строка типа строка-переменная = переменная-доступ структурированный оператор = составной оператор | условный оператор | повторяющееся заявление | с-оператор тип поддиапазона = константа '.