Этапы разработки программы. Разработка или выбор алгоритма решения поставленной задачи. Оформление документации на программу, страница 12

case<константное выражение2>:<оператор(ы)2>;                :        

 :                                                                                                   < список констант >:<оператор n>;               

case<константное выражение n >:<оператор(ы) n>;              [else<оператор>] ;       

[default:<оператор(ы)>]                                                            end;

}                                                                                                                            

Замечание: Оператор switch иногда называют оператором переключателем.

Выполнение оператора case: Вычисляется значение выражения, стоящего после ключевого слова case. Значение этого выражения может принадлежать целому, символьному, логическому типам, а также перечислимому и ограниченному.

Если значение выражения равно одной из переменных до: констант, то выполняется соответствующий оператор. Если значение выражения не совпадает ни с одной из констант списка, то выполняется оператор, следующий за else. Если же else отсутствует, то выполняется оператор, следующий за оператором case.

Последовательность действий

 

Последовательность действий

 

Последовательность действий

 
Ромб: выражениеВыполнение оператора switch: Вычисляется значение <выражения>, после чего оно начинает сравниваться с константными выражениями. При установлении соответствия выполняются операторы, следующие за соответствующим case,а далее все операторы тела switch, как бы не замечая case и default, пока не будет встречен оператор break, передающий управление за тело оператора switch.Оператор, следующий за default выполняется, если значение <выражения> не совпало не с одним константным выражением.

 


:       

:  

 


Пример применения оператора выбора: Требуется проанализировать значение переменной rez, которая является выставленной оценкой.

1)      switch(rez)

{

case 5 : printf(“Оценка – отлично.”); break;

case 4 : printf(“Оценка – хорошо.”); break;

case 3 : printf(“Оценка – удовлетворительно.”); break;

case 2 : printf(“Оценка – неуд.”); break;

default :  printf(“Неверное значение rez”);

}

2)     case rez of

5 : writeln(‘оценка - отлично’);         

4 : writeln(‘оценка - хорошо’);    

3 : writeln(‘оценка – удовлетворительно’);

2 : writeln(‘оценка– неуд’);

else writeln(‘Неверное значение rez’);

end;

§11. Преобразование типов данных в языках С и PASCAL

11.1. Преобразование типов данных в языке PASCAL

В языке PASCAL почти невозможны неявные  (автоматические) преобразования типов. Только константы и переменные целого типа разрешается использовать в выражениях вещественного типа.

Пример:

Var x : integer;

y : real;

begin

y := x+2;

Для явного преобразования типов используются встроенные функции:

1) Для преобразования real à integer используются функции:

round(x) – округляет х до ближайшего целого;

Пример:  var x : integer;

y : real;

y := 3.9;      

x := round(y);   //à4

y := 0.5;

x := round(y);   //à1

trunc(x) – отбрасывает дробную часть числа;

y := 3.9;      

x := trunc(y);   //à3

2) Для преобразования   charàinteger используется функция ORD, а обратно функция CHR     

Пример: var c : char;

x  : integer;

x = ord(c) – выдает порядковый номер символа c

c = chr(x)  - выдает символ с порядковым номером x.

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

Например в Turbo PASCAL str(x,s) – преобразует вещественное (целое) x в его строковое представление s, val(s, x, code) – преобразует строковое представление числа s в численное (вещественное, целое) x.

11.2 Преобразование типов данных в языке С