• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Создание типизированного файла и выборка.

Катерина

Ученик
Регистрация
24 Ноя 2010
Сообщения
6
Реакции
0
Баллы
0
Создание типизированного файла и выборка.

Здраствуйте!такая задача:Сведения об автомобилях состоят из фамилии владельца,номера и марки автомобиля.создать типизированный файл F,в котором находится информация о нескольких автомобилях. Перечислить всех владельцев,объединенных в группы с одной маркой автомобиля.Вот исходник:
Program avtomobily;
type spisok=record;
familiya:string;
nomer:integer;
marka:string;
end;
var svedeniya:File of spisok;
s:spisok;
n,i,k:byte;
const kol_marok=6;
m:array[1..kol_marok] of string[10]=('audi','mersedes','BMW','lexus','toyota','reno');
begin
assign(svedeniya,'F');
rewrite(svedeniya);
write('kolichestvo vladelcev?');
readln(n);
for i:=1 to n do
begin
write(i:1,'-й,familia');
readln(s.familia);
write('nomer avtomobilya:');
readln(s.fnomer);
write('marka avtomobilya:');
readln(s.marka);
write(svedeniya,s);
end;
writeln('formirovanie faila zakoncheno!');
close(svedeniya);
for i:=1 to kol_marok do
begin
writeln('Владельцы марки ',m);
k:=0;
reset(svedeniya);
while not eof(svedeniya) do
begin
read(svedeniya,s);
if s.marka=m then
begin
k:=1;
writeln(s.familiya);
end;
end;
close(svedeniya)
if k =0 then writeln('Владельцев этой марки нет.');
end;
end.
Проблема в том,что эта программа задает массив марок автомобилей и определяет есть ли владельцы именно этих марок.А как усовершенствовать программу на случай,если неизвестно машины каких марок содержатся в файле?чтобы она работала идеально?
 
А как усовершенствовать программу на случай,если неизвестно машины каких марок содержатся в файле?чтобы она работала идеально?
Для начала - не худо бы было перед выкладыванием хоть раз программу на пробу оттранслировать, чтобы убрать элементарные синтаксические ошибки типа то familia, то familiya, где-то не хватает разделителя ";", где-то он лишний и т.п. Или Вы полагаете, что нам заняться нечем, кроме подобной правки? А по сути вопроса попробуйте так (изменения выделены красным):

Program avtomobily;
type spisok=record {; - УБРАТЬ!}
familia:string; {Что-нибудь одно: либо familia, либо familiya}
nomer:integer; {Что-нибудь одно: либо nomer, либо fnomer}
marka:string;
end;
var svedeniya:File of spisok;
s:spisok;
n,i,k:byte;
STx:string;

const kol_marok=6;
m:array[1..kol_marok] of string=('audi','mersedes','BMW','lexus','toyota','reno') ;
begin
assign(svedeniya,'F');
rewrite(svedeniya);
write('kolichestvo vladelcev?');
readln(n);
for i:=1 to n do
begin
write(i:1,'-й,familia');
readln(s.familia);
write('nomer avtomobilya:');
readln(s.nomer);
write('marka avtomobilya:');
readln(s.marka);
write(svedeniya,s);
end;
writeln('formirovanie faila zakoncheno!');
close(svedeniya);
writeln('Vvedite marku:');
readln(STx);
writeln('Владельцы марки ',STx);
k:=0;
reset(svedeniya);
while not eof(svedeniya) do
begin
read(svedeniya,s);
if s.marka=STx then
begin
k:=1;
writeln(s.familia);
end;
end;
close(svedeniya);
if k =0 then writeln('Владельцев этой марки нет.');
readln;
end.
 
За ошибки извиняюсь,писала программу на ночь глядя.За помощь ОГРОМНОЕ спасибо,очень выручили! :-)
 
Назад
Сверху