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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2010, 17:03   #1
DomiNik
Пользователь
 
Регистрация: 17.05.2010
Сообщений: 26
Восклицание Текстовые файлы!!!(Очень важно)

Создать файл, содержащий сведения об ассортименте игрушек в
магазине. Структура записи – название игрушки, цена, количество, возрас-
тные границы, например 2÷5, т.е. от двух до пяти лет. Количество записей –
произвольное.
Найти игрушки, которые подходят детям от 1 до 3 лет. Определить
стоимость самой дорогой игрушки и ее наименование. Определить игруш-
ку, которая по стоимости не превышает Х руб. и подходит ребенку в воз-
расте от А до В лет. Значения Х, А, В ввести с терминала.

Вот то что я сделал, исправьте если что не так, но работает она не верно(


program lab10;
const n=10;
var i,d,A,B,x,max:integer;
age:array[1..n] of integer;
kol:array[1..n] of integer;
vozrast1:array[1..n] of integer;
vozrast2:array[1..n] of integer;
f:text; nazva:array[1..n] of string;
begin
{assign(f,'d:\lab10.txt');
rewrite(f);
for i:=1 to n do begin
write('type nazvanie ');
readln(nazva[i]);
write('type cena ');
readln(age[i]);
write('type kol-vo ');
readln(kol[i]);
write('type vozrast ot ');
readln(vozrast1[i]);
write('type vozrast do ');
readln(vozrast2[i]);
writeln(f,nazva[i]);
writeln(f,age[i]);
writeln(f,kol[i]);
writeln(f,vozrast1[i]);
writeln(f,vozrast2[i]);
writeln;
end;
close(f);}

writeln('vvedite summy kotoryu planirovali potratit');
readln(x);
writeln('vvedite diapazon vozrasta rebenka, nachinaya ot menshego k bolshemy, cherez probel ili enter');
readln(A,B);
assign(f,'d:\lab10.txt');
reset(f);
max:=0;
for i:=1 to n do begin
readln(f,nazva[i]);
readln(f,age[i]);
readln(f,kol[i]);
readln(f,vozrast1[i]);
readln(f,vozrast2[i]);

if age[i]>max then max:=age[i];
writeln;
if ((age[i]<=x) and ((vozrast1[i]>=A) and (vozrast2[i]<=B))) then begin writeln('nazva: ',nazva[i]); writeln('age: ',age[i]); writeln('kol: ',kol[i]); writeln('vozrast1: ',vozrast1[i]); writeln('vozrast2: ',vozrast2[i]); end;
end;
writeln('nazva: ',nazva[i]); writeln('max=',max);
close(f);
readln;
end.
DomiNik вне форума Ответить с цитированием
Старый 09.06.2010, 17:39   #2
DoDge_VipeR
Форумчанин
 
Аватар для DoDge_VipeR
 
Регистрация: 30.04.2010
Сообщений: 317
По умолчанию

Цитата:
Структура записи – название игрушки, цена, количество, возрас-
тные границы, например 2÷5, т.е. от двух до пяти лет. Количество записей –
произвольное.
а где записи то в вашей программе?
icq:627719[сто сорок четыре] - помогу с Pascal & Delphi!
DoDge_VipeR вне форума Ответить с цитированием
Старый 09.06.2010, 19:30   #3
DomiNik
Пользователь
 
Регистрация: 17.05.2010
Сообщений: 26
По умолчанию

"Запись" имеется в виду просто информация о данном товаре
DomiNik вне форума Ответить с цитированием
Старый 09.06.2010, 22:01   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
"Запись" имеется в виду просто информация о данном товаре
Вы заблуждаетесь!
"запись" - это такой тип данных
Поищите по форуму в разделе Паскаль по слову ТИПИЗИРОВАННЫЙ (так называются файлы с заданным типом) или по слову RECORD


в Вашем случае начало программы может выглядеть, например, так:
Код:
type
  Toy=record
    nazva: string[40];
    age: integer;
    kol: integer;
    vozrast1: integer;
    vozrast2: integer;
       end;
var
  f : file of Toy;
  Toys : array[1..N] of Toy;
....

Последний раз редактировалось Serge_Bliznykov; 09.06.2010 в 22:05.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.06.2010, 15:21   #5
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

Код:
program lab10;
const n=10;
type
Toy=record
  nazva: string[40];
  age: integer;
  kol: integer;
  vozrast1: integer;
  vozrast2: integer;
  end;
var
 f : file of Toy;
 aToy : Toy;
 Toys : array[1..N] of Toy;
 i,d,A,B,x,max:integer;
 maxNazva : String[40];
 Count : Integer;
begin
{
assign(f,'d:\lab10.txt');
rewrite(f);
writeln ('Введите количество записей: ');
readln(Count);
for i:=1 to Count do
  begin
  write('type nazvanie ');
  readln(aToy.nazva);
  write('type cena ');
  readln(aToy.age);
  write('type kol-vo ');
  readln(aToy.kol);
  write('type vozrast ot ');
  readln(aToy.vozrast1);
  write('type vozrast do ');
  readln(aToy.vozrast2);
  write ( f, aToy );
  end;
Close(f);
}
writeln('vvedite summy kotoryu planirovali potratit');
readln(x);
writeln('vvedite diapazon vozrasta rebenka, nachinaya ot menshego k bolshemy, cherez probel ili enter');
readln(A,B);
assign(f,'d:\lab10.txt');
reset(f);
Count := 0;
max:=0;
while not eof(f) do
 begin
 Count := Count + 1;
 read ( f, aToy );
 if aToy.age > max then
  begin
  max := aToy.age;
  maxNazva := aToy.nazva;
  end;
 if ( aToy.age<=x ) and ( aToy.vozrast1<=A) and ( aToy.vozrast2>=B) then
  begin
  write('nazva: ',aToy.nazva:15);
  write(' age: ',aToy.age:5);
  write(' kol: ',aToy.kol:5);
  write(' vozrast1: ',aToy.vozrast1:5);
  writeln(' vozrast2: ',aToy.vozrast2:5);
  end;
 end;
writeln;
writeln ('Самая дорогая игрушка : ');
writeln('nazva: ',maxNazva); writeln('max=',max);
close(f);
readln;
end.
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текстовые файлы hidalgo Фриланс 15 27.04.2010 20:54
Текстовые файлы _Smoke_ Помощь студентам 2 15.06.2009 15:12
Текстовые файлы Milashka_zp Паскаль, Turbo Pascal, PascalABC.NET 5 24.05.2009 19:19
текстовые файлы ОЧЕНЬ НУЖНА ПОМОЩЬ leest Помощь студентам 6 30.01.2008 10:05