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


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

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

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

Определить является ли число четным и кратным 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.1 Телоцикла

начало
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

 

‘R’,’r’

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

 


 

да

(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

writeln('Enter a number');

readln(a);

repeat

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 (a<10)or (a>9999) then writeln(‘error’);

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

writeln('yes')

elsewriteln('no');

end;

 

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

readln;

end.

 

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

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

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

 

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

алгоритма.

 

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

1) Вводим число 10 ,по первом условию (notodd(10)) –истина, проверяем по второму условию (10 mod 5)=0 -истина. Поэтому выводится сообщение «да».

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

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

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

4) Вводим число 9 ,по скольку это число однозначное выводится сообщение ‘error’ и программа завершается.