Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 15.05.2012, 17:32   #1 (permalink)
HelloInside
Новичок
 
Регистрация: 15.05.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Текстовые файлы. Сведения об автомобилях. Pascal

Задача по текстовых файлах.

Создать текстовый файл, который бы содержал марку автомобиля, стоимость, километраж. Упорядочить строки по алфавиту марки автомобиля, в каждую строку файла прибавить средний километраж по всем маркам в файле. Последняя строка нового файла должна содержать количество фирм, выпускающих все перечисленные в файле автомобили.

Вот мой листинг:

Код:
uses crt;
 
type avto = record
     marka: string;
     st,kilo: real;
     end;
 
var f1,f2: text;
    name1,name2: string;
    a: array [1..100] of avto;
    n,i,j,firms: integer;
    tmp: avto;
 
 
begin clrscr;
write('Imea faila dlea chtenia: '); readln(name1);
assign(f1,name1); reset(f1);
write('Imea faila dlea zapisi: '); readln(name2);
assign(f2,name2); rewrite(f2);
 
readln(f1,n);
 
for i:=1 to n do
 begin
 readln(f1,a[i].marka);
 readln(f1,a[i].st);
 readln(f1,a[i].kilo);
 end;
 
close(f1);
 
for i:=n-1 downto 1 do
 for j:=1 to i do
  if a[j].marka > a[j+1].marka then
   begin
   tmp:=a[j];
   a[j]:=a[j+1];
   a[j+1]:=tmp;
   end;
 
firms:=1;
 
for i:=2 to n do
 if a[i].marka <> a[i-1].marka then inc(firms);
 
for i:=1 to n do
 begin
 writeln(f2,a[i].marka);
 writeln(f2,a[i].st:6:2);
 writeln(f2,a[i].kilo:6:2);
 end;
writeln(f2,firms);
 
close(f2);
writeln('Dannye byli perepisany v ',name2);
readkey; end.
Я получается сделал только пол задачи. Сделал вот по сюда:

Код:
Создать текстовый файл, который бы содержал марку автомобиля, стоимость, километраж. Упорядочить строки по алфавиту марки автомобиля,
Но незнаю как сделать ето:
Код:
в каждую строку файла прибавить средний километраж по всем маркам в файле. Последняя строка нового файла должна содержать количество фирм, выпускающих все перечисленные в файле автомобили.
Помогите пожалусто!:tehnari _ru_837:
HelloInside вне форума   Ответить с цитированием

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

Если проблема еще не решена, можете обратиться к похожим темам

Интересная аэрография на автомобилях
Массив, файлы, подпрограммы. Pascal
Текстовые файлы, Паскаль
Паскаль, текстовые файлы

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

Цитата:
Сообщение от HelloInside Посмотреть сообщение
Помогите пожалусто!
Выложите, пожалуйста, Ваш входной файл - можно просто текстом в топике.
Vladimir_S вне форума   Ответить с цитированием
Старый 16.05.2012, 02:06   #3 (permalink)
HelloInside
Новичок
 
Регистрация: 15.05.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Вот входной файл:

3
BMW
10000
129723
Lada
5000
777
Honda
50000
923823
HelloInside вне форума   Ответить с цитированием
Старый 16.05.2012, 20:46   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от HelloInside Посмотреть сообщение
Упорядочить строки по алфавиту марки автомобиля, в каждую строку файла прибавить средний километраж по всем маркам в файле. Последняя строка нового файла должна содержать количество фирм, выпускающих все перечисленные в файле автомобили.
Вы знаете - хотел бы Вам помочь, но ни-че-го не понимаю! Совсем, видать, отупел... Какой "средний километраж по всем маркам"? Это как? В каждую строку добавить одно и то же число - средний километраж по всем машинам? Или как? И что значит "количество фирм, выпускающих все перечисленные в файле автомобили"? В жизни каждая фирма выпускает одну марку, а так, чтобы фирма выпускала "Жигули" и BMW - я таких не знаю. И вообще, в условии задачи и Вашем файле ни звука, ни пол звука ни про какие "фирмы". Подозреваю, что под "фирмой" понимается марка. Но тогда, чтобы задача имела смысл, хотя бы некоторые марки-фирмы должны присутствовать в нескольких экземплярах, например, 2-3 BMW с разными пробегами и стоимостями.
В общем, пока туманная мгла беспросветная.
Vladimir_S вне форума   Ответить с цитированием
Старый 16.05.2012, 21:19   #5 (permalink)
HelloInside
Новичок
 
Регистрация: 15.05.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Я тоже не понимал, спросил у одногрупников, сказали что просто нужно взять километраж всех машин, и вычислить средний. А нащет фирм, ето да тоесть марка. Ну например в файле введены bmw , Audi , Opel , - и что бы в низу в строке вывело ети марки bmw, Audi , Opel. Или же например если у нас будет задано Fiat, Honda, Suzuki, и что бы нам вывели внизу - Fiat, Honda, Suzuki. Ну типа в таком смысле.
HelloInside вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 16.05.2012, 22:41   #6 (permalink)
HelloInside
Новичок
 
Регистрация: 15.05.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Код:
uses crt;

type avto = record
     marka: string;
     st,kilo: real;
     end;

var f1,f2: text;
    name1,name2: string;
    a: array [1..100] of avto;
    n,i,j,firms: integer;
    tmp: avto;
    average: real;


begin clrscr;
write('Imea faila dlea chtenia: '); readln(name1);
assign(f1,name1); reset(f1);
write('Imea faila dlea zapisi: '); readln(name2);
assign(f2,name2); rewrite(f2);

readln(f1,n);

for i:=1 to n do
 begin
 readln(f1,a[i].marka);
 readln(f1,a[i].st);
 readln(f1,a[i].kilo);
 end;

close(f1);

for i:=n-1 downto 1 do
 for j:=1 to i do
  if a[j].marka > a[j+1].marka then
   begin
   tmp:=a[j];
   a[j]:=a[j+1];
   a[j+1]:=tmp;
   end;

firms:=1;

for i:=2 to n do
 if a[i].marka <> a[i-1].marka then inc(firms);

for i:=1 to n do
 begin
 writeln(f2,a[i].marka);
 writeln(f2,a[i].st:6:2);
 writeln(f2,a[i].kilo:6:2);
 end;
writeln(f2,firms);

average:=0;
for i:=1 to n do average:=average + a[i].kilo;
average:=average/n;
writeln(f2,'Srednii kilometraj = ',average:6:2);

close(f2);
writeln('Dannye byli perepisany v ',name2);
readkey; end.
HelloInside вне форума   Ответить с цитированием
Старый 16.05.2012, 22:46   #7 (permalink)
HelloInside
Новичок
 
Регистрация: 15.05.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Вот выложил код там определяет средний километраж. Теперь осталось написать: последняя строка нового файла должна содержать количество фирм (тоисть марок), тех что были перечислены в файле.
HelloInside вне форума   Ответить с цитированием
Старый 16.05.2012, 23:01   #8 (permalink)
HelloInside
Новичок
 
Регистрация: 15.05.2012
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

А все, сделал =)
HelloInside вне форума   Ответить с цитированием
Ads

Яндекс

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

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

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

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




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

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