задание: составить программу решения задачи. Реализовать с конкретными исходными данными.
дан файл f, содержащий сведения об игрушках: указывается название игрушки (например, кукла, кубики, мяч, конструктор и т.д.), её стоимость в копейках и возрастные границы детей, для которых игрушка предназначена (например, для детей от двух до пяти лет). Получить сведения:
названия наиболее дорогих игрушек (цена которой отличается от цены самой дорогой игрушки не более чем на 1 руб.)
вот создание файла:(здесь всё правильно) Program RGR3_vspom;
type igra=record
nazv_e:string[20];
stoim_t:0..10000;
min_vozrast:0..4;
max_vozrast:5..12;end;
Var f:file of igra;a:igra;i,n:byte;
Begin Assign(f,'H:/RGR3.dat');
rewrite(f);
write('vvod n=');readln(n);
For i:=1 to n do begin
write('vvod nazv_e=');readln(a.nazv_e);
write('vvod stoim_t=');readln(a.stoim_t);
write('vvod min_vozrast=');readln(a.min_vozrast);
write('vvod max_vozrast=');readln(a.max_vozrast);
write(f,a);end;
close(f);
end.
вот основная программа(вот здесь что-то неправильно):
Program RGR3_osnov;
type igra=record
nazv_e:string[20];
stoim_t:0..10000;
min_vozrast:0..4;
max_vozrast:5..12;end;
Var f:file of igra;a:igra;max:0..10000;
Begin assign(f,'H:/RGR3.dat');Reset(f);
writeln('spisok_samyh_dorogih_igrushek');
while not EOF(f) do begin
read(f,a);a.stoim_t:=max;
If a.stoim_t>max then a.stoim_t:=max;
If (max-a.stoim_t)<=100 then writeln(a.nazv_e);
end;
End.
10 января 2009 в 9:00
да точно)
привык уже, что с файлами без файловых переменных..
10 января 2009 в 3:02
точнее так
max:=0;
while not eof(f) do
begin
read(f,a);
if a.stoim.t>max then max:=a.stoim_t;
end;
reset(f);
while not eof(f) do
begin
read(f,a);
if max-a.stoim_t<=100 then writeln(a.nazv_e);
end;
10 января 2009 в 2:02
max:=0;
while not eof(f) do
begin
read(a); if a.stoim.t>max then max:=a.stoim_t;
end;
reset(f);
while not eof(f) do
begin
read(a);if max-a.stoim_t<=100 then writeln(a.nazv_e);
end;
24 декабря 2008 в 19:03
1. Сначала находишь максимальное значение
2. только ПОСЛЕ этого выводишь на экран нужные товары
Как вариант:
Начальное значение для max – стоимость первой игрушки, считанной из файла.
Делай два цикла, храни считанное из файла в массиве.
24 декабря 2008 в 17:05
а это уже другой вопрос
24 декабря 2008 в 16:05
ну тогда как найти максимальные значения?
24 декабря 2008 в 0:00
1) значение max не определено.
2) зачем считанной из файла стоимости, присваивать максимальное значение?
23 декабря 2008 в 23:04
первые ошибки, которые бросаются в глаза:
не Assign(f,'H:/RGR3.dat'); а Assign(f,'H:\RGR3.dat');
в строке If a.stoim_t>max then a.stoim_t:=max; вы присваиваете a.stoim_t значение максимального числа (которое нигде не определено) и в результате в строке If (max-a.stoim_t)<=100 then writeln(a.nazv_e); вы получаете результат вычитания равный – 0 (т.к. a.stoim_t = max)
скорее всего ошибка в этих строчках
23 декабря 2008 в 23:01
Что-то неправильно? Исправь что-нибудь!
Помогло?