![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() добрый вечер, уважаемые программисты. помогите, пожалуйста, дописать программу на Делфи 7.
задание программы, которое я уже сделаны: 1)написать программу по вводу числа, месяца и года (начиная с 2001) выводить является ли год высокосным или нет. вот код Код:
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Edit4: TEdit; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; tdate=class month,day,year:integer; procedure setvalue(m,d,y:integer); function leapyear:boolean; end; var Form1: TForm1; aday:tdate; mn,dn,yn:integer; implementation {$R *.dfm} procedure tdate.setvalue(m,d,y:integer); begin month:=m; day:=d; year:=y; end; function tdate.leapyear:boolean; begin if (year mod 4 <>0) then leapyear:=false else if (year mod 100<>0) then leapyear:=true else if (year mod 400<>0) then leapyear:=false else leapyear:=true; end; procedure TForm1.Button1Click(Sender: TObject); begin // ctvorenna obektu aday:=tdate.Create ; // vikorictanna ego mn:=strtoint(form1.edit1.text);dn:=strtoint(form1.edit2.text);yn:=strtoint(form1.edit3.text); aday.setvalue(mn,dn,yn); if aday.leapyear then showmessage('Visokicniy rik:' + inttostr(aday.year)+' '+inttostr(yn)) else showmessage('NEvisokicniy rik:' + inttostr(aday.year)); //znichenna obekta form1.edit4.Text:='Vi vveli datu '+inttostr(dn)+'/'+inttostr(mn)+'/'+inttostr(yn); aday.Free; end; begin // ctvorenna obektu aday:=tdate.Create ; // vikorictanna ego mn:=1;dn:=1;yn:=2001; aday.setvalue(mn,dn,yn); if aday.leapyear then showmessage('Visokicniy rik:' + inttostr(aday.year)) else showmessage('NEvisokicniy rik:' + inttostr(aday.year)); //znichenna obekta aday.Free; end. нужно дописать эту программу так, чтобы по вводу числа месяца выводился сезон года (зима,весна,лето,осень). вот мною дописанный вариант кода (про сезон года) Код:
case month of 12,1,2:showmessage('Winter'); 3..5:showmessage('Spring'); 6..8:showmessage('Summer'); 9..11:showmessage('Autumn'); end; или вот ещё вариант Код:
mes:=strtoint(edit1.text); case mes of 1,2,12: label1.caption:='Зима'; 3,4,5: label1.caption:='Весна'; 6,7,8: label1.caption:='Лето!!!!!!!!!!!!!!'; 9..11: label1.caption:='Осень'; end; только я не знаю куда нужно вставить эту часть. заранее огромное спасибо за советы! |
#2
|
||||
|
||||
![]() Можно и без огорода про "высокосный" год обойтись, в смысле без функции leapyear - в SysUtils такая уже есть
Код:
if IsLeapYear(1984) then // это он Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
![]() куда именно поставить в мою программу часть про определение времени года по месяцу?
чтобы можно было посчитать дни, которые прошли сначала года Последний раз редактировалось M.A.D.M.A.N., 19.09.2013 в 22:47. |
#4
|
||||
|
||||
![]() Цитата:
Добавлено позже Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 19.09.2013 в 21:35. |