Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LN05 оператори мови PASCAL.DOC
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
205.31 Кб
Скачать

7.3.2. Оператор обрання case

Використовується в тому випадку, коли змінна може приймати ряд дискретних значень. Загальний вигляд оператора:

CASE <K> OF

<значення K1 чи список значень K1>: S1

<значення K2 чи список значень K2>: S2

.

.

<значення KN чи список значеньN>: SN

[ELSE SN+1]

END;

Де: K - вираз чи змінна перелічувального типу;

S1 .. SN+1 - оператори, які використовуються в тому разі, коли вираз чи змінна K набуває відповідного значення. Вони можуь бути складеними. Виконання оператора можна проілюструвати наступною блок-схемою та діаграмою дій:

Обчислення K

S1

так

ні

S2

так

ні

: :

: :

SN

так

ні

SN+1

<K>

S1

S2

SN

SN+1

Приклад: з'ясувати, парне чи непарне число NUMBER.

program control;

{ програма з'ясовує, парне чи непарне число NUMBER}

var NUMBER : integer;

begin

writeln('введіть число для перевірки (ціле) :');

readln( NUMBER );

case NUMBER mod 2 of

0: writeln(NUMBER,'парне');

1: writeln(NUMBER,'непарне');

end;

end.

Приклад: застосування змінної власно перелічувального типу. З'ясувати, чи є день тиждня робочим чи вихідним, і, якщо він робочий, то який саме.

program day;

var day : (MN,TU,VN,TH,FR,ST,SN);

begin

: {надання значення змінній day}

case day of

ST,SN : writeln('Вихідний день');

else begin

case day of

MN : writeln('Понеділок');

TU : writeln('Вівторок');

VN : writeln('Середа');

TH : writeln('Четвер');

FR : writeln('Пыятниця')

end

end;

:

end.

Приклад: з'ясувати, якому з двох диапазонів належить ціле число і, [0,10] чи [25,40].

program analisys;

var i:integer;

begin

. {визначення значення i}

.

case i of

0..10 : writeln(' i у диапазоні [0..10]');

25..40 : writeln(' i у диапазоні [25..40]')

else writeln(' i за межами обох диапазонів')

end;

.

.

end.

7.4. Оператори циклу

У мові програмування Паскаль реалізовано три типи операторів циклу:

- цикл з параметром FOR .. TO/DOWNTO .. DO;

- цикл з передумовою WHILE .. DO;

- цикл з постумовою REPEAT .. UNTIL.

7.4.1. Цикл з параметром (лічильником)

Загальний вигляд:

а) FOR <керуюча змінна,i>:=<початкове значення,n0> TO <кінцеве зачення,nf>

DO <оператор,S>;

Ілюстрація у термінах блок-схем та діаграм дій:

I:=n0

(I=n0, nf )

S

S

I:=I+1

0

1

Де: S- простий оператор,може бути складеним;

І,n0,nf- змінні будь-якого перелічувального типу, n0<=nf.

б) FOR i:=n0 DOWNTO nf DO S;

при цьому n0>=nf

I:=n0

-1

(I=n0, nf )

S

S

I:=I-1

0

1

Приклад: Змінна циклу не використовується в тілі циклу: вивести десять зірок у рядку.

program stars;

var i:integer;

begin

for i:=1 to 10 do

write ('*');

writeln;

end

Приклад: Змінна циклу використовується в тілі циклу: вивести значення цілих від m до n у зворотньому порядку.

program step1;

var i,n,m:integer;

begin

write('введіть значення m та n, n>m');

readln(m,n);

for i:=n downto m do

write (i:3);

end.

Приклад: Використання як параметру циклу змінної символьного типу: вивести коди символів ASCII від ’a’ до ’z’.

program cod;

{вивести коди символів ascii від ’a’ до ’z’}

var sm:char;

begin

for sm:='a' to 'z' do

write (ord(sm),' - ',sm);

end.

Обмеження:

- обов’язково повинні виконуватися співвідношення:

n0 < nf (для циклу FOR/TO)

n0 > nf (для циклу FOR/DOWNTO)

інакше цикл не виконується;

- керуюча змінна i повинна бути локальною у даному блоці, щоб вона не змінювала значення глобальної змінної з таким самим ім’ям;

- не слід змінювати змінну циклу в тілі циклу;

- якщо тип змінної циклу не цілий, то при визначенні значення змінної циклу на наступному кроці використовуються процедури SUCC чи PRED.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]