Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 29.11.2010, 23:37   #1 (permalink)
Катерина
Новичок
 
Регистрация: 24.11.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Создание типизированного файла и выборка.

Здраствуйте!такая задача:Сведения об автомобилях состоят из фамилии владельца,номера и марки автомобиля.создать типизированный файл 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[i]);
k:=0;
reset(svedeniya);
while not eof(svedeniya) do
begin
read(svedeniya,s);
if s.marka=m[i] then
begin
k:=1;
writeln(s.familiya);
end;
end;
close(svedeniya)
if k =0 then writeln('Владельцев этой марки нет.');
end;
end.
Проблема в том,что эта программа задает массив марок автомобилей и определяет есть ли владельцы именно этих марок.А как усовершенствовать программу на случай,если неизвестно машины каких марок содержатся в файле?чтобы она работала идеально?
Катерина вне форума   Ответить с цитированием

Старый 29.11.2010, 23:37
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Пока в вашей теме нет ответов можете заняться прочтением схожих тем

Конвертация файла
ICQ сообщение из bat файла
Конвертация мkv файла в avi
Имя файла Word
Создание, чтение файла и списки

Старый 30.11.2010, 10:08   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Катерина Посмотреть сообщение
А как усовершенствовать программу на случай,если неизвестно машины каких марок содержатся в файле?чтобы она работала идеально?
Для начала - не худо бы было перед выкладыванием хоть раз программу на пробу оттранслировать, чтобы убрать элементарные синтаксические ошибки типа то 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.
Vladimir_S вне форума   Ответить с цитированием
Старый 30.11.2010, 10:50   #3 (permalink)
Катерина
Новичок
 
Регистрация: 24.11.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

За ошибки извиняюсь,писала программу на ночь глядя.За помощь ОГРОМНОЕ спасибо,очень выручили! :-)
Катерина вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 18:52.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.