Помощь - Поиск - Пользователи - Календарь
Полная версия: Файлы и записи в Паскаль ! Возникает трудность в решении задачи
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Vitalik
Сведения об автомобиле состоят из его марки, номера и фамилии владельца. Найти фамилии владельцев и номера автомобилей данной марки.

{Не получается правильно составить алгоритм. Прошу помочь}
Федосеев Павел
Ловлю на слове "не получается".
Покажи то, что уже есть.

Т.к. объём писанины на 2-3 часа, а подобные задачи я уже решал и интерес к ним угас, чтобы повторно тратить время.
Vitalik
Задачу уже решил, если интересно, код могу скинуть yes2.gif
Федосеев Павел
Я-то их с десяток решал, но может быть кто-то начинающий захочет решить подобную задачу, а тут твой правильный пример-образец как нельзя кстати (в общем, очень вовремя).

Ещё не видя код, предлагаю воспользоваться форматтером кода JCF. Правда, если у тебя PascalABC, Lazarus или Delphi, то там есть встроенные средства.
Vitalik
const n=3;
type avto =record
mar,nom,fio:string
end;

var a:array[1..n] of avto;
mark:string;
k,i:integer;
Begin
for i:=1 to n do begin
write('Введите марку автомобиля: ');readln(a[i].mar);
write('Введите номер автомобиля: ');readln(a[i].nom);
write('Введите фамилию владельца: ');readln(a[i].fio);
writeln;
end;
write('Введите требуемую марку автомобиля: ');
read(mark);
k:=0;
for i:=1 to n do
if a[i].mar=mark then
begin
writeln('ФИО: ',a[i].fio,' ; ','Номер: ',a[i].nom);
k:=1
end;
writeln;
if k=0 then write('Нет автомобилей данной марки');
End.

Писал в PascalABC
Федосеев Павел
Это твоя программа после обработки JCF. Пришлось только добавить строку program иначе JCF не обрабатывает.
Правда читабельнее выглядит?
Код
program Marka;

const
  n = 3;
type
  avto = record
    mar, nom, fio: string
  end;

var
  a: array[1..n] of avto;
  mark: string;
  k, i: integer;
begin
  for i := 1 to n do
  begin
    Write('Введите марку автомобиля: ');
    readln(a[i].mar);
    Write('Введите номер автомобиля: ');
    readln(a[i].nom);
    Write('Введите фамилию владельца: ');
    readln(a[i].fio);
    writeln;
  end;
  Write('Введите требуемую марку автомобиля: ');
  Read(mark);
  k := 0;
  for i := 1 to n do
    if a[i].mar = mark then
    begin
      writeln('ФИО: ', a[i].fio, '; ', 'Номер: ', a[i].nom);
      k := 1;
    end;
  writeln;
  if k = 0 then
    Write('Нет автомобилей данной марки');
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.