Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Trial_File;
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- type
- tm = record
- name: string[10];
- last_name: string[10];
- first_mark: integer;
- second_mark: integer;
- end;
- // the file of group
- type
- ff = file of tm;
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- {проверка на существование файла (в делфи , АВС не поддерживает её)}
- // Используй код ниже только в делфи , АВС не имеет таких директив
- //Function prov(var a:ff):boolean;
- // begin
- // {$I-};
- // reset(a);
- // {$i+};
- // if Ioresult=0 then
- // prov:=True
- // else Prov:=False;
- // end;
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- {ввод данных}
- procedure input(var a: ff);
- var
- f: tm;
- c: string[5];
- m: string[5];
- begin
- writeln('ввод');
- m := 'exit';
- rewrite(a);
- repeat
- write('Введте марку автомобиля: '); readln(f.name);
- write('Введите номер автомобиля: '); readln(f.last_name);
- write('Введите мощность автомобиля: '); readln(f.first_mark);
- write('Введите стоимость автомобиля: '); readln(f.second_mark);
- writeln('do you want to exit the writing? Then enter "exit": ');
- readln(c);
- write(a, f);
- until c = m;
- close(a);
- end;
- // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- {вывод данных}
- procedure output(var a: ff);
- var
- f: tm;
- begin
- writeln('вывод');
- Reset(a);
- while not eof(a) do
- begin
- read(a, f);
- writeln('-----------------------------------------------------------------------------------------------');
- write('марка автомобиля: ', '¦', f.name, '¦ ; ');
- write('номер автомобиля: ', '¦', f.last_name, '¦ ; ');
- write('мощность автомобиля и стоимость автомобиля: ', '¦', f.first_mark, '¦', f.second_mark, '¦');
- writeln('-----------------------------------------------------------------------------------------------');
- writeln;
- end;
- close(a);
- end;
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- {в процедуре вводит диапазон стоимости автомобиля
- и мощность, выводит подходящие автомобили}
- procedure poisk(var t: ff);
- var
- f: tm;
- a, b: real;
- c, d: real;
- begin
- writeln('looking for automobile');
- reset(t);
- repeat
- writeln('Введите диапазон желаемой стоимости автомобиля: ');
- write(' ¦ '); read(a); write(' ¦ '); read(b); write(' ¦ ');
- writeln('Введите диапазон мощности автомобиля: ');
- write(' ¦ '); read(c); write(' ¦ '); read(d); write(' ¦ ');
- until (a > 0) and (b > 0) and (c > 0) and (d > 0);
- while not eof(t) do
- // first_mark : integer; мощность авто (c,d)
- // second_mark : integer; стоимость авто (a,b)
- begin
- read(t, f);
- if (a < f.second_mark) and (f.second_mark < b) and (c < f.first_mark) and (f.first_mark < d) then
- begin
- writeln('Мы нашли автомобили по вашему запросу: ');
- write('Марка автомобиля: ', '¦', f.name, '¦ ');
- write('Номер : ', '¦', f.last_name, '¦ ');
- writeln;
- write('Мощность : ', '¦', f.first_mark, '¦ ');
- write('Стоимость: ', '¦', f.second_mark, '¦');
- writeln;
- end;
- end;
- closefile(t);
- end;
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- {сортировка по мощности авто}
- procedure sort(var a: ff);
- var
- f, t: tm;
- i, j, k, m: byte;
- begin
- reset(a);
- i := 0;
- k := filesize(a) - 2;
- j := 0;
- writeln('Сортировка машин по мощности: ');
- for i := 1 to k do
- for j := 0 to k-i+1 do
- begin
- m := j + 1;
- seek(a, j);
- read(a, f);
- seek(a, m);
- read(a, t);
- if (f.first_mark < t.first_mark) then begin
- seek(a, j);
- write(a, t, f);
- end;
- end;
- seek(a, 0);
- reset(a);
- while not eof(a) do
- begin
- read(a, f);
- writeln('марка автомобиля: ', '¦', f.name, '¦');
- writeln;
- writeln('номер автомобиля: ', '¦', f.last_name, '¦');
- writeln;
- writeln('мощность автомобиля и стоимость автомобиля: ', '¦', f.first_mark, '¦', f.second_mark, '¦');
- end;
- closefile(a);
- end;
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- {Удаление из списка авто с указанным номером}
- procedure delete(var a: ff; name: string);
- var
- f: tm;
- s: string;
- g: string;
- b: ff;
- begin
- g := 'b.dat';
- assign(b, g);
- writeln('Введите номер машины , которую хотите удалить из списка');
- readln(s);
- reset(a);
- rewrite(b);
- while not eof(a) do
- begin
- read(a, f);
- if (f.last_name <> s) then
- write(b, f)
- end;
- closefile(b);
- closefile(a);
- erase(a);
- Rename(b, name);
- end;
- procedure delete(var a:ff);
- begin
- erase(a);
- end;
- //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- {основная программа}
- var
- t, z: ff;
- f: tm;
- name: string;
- stop: boolean;
- n: integer;
- u: byte;
- begin
- writeln('Enter the name of file');
- readln(name);
- assign(t, name);
- repeat
- begin
- writeln('1-ввод файла');
- writeln('2-вывод файла');
- writeln('3-выход из файла');
- writeln('4-поиск автомобиля по заданным параметрам');
- writeln('5-сортировка автомобилей по мощности');
- writeln('6-удаление из списка машины с указанным номером');
- writeln('7-удалить весь список');
- readln(n);
- case n of
- 1: // Следующие коментарии толко в делфи :
- //if prov(t)=false then
- //input(t) else
- // begin writeln('хотите ли вы перезаписать файл? Введите 1');
- // readln(u); if u=1 then
- input(t);
- // end;
- 2: output(t);
- 3: stop := true;
- 4: poisk(t);
- 5: sort(t);
- 6: delete(t, name);
- 7: erase(t);
- else writeln('неверный номер');
- end;
- end;
- until stop;
- readln;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement