Другие языки программирования и технологии
Помогите,пожалуйста,решить задачу в Паскале.
Учитель немного неуравновешен(мягко сказано),поэтому забил на весь класс, и только тем,кто идет на 4.5 и 5 дал задачи. 2 из 3 я решил,но с вот этой встрял(потому что она вообще ни разу не показывала даже что-то подобное :D) Заранее спасибо. Дата некоторого дня определяется тремя натуральными числами: g (год), m (порядковый номер месяца), n (число). По заданным g, m, n определить: а) дату предыдущего дня; б) дату следующего дня. В обеих задачах рассмотреть два случая: 1) заданный год не является високосным; 2) заданный год может быть високосным.
Acronix... а нех копипастить всё подряд из интернета, так, что, извини, но пидор это ты. На заборе тоже много чего написано.
function leap(g: integer): boolean;
begin
leap := ((g mod 4 = 0) and (not (g mod 100 = 0))) or (g mod 400 = 0);
end;
function correct(g, m, n: integer): boolean;
begin
case m of
1, 3, 5, 7, 8, 10, 12: correct := (n >= 1) and (n <= 31);
2: correct := (n >= 1) and (((n <= 28) and (not leap(g))) or ((n <= 29) and (leap(g))));
4, 6, 9, 11: correct := (n >= 1) and (n <= 30);
else
correct := False;
end;
end;
procedure GetNextDate(var g, m, n: integer);
begin
n := n + 1;
if (not correct(g, m, n)) then
begin
n := 1;
m := m + 1;
if (not correct(g, m, n)) then
begin
m := 1;
g := g + 1;
end;
end;
end;
procedure GetPrevDate(var g, m, n: integer);
begin
n := n - 1;
if (not correct(g, m, n)) then
begin
m := m - 1;
case m of
1, 3, 5, 7, 8, 10, 12: n := 31;
4, 6, 9, 11: n := 30;
2: n := 29 - byte(not leap(g));
else
m := 12;
n := 31;
g := g - 1;
end;
end;
end;
var
g, m, n: integer;
s: char;
begin
repeat
repeat
write('year: '); readln(g);
write('month: '); readln(m);
write('day: '); readln(n);
until correct(g, m, n);
GetNextDate(g, m, n);
writeln('Next date: ',g, '-', m, '-', n);
GetPrevDate(g, m, n);
GetPrevDate(g, m, n);
writeln('Prev date: ',g, '-', m, '-', n);
write('Continue [press ''N'' to stop]:'); readln(s);
until (UpCase(s) = 'N');
writeln('Press ENTER to close');
readln;
end.
function leap(g: integer): boolean;
begin
leap := ((g mod 4 = 0) and (not (g mod 100 = 0))) or (g mod 400 = 0);
end;
function correct(g, m, n: integer): boolean;
begin
case m of
1, 3, 5, 7, 8, 10, 12: correct := (n >= 1) and (n <= 31);
2: correct := (n >= 1) and (((n <= 28) and (not leap(g))) or ((n <= 29) and (leap(g))));
4, 6, 9, 11: correct := (n >= 1) and (n <= 30);
else
correct := False;
end;
end;
procedure GetNextDate(var g, m, n: integer);
begin
n := n + 1;
if (not correct(g, m, n)) then
begin
n := 1;
m := m + 1;
if (not correct(g, m, n)) then
begin
m := 1;
g := g + 1;
end;
end;
end;
procedure GetPrevDate(var g, m, n: integer);
begin
n := n - 1;
if (not correct(g, m, n)) then
begin
m := m - 1;
case m of
1, 3, 5, 7, 8, 10, 12: n := 31;
4, 6, 9, 11: n := 30;
2: n := 29 - byte(not leap(g));
else
m := 12;
n := 31;
g := g - 1;
end;
end;
end;
var
g, m, n: integer;
s: char;
begin
repeat
repeat
write('year: '); readln(g);
write('month: '); readln(m);
write('day: '); readln(n);
until correct(g, m, n);
GetNextDate(g, m, n);
writeln('Next date: ',g, '-', m, '-', n);
GetPrevDate(g, m, n);
GetPrevDate(g, m, n);
writeln('Prev date: ',g, '-', m, '-', n);
write('Continue [press ''N'' to stop]:'); readln(s);
until (UpCase(s) = 'N');
writeln('Press ENTER to close');
readln;
end.
> она вообще ни разу не показывала даже что-то подобное
А ты не в курсе что детский сад давно кончился и никто тебе не обязан ничего показывать ?
Тоже мне "антошка" - "Это мы не проходили" ))))
А ты не в курсе что детский сад давно кончился и никто тебе не обязан ничего показывать ?
Тоже мне "антошка" - "Это мы не проходили" ))))
ОМГ Acronix смастерил говнокод, лол.
вата да?
Похожие вопросы
- Pascal. Помогите пожалуйста решить задачу в паскале !
- Помогите пожалуйста решить задачу в паскале.
- помогите пожалуйста!!!!решить задачу на паскале...
- помогите пожалуйста решить задачи в паскале очень нужно!
- Помогите пожалуйста решить задачу в Паскале!
- Люди помогите пожалуйста решить задачу по паскалю
- Помогите, пожалуйста решить задачу на паскале.
- Помогите пожалуйста решить задачи по программированию. P.S: задачи по паскалю.
- Помогите,пожалуйста,решить задачу на двумерные массивы,в паскале.(задача вн.)Спасибо.
- Помогите пожалуйста с задачей на Паскаль.