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

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Записи и динамика, Помогите исправить....
vi-rus
сообщение 6.06.2007 17:02
Сообщение #1


Новичок
*

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

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


Вот 2 задачки :
1 ) Посчитать дату за m дней до текущей.
Помогите, пожалуйста, исправить. Программа неправильно считает високосный год

progrAM DFHSDJFKSD;
USES CRT;
type
 Date=record
  Day:   integer;
  Month: integer;
  Year:  longint;
 end;
 Mon=array[1..12] of word;
const
 MYV: Mon=(31,29,31,30,31,31,30,31,30,31,30,31);
 MYP: Mon=(31,28,31,30,31,31,30,31,30,31,30,31);
var
 Date1, DateNext, DateBefore:Date;
 m,k,y,plus,i,j:integer;
 d,d1:longint;
begin
clrscr;
 textcolor(11);
 textcolor(15);
 writeln;
 textcolor(12);
 writeln('Vvedite daty');
 writeln;
 textcolor(15);
 with Date1 do
  begin
   write('Day: ');
   readln(Day);
   write('Month: ');
   readln(Month);
   write('Year: ');
   readln(Year);
   write('Vvedite m: ');
   readln(m);



   d:=Year*365;
   d:=d+(Year div 4);

   for i:=1 to Month do
    begin
     if Year mod 4=0 then
      begin
       k:=MYV[i]+k;
      end
     else
      begin
       k:=MYP[i]+k;
      end;
    end;
    d:=d+k;
    d:=d+Day;
   d1:=d+m;
   while d1>=365 do
    begin
     y:=y+1;
     if y mod 4<>0  then
      begin
       d1:=d1-365;
      end
     else
      begin
       d1:=d1-366;
      end;
    end;
    i:=1;


    if y mod 4=0 then
     begin
      while d1>MYV[i] do
      begin
       d1:=d1-MYV[i];
       i:=i+1;
      end;
     d1:=d1-2;
     end
    else
    begin
     while d1>MYP[i] do
      begin
       d1:=d1-MYP[i];
       i:=i+1;
     end;

    end;


    d1:=d1;
    i:=i-1;
   writeln(d1);
   writeln(i);
   writeln(y);
   readln;

   end;
end.



2-я программа: помогите дописать : Составить программу, которая вставляет в список temp за первым вхождением элемента Е все элементы списка temp2, если Е входит в temp.

program task3;
uses
    crt;
type
pl = ^list;
str = string[7];

list = record
    field : str;
    next : pl;
end;

var
e:str;
first,temp,temp2:pl;
begin
highvideo;
clrscr;
{}
new(temp);
first := nil;
temp := first;
{INPUT}
writeln('Type temp ( if u want to finish type END)');
readln(temp^.field);
repeat
      new(temp^.next);
      temp := temp^.next;
      readln(temp^.field);
until temp^.field = 'END';

writeln('Type temp2 ( if u want to finish type END)');
readln(temp2^.field);
repeat
      new(temp2^.next);
      temp := temp2^.next;
      readln(temp2^.field);
until temp2^.field = 'END';

temp := nil;
temp := first;
 writeln('Type e-element');
 readln(e);
{OUTPUT}
temp^.next := first^.next;

while (temp^.field <> 'END') do
      begin
      if temp^.field = e then
         begin
         writeln(temp^.field);
         temp := temp^.next^.next;
         end
      else
         begin
         writeln(temp^.field);
         temp := temp^.next;
         end;
      end;
writeln('Press any key.');
readkey;
end.


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

Сообщений в этой теме


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

 

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