Перевести текстовый код на Дельфи - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

помогите перекинуть код из паскаля в делфи

Решение задачи: «Перевести текстовый код на Дельфи»

textual
Листинг программы
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  windows,
  crt;
 
const
  nmax=20;
  mar:array[1..6] of string=('audi','bmw','ford','nissan','toyota','volvo');
type
  vladelez=record
              familia:string[60];
              adress:string[60];
              avto:string[60];
              nomer:string[60];
              vypusk:1900..2000;
              end;
var
  f:file of vladelez;
  a:vladelez;
    cnt:array[1..6] of integer;
    n,i,k,imx:integer;
    mx:1900..2000;
    s:string;
    ch:char;
begin
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
clrscr;
assign(f,'auto.dat');
rewrite(f);
repeat
write('Количество владельцев от 1 до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите данные о ',n,' владельцах:');
for i:=1 to n do
 begin
  writeln('Владелец ',i);
  with a do
   begin
    write(' Фамилия: ');readln(familia);
    write(' Адрес: ');readln(adress);
    writeln(' Марка автомобиля:');
    writeln('  1-audi 2-bmw 3-ford 4-nissan 5-toyota 6-volvo');
    repeat
    readln(k);
    until k in [1..6];
    avto:=mar[k];
    write(' Номер: ');readln(nomer);
    repeat
    write(' Год выпуска 1900..2000: ');
    readln(s);
    val(s,vypusk,k);
    until(k=0)and(vypusk>=1900)and(vypusk<=2000);
    write(f,a);
   end;
 end;
clrscr;
reset(f);
writeln('Список автовладельцев:':30);
writeln;
writeln('----------------------------------------------------------');
writeln('|    Фамилия    |     Адрес    |  Марка  |  Номер  | Год |');
writeln('----------------------------------------------------------');
while not eof(f) do
 begin
  read(f,a);
  with a do
   begin
    gotoXY(1,whereY);write('| ',familia);
    gotoXY(17,whereY);write('| ',adress);
    gotoXY(32,whereY);write('| ',avto);
    gotoXY(42,whereY);write('| ',nomer);
    gotoXY(52,whereY);write('|',vypusk:5);
    gotoXY(58,whereY);writeln('|');
   end;
 end;
writeln('----------------------------------------------------------');
write('Press Enter...');
readln;
clrscr;
for i:=1 to 6 do
cnt[1]:=0;
seek(f,0);
while not eof(f) do
 begin
  read(f,a);
  for i:=1 to 6 do
  if mar[i]=a.avto then inc(cnt[i]);
 end;
writeln('Количество автомобилей каждой марки:');
for i:=1 to 6 do
writeln(mar[i],'=',cnt[i]);
mx:=2000;
s:='';
for i:=0 to filesize(f)-1 do
 begin
  seek(f,i);
  read(f,a);
  if a.vypusk<mx then
   begin
    mx:=a.vypusk;
    s:=a.familia;
   end;
 end;
writeln('Влоделец самого старого авто ',s);
writeln;
writeln('Поиск владельцев по марке авто');
repeat
write('Марка: ');
readln(s);
k:=0;
seek(f,0);
while not eof(f) do
 begin
  read(f,a);
  if a.avto=s then
   begin
    k:=1;
    writeln(a.familia,'  ',a.nomer);
   end;
 end;
if k=0 then writeln('Такой марки нет');
writeln('Продолжить поиск y/Y');
readln(ch);
until UpCase(ch)<>'Y';
close(f);
end.

Объяснение кода листинга программы

  1. Объявляются переменные:
    • f: file of vladelez (файл для записи данных о владельцах автомобилей)
    • a: vladelez (структура с данными о владельце автомобиля)
    • n, i, k, imx: integer (переменные для работы с числовыми данными)
    • cnt: array[1..6] of integer (массив для подсчета количества автомобилей каждой марки)
    • mx: 1900..2000 (диапазон значений для года выпуска автомобиля)
    • s: string (переменная для хранения фамилии владельца автомобиля)
    • ch: char (переменная для чтения символа с консоли)
  2. Задается диапазон значений для года выпуска автомобиля.
  3. Открывается файл 'auto.dat' для записи данных о владельцах автомобилей.
  4. Записывается заголовок данных о владельцах автомобилей.
  5. Читаются данные о владельцах автомобилей до тех пор, пока количество владельцев не достигнет заданного значения.
  6. Для каждого владельца записываются его данные (фамилия, адрес, марка автомобиля, номер автомобиля и год выпуска).
  7. После окончания записи всех владельцев, файл перезаписывается.
  8. Считывается информация из файла до тех пор, пока не будет найдено авто с годом выпуска меньше 2000.
  9. Если такое авто найдено, то записывается его фамилия, номер и год выпуска.
  10. Поиск владельцев авто продолжается до тех пор, пока не будет введено Y для завершения поиска.
  11. После завершения поиска, файл закрывается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5
Похожие ответы