В 1 программе составных операторов может быть несколько

Содержание
Читайте также:
Список литературы для 10 класса по программе зинина

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

  • условные операторы, к которым относятся оператор условия if и оператор выбора switch;
  • операторы цикла (for,while,do while);
  • операторы перехода (break, continue, return, goto);
  • другие операторы (оператор «выражение», пустой оператор).

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

Все операторы языка СИ, кроме составных операторов, заканчиваются точкой с запятой «;».

1.4.1. Оператор выражение
Любое выражение, которое заканчивается точкой с запятой, является оператором.

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

Информатика 8 класс: Составной оператор

Этот оператор представляет выражение, которое увеличивает значение переменной i на единицу.

a=cos(b * 5);

Этот оператор представляет выражение, включающее в себя операции присваивания и вызова функции.

Этот оператор представляет выражение состоящее из вызова функции.

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

  • в операторах do, for, while, if в строках, когда место оператора не требуется, но по синтаксису требуется хотя бы один оператор;
  • при необходимости пометить фигурную скобку.

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

1 2 3 4 5 6 7 8 9
int main ( ) { : { if (. ) goto a; /* переход на скобку */ { . } a:; } return 0; }

1.4.3. Составной оператор
Составной оператор представляет собой несколько операторов и объявлений, заключенных в фигурные скобки:

1 2 3 4 5
{ [oбъявление] : оператор; [оператор]; : }

Заметим, что в конце составного оператора точка с запятой не ставится.

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14
int main () { int q,b; double t,d; : if (.

) { int e,g; double f,q; : } : return (0); }

Переменные e,g,f,q будут уничтожены после выполнения составного оператора. Отметим, что переменная q является локальной в составном операторе, т.е. она никоим образом не связана с переменной q объявленной в начале функции main с типом int. Отметим также, что выражение стоящее после return может быть заключено в круглые скобки, хотя наличие последних необязательно.

Урок по информатике 8 класс. Составной оператор

1.4.4. Оператор if

if (выражение) оператор-1; [else оператор-2;]

if (выражение) оператор-1; [else оператор-2;]

Выполнение оператора if начинается с вычисления выражения.

Далее выполнение осуществляется по следующей схеме:

  • если выражение истинно (т.е. отлично от 0), то выполняется оператор-1.
  • если выражение ложно (т.е. равно 0),то выполняется оператор-2.
  • если выражение ложно и отсутствует оператор-2 (в квадратные скобки заключена необязательная конструкция), то выполняется следующий за if оператор.
Читайте также:
Как в программе про100 загрузить библиотеку

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

if (i j) i++: else { j = i-3; i++; }

Этот пример иллюстрирует также и тот факт, что на месте оператор-1, так же как и на месте оператор-2 могут находиться сложные конструкции.

Допускается использование вложенных операторов if. Оператор if может быть включен в конструкцию if или в конструкцию else другого оператора if. Чтобы сделать программу более читабельной, рекомендуется группировать операторы и конструкции во вложенных операторах if, используя фигурные скобки. Если же фигурные скобки опущены, то компилятор связывает каждое ключевое слово else с наиболее близким if, для которого нет else.

1 2 3 4 5 6 7 8 9 10
int main ( ) { int t=2, b=7, r=3; if (t>b) { if (b r) r=b; } else r=t; return (0); }

В результате выполнения этой программы r станет равным 2.

Если же в программе опустить фигурные скобки, стоящие после оператора if, то программа будет иметь следующий вид:

1 2 3 4 5 6 7 8
int main ( ) { int t=2,b=7,r=3; if ( a>b ) if ( b c ) t=b; else r=t; return (0); }

В этом случае r получит значение равное 3, так как ключевое слово else относится ко второму оператору if, который не выполняется, поскольку не выполняется условие, проверяемое в первом операторе if.

Следующий фрагмент иллюстрирует вложенные операторы if:

1 2 3 4 5 6 7 8
char ZNAC; int x,y,z; : if (ZNAC == ‘-‘) x = y — z; else if (ZNAC == ‘+’) x = y + z; else if (ZNAC == ‘*’) x = y * z; else if (ZNAC == ‘/’) x = y / z; else .

char ZNAC; int x,y,z; : if (ZNAC == ‘-‘) x = y — z; else if (ZNAC == ‘+’) x = y + z; else if (ZNAC == ‘*’) x = y * z; else if (ZNAC == ‘/’) x = y / z; else .

Из рассмотрения этого примера можно сделать вывод, что конструкции использующие вложенные операторы if, являются довольно громоздкими и не всегда достаточно надежными. Другим способом организации выбора из множества различных вариантов является использование специального оператора выбора switch.

One thought on “1.4.1-1.4.4 Операторы (пустой, составной, if)”

Методичка классная, но очень много опечаток, видимо студенты набивали текст))) В предпоследнем примере две опечатки: int main ( )
int t=2,b=7,r=3;
if ( a>b ) // правильно будет if ( t>b )
if ( b < c ) t=b; // правильно будет if ( belse r=t;
return (0);
>

Простой и составной операторы

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

Два последовательных оператора обязательно должны разделяться точкой с запятой “;”.

Примеры простых операторов:

a:= 10; b:= a*5; Write(a, b);

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

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

Пример составного оператора:

BEGIN
a:= 10;
b:+ a*5;
Write(a, b)
END;

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

ВАЖНО: Составной оператор применяется в тех случаях, когда синтаксис языка Паскаль допускает использование только одного оператора, в то время как алгоритм требует задания некоторой последовательности действий. В Паскале все управляющие структуры (операторы) не различают простой и составной оператор: там где стоит простой оператор, можно поставить и составной.

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

Условный оператор IF служит для организации процесса вычислений (изменения последовательности выполнения операторов) в зависимости от какого-либо логического условия.

Синтаксис оператора IF:

IF Условие THEN Оператор1 ELSE Оператор2;

IF Условие THEN Оператор;

Условие может быть представлено логической константой (FALSE – ложь, TRUE — истина), переменной логического типа (Boolean) или логическим выражением.

Если условие истинно, то выполняется оператор (простой или составной), следующий за словом THEN, в противном случае, когда условие ложно, будет выполняться оператор, следующий за словом ELSE. Альтернативная ветвь ELSE может отсутствовать, если в ней нет необходимости. В таком “усеченном” варианте, в случае, если условие оказывается ложным, ничего не происходит и выполняется оператор следующий за условным оператором IF.

Пример 1.

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

VAR
x, y: real;
BEGIN
Write(‘Введите значение аргумента: ’); ReadLn(x);
IF x>0 THEN y:= x
ELSE y:= 0;
Write(‘Значение функции y = ’, y)
END.

Условные операторы могут быть вложенными друг в друга:

IF Условие THEN if ПодУсловие then. else.
ELSE. ;

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

При вложениях условных операторов самое главное – не запутаться в вариантах сочетаний условий (отчасти этому может помочь ступенчатая форма записи операторов). Всегда действует правило: альтернатива ELSE считается принадлежащей ближайшему условному оператору IF, не имеющему ветви ELSE. Например:

IF Условие1 THEN if Условие2 then Оператор_А
ELSE Оператор_Б;

По записи может сложиться впечатление, что Оператор_Б будет выполняться только при “невыполнении” Условия1. Но на самом деле он будет отнесен к Условию2 и выполнится только при выполнении Условия1 и невыполнении Условия2! Если необходимо, чтобы Оператор_Б выполнялся именно при невыполнении Условия1, то единственный выход таков: заключить вложенный (усеченный) оператор IF в операторные скобки begin…end:

IF Условие1 THEN begin
if Условие2 then Оператор_А
end
ELSE Оператор_Б;

В условии оператора IF может стоять достаточно сложное логическое выражение. О правилах построения логических выражений см. раздел “Логические выражения”.

Оператор варианта CASE

Оператор варианта необходим в тех случаях, когда в зависимости от значения какой-либо переменной нужно выполнить те или иные операторы (простые или составные). Если вариантов всего два, то можно обойтись и оператором IF. Но если их, например, десять? В этом случае оптимален оператор варианта CASE.

Синтаксис оператора CASE:

CASE УправляющаяПеременнаяИлиВыражение OF
НаборЗначений1: Оператор1;
НаборЗначений2: Оператор2;
НаборЗначений3: Оператор3;
.
НаборЗначенийN: ОператорN
ELSE АльтернативныйОператор
END;

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

Если в наборе несколько значений, то они разделяются между собой запятой.. Можно указывать диапазоны значений, например, 0..9 – все значения от нуля до девяти. Наборы значений и диапазоны можно комбинировать. Между набором значений и соответствующим ему оператором обязательно ставится символ “:”.

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

Оператор (Оператор1, Оператор2, …) в конкретном варианте может быть как простым, так и составным.

Пример 1.

PROGRAM Example_CASE_1;
VAR A: integer;
BEGIN
Write(‘Введите оценку: ‘); Read(A);
CASE A OF
2: Write(‘неудовлетворительно’);
3: Write(‘удовлетворительно’);
4: Write(‘хорошо’);
5: Write(‘отлично’)
ELSE Write(‘Ошибка!’)
END;
END.

Здесь в зависимости от значения переменной А на экран выводится наименование оценки. Наличие варианта ELSE обеспечивает вывод сообщения об ошибке в случае, когда введено число вне интервала 2..5.

Пример 2.

PROGRAM Example_CASE_2;
VAR Hour: integer;
BEGIN
Read(Hour);
CASE Hour OF
0, 24: Write(‘Полночь’);
1..4: Write(‘Ночь’);
5..7: Write(‘Раннее утро’);
8..11: Write(‘Утро’);
12: Write(‘Полдень’);
13..17: Write(‘День’);
18..23: Write(‘Вечер’)
ELSE Write(‘Введено число вне диапазона 0..24!’)
END;
END.

Источник: infopedia.su

Алгоритмические конструкции. Составной оператор. Оператор выбора IF. Сложные условия

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