IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> куча записей. нужно посчитать максимальные, значения элементов
сообщение
Сообщение #1


Гость






Такая задача:
Цитата
Завод выпускает продукцию 5 видов. Сведения о производстве хранятся в файле. Определить, какой продукции выпускается больше всего по кличеству и по стоимости в течение 3-х дней. Данные регистрируются ежедневно

Первую часть сделал. Данные регистрируются и записываются в файл:
type
production = record
name: String[20];
cena: real;
kol:integer;
end;
var
fajlo: file of production;
i,j:integer;
a: array [1..5] of production;
temp:production;
begin
Assign(fajlo,'fajlo');
ReWrite(fajlo);
writeln('Введите 5 наименований выпускаемой продукции:');
for i:=1 to 5 do
readln(a[i].name);
for i:=1 to 3 do begin
Writeln('--------День ',i,'--------');
for j:=1 to 5 do begin
WriteLn('Введите цену 1 товара: ',a[j].name);
ReadLn(a[j].cena);
WriteLn('Введите кол-во выпущенного товара');
ReadLn(a[j].kol);
Write(fajlo,a[j]);//запись о товаре в i день записалась в файл
end;
end;
Reset(fajlo); //закрываем файл и открываем на чтение


Вроде все работает. Т.е. если сейчас посмотреть каждую позицию файла, то мы увидим следующее:
Цитата
позиция файла:
0 день 1 товар1
1 день 1 товар2
2 день 1 товар3
3 день 1 товар4
4 день 1 товар5

5 день 2 товар1
6 день 2 товар2
7 день 2 товар3
8 день 2 товар4
9 день 2 товар5

10 день 3 товар1
11 день 3 товар2
12 день 3 товар3
13 день 3 товар4
14 день 3 товар5
товар_X - запись с инфой о товаре X

Вот теперь нужно как-то посчитать суммарное кол-во выпущенного каждого товара, сравнить и вывести, какого выпустили больше. Тоже самое нужно повторить и со стоимостью.
Что-то вообще не пойму, как это сделать. Циклы, а как их построить не могу понять sad.gif
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Как-то вот так:
...
for i := 1 to 5 do
with a[i] do begin
cena := 0; kol := 0;
end;

while not eof(fajlo) do begin
read(fajlo, temp);
for i := 1 to 5 do
if temp.name = a[i].name then begin
a[i].cena := a[i].cena + temp.cena;
inc(a[i].kol, temp.kol);
end;
end;
close(fajlo);

max_cena := 1;
max_kol := 1;
for i := 1 to 5 do
with a[i] do begin
if cena > a[max_cena].cena then max_cena := i;
if kol > a[max_kol].kol then max_kol := i;
end;
writeln('max(cena): ', a[max_cena].name, ' = ', a[max_cena].cena:10:5);
writeln('max(kol) : ', a[max_kol ].name, ' = ', a[max_kol ].kol:10);
...

Не забудь дополнительно определить переменные:
var
max_cena, max_kol: integer;
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 8.09.2025 18:12
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name