Перевести текстовый код на Дельфи - 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.
Объяснение кода листинга программы
- Объявляются переменные:
- f: file of vladelez (файл для записи данных о владельцах автомобилей)
- a: vladelez (структура с данными о владельце автомобиля)
- n, i, k, imx: integer (переменные для работы с числовыми данными)
- cnt: array[1..6] of integer (массив для подсчета количества автомобилей каждой марки)
- mx: 1900..2000 (диапазон значений для года выпуска автомобиля)
- s: string (переменная для хранения фамилии владельца автомобиля)
- ch: char (переменная для чтения символа с консоли)
- Задается диапазон значений для года выпуска автомобиля.
- Открывается файл 'auto.dat' для записи данных о владельцах автомобилей.
- Записывается заголовок данных о владельцах автомобилей.
- Читаются данные о владельцах автомобилей до тех пор, пока количество владельцев не достигнет заданного значения.
- Для каждого владельца записываются его данные (фамилия, адрес, марка автомобиля, номер автомобиля и год выпуска).
- После окончания записи всех владельцев, файл перезаписывается.
- Считывается информация из файла до тех пор, пока не будет найдено авто с годом выпуска меньше 2000.
- Если такое авто найдено, то записывается его фамилия, номер и год выпуска.
- Поиск владельцев авто продолжается до тех пор, пока не будет введено
Y
для завершения поиска. - После завершения поиска, файл закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д