16.01.2011, 19:49 | #1 (permalink) |
Member
Регистрация: 02.01.2011
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Найдите, пожалуйста, ошибку
Код:
uses crt; type day=1..31; month=(jan,fv,mr,ap,mj,jun,jul,av,sn,oc,nb,dc); {week=(vs,pn,vt,sr,ch,pt,sb); } var d:day; m:month; {wdl,wd:week;} k:0..12; a:array[jan..dc] of day; s,os:word; begin clrscr; for m:=jan to nb do case ord(m) of 0:a[m]:=31; 3,5,8,10:a[m]:=30; 1:a[m]:=28; else a[m]:=31; end; writeln('День недели 01.01 января'); writeln('0-воскресенье 1-понедельник 2-вторник 3-среда 4-четверг 5-пятница 6-суббота'); readln(d); if d<4 then os:=3-d else os:=10-d; {нужный остаток от деления на 7} s:=0;k:=0; for m:=jan to nb do begin if s mod 7=os then k:=k+1; {если количество всех предшествующих дней в остатке от деления на 7 дает нужное число} end; write('День недели будет',k); readln; end. |
16.01.2011, 19:49 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Схожие по содержанию с вашим топики могут помочь Найдите кота Как убрать эту ошибку? |
16.01.2011, 21:38 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ошибка в том, что переменной d Вы присваиваете значение типа "диапазон" 1..31, а в запросе воскресенью соответствует недопустимое значение "0".
|
16.01.2011, 21:55 | #3 (permalink) |
Member
Регистрация: 02.01.2011
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
подскажите пожалуйста, а где именно лучше исправить.... и правильно ли я оформила задачу...неуверенна че то громоздко у меня для такой задачи...есть ли вариант ее как то упростить
Последний раз редактировалось N@tali; 16.01.2011 в 22:00 |
16.01.2011, 22:07 | #5 (permalink) |
Member
Регистрация: 02.01.2011
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо вам огромное.... вы гений... а я ток учусь... маленько то начала во все вникать....там вроде я перемудрила надо цикл задать до марта токо а я вроде до ноября поставила... в общем запуталась уже
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
16.01.2011, 22:22 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Я бы вообще ограничился чем-нибудь простеньким, вроде вот такого:
Код:
Const DoM:Array[1..12] of Word=(31,28,31,30,31,30,31,31,30,31,30,31); Var Month,Date,i,m:Byte; ND:Word; BEGIN Write('Month (1-12) = '); ReadLn(Month); Write('Date = '); ReadLn(Date); ND:=0; For i:=1 to Month-1 do ND:=ND+DoM[i]; ND:=ND+Date; m:=ND mod 7; Case m of 0:WriteLn('Saturday'); 1:WriteLn('Sunday'); 2:WriteLn('Monday'); 3:WriteLn('Tuesday'); 4:WriteLn('Wednesday'); 5:WriteLn('Thursday'); 6:WriteLn('Friday'); end; ReadLn; END. |
16.01.2011, 22:28 | #7 (permalink) |
Member
Регистрация: 02.01.2011
Сообщений: 18
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Супер. Спасиб огромное.... жаль не могу вам еще плюсик...не дают
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|