Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Проверьте,правильно ли я сделал программу и блок схему

Данил Селиванов Ученик (189), на голосовании 2 недели назад
Само задание:





Программа:
var
input: string;
digit: Integer;
code: Integer;
begin
WriteLn('Введите цифру (0-9):');
ReadLn(input);

Val(input, digit, code);

if code = 0 then
begin
if (digit >= 0) and (digit <= 9) then
begin
case digit of
0: WriteLn('Zero');
1: WriteLn('One');
2: WriteLn('Two');
3: WriteLn('Three');
4: WriteLn('Four');
5: WriteLn('Five');
6: WriteLn('Six');
7: WriteLn('Seven');
8: WriteLn('Eight');
9: WriteLn('Nine');
end;
end
else
begin
WriteLn('Ошибка: введено значение вне диапазона (0-9).');
end;
end
else
begin
WriteLn('Ошибка: некорректный ввод. Пожалуйста, введите целое число.');
end;
end.
Голосование за лучший ответ
kaiu Высший разум (119042) 1 месяц назад
Я бы задание дал «для введенной цифры (0–9) вывести название на анг. языке».
И этого достаточно.
А вот когда говорят
«для КАЖДОЙ введенной цифры»
то это предполагает, что вводится то будет множество цифр.
Вот я ввел число 123 и мне должно быть напечатано тогда one two three
Но это я так...преподы могут эти тонкости не знать и задание пройдет.
Правильно ли сделал...ну, как бы да, хотя писать каждый раз WriteLn избыточно и просто можно было выбрать слово из массива слов по индексу 0–9...но почему бы и не так как ты :) Как можно с массивом прикрепляю на скрине
Данил СеливановУченик (189) 1 месяц назад
Может ли от digit 9 перейти вот так? Будет ли это ошибкой?
Данил СеливановУченик (189) 1 месяц назад
именно у меня в блок-схеме
kaiu Высший разум (119042) Данил Селиванов, у тебя если 9 то напечать, а иначе на выход. Все может быть и так. Просто полно этих If изображено, по сути и коде так должно быть. Но в коде у тебя переключатель, то бишь case и он не делает кучи сравнений пока дойдет до 9. Если в ассемблер заглянуть, то он по сути делает подобное, что устроил с массивом, он просто переходит на нужную метку, на нужный код. Поэтому case работает быстрее чем множество if. По идее в той проге где-то верно рисует, согласно гост (крин прилагаю). Ну или тут глянь http://www.programmer-lib.ru/pascal_page.php?id=21
Похожие вопросы