Помогите плз. решить задачку (pascal)

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
GieNa
Сообщения: 1
Зарегистрирован: 25 дек 2006, 23:22

Помогите плз. решить задачку (pascal)

Дан файл f, содержащий сведения об игрушках: указывается название игрушки(например, кукла, кубики,мяч,конструктор и т.д.), её стоимость в копейках и возрастные границы детей, для которых игрушка предназначена (например, для детей от двухз до пяти лет). Получить следующие сведения:
а) названия игрушек, цена которых не превышает 4 руб. и которые подходят детям 5 лет;
б) цену самого дорогого конструктора, оформленную по образцу ... руб. ... коп. ;
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Сколько игрушек должно быть?
Вот пример программы, где игрушка одна. (естественно второе условие здесь отбрасывается);

Код: Выделить всё

uses crt;
var f: text;
     info: record
     cost: integer;
     name: string;
     Bgra: integer;
     Egra: integer;
   end;
begin
assign(f,'a.txt');    {например}
reset(f);
readln(f,info.cost);
readln(f,info.name);
readln(f,info.Bgra);
readln(f,info.Egra);
clrscr;
if (info.cost<=4) then begin
 if (info.Bgra>=1) and (info.Egra<=5) then begin
     writeln('Имя игрушки, удовлетворяющей 1-му условию - "',info.name,'"');
     writeln('Цена - ',info.cost,' коп.');
     writeln('Возрастная категория от ',info.Bgra,' до ',info.Egra);
     readkey;
     exit;
   end;  end;
writeln('Нет игрушки, удовлетворяющей условию....');
readkey;
end.

Тут входной файл должен содержать:
1. Цена
2. Имя
3. Начало возр. границы
4. Её конец
Например

Код: Выделить всё

15
Конструктор
3
7
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Допустим, Сost - цена в копейках и имеется не одна запись.

Код: Выделить всё

uses crt;

Type TInfo = record
     cost: integer;
     name: string;
     Bgra: integer;
     Egra: integer;
   end;

var        f: text;
        info: TInfo;
 MaxCostToy: TInfo;

function ReadRecord: TInfo;
begin
Readln(F, ReadRecord.Cost)
Readln(F, ReadRecord.Name)
Readln(F, ReadRecord.Bgra)
Readln(F, ReadRecord.Egra)
end;

begin
assign(f,'a.txt');    {например}
reset(f);
clrscr;
MaxCostToy.Cost := -1;
While not eof(F) do begin
Info := ReadRecord;
if (info.cost<=4) and ((info.Bgra>=1) and (info.Egra<=5)) then 
     begin
     writeln('Имя игрушки, удовлетворяющей 1-му условию - "',info.name,'"');
     writeln('Цена - ',info.cost,' коп.');
     writeln('Возрастная категория от ',info.Bgra,' до ',info.Egra);
     end;  
If (Info.Name = 'Конструктор') and (Info.Cost > MaxCostToy.Cost) then MaxCostToy := Info;
end;
Writeln('Most priced constructor toy: ', (MaxCostToy.Cost div 100), ' r. ', (MaxCostToy.Cost mod 100), ' k.');
Readkey;
end.
It's a long way to the top if you wanna rock'n'roll
Ответить