Мои Конспекты
Главная | Обратная связь


Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Телоцикла



Постановка задачи

Определить является ли число четным и кратным 5 .

Формализация задачи

Для проверки всех веток алгоритма ,решение данной задачи необходимо представить в трёх вариантах: с циклом while, repeat и for. Все варианты объединить с помощью оператора выбора case.

L: селектор типа char (W,w-while, R,r-repeat, F,f-for).

Для проверки числа на четность следует использовать функцию ODD, в случае если число делится на 5 без остатка и четное мы печатаем –да ,иначе –нет.

При выборе пользователем ‘W’,’w’ или ‘R’,’ r’ циклы while и repeat соответственно будут продолжаться до тех пор, пока пользователь не введёт однозначное либо пятизначное число.

При выборе пользователем ‘F’,’f’ цикл for повторится 4 раза, количество повторов соответствует количеству веток в алгоритме , каждый раз будет возможность ввести число и проверить условие.

Если значение селектора отлично от возможных, программа выведет предупреждающее сообщение ‘error’ и завершится.

3.Схемы алгоритмов

Телоцикла

начало
A

 

 


(not odd(A)) and (A mod 5)=0 )

 

нет да

 

 

‘Да’
‘Нет’

 

 


 

 

конец

 

 


Рис. 1


 

3.2 Схема основного алгоритма программы

Лист 1

начало

 

W,w-while  
R,r – repeat

F,f-for

Ввод L
L

 


Ввод A
‘W’,’w’

 

(A>10) and (A<9999)

 

нет

 

да

A
Тело цикла

 

 


На лист 2

 


Рис. 2

Нет

Лист 2

А
Из листа 1

 

Ввод A
‘R’,’r’

 

Тело цикла

 

 


 

нет

(A<10) and (A>9999)

да

i:=1;4
‘F’,’f’

Ввод A
Тело цикла

 


 

Error
else

 

конец

 

 


Рис. 2

4. Листингзадачи

Programtest;

usescrt;

var

a:integer;

i:byte;

l:char;

begin

clrscr;

writeln('W-while,R-repeat,F-for');

readln(l);

casel of

'w', 'W': begin

writeln('Enter a number');

readln(a);

while(a>=10)and(a<9999) do begin

if(notodd(a)) and(a mod5=0) then

writeln('yes')

elsewriteln('no');

readln(a);

end;

if(a<10)or(a>9999) thenwriteln('error');

end;

'r','R': begin

 

repeat

writeln('Enter a number');

readln(a);

begin

if(notodd(a)) and(a mod5=0) then

writeln('yes')

elsewriteln ('no');

end;

writeln('Enter one more number');

readln(a);

until(a<10)or(a>9999);

if(a<10)or(a>9999) thenwriteln('error');

end;

 

'f','F':

fori:=1 to4 do

begin

writeln('Enter a number');

readln(a);

if(notodd(a)) and(a mod5=0) then

writeln('yes')

elsewriteln('no');

end;

 

else writeln(‘error’);

end;{для кейса}

readln;

end.

 

5. Проверка подлинности работы алгоритма

Для проверки подлинности введем 4 различных числа в цикле for :

11 no

12 no

13 no

20 yes

После выполнения алгоритма из раздела 3.1(тело цикла) ,должно выводится сообщение либо «да» либо «нет» .

 

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

алгоритма.

 

Рассмотрим эти числа :

1) Вводим число 11 ,по первому условию(11mod 2)=0 - ложь. Поэтому выводится сообщение «нет».

2) Вводим число 12 ,по первому условию ( notodd(12))-истина, проверяем по второму условию ( 12 mod 5)=0 –ложь.

Поэтому выводится сообщение «нет».

3) Вводим число 13 ,по первому условию (not odd(13))-ложь. Поэтому выводится сообщение «нет».

4) Вводим число 20 ,по первому условию ( notodd(20))-истина, проверяем по второму условию ( 20 mod 5)=0 –истина.

Поэтому выводится сообщение «да».