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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2009, 15:37   #1
Andrux
Пользователь
 
Регистрация: 01.11.2008
Сообщений: 46
По умолчанию Внести в задачу пару условий,пожалуйста помогите(Pascal-record)тип записи...

Доброго времени суток, пожалуйста помогите
внести в задачу, условия такого типа;

Найти запись удовлетворявшую след. условия: среди жанра игр "стратегия"
вышедшие в 2009 году и которые имеют минимальные системные требования.

Код:
Program AnzStr;
Uses crt;
TYPE
   Date = Record
   Month : 1..12;
   Day : 1..31;
   Year : 2000..2009;
     end;
   Person = Record
   Nazvanie : string;
   Vishla : (Net,Da);
   SysTreb : string;
   Janr: string;
   Datavix: date;      
     end;
       var i:person;
           s:byte;
         begin
           with i do
         begin
         clrscr;
         textcolor(Green);
           write('Nazvanie=');readln(Nazvanie);
           write('Janr=');readln(Janr);
           write('Vishla li Igra (0-Net, 1-Da)');readln(s);
           if s=0 then vishla:=Net else vishla:=Da;
           write('SysTreb=');readln(SysTreb);
           WITH Datavix do
               begin
                 write('Year=');readln(Year);
                 write('Month=');readln(Month);
                 write('Day=');readln(Day);
               end;
              end;
               writeln('--------------------------------');
               writeln(' ');
               writeln('--------------------------------');
                WITH i do
                  begin
                    writeln('Nazvanie=',Nazvanie);
                    writeln('Janr=',Janr);
                    writeln('Vishla=');if vishla=Net then writeln('Net') else writeln('Da');
                    writeln('Systreb=',Systreb);
                    writeln('Datavix:');
                      WITH Datavix do
                      begin
                        writeln('Year=',Year);
                        writeln('Month=',Month);
                        writeln('Day=',Day);
                        end;
                          readln
                       end;
                       end.
Заранее благодарю, за помощь в добавлении записей!
Andrux вне форума Ответить с цитированием
Старый 15.02.2009, 17:08   #2
v.dmitry
Новичок
Джуниор
 
Регистрация: 15.02.2009
Сообщений: 2
По умолчанию

Компилятора нет, так что синтаксис и работоспособность проверь

Program AnzStr;
Uses crt;
TYPE
Date = Record
Month : 1..12;
Day : 1..31;
Year : 2000..2009;
end;

Person = Record
Nazvanie : string;
Vishla : (Net,Da);
SysTreb : string;
Janr: string;
Datavix: date;
end;
const
n=20;
var
db array[1..n] of person;
i,j,s,min: byte;

BEGIN
writeln('KOl-vo zapisey=');
readln(j);
i:=1;
while(i<=j) do
Begin
write('Nazvanie=');
readln(a[i].Nazvanie);
write('Janr=');
readln(a[i].Janr);
write('Vishla li Igra (0-Net, 1-Da)');
readln(s);
if s=0 then a[i].vishla:=Net else a[i].vishla:=Da;
write('SysTreb=');
readln(a[i].SysTreb);
end;
i:=2;
min=1;
while (i<=j) do
if (a[i].Janr='Strategy') and (a[i].Vishla=1) and (a[i].Systreb<=a[min].Systreb) then min=i;

// просто выводи эл-т массива с номером min;

END;
"Есть только две бесконечные вещи: вселенная и человеческая глупость, причем насчет вселенной я не уверен." - А.Эйнштейн
v.dmitry вне форума Ответить с цитированием
Старый 15.02.2009, 17:51   #3
Andrux
Пользователь
 
Регистрация: 01.11.2008
Сообщений: 46
По умолчанию

v.dmitry
немного не по моей теме... не стал проверять на работоспособность.

вот что получилось на данный момент:
Код:
Program AnzStr;
Uses crt;

TYPE
   TGenre = (comedy, strategy, action, horror, drame);
   YesNo = (Net, Da);

   Date = Record
     Month : 1..12;
     Day : 1..31;
     Year : 2000..2009;
   end;
   Person = Record
     Nazvanie : string;
     Vishla : YesNo;
     SysTreb : string;
     Janr: TGenre;
     Datavix: date;
   end;

const
  Titles: array[Tgenre] of string[8] =
    ('comedy', 'strategy', 'action', 'horror', 'drame');
  strYN: array[YesNo] of string[3] = ('Net', 'Da');

  size = 10;

var
  arr: array[1 .. size] of Person;
  i, s: byte;
  G: TGenre;

begin
  clrscr;
  textcolor(Green);

  for i := 1 to size do begin
    writeln('Record #', i);

    with arr[i] do begin
      write('Nazvanie='); readln(Nazvanie);

      write('genre : (');
      for G := low(TGenre) to high(TGenre) do
        write(ord(G), '=' + Titles[G] + ' ');
      write(')');
      repeat readln(s); until s in [0 .. ord(high(TGenre))];
      Janr := TGenre(s);

      write('Vishla li Igra (0-Net, 1-Da)'); readln(s);
      vishla := YesNo(s);

      write('SysTreb='); readln(SysTreb);
      WITH Datavix do begin
        write('Year=');readln(Year);
        write('Month=');readln(Month);
        write('Day=');readln(Day);
      end;
    end;
  end;

  writeln('--------------------------------');
  writeln;
  writeln('--------------------------------');
  for i := 1 to size do
    if arr[i].Janr = strategy then
      WITH arr[i] do begin
        writeln('Nazvanie=',Nazvanie);
        writeln('Janr=',Titles[Janr]);
        writeln('Vishla=', strYN[vishla]);
        writeln('Systreb=',Systreb);
        writeln('Datavix:');
        WITH Datavix do begin
          writeln('Year=',Year);
          writeln('Month=',Month);
          writeln('Day=',Day);
        end;
        readln;
      end;

end.
Andrux вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Тип record deu4er Помощь студентам 10 11.02.2009 04:19
Перевести тип String в тип PChar (Delphi 7) ScorpioN_T Помощь студентам 2 28.10.2008 22:13
Помогите, пожалуйста, решить задачу на Turbo Pascal. Тема: записи. Morrigan13 Помощь студентам 1 28.03.2008 21:09