Найти знак зодиака по дате в формате string - Free Pascal
Формулировка задачи:
Пользователь вводит дату рождения,программа должна выяснить знак зодиака по данной дате. Дата числится в формате string. Без констант
Решение задачи: «Найти знак зодиака по дате в формате string»
textual
Листинг программы
program zodiac; uses crt; const ds=['.','0'..'9']; var s:string[5]; i,k,t,k1,k2,f,c,d,m:integer; begin clrscr; repeat writeln('Введите дату рождения в формате ДД.ММ:'); readln(s); k:=0; for i:=1 to length(s) do if not (s[i] in ds) then k:=k+1; t:=0; for i:=1 to length(s) do if s[i]='.' then t:=t+1; if k>0 then writeln('Введены недопустимые символы!'); if t>1 then writeln('Введено более одной точки!'); if pos('.',s)<>3 then writeln('Точка стоит не на месте!'); if length(s)<>5 then writeln('Введено неверное количество символов!'); val(copy(s,4,2),f,c); m:=f;k1:=0; if not(m in [1..12])then begin k1:=1; writeln('Неверно введен месяц!'); end; val(copy(s,1,2),f,c); d:=f;k2:=0; if ((m=2)and(d>29))or((m in [1,3,5,7,8,10,12])and(d>31)) or((m in [4,6,9,11])and(d>30))or(d<1)then begin k2:=1; writeln('Неверно введен день!'); end; if(k>0)or(k1>0)or(k2>0)or(t>1)or(pos('.',s)<>3 )or(length(s)<>5)then writeln('Повторите ввод.'); until(k=0)and(k1=0)and(k2=0)and(t=1)and(pos('.',s)=3 )and(length(s)=5); case m of 1:case d of 1..19:write('Козерог'); 20..31:write('Водолей'); end; 2:case d of 1..18:write('Водолей'); 19..29:write('Рыбы'); end; 3:case d of 1..20:write('Рыбы'); 21..31:write('Овен'); end; 4:case d of 1..21:write('Овен'); 22..30:write('Телец'); end; 5:case d of 1..2:write('Телец'); 21..31:write('Близнецы'); end; 6:case d of 1..21:write('Близнецы'); 22..30:write('Рак'); end; 7:case d of 1..22:write('Рак'); 23..31:write('Лев'); end; 8:case d of 1..22:write('Лев'); 23..31:write('Дева'); end; 9:case d of 1..22:write('Дева'); 23..30:write('Весы'); end; 10:case d of 1..22:write('Весы'); 23..31:write('Скорпион'); end; 11:case d of 1..22:write('Скорпион'); 23..30:write('Стрелец'); end; 12:case d of 1..21:write('Стрелец'); 22..31:write('Козерог'); end; end; readln end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д