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

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

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

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

В C++ есть 3 логических оператора:

Логические операторы

ОператорОбозначениеПример использованияОперация
Логическое НЕ (NOT) ! !x true , если x равен false ; или false , если x равен true
Логическое И (AND) x y true , если и x ,и y равны true ; в противном случае – false
Логическое ИЛИ (OR) || x || y true , если x или y равен true ; в противном случае – false

JavaScript. Логические операторы. Часть № 1. || (или), && (и).

Логическое НЕ (NOT)

Вы уже сталкивались с унарным оператором логического НЕ в уроке «4.9 – Логические (булевы) значения». Мы можем резюмировать эффекты логического НЕ следующим образом:

Логическое НЕ (оператор ! )

ОперандРезультат
true false
false true

Если операнд логического НЕ вычисляется как true , логическое НЕ вычисляется как false . Если операнд логического НЕ вычисляется как false , логическое НЕ вычисляется как true . Другими словами, логическое НЕ меняет логическое значение с true на false и наоборот.

Логическое НЕ часто используется в условных выражениях:

bool tooLarge < x >100 >; // tooLarge равно true, если x > 100 if (!tooLarge) // делаем что-нибудь с x else // выводим ошибку

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

#include int main() < int x< 5 >; int y< 7 >; if (!x > y) std::cout

Эта программа напечатает:

5 is greater than 7

Но x не больше y , так как же это возможно? Ответ заключается в том, что поскольку оператор логического НЕ имеет более высокий приоритет, чем оператор «больше чем», выражение !x > y фактически вычисляется как (!x) > y . Поскольку x равно 5, !x вычисляется как 0, а 0 > y равно false , поэтому выполняется инструкция else !

Правильный способ написать приведенный выше фрагмент:

#include int main() < int x< 5 >; int y< 7 >; if (!(x > y)) std::cout

Таким образом, сначала будет вычислено x > y , а затем логическое НЕ инвертирует логический результат.

Операторы JAVASCRIPT. «2»+2=22. Уроки JAVASCRIPT с нуля 2020

Лучшая практика

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

Простое использование логического НЕ, например if (!value) , не требует скобок, потому что приоритет здесь не играет роли.

Логическое ИЛИ (OR)

Оператор логического ИЛИ используется для проверки того, выполняется ли одно из двух условий. Если значение левого операнда истинно, или значение правого операнда истинно, или оба значения истинны, то логический оператор ИЛИ возвращает true . В противном случае он вернет false .

Логическое ИЛИ (оператор || )

Левый операндПравый операндРезультат
false false false
false true true
true false true
true true true

Например, рассмотрим следующую программу:

#include int main() < std::cout ; std::cin >> value; if (value == 0 || value == 1) std::cout

В этом случае мы используем логический оператор ИЛИ, чтобы проверить, истинно ли левое условие ( value == 0 ) или правое условие ( value == 1 ). Если одно из них (или оба) истинны, логический оператор ИЛИ принимает значение true , что означает выполнение инструкции if . Если ни одно из них не является истинным, результат логического оператора ИЛИ будет false , что означает выполнение инструкции else .

Вы можете связать вместе множество операторов логического ИЛИ:

if (value == 0 || value == 1 || value == 2 || value == 3) std::cout

Начинающие программисты иногда путают оператор логическое ИЛИ ( || ) с оператором побитовое ИЛИ ( | ) (который будет рассмотрен позже). Несмотря на то, что у них обоих в названии есть «ИЛИ», они выполняют разные функции. Их смешивание, вероятно, приведет к неверным результатам.

Логическое И (AND)

Логический оператор И используется для проверки истинности обоих операндов. Если оба операнда равны true , логическое И возвращает true . В противном случае возвращается false .

Логическое И (оператор )

Левый операндПравый операндРезультат
false false false
false true false
true false false
true true true

Например, нам может потребоваться узнать, находится ли значение переменной x в диапазоне от 10 до 20. На самом деле это два условия: нам нужно знать, больше ли x , чем 10, а также меньше ли x , чем 20.

#include int main() < std::cout ; std::cin >> value; if (value > 10 value

В этом случае мы используем оператор логическое И, чтобы проверить, истинны ли левое условие ( value > 10 ) и правое условие ( value < 20 ). Если оба условия истинны, оператор логическое И принимает значение true , и выполняется инструкция if . Если ни одно из условий или хотя бы одно из них не соответствует истине, оператор логическое И принимает значение false , и выполняется инструкция else .

Как и в случае с логическим ИЛИ, вы можете связать вместе множество операторов логическое И:

if (value > 10 value < 20 value != 16) // делаем что-то else // делаем что-то другое

Если все эти условия верны, будет выполнена инструкция if . Если какое-либо из этих условий ложно, будет выполняться инструкция else .

Вычисление по короткой схеме

Чтобы логическое И возвращало true , оба операнда должны иметь значение true . Если первый операнд вычисляется как false , логическое И знает, что оно должно возвращать false , независимо от того, вычисляется ли второй операнд как true или false . В этом случае оператор логическое И немедленно вернет false , даже не вычисляя второй операнд! Это известно как вычисление по короткой схеме и выполняется в основном в целях оптимизации.

Читайте также:
Программа 1с кпк это

Точно так же, если первый операнд для логического ИЛИ равен true , тогда всё условие ИЛИ должно вычисляться как true , и второй операнд не вычисляется.

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

if (x == 1 ++y == 2) // сделать что-то

Если x не равно 1, всё условие должно быть ложным, поэтому ++y никогда не вычисляется! Таким образом, y будет инкрементироваться только в том случае, если x равен 1, что, вероятно, не совсем то, что задумывал программист!

Предупреждение

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

Как и в случае с логическим и побитовым ИЛИ, начинающие программисты иногда путают оператор логическое И ( ) с оператором побитовое И ( 6 || 4 > 3) (7 > 8)

(5 > 6 || 4 > 3) (7 > 8) → (false || true) false → true false → false
!(7 > 6 || 3 > 4) → !(true || [3 > 4]) → !true → false

Теги

Сохранить или поделиться

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.

Присоединяйтесь к нам во ВКонтакте!

  • Антенны и распространение радиоволн
  • Беспроводная связь
  • Высокочастотная техника
  • Волоконно-оптические линии связи (ВОЛС)
  • Измерительная техника
  • Исполнительные механизмы и драйверы
  • САПР
  • Спутниковая связь
  • Схемотехника
  • Телевидение
  • Цифровая электроника
  • Технологии и инструменты
  • Электронные компоненты
  • А что внутри?
  • Прочее (радиоэлектроника)
  • Алгоритмы и структуры данных
  • Базы данных
  • Веб-разработка
  • Мультимедиа (разработка ПО)
  • Нейронные сети
  • Паттерны проектирования
  • Связь
  • Системы сборки ПО
  • Языки программирования
  • Компьютерные сети
  • Операционные системы
  • Верстка
  • Системы контроля версий
  • История технологий
  • Мультимедиа
  • Новости телекома
  • Нормативная документация
  • Охрана труда
  • Полезные программы
  • Просто интересно
  • Экономика телекоммуникаций и электронной промышленности
  • Экономика и инвестиции

Начальные сведения о программах на языке Pascal

Аннотация: Начальные сведения об алгоритмах, компиляции, отладке и тестировании. Начальные сведения о программах на языке Pascal. Идентификаторы. Переменные и типы данных. Константы. Метки.

Простейшие операторы. Ввод с консоли и вывод на консоль.

Алгоритм и программа

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

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

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

Для перевода программы на язык низкого уровня , понятный исполнителю-компьютеру, существуют специальные программы-переводчики — компиляторы . Результатом работы компилятора (иными словами, результатом процесса компиляции) является исполняемый код , который записывается в файл с расширением .exe.

Свойства алгоритма

Любой алгоритм должен обладать следующими свойствами:

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

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

Компиляция, отладка и тестирование

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

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

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

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

Средства разработки программ

Существует довольно большое количество средств написания программ на языке Pascal , позволяющих составлять, компилировать, исполнять и отлаживать программы на этом удобном языке структурного программирования 1 Подробное изложение истории языка Pascal , перечисление его «потомков», описание его преимуществ и взаимоотношений с другими языками программирования можно найти в статье Р. Богатырева «Летопись языка Паскаль» . Самыми известными сегодня являются Turbo Pascal (он же Borland Pascal ), Object Pascal (не путать с Delphi ) и Free Pascal . Их различные, в том числе и бесплатные, версии можно найти в Сети. Для определенности мы будем опираться на самую распространенную (хотя и не во всем соответствующую стандартам ISO) реализацию — Turbo Pascal .

Итак, в составе среды разработчика Turbo Pascal имеются:

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

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

  • Нажатие клавиш F1, Alt+F1, Ctrl+F1 открывает экранную подсказку.
  • Нажатие клавиши F2 позволяет сохранить исходный текст программы .
  • Нажатие клавиши F3 открывает диалог выбора нужного файла (по умолчанию, отображаются только файлы с расширением .pas).
  • Нажатие клавиши Alt+F5 показывает консоль (см. п. «Ввод и вывод: консоль» ниже) с результатами работы программы .
  • Нажатие клавиши Ctrl+F9 начинает процесс выполнения программы . Если она еще не была откомпилирована, предварительно будет вызван компилятор
  • Клавиши F7 и F8 обеспечивают трассировку — пошаговое выполнение программы , позволяющее проследить за процессом ее выполнения.
  • Дополнительное окно Debug/Watch показывает текущее состояние выбранных переменных .
Читайте также:
Элма программа для бизнес процессов инструкция

Более подробно о возможностях среды Turbo Pascal можно узнать в любом руководстве по ее использованию (в том числе и во встроенном Help).

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

Для того чтобы Pasсal-компилятор правильно понял, какие именно действия от него ожидаются, ваша программа должна быть оформлена в полном соответствии с синтаксисом (правилами построения программ ) этого языка.

Приступим же к изучению этих правил.

Любая Pascal -программа может состоять из следующих блоков (напомним, что квадратными скобками здесь и далее помечены необязательные части):

program ; [ uses ;] (см. лекцию 13) [ label ;] (см. п. «Метки и безусловный переход» ниже) [ const = ;] (см. п. «Константы» ниже) [ type = ;] (см. лекцию 2) [ var : ;] (см. п. «Переменные и типы данных» ниже) [ procedure ;] (см. лекцию 8) [ function ;] begin end. (* конец основного тела программы *)

Сразу же необходимо сделать важную оговорку: поздние версии компиляторов языка Pascal уже не требуют указывать название программы , то есть строку

program ;

проще говоря, можно опустить. Но это возможно только в том случае, если вся программа содержится в одном модуле-файле. Если же программа состоит из нескольких самостоятельных кусков — модулей (см. лекцию 13), то каждый из них должен иметь заголовок (program или unit).

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

Внешний вид исходного текста программы

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

Например, операторы каждого логически единого блока программы стоит записывать с небольшим отступом от левого края экрана, и чем глубже вложенность блока , тем шире должны быть отступы перед входящими в него операторами . Этому правилу подчиняются все примеры, приводимые в курсе наших лекций 2 Отклонения от этого правила возможны в связи с ограничениями, связанными с версткой книги. . Кроме того, встроенный редактор среды Turbo Pascal автоматически выравнивает левые края строк. И еще один полезный совет: для облегчения отладки программы не следует записывать на одну строку несколько операторов .

Источник: intuit.ru

Операторы языка программирования

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

Каждый оператор в любом языке программирования имеет определенный синтаксис и семантику. Под синтаксисом оператора понимается система правил (грамматика), определяющая его запись с помощью элементов алфавита данного языка, в который наряду с различными символами входят, например, и служебные слова. Под семантикой оператора понимают его смысл, т.е. те действия, которым соответствует запись того или иного оператора. Например, запись i := i + 1 является примером синтаксически корректной записи оператора присваивания в языке Pascal, семантика которого в данном случае такова: извлечь значение ячейки памяти, соответствующей переменной i, сложить его с единицей, результат записать в ту же ячейку памяти.

В большинстве процедурных языков программирования набор операторов практически одинаков и состоит из оператора присваивания, операторов выбора, операторов цикла, оператора вызова процедуры, операторов перехода. Иногда выделяют также пустой (отсутствие действия) и составной операторы. Многие операторы являются способом представления определенных алгоритмических конструкций (см. “Алгоритмические конструкции” ) в языке программирования. Рассмотрим группы операторов подробнее, используя синтаксис языка Pascal.

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

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

В общем виде оператор присваивания записывается так:

Например, в языке Pascal в качестве знака присваивания используется комбинация символов :=. В ряде других языков — знак равенства.

Результатом выполнения оператора присваивания является изменение состояния данных: все переменные, отличные от переменной, стоящей в левой части оператора присваивания, не меняют своего значения, а указанная переменная получает значение выражения, стоящего в правой части оператора присваивания. В большинстве случаев требуется, чтобы тип выражения совпадал с типом переменной. Если это не так, то оператор либо считается синтаксически некорректным, либо производится преобразование типа выражения к типу переменной (см. “Типы данных” ).

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

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

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

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

if B then S1 else S2

Если выражение B, которое вычисляется в начале выполнения условного оператора, имеет значение “истина”, то будет выполняться оператор S1, в противном случае — оператор S2. Операторы S1 и S2 могут быть составными.

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

if B then S

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

Если условный оператор реализует всего две ветви выбора (“да” и “нет”), то с помощью оператора варианта (case-оператора) можно запрограммировать многоветвящуюся структуру. Оператор варианта имеет вид:

case E of

Выполняется данный оператор так: значение выражения E ищется среди перечисленных в записи оператора значений V1, V2, …, Vn, и если такое значение находится, то выполняется соответствующий оператор S1, S2, …, Sn.

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

Пример 1. В статье “Алгоритмические конструкции” 2 был приведен пример записи алгоритма решения обобщенного квадратного уравнения с помощью конструкций ветвления. Приведем фрагмент программы на языке Pascal, реализующий этот же алгоритм:

if a = 0 then

if b = 0 then

if c = 0 then writeln(‘x — любое’)

else writeln(‘нет корней’)

else writeln(—c/b)

Операторы цикла

Операторы цикла реализуют циклические алгоритмические конструкции, они используются для действий, повторяющихся многократно. Во многих языках программирования существуют три вида операторов цикла: “c предусловием”, “c постусловием”, “с параметром”.

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

while B do S

Оператор S, для многократного выполнения которого создается цикл, называется телом цикла. Выполнение оператора цикла сводится к повторному выполнению тела цикла, пока значение логического выражения B истинно (до тех пор, пока оно не станет ложным). Фактически подобные операторы цикла реализуют повторное выполнение условных операторов if B then S, пока истинно условие B.

Читайте также:
Не устанавливается программа офис

Пример 2. Рассмотрим применение такого оператора цикла для подсчета суммы цифр натурального числа N:

while N > 0 do begin

S := S + N mod 10;

N := N div 10

В цикле с постусловием тело цикла предшествует условию В. В отличие от цикла с предусловием здесь В — это условие окончания цикла. Оператор цикла с постусловием в Паскале имеет вид:

repeat S until B

При такой организации цикла тело цикла S хотя бы один раз обязательно выполнится.

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

for переменная> E1 to E2 step E3 do S

Здесь значение переменной (параметра цикла) меняется от значения выражения E1 до E2 с шагом E3. Для каждого такого значения параметра цикла выполняется оператор S. В языке Pascal понятие шага в описании этого оператора отсутствует, а сам шаг для целочисленного параметра цикла может быть равен либо 1, либо –1. Оператор “цикл с параметром” используется для программирования циклов с заданным числом повторений. Для программирования итерационных циклов (число повторений которых заранее неизвестно) он не годится.

Оператор вызова процедуры

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

Здесь E1,E2,…,En — переменные или выражения, представляющие собой фактические параметры обращения к процедуре. Наиболее часто используемыми стандартными процедурами являются процедуры ввода и вывода данных (read и write в Pascal).

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

Пример 3. Пусть у нас описана процедура abc:

procedure abc(a,b:integer;var c: integer);

Вызов этой процедуры abc(2,3,x) эквивалентен блоку действий:

Операторы перехода

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

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

Пример 4. Пусть нам требуется определить, есть ли в двухмерном массиве a элемент, равный 0:

for i := 1 to N do

for j := 1 to N do

if a[i,j] = 0 then begin

1: if b then write(‘есть’) else write(‘нет’);

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

while not b and (i < N) do begin

while not b and (j < N) do begin

if a[i,j] = 0 then b := true;

if b then write(‘есть’) else write(‘нет’);

В данном случае структурная программа менее наглядна, чем программа с goto.

В языках программирования могут быть определены и другие операторы перехода. Например, в языке Pascal: break (досрочное прерывание цикла, переход на оператор, который должен выполняться после завершения цикла), continue (досрочное завершение текущей итерации цикла и переход к следующей), exit (досрочное прерывание подпрограммы, выход из нее), halt (досрочное прерывание программы, переход на ее конец). Аналогичные операторы существуют и в языках С, С++, Java.

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

Составной оператор — это группа операторов, заключенных в операторные скобки (в Pascal — begin … end; в C, C++ — ).

Составной оператор введен в языки программирования для облегчения описания конструкций языка. Так, например, в Pascal исполняемая часть каждого блока (программа, процедура, функция) представляет собой один составной оператор. Ровно так же тело любого оператора цикла состоит только из одного оператора, быть может, составного. Альтернативой составному оператору может быть служебное слово, обозначающее окончание того или иного оператора, например, END IF в языке Basic.

Методические рекомендации

Тема “Операторы языка программирования” обычно изучается только в контексте рассмотрения определенного языка программирования. При ее рассмотрении важно показать связь базовых алгоритмических конструкций и операторов: алгоритмические конструкции записываются в языке программирования с помощью соответствующих операторов. Исключение в некотором смысле составляет последовательная конструкция, она определяет линейный порядок выполнения действий. Действия в строго линейной программе реализуются только операторами присваивания и операторами вызова процедуры.

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

Можно предложить школьникам мысленно решить задачу, как поменять местами содержимое двух ящиков, например, письменного стола. Обычно на данном этапе обсуждения ученики догадываются, что для решения задачи необходим третий ящик (переменная). Тем не менее при записи данного алгоритма они часто путают, в какой части оператора присваивания (левой или правой) должна стоять та или иная переменная.

Ошибки в записи арифметических и логических выражений возникают из-за незнания старшинства операций, которые используются в выражении. При этом под операциями понимаются не только арифметические, но и операции сравнения и логические связки, а в языке С и операция присваивания, что весьма непривычно для школьников. Ситуация осложняется тем, что в разных языках программирования одни и те же операции имеют разные относительные приоритеты. Обращать внимание следует и на соответствие типов переменной и выражения в левой и правой частях оператора присваивания (см. “Типы данных”).

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

Пример. В целочисленную переменную N вводится возраст человека в годах. Напечатать фразу “Мне K лет”, заменяя слово лет на год или года в зависимости от числа K. Приведем два решения этой задачи:

var k: integer;

if (k mod 100) in [11..20]

then writeln(‘Мне ‘,k,’ лет’)

case k mod 10 of

0,5..9:writeln(‘Мне ‘,k,’ лет’);

1:writeln(‘Мне ‘,k,’ год’);

2..4:writeln(‘Мне ‘,k,’ года’);

Источник: xn—-7sbbfb7a7aej.xn--p1ai

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru