Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posobie_2012_ispr_1_1_1.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.65 Mб
Скачать

Структура «выбор»

Структура «выбор» является развитием структуры «развилка». В отличие от структуры «развилка» в ней имеется возможность выбора более двух действий. Она имеет вид:

где P1, …, РN — логические выражения (условия); S1, ..., SN+1 — операторы.

На Бейсике данная структура реализуется следующим образом:

Бейсик

IF <условие1> THEN

<оператор1>

ELSEIF <условие2> THEN

<оператор2>

ELSEIF <условиеN> THEN

<операторN>

ELSE <операторN+1>

END IF


На блок-схемах структура «выбор» изображается также по-другому:

где W — выражение, S1, S2, …, SN+1 – операторы.

На Бейсике, Паскале и Си она реализуется в виде оператора варианта.

Бейсик

SELECT CASE <выражение>

CASE <условиe1>

<оператор1>

CASE <условиeN>

<операторN>

CASE ELSE

<операторN+1>

END SELECT

Паскаль

case <выражение> of

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

. . .

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

else <операторN+1>

end ;

Си

switch (<выражение>)

case <константа1> : <оператор1> ; break;

. . .

case <константаN> : <операторN> ; break;

default : <операторN+1> ; break;

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

Бейсик

SELECT CASE <выражение>

CASE <условиe1>

<оператор1>

CASE <условиeN>

<операторN>

END SELECT

IF <условие1> THEN

<оператор1>

ELSEIF <условие2> THEN

<оператор2>

ELSEIF <условиеN> THEN

<операторN>

END IF

Паскаль

сase <выражение> of

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

. . .

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

end ;

Си

switch (<выражение>)

case <константа1> : <оператор1> ; break;

. . .

case <константаN> : <операторN> ; break;

Структура «цикл с предусловием»

Структура «цикл с предусловием» имеет вид:

где Р – логическое выражение (условие), S – оператор или группа операторов (тело цикла).

На языках программирования для ее реализации имеется оператор цикла с предусловием:

Бейсик

Паскаль

Си

DO WHILE <условие>

<оператор>

LOOP

while<условие>

do <оператор>;

while (<условие>)

<оператор>;

Пример 4.4

Задача: Вводить целые числа, до тех пор, пока не будет введено отрицательное число. Определить сумму и количество введенных чисел.

program chisla;

uses crt;

var k,s,n:integer;

begin

clrscr;

k:=0;

s:=0;

write('Введите число - ');

readln(n);

while n>0 do

begin

k:=k+1;

s:=s+n;

write(' Введите число - ');

readln(n);

end;

writeln('Сумма введенных чисел =',s);

writeln('Количество введенных чисел =',k);

readln;

end.