| 
| 
 | Вопрос # 6 640/ вопрос открыт / | 
 |  Здравствуйте, эксперты!Есть код программы, которая по заданной дате должна рассчитать год и написать високосный он или нет. В Делфи пока ещё новичок.
 Вот я набрал код... Но компилятор выдает несколько ошибок и я не могу понять в чем дело? Подскажите, в чем ошибки? Код прилагаю и ошибки в виде скрина.
 И второй вопрос - как можно уменьшить эту программу? чтобы она выполняла те же функции, но кода было меньше? (методом подпрограмм может)?
 Помогите пожалуйста. Что не так в этом коде?
 Приложение:Переключить в обычный режим unit Unit2; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs; StdCtrls; type  TForm2 = class(TForm)  Edit1: TEdit;  Edit2: TEdit;  Button1: TButton;  procedure Button1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;   function CheckNum(Sd, Sm, Sy: String; var Day, <onth, Year: Integer): Boolean;  procedure ReadData(S: string; var Sd, Sm, Sy: string);  function VisYear (Year: Integer): Boolean; var  Form2: TForm2;  i: Integer;  Res: LongInt;  implementation {$R *.dfm}  procedure ReadData(S: String; var Sd, Sm, Sy: String);var  i, p: Integer;begin  i := 0;  while length (S) > 0 do begin    p := Pos ('.', S);    if p > 0 then begin    case i of    0: Sd := Copy(S, 1, p-1);    1: Sm := Copy(S, 1, p-1);    end:    Delete(S, 1, p);    end else begin      case i of      2: Sy := S;      end;      S := '';      end;      Inc(i);      end:      end; function CheckNum (Sd, Sm, Sy: String; var Day, Month, Year: Integer); Boolean;begin  CheckNum := True;  try    Day := StrToInt (Sd);    except    CheckNum := False;     end;     try      Month := StrToInt (Sm);      except        CheckNum := false;         end;         try          Year := StrToInt(Sy);          except            CheckNum := false;             end;            end; function VisYear(Year: Integer): Boolean;begin  if ( ((Year mod 4 = 0)and(Year mod 100 <> 0)) or  (Year mod 400 = 0) )   else VisYear := False;end; procedure TForm2.Button1Click(Sender: TObject);var  i, p: Integer;  FDay, FMonth, FYear, Tday, Tmonth, TYear: Integer:  S, Sd, Sm, Sy: string;  Code: Integer;  MaxD: Integer;  begin    S :=Edit1.Text;   i:=0;      ReadData(S, Sd, Sm, Sy);       end;   if CheckNum(Sd, Sm, Sy, FDay, FMonth, FYear) then begin      if (FMonth <= 0) or (FMonth > 12) then begin        Exit;       end;       case FMonth of       1,3,5,7,8,10,12: MaxD:=31;       4,6,9,11: MaxD:=30;       2: if ( ((FYear mod 4 = 0)and(FYear mod 100 <>0)) or       (FYear mod 400 = 0) )        else MaxD:=28;       end;       if ((FDay <= 0) or (FDay > MaxD)) then begin        Exit;       end;       end;         S := Edit2.Text;       ReadData(S, Sd, Sm, Sy);         if CheckNum(Sd, Sm, Sy, Tday, TMonth, TYear) then begin        if(Tmonth <=0) or (Tmonth >12) then begin        Exit;       end;       case Tmonth of       1,3,5,7,8,10,12: MaxD:=31;       4,6,9,11: MaxD:=30;       2: if ( ((TYear mod 4 = 0)and( TYear mod 100 <>0)) or       (TYear mod 400 = 0) )        else MaxD:=28;       end;       if ((Tday <= 0) or (Tday > MaxD)) then begin        Exit;       end;       end;       end;        end.    
|  |   Вопрос задал: Zebra Head (статус: Посетитель)Вопрос отправлен: 1 декабря 2016, 17:26
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 3; последнее сообщение — 1 декабря 2016, 18:09; участников в обсуждении: 3. 
|   | min@y™ (статус: Доктор наук), 1 декабря 2016, 18:01 [#1]:не надо так вопросы задавать. Как звучит оригинал задания?
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | DNK (статус: Студент), 1 декабря 2016, 18:04 [#2]:Скрина в упор не вижу. Как минимум не те скобки выбраны для комментариев. "Digital Networked Knight" |  
|   | Леонид (статус: 1-ый класс), 1 декабря 2016, 18:09 [#3]:function IsLeapYear(Year: Word): Boolean; begin
 Result := (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0));
 end;
 
 Вот все!
 Это смотрите в Delphi модуль System.SysUtils
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |