IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Цель задачи: Вводим дату и программа показывает день недели., помогите найти ошибку
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


	
var

a,b,c: integer;

p,v,s,f: real;

begin

write (’Введите число:’);

readln (a);

writeln (‘Введите месяц’);

readln (b);

writeln ('Введите год');

readln ©;

p:=(c mod 4);
v:=(c div 4);

if p=0 then case b of
1: b:=31;
2: b:=2*31-3;
3: b:=3*31-3;
4: b:=4*31-4;
5: b:=5*31-4;
6: b:=6*31-5;
7: b:=7*31-5;
8: b:=8*31-5;
9: b:=9*31-6;
10: b:10*31-6;
11: b:=11*31-7;
12: b:=12*31-7;
else
end;
s:=v*364+(c-v)*365+b+a;
f:=s div 7;
case f of
0: writeln ('воскресение');
1: writeln ('понедельник');
2: writeln ('вторник');
3: writeln ('среда');
4: writeln ('четверг');
5: writeln ('пятница');
6: writeln ('суббота');
end;
else case b of
1: b:=31;
2: b:=2*31-2;
3: b:=3*31-2;
4: b:=4*31-3;
5: b:=5*31-3;
6: b:=6*31-4;
7: b:=7*31-4;
8: b:=8*31-4;
9: b:=9*31-5;
10: b:10*31-5;
11: b:=11*31-6;
12: b:=12*31-6;
else
end;
s:=v*364+(c-v)*365+b+a;
f:=s div 7;
case f of
0: writeln ('воскресение');
1: writeln ('понедельник');
2: writeln ('вторник');
3: writeln ('среда');
4: writeln ('четверг');
5: writeln ('пятница');
6: writeln ('суббота');
end;
readln;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 56
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


У меня есть эта программа, только она по другому выполнена, если надо, могу выложить.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 56
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Вот текст этой программы. Она работает как надо.

Program Days;
Var
IsCorrectDate: Boolean;
d,m,y: Integer;

Procedure InputDate(var d,m,y: Integer; var Correctly: Boolean);
begin
Write('Vvedite datu v formate DD MM GGGG: ');
ReadLn(d,m,y);
Correctly := (d>=1) and (d<=31) and (m>=1) and (m<=12) and (y>=1582) and
(y<=4903)
end;

Procedure WriteDay(d,m,y: Integer);
const
Days_of_week: array [0..6] of String [11] =
('Voscresenye','Ponedelnik','Vtornik','Sreda','Chetverg','Pyatnica',
'Subbota');
var
c,w: Integer;
begin
if m < 3 then
begin
m := m + 10;
y := y - 1
end
else
m := m - 2;
c := y div 100;
y := y mod 100;
w := abs(trunc(2.6*m-0.2)+d+y div 4+y+c div 4-2*c) mod 7;
WriteLn(Days_of_week[w])
end;

Begin
Repeat
InputDate(d,m,y,IsCorrectDate);
If IsCorrectDate then
WriteDay(d,m,y)
Until Not IsCorrectDate
End.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 18:45
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name