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

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> Класс календаря., ООП
сообщение
Сообщение #1


Новичок
*

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

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


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


Perl. Just code it!
******

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

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


Посмотри здесь : FAQ: Задачи, связанные с календарем


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Спс. Там уже смотрел. Нужно реализовать класс. Создать свой модуль)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну, так в чем проблема? Поменяй заголовки процедур функций на методы, и сделай класс...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


зачем менять? просто в кучу собрать...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

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

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


Подскажите в чем ошибка? Убрал все лишнее из пирмера. Пытаюсь откомпилировать в делфи,появляеться ошибка(


Код
unit kalendar;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;


type
  Tdate = class
   d : byte;      
   m : byte;      
   y : integer;  
  end;

  Tstyle = (grigorian, julian);

function numofday(dat : tdate; style : tstyle) : longint;
function  dayofweek(dat : tdate; style : tstyle) : byte;
function lenofmonth(month : byte; year : word; style : tstyle) : byte;
function isleap(year : integer):boolean;  

type
  TForm1 = class(TForm)
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation


{***************************************************************************}

  function numofday;
     var
          stcor : integer;
     begin

          if style = grigorian then
               begin
                    stcor := 2-dat.y div 100+dat.y div 400;
                    if ((dat.y mod 100 = 0) and (dat.y mod 400 <> 0)) and (dat.m <= 2) then stcor := stcor + 1;
               end
                               else
               begin
                    stcor := 0;
               end;

          inc(dat.m);

          if dat.m <= 3 then
               begin
                    dat.m := dat.m+12;
                    dec(dat.y);
               end;
          numofday := (36525*dat.y) div 100 + (306*dat.m) div 10 + stcor + dat.d;
     end;

{***************************************************************************}

  function dayofweek;
     var

          day                 : byte;
          buf                 : longint;
     begin
          buf := numofday(dat, style);
          buf := buf+4;
          day := buf mod 7;
       if day = 0 then day := 7;
          dayofweek := day;
     end;

{***************************************************************************}

function lenofmonth;
     var
          len                 : byte;
     begin
          case month of
               2 : begin
                        if year mod 4 = 0 then len := 29
                                          else len := 28;
                        if (style = grigorian) and (year mod 100 = 0) and (year mod 400 > 0) then len := 28;
                   end;
               4, 6, 9, 11 : len := 30
               else len := 31;
          end;
          lenofmonth := len;
     end;

{***************************************************************************}

function isleap;
     begin
          isleap := (((year mod 4 = 0) and (year mod 100 <> 0)) or (year mod 400 = 0));
     end;


end.


Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
Пытаюсь откомпилировать в делфи,появляеться ошибка(
blink.gif У меня в Delphi 6 все откомпилировалось нормально... Какая у тебя ошибка, и где возникает?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

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

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


Ошибка при компеляции такая "Project1.exe raised exception class EresNotFound with message 'Resource Tform1 not found".Prossec Stoped.Use step or run cont...."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Ничего подобного... ЭТО - не ошибка компиляции, а ошибка времени выполнения. Ты запустил свою программу, и она выдала тебе это исключение...

Ничего не могу сказать, ибо не знаю, где именно у тебя возникает исключение. Может, в твоем коде? Ни одного слова связанного с модулем Kalendar я не нашел...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Прогрессор
****

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

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


Стоп, Egor Vladimirovich, ты пытаешься откомпилировать один модуль, без проекта? Тогда понятно, почему ошибка - форма-то не создана.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

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

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


Вроде разобрался) Спасибо! Еще один вопрос! Почему при работе выдает ошибку в это куске программы :

~~~~~~~~~~~~~~~~~~~~~
dat.d:=strtoint(edit5.text);
dat.m:=strtoint(edit6.text);
dat.y:=strtoint(edit7.text);
~~~~~~~~~~~~~~~~~~~~~

Но прекрасно работает если присваивать значания самому:
Например:

~~~~~~~~~~~~~~~~~~~~~
dat.d:=18; dat.m:=10; dat.y:=2006;
~~~~~~~~~~~~~~~~~~~~~

Описание Tdate:

~~~~~~~~~~~~~~~~~~~~~
type
Tdate = class
d : byte;
m : byte;
y : integer;
end;
~~~~~~~~~~~~~~~~~~~~~
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Помогите написать свойства( property ) для функций:

function numofday(dat : tdate; style : tstyle) : longint;
function dayofweek(dat : tdate; style : tstyle) : byte;
function lenofmonth(month : byte; year : word; style : tstyle) : byte;
function isleap(year : integer):boolean;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Свойства для функций - это как?
Что они делают?
Egor Vladimirovich, КАКУЮ ошибку?
Во время РАБОТЫ или при компиляции?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

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

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


мисс_граффити Свойства для методов например:
function numofday(dat : tdate; style : tstyle) : longint;
а свойство будет выглядеть так
property d:tdate; read d write d;( или как то так,особо разбираюсь)

С предъидущей ошибкой я разобрался... спс


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


так. то ли я в терминологии не понимаю, то ли не я.....
свойства - грубо говоря, это механизмы доступа к полям. так?
свойства отличаются от полей тем, что связаны с некоторыми действиями. Как минимум - просто записью и считыванием из поля. При желании - проверкой корректности ввода и дополнительными фишками (ну например: для класса "фигура" свойство "цвет" может обеспечивать перерисовку на экране).
что может ДЕЛАТЬ (не как выглядеть, а что делать? зачем оно нужно??) свойство для функции (или метода, не суть важно).


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Новичок
*

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

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


Собственно во всем разобрался и все сделал,спасибо за помощь!!! Кто хочет может скачать и посмотреть exe файл!!! Пишите свои комментарии!!! smile.gif smile.gif smile.gif smile.gif smile.gif smile.gif


Прикрепленные файлы
Прикрепленный файл  Project.rar ( 168.1 килобайт ) Кол-во скачиваний: 118
Прикрепленный файл  class.rar ( 192.62 килобайт ) Кол-во скачиваний: 68
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Новичок
*

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

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


Как реализовать процедуру поиска числа дней между 2 датами? дата в формате д.м.г! Помогите!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


решалось.
см. FAQ


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Новичок
*

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

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


Уже посмотрел, нашел только процедуру сравнения 2 дат(одна больше другой и т.д.) А то что мне нужно найти к сожалению не удалось. sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Самая первая задача.
То же самое, только наоборот: по времени и дате вычисляется другая дата.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 




- Текстовая версия 26.09.2017 23:27
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"