Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2013, 11:35   #11
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

а почему если я пишу
edit2.text:=floattostr(m);
то за ошибку выдёт.
nadyaH вне форума Ответить с цитированием
Старый 24.10.2013, 11:46   #12
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Может потому что у переменной m не объявлен тип?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 24.10.2013, 11:55   #13
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

а за какой тип обозначить ?
если m от 1 до 12.
я просто с длефи 7 не работала.
nadyaH вне форума Ответить с цитированием
Старый 24.10.2013, 12:04   #14
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Вот Ваш кусок кода, смотрите, что изменилось:
Код:
VAR
D:EXTENDED;
M:integer;
begin
D:=STRTOFLOAT(EDIT1.Text);
D:=D-1;
M := 12;
IF D=0 THEN
 BEGIN
  M:=M-1;
  IF M=0 THEN M:=12;
  CASE M OF
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 24.10.2013, 13:39   #15
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

почему в начеле присваеться М 12 , если месяц должен вводиться пользователем?!
nadyaH вне форума Ответить с цитированием
Старый 24.10.2013, 13:43   #16
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

VAR
D:EXTENDED;
M:integer;
begin
D:=STRTOFLOAT(EDIT1.Text);
m:=strtoint(edit2.Text);
D:=D-1;
IF D=0 THEN
BEGIN
M:=M-1;
IF M=0 THEN M:=12;
CASE M OF
1: begin D:=31;exit;end;
2: begin D:=28;exit;end;
3: begin D:=31;exit;end;
4: begin D:=30;exit;end;
5: begin D:=31;exit;end;
6: begin D:=30;exit;end;
7: begin D:=31;exit;end;
8: begin D:=31;exit;end;
9:begin D:=30;exit;end;
10:begin D:=31;exit;end;
11:begin D:=30;exit;end;
12:begin D:=31;exit;end;
END;
EDIT3.Text:=FLOATTOSTR(D);
EDIT4.Text:=FLOATTOSTR(M) ;
END;end;end.
ответ не выдаёт =(
что то не так пишу в программе.
nadyaH вне форума Ответить с цитированием
Старый 24.10.2013, 13:58   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

попробуйте так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  D: integer;
  M: 0..12;
begin
  D := STRTOINT(EDIT1.Text);
  M := STRTOINT(EDIT2.Text);
  D := D - 1;
  if D = 0 then
  begin
    M := M - 1;
    if M = 0 then M := 12;
    case M of
      1: begin D := 31 end;
      2: begin D := 28 end;
      3: begin D := 31 end;
      4: begin D := 30 end;
      5: begin D := 31 end;
      6: begin D := 30 end;
      7: begin D := 31 end;
      8: begin D := 31 end;
      9: begin D := 30 end;
      10: begin D := 31 end;
      11: begin D := 30 end;
      12: begin D := 31 end;
    end;
  end;

  EDIT3.Text := IntToStr(D);
  EDIT4.Text := IntToStr(M);
end;
или так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  D: integer;
  M: 0..12;
begin
  D := STRTOINT(EDIT1.Text);
  M := STRTOINT(EDIT2.Text);
  D := D - 1;
  if D = 0 then
  begin
    M := M - 1;
    if M = 0 then M := 12;
    case M of
      1: D := 31 ;
      2: D := 28 ;
      3: D := 31 ;
      4: D := 30 ;
      5: D := 31 ;
      6: D := 30 ;
      7: D := 31 ;
      8: D := 31 ;
      9: D := 30 ;
      10: D := 31 ;
      11: D := 30 ;
      12: D := 31 ;
    end;
  end;
  EDIT3.Text := IntToStr(D);
  EDIT4.Text := IntToStr(M);
end;
или так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  D: integer;
  M: 0..12;
begin
  D := STRTOINT(EDIT1.Text);
  M := STRTOINT(EDIT2.Text);
  D := D - 1;
  if D = 0 then
  begin
    M := M - 1;
    if M = 0 then M := 12;
    case M of
      1,3,5,7,8,10,12: D := 31 ;
      2: D := 28 ;
      4,6,9,11: D := 30 ;
    end;
  end;
  EDIT3.Text := IntToStr(D);
  EDIT4.Text := IntToStr(M);
end;
или так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
   DaysInMonth: array[1..12] of Byte =
       (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var
  D: integer;
  M: 0..12;
begin
  D := STRTOINT(EDIT1.Text);
  M := STRTOINT(EDIT2.Text);
  D := D - 1;
  if D = 0 then
  begin
    M := M - 1;
    if M = 0 then M := 12;
    D := DaysInMonth[M];
  end;
  EDIT3.Text := IntToStr(D);
  EDIT4.Text := IntToStr(M);
end;

Последний раз редактировалось Serge_Bliznykov; 24.10.2013 в 14:07.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.10.2013, 14:23   #18
nadyaH
Форумчанин
 
Регистрация: 24.10.2013
Сообщений: 130
По умолчанию

огромное спасибо ))) всё работает правильно =)
nadyaH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сделать в Delphi 7 c помощью case ilnar Помощь студентам 2 16.12.2009 14:08
Проблема с case и read(string). cdtj Помощь студентам 2 11.11.2009 21:55
Проблема между функцией и select case Mary-Salta Microsoft Office Access 0 06.07.2009 09:17
Mouse Exit для TForm JoanM Общие вопросы Delphi 23 25.01.2008 12:54