Версия для печати темы
Форум «Всё о Паскале» _ Задачи _ Определить день недели
Автор: Spinne 6.12.2003 0:32
Задали мне задачку с таким условием:
ИСПОЛЬЗУЯ СИМВОЛЬНЫЕ ПЕРЕМЕННЫЕ И ДРУГИЕ ТИПЫ ПЕРЕМЕН-
НЫХ,СОСТАВИТЬ ПРОГРАММУ - ОПРЕДЕЛИТЬ ДЕНЬ НЕДЕЛИ В ЗАВИСИМОСТИ ОТ ДАТЫ В ТЕКУЩЕМ ГОДУ.
Я наклепал следующее:
Код
program Lab411;
type month=1..12;
days=1..31;
var
x:integer;
y:real;
d:days;
m:month;
label 1,2;
BEGIN
writeln('введите число, месяц');
readln(d,m);
if m>12 then goto 1;
case m of
1,3,5,7,8,10,12:if d>31 then goto 1;
2:if d>28 then goto 1;
4,6,9,11:if d>30 then goto 1;
end;
case m of
1:x:=d;
2:x:=31+d;
3:x:=59+d;
4:x:=90+d;
5:x:=120+d;
6:x:=151+d;
7:x:=181+d;
8:x:=212+d;
9:x:=243+d;
10:x:=273+d;
11:x:=304+d;
12:x:=334+d;
end;
y:=x-7*(int(x/7));
if y=0 then writeln('вторник');
if y=1 then writeln('среда ');
if y=2 then writeln('четверг');
if y=3 then writeln('пятница');
if y=4 then writeln('суббота ');
if y=5 then writeln('воскресенье');
if y=6 then writeln('понедельник');
goto 2;
1: writeln('ошибка ввода ');
2:END.
Вроде как работает, но всё ли правильно?
Автор: fms 6.12.2003 1:38
вот не моя прогр. (откуда не оч. помню.. ). опр-ет день недели и кол-во дней между 2-мя датами.
Код
program Days; {$N+,E+}
var
r,f:comp;
y,d,m:integer;
procedure pause; assembler;
asm
mov ah,8
int 21h
or al,al
jne @
int 21h
@:
end;
procedure pro80;
var
w:byte;
st:string[11];
begin
f:=365*y+d+31*(m-1);
if m<=2 then
begin
f:=f+trunc((y-1)/4);
f:=f-trunc(3*(trunc((y-1)/100+1))/4)
end
else begin
f:=f-trunc(0.4*m+2.3)+trunc(y/4);
f:=f-trunc(3/4*(trunc(y/100)+1))
end;
w:=trunc(f-trunc(f/7)*7);
case w of
0: st:='вс'; 1: st:='пн';
2: st:='вт'; 3: st:='четв'; 4: st:='среда';
5: st:='пт'; 6: st:='сб '
end;
writeln('это день --- ',st); writeln
end;
procedure read_dt;
const sp='введите деньмесяцгод: [dd mm yyyy]: ';
begin
write(sp); read(d,m,y); pro80
end;
begin
writeln; write('определение дня недели и ');
writeln('кол-ва дней м/у датами.'); writeln;
read_dt; r:=f; read_dt;
writeln('между этими датами -- ',
abs(f-r):15:0,' дней.'); pause
end { Days }.
Автор: Spinne 6.12.2003 14:44
Оччень интересно...
Автор: Spinne 6.12.2003 15:03
А как насчёт схемы алгоритма?
Автор: fms 6.12.2003 23:52
только там не оч. определяется правильность введенной даты.. т.е. можно вводить номер месяца, например, больше 12.. но эт не сложно добавить наверно..
Автор: Spinne 7.12.2003 16:04
И всё така алгоритм!
Автор: fms 7.12.2003 16:12
дак а что алгоритм?! я ведь не буду программу словами переписывать.. а алгоритма у меня нету..
Автор: Spinne 7.12.2003 23:12
Цитата
дак а что алгоритм?!
Помоги мне свой составить!
Автор: fms 8.12.2003 1:17
:o
для начала.. хотя бы "пожалуйста" можно говорить.. >:(
а потом.. если у тебя есть 2 варианта решений.. то ты сам не сможешь составить?!
Автор: oleg309 8.12.2003 1:26
Цитата
:o
для начала.. хотя бы "пожалуйста" можно говорить.. >:(
а потом.. если у тебя есть 2 варианта решений.. то ты сам не сможешь составить?!
СОГЛАСЕН! >:( И свои мысли покажи! Халявы сдеся нету!!
Автор: fms 8.12.2003 2:05
2oleg309
по собственному опыту? ;D
___
свои мысли он уже показал.. см. самое начало ..
Автор: Spinne 8.12.2003 22:56
Ну так вот говорю всем ПОЖАЛУЙСТА!!!!!!
А насчёт халявы плохо...
НУ НЕ ПОНИМАЮ Я СХЕМУ АЛГОРИТМА!
Автор: trminator 8.12.2003 23:56
А чем тебя твоя-то программа не устраивает? Вроде работает...
Автор: Spinne 9.12.2003 2:52
Работает, согласен. А алгоритм надо. Без него лабораторную не приймут...
Автор: fms 9.12.2003 14:25
2Spinne
дак если ты написал 1-ую свою программу.. значит ты знаешь ее алгоритм?! дак в чем проблема? :-/
Автор: Spinne 9.12.2003 22:38
А ты можешь начертить схеиу алгоритма согласно ГОСТ 19.701-90?
Автор: fms 10.12.2003 0:27
2Spinne
я не знаю что это за ГОСТ. как то не надо мне было подобного.. тебе что блок схема нужна что ли?!
Автор: Spinne 10.12.2003 1:01
может быть........... :-[
Автор: fms 10.12.2003 1:13
2Spinne
а ты хоть немного представление имеешь как это сделать?! т.е. может вам на занятиях рассказывали?.. или как? я просто например не знаю про этот ГОСТ. т.к. не оч. надо было..
поточнее расскажи как и что.. может что нить придумается..
Автор: Spinne 10.12.2003 1:31
Уважаемый fms, пришли мне свой имейл, и я зброшу тебе пару файликов. А там посмотрим.........В январе сессия............печально..............
Автор: fms 10.12.2003 2:07
2Spinne
только я она.
я конечно понимаю что у тебя сессия.. но у меня тоже. так что..
что же ты весь семестр делал?..
мыло пришлю.