![]() |
|
|
|
|
#1
|
|||
|
|||
|
Знакомый попросил написать программку.
Вот только не могу сообразить в чем дело: Код:
program cex;
type
// указываем как и что нужно писать в массив
STROKA=record
// ограничиваем ввод 10 символами
Nazvanie:string[10];
rashod:integer;
end;
var i,j,Nceh,Nmes,SredSumm:integer;
// Двумерный масиив для всего
a:array[1..25, 1..3] of STROKA;
// Массив для даты
m:array[1..12] of Integer;
const
// Строка разделитель
l='_________________________________________________';
begin
write('vvedite kolichestvo mesyachev= ');
readln(Nmes);
write('vvedite kolichestvo cehov= ');
readln(Nceh);
begin
for i :=1 to Nceh do {цикл для перебора всех строк}
for j :=1 to Nmes do {перебор всех элементов строки по столбцам}
begin
// Записываем месяцы в первую одномерный массив m
m[j]:=j;
// Записываем название цеха в 1 строку двумерного массива
//Если столбеч первый тогда
if j=1 then begin
write('Nazvnie ceha= ');
ReadLn(a[i,j].Nazvanie);
end;
// Записываем расход начиная со 2 столбца
write('Vvedite rashod= ');
ReadLn(a[i,j].rashod);
end;
end;
// Заполняем таблицу
// Шапка
writeln('Table');
writeln(l);
writeln('| | Data');
// выводим месяцы из m
for i:=1 to Nmes do
begin
write('| |',m[i]:10);
end;
// переходим на новую строку
writeln;
// константа
writeln(l);
writeln('| Ceh| Rashod');
writeln(l);
// выводим из двумерного массива
for i:=1 to Nceh do
begin
for j:=1 to Nmes do
with a[i,j] do begin
write(Nazvanie:10,'|',rashod:10);
end ;
writeln;
end;
readln;
// проходим по столбцам и считаем среднее
for j:=2 to Nmes do
begin
for i:=1 to Nceh do
begin
//Сумма в столбце
SredSumm:=SredSumm+a[i,j].rashod;
end;
// получаем среднее
SredSumm:=SredSumm div Nceh;
// Дописывем в массив среднее значение в дополнительной строке
a[Nceh+1,j].rashod:=SredSumm;
end;
// Дописываем в массив дополнительную строку
a[Nceh+1,1].Nazvanie:='srednya chena';
// Заполняем таблицу
// Шапка
writeln('Table');
writeln(l);
writeln('| | Data');
// выводим месяцы из m
for i:=1 to Nmes do
begin
write('| |',m[i]:10);
end;
// переходим на новую строку
writeln;
// константа
writeln(l);
writeln('| Ceh| Rashod');
writeln(l);
// выводим из двумерного массива
for i:=1 to Nceh+1 do
begin
for j:=1 to Nmes do
with a[i,j] do begin
write(Nazvanie:10,'|',rashod:10);
end ;
writeln;
end;
readln;
end.
Интересует этот кусок Код:
// проходим по столбцам и вычисляем среднее
for j:=2 to Nmes do
begin
for i:=1 to Nceh do
begin
//Сумма в столбце
SredSumm:=SredSumm+a[i,j].rashod;
end;
// получаем среднее
SredSumm:=SredSumm div Nceh;
// Дописывем в массив среднее значение в дополнительной строке
a[Nceh+1,j].rashod:=SredSumm;
end;Не правильно считает среднее. Сижу, смотрю, понять не могу где накосячил. |
|
#2
|
||||
|
||||
|
Цитата:
|
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
MotoArhangel (13.05.2014)
| ||
|
#3
|
|||
|
|||
|
Цитата:
Код:
for j:=2 to Nmes do begin SredSumm:=0; for i:=1 to Nceh do Последний раз редактировалось MotoArhangel, 13.05.2014 в 14:01. |
|
#4
|
||||
|
||||
|
Цитата:
Код:
for j := 2 to Nmes do Код:
for j := 1 to Nmes do |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
MotoArhangel (13.05.2014)
| ||
|
#5
|
|||
|
|||
|
Посчитал что в j=1 хранится строка и этот столбец не нужен.
Ну все разобрался спасибо огромнейшее=) Последний раз редактировалось MotoArhangel, 13.05.2014 в 14:29. |