Здравствуйте. Какого типа должен быть файл?
а) Файл assort -- это исходные данные. Т.е. надо создать и сохранить в "Блокноте" этот файл, а потом написать программу на Паскале, которая открывает его, находит там данные по условию и выводит их на экран?
Type Toy = record {Запись}
name: string [50]; {Название}
price: word; {Цена}
LowAge: byte; {Нижняя граница возраста}
HighAge: byte; {Верхняя граница возраста}
end;
Var f: file of Toy; {Типизированный файл}
z: Toy;
fname: string;
maxPrice: integer;
begin
readln (fname); {Ввод имени файла}
assign (f, fname); {Ассоциируем переменную с файлом на диске. Вместо fname можно написать 'Assort', если имя файла постоянно, тогда ввод не нужен}
reset (f); {Открываем файл для чтения}
maxPrice:= -1; {Устанавливаем нмаксимум на отрицательное число, посольку отрицательной цены не может быть}
while not eof(f) do {Пока не конец файла}
begin
read (f, z); {Считываем запись}
if (z.name='Konstruktor') and (z.price>maxPrice) then maxPrice:= z.price; {Если это конструктор и его цена больше - перезапоминаем}
end;
if maxPrice<0 then writeln ('Net konstruktorov') {Если цена осталась отрицательной - конструкторов не встретилось}
else writeln ('Price: ', maxPrice); {Иначе выводим результат}
close (f); {Закрываем файл}
end.
Мой вариант подходит?
type
assortiment = record {Описание записи ассортимент}
name : string[30]; {Название игрушки}
chena : integer; {Цена}
vozrast : string[10]; {Возрастное ограничение}
end;
var
F: File of assortiment;
spisok: assortiment;
i, y, min, max: integer;
v: string;
begin
i:= 0;
AssignFile(F, 'assort.dat');
Reset(F);
Repeat
Seek(F, i);
Read(F, spisok);
inc(i);
v:= spisok.vozrast;
if Length(v) > 1 then
begin {Возрастные ограничения от до}
y:= pos('-', v);
min:= StrToInt(copy(v, 1, y - 1));
max:= StrToInt(copy(v, y + 1, length(v) - 1));
if (5 >= min) and (5 <= max) then
y:= 5;
end
else
if StrToInt(spisok.vozrast) = 5 then {Ограничение просто один числом}
y:= 5;
if (spisok.chena <= 140) and (y = 5) then {название игрушек, цена которых не превышает 140 руб. и которые подходят детям 5 лет}
begin
writeln ('name: ', spisok.name);
end;
Until eof(f);
CloseFile(F);
end.
Здесь AssignFile(F, 'assort.dat'); надо полный путь к файлу. У меня в компе нет турбо паскаля и Pascal abc net
rewrite(f);
for y:= 0 to 2 do
begin
readln(spisok.name);
readln(spisok.chena);
readln(spisok.vozrast);
write(f, spisok);
end;
CloseFile(F);
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.