Составить программу, обеспечивающую создание файла со сведениями об игрушках: название игрушки, ее стоимость и возрастные границы, и выполняющую изменение данных и поиск по названию игрушек, цена которых не превышает 2000 руб. и которые подходят детям до 4 лет — Pascal(Паскаль)

uses crt;
type Tigr=record  {тип запись с полями}
          nam:string[20];  {название}
          stm:word;  {стоимость}
          vz1:byte;  {нижний возраст}
          vz2:byte;  {верхний возраст}
          end;
var sp:array[0..100] of Tigr; {массив записей, список игрушек}
    f:file of Tigr;  {типизированный файл}
    nz:string[20];  {переменная при смене или поске названия}
    cn:word;   {переменная при поиске или смене цены}
    v1,v2:byte; {переменные при поиске или смене возраста}
    n,i,k:byte;  {разные счетчики}
    c:char;  {символ при выходе из цикла}
    label 1,2;   {метки-указатели что делать дальше}
begin
clrscr;
{Sozdanie faila}
assign(f,'igr.dat'); {}
rewrite(f);   {}
n:=0;
repeat
writeln('Igrushka ',n); {заносим данные в массив}
write('Nazvanie: ');readln(sp[n].nam);
write('Cena: ');readln(sp[n].stm);
write('Min vozrast: ');readln(sp[n].vz1);
write('Max vozrast: ');readln(sp[n].vz2); {два раза Enter}
write(f,sp[n]);  {записываем в файл}
c:=readkey;  {если выходим, нажимаем Esc}
n:=n+1;
until c=#27;
close(f);
{Vyvod svedenij iz faila}
clrscr;
reset(f);
n:=0;
while not eof(f)do
  begin
    read(f,sp[n]);{читаем данные из файла и выводим на экран}
    writeln(sp[n].nam,' Cena ',sp[n].stm,' ot ',sp[n].vz1,' do ',sp[n].vz2);
    n:=n+1;
  end;
readln;
writeln;
{Vnesenie izmenenij}
writeln('Vnesti izmenenia? 0/1');
readln(i);
if i=1 then goto 1  {если вводи 0 идем дальше, 1-вносим ихменения}
else if i=0 then goto 2;
1:write('Izmenit zapis i=');readln(i);{nachalo s 0}
  write('Nazvanie: ');readln(nz);
  write('Cena: ');readln(cn);
  write('Min vozrast: ');readln(v1);
  write('Max vozrast: ');readln(v2);
  Seek(f,i);   {указатель на запись, которую изменяем, нумерация с 0}
  sp[i].nam:=nz;
  sp[i].stm:=cn;
  sp[i].vz1:=v1;
  sp[i].vz2:=v2;
  write(f,sp[i]);
  {Proverka izmenenij}
  writeln('Fail posle izmenenij:');
  reset(f);
  n:=0;
  while not eof(f)do
    begin
    read(f,sp[n]);
    writeln(sp[n].nam,' Cena ',sp[n].stm,' ot ',sp[n].vz1,' do ',sp[n].vz2);
    n:=n+1;
  end;
  writeln;
  writeln('Prodolzit izmenenia? 0/1');
  readln(i);
  if i=1 then goto 1
  else if i=0 then goto 2;
readln;
close(f);
{Poisk igrushki}
2:reset(f);
  write('Nazvanie igrushki: ');readln(nz);{вводим название}
  n:=0;k:=0;
  while not eof(f)do
    begin
    read(f,sp[n]);
    if 
{если все условия соблюдаются, то выводим на экран}
(sp[n].nam=nz)and(sp[n].stm<=2000)and(sp[n].vz1<=4)and(sp[n].vz2>=4)then
     begin
      writeln(sp[n].nam,' Cena ',sp[n].stm,' ot ',sp[n].vz1,' do ',sp[n].vz2);
      k:=k+1;
     end;
    n:=n+1;
    end;
{если совпадений нет, сообщаем}
  if k=0 then writeln('Takih igrushek net!');
readln;
end.

Leave a Comment

7 + 1 =