Использование оператора варианта case в Turbo Pascal
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-23 12:25:27
|
|
|
ни разу не дигитал ака свалил
Сообщений: 695
Оценки: 0
Присоединился: 2005-02-22 19:55:08
|
Собственно сабж. Написал прогу с использованием этого оператора. Суть проги заключается в следующем: Необходимо вывести на печать название дня недели соответствующее заданному числу ''a'' при условии что в месяце 31 день и 1ое число - понедельник. Саму прогу я написал без проблем. Вот исходник: var d:byte; begin write(''d=''); readln(d); case d mod 7 of 1:writeln(''ponedelnik''); 2:writeln(''vtornik''); 3:writeln(''sreda''); 4:writeln(''chetverg''); 5:writeln(''pyatnica''); 6:writeln(''subbota''); 0:writeln(''voskresenie''); end; end.
Далее я захотел реализоватьобработку ошибочно введённых чисел {32 к примеру}. Для этого к вышенаписанному коду я добавил ветвь else. Потом понял что у всх чисел делённых на семь будет целыи остаток. Собственно вопрос: как это можно сделать? Я имею в виду обработку ''неправильных'' чисел.
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-23 13:15:05
|
|
|
stinger25
Сообщений: 276
Оценки: 0
Присоединился: 2004-12-21 02:41:03
|
поставь проверку на d до case исли она более 31 или менее 1 проси ввести число заново
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-23 13:16:46
|
|
|
ни разу не дигитал ака свалил
Сообщений: 695
Оценки: 0
Присоединился: 2005-02-22 19:55:08
|
сеичас попробую.
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-23 13:44:07
|
|
|
ни разу не дигитал ака свалил
Сообщений: 695
Оценки: 0
Присоединился: 2005-02-22 19:55:08
|
Короче я сделал так: после ввода d поставил условие что если d больше 0 и меньше 32 то выполнять задачу. но если ввести в=32 к примеру то прога просто это проигнорирует так как отсутствует ветвь else. а else присобачить у мня не получается т.к. Паскаль считает что ветвь else принадлежит case of а она по идее должна принадлежать if then. Короче я запутался. Может кто нить выложить исходныи код проверки. И ещё надо чтобы если число задано неправильно { меьше или равное 0 и большое чем 32 } выводилась мессага '!'. Короче я просто запутался с else. Помогите плз!
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-23 20:49:06
|
|
|
peng0
Сообщений: 20
Оценки: 0
Присоединился: 2005-02-23 14:12:52
|
label : i; var day:byte; begin i:write('day'); readln(day); if i>31 then goto i; case day mod 7 of 1:writeln('ponedelnik'); 2:writeln('vtornik'); 3:writeln('sreda'); 4:writeln('chetverg'); 5:writeln('pyatnica'); 6:writeln('subbota'); 0:writeln('voskresenie'); else writeln('faq'); end; end.
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-23 21:03:32
|
|
|
}{akep
Сообщений: 23
Оценки: 0
Присоединился: 2004-07-29 20:58:46
|
var d:byte; begin write('d='); readln(d); if (d<0) or (d>32) then writeln('Error!'); else begin case d mod 7 of 1:writeln('ponedelnik'); 2:writeln('vtornik'); 3:writeln('sreda'); 4:writeln('chetverg'); 5:writeln('pyatnica'); 6:writeln('subbota'); 0:writeln('voskresenie'); end; end; end.
не проверял, но работать должно
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-24 08:55:27
|
|
|
peng0
Сообщений: 20
Оценки: 0
Присоединился: 2005-02-23 14:12:52
|
label i; var day:byte; begin i:write('day'); readln(day); if day>31 then goto i; case trunc(day mod 7) of 1:writeln('ponedelnik'); 2:writeln('vtornik'); 3:writeln('sreda'); 4:writeln('chetverg'); 5:writeln('pyatnica'); 6:writeln('subbota'); 0:writeln('voskresenie'); else writeln('faq'); end; readln; end.
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-25 01:32:25
|
|
|
stinger25
Сообщений: 276
Оценки: 0
Присоединился: 2004-12-21 02:41:03
|
var d:byte; begin repeat write('d='); readln(d); until(d<32); case d mod 7 of 1:writeln('ponedelnik'); 2:writeln('vtornik'); 3:writeln('sreda'); 4:writeln('chetverg'); 5:writeln('pyatnica'); 6:writeln('subbota'); 0:writeln('voskresenie'); end; end.
так тоде должно работать, условие в until вроде так задается, давно не писал на паскале (делфи), подзабыл слегка
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-26 13:42:51
|
|
|
Zhech
Сообщений: 12
Оценки: 0
Присоединился: 2005-02-21 18:04:22
|
Мужики, ну вы и даете))) Чего вас на лейблы понесло? данная прога ж… как это… ну, не то, что можно сильно обдумывать.. Короче, смотри: var day: integer; begin WriteLn('day?:'); ReadLn(day); if ((day >= 1) and (day <= 31)) then begin case (day mod 7) of 1: WriteLn('ponedelnik'); 2: WriteLn('vtornik'); …….. …….. 7: WriteLn('voskresene'); end else begin WriteLn('ne pravilno vveli chislo!!'); end; end. А вообще, если чесно, я вообще не понимаю, нафиг она такая нужна))) И, блин, кака это ты вычисляешь, какой день недели у тебя просто по числу, без месяца и года[sm=mad.gif][sm=9.gif]
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-26 17:30:17
|
|
|
ни разу не дигитал ака свалил
Сообщений: 695
Оценки: 0
Присоединился: 2005-02-22 19:55:08
|
2Zhech поверь она мне нужна. твои вариант ИМХО не заработает. 2all всё я сделал. спасибо за помощь.
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-26 17:31:43
|
|
|
ни разу не дигитал ака свалил
Сообщений: 695
Оценки: 0
Присоединился: 2005-02-22 19:55:08
|
2Zhech поверь она мне нужна. твои вариант ИМХО не заработает. 2all всё я сделал. спасибо за помощь.
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-27 06:26:40
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Я не понимая чего вы мучаетесь, в стандартной библиотеке C, например, есть функции для конвертации структурок типа timeval_t и time_t куда угодно и с учётом установок локали. Ну неужто проф. Вирт не подумал и не приделал аналогичные возможности к Pascal? поройтесь в библиотеках.
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-27 14:25:50
|
|
|
ни разу не дигитал ака свалил
Сообщений: 695
Оценки: 0
Присоединился: 2005-02-22 19:55:08
|
да я искал их в том то и всё дело: не нашёл.
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-28 02:30:11
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
Тады ищи в Win32API, там должно быть.
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-28 15:23:15
|
|
|
mayday
Сообщений: 14
Оценки: 0
Присоединился: 2004-11-18 00:32:28
|
ну вроде так..
var<BR>d:byte;<BR>begin<BR>repeat<BR>write('d=');<BR>readln(d);<BR>until(d<32) and (d>0); <BR>case d mod 7 of<BR>1:writeln('ponedelnik');<BR>2:writeln('vtornik');<BR>3:writeln('sreda');<BR>4:writeln('chetverg');<BR>5:writeln('pyatnica');<BR>6:writeln('subbota');<BR>0:writeln('voskresenie');<BR>end;<BR>readln;<BR>end.
|
|
|
Использование оператора варианта case в Turbo Pascal - 2005-02-28 18:55:05
|
|
|
ни разу не дигитал ака свалил
Сообщений: 695
Оценки: 0
Присоединился: 2005-02-22 19:55:08
|
2rgo покопаюсь хотя думаю мои поиски меня никчему не приведут[sm=8.gif] 2mayday усё проблема решена спасибо.
|
|
|
|
|