Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2008, 14:31   #1
jaw
Пользователь
 
Регистрация: 25.10.2007
Сообщений: 12
По умолчанию помогите,пожа-та, найти ошибку

Вычислить произведение элементов каждого столбца матрицы и определить число столбцов с положительным произведением.

Код:
program 38;
uses crt;
type t=array [1..50,1..50]  of real;
var a:t;   i,n,k,m,kol:integer;   pr:real;
begin
clrscr;
writeln('vvedite kol-vo strok');
readln(m);
writeln('Vvedite kol-vo stolbcov');
readln(n);
for i:= 1 to m do
for k:=1 to n do
begin
writeln('vvedite elementy ',i,' stroki ',k,' stolbca');
readln(a[i,k]);
end;
clrscr;
writeln('Ishodnaya matrica');
writeln;
for i:= 1 to m do
begin
for k:=1 to n do
write(a[i,k]:8:2);
writeln;
writeln;
end;
for k:=1 to n do  begin
kol:=0;
pr:=1;
for i:=1 to m do  begin
pr[k]:=pr[k]*a[i,k];
end;
for k:=1 to n do
if pr[k]>0 then begin
k:=k+1;
 end;
writeln('proizvedenie stolbcov ravny');
writeln;
for k:=1 to n do
write(a[i,k]:8:2);
writeln;
writeln;
for k:=1 to n do
writeln('kol-vo stolbcov s pologit elementami', k);
write(k:2);
end;
readln;
end.
jaw вне форума Ответить с цитированием
Старый 11.01.2008, 14:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
pr[k]:=pr[k]*a[i,k];
Это однозначно ошибка. pr у тебя не массив
посему pr:=pr*a[i,k];
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.01.2008, 16:35   #3
jaw
Пользователь
 
Регистрация: 25.10.2007
Сообщений: 12
По умолчанию

pr я обозначила как массив, но почему не считает произведение?
jaw вне форума Ответить с цитированием
Старый 11.01.2008, 17:21   #4
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Тогда непонятна строка pr:=1; Может это должна быть какая-то другая переменная? Кроме того, переменная k используется одновременно и во внешнем и во вложенном циклах, надо использовать разные переменные.
Jeni вне форума Ответить с цитированием
Старый 11.01.2008, 17:52   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

У вас настолько сумбурно написан код, что очень трудно объяснять ошибки.
Поэтому посмотрите как можно сделать.
Если мы начинаем считать количество нужных столбцов, то начальное значение нужно поставить пере циклом.
kol:=0;
for k:=1 to n do
begin
Сейчас мы начинаем вычислять произведения в столбцах, задаем начальное значение=1.
pr:=1;
for i:=1 to m do
begin
pr:=pr*a[i,k]; //подсчитали один столбец и закончили
end;
if pr>0 then kol:=kol+1;//если произведение положительное, то добавляем единичку
writeln('pr v stb ',k,'=',pr:5:2);//выводим сведения об этом столбце на экран
end;
writeln('kol+=',kol);//выводим количество таких столбцов
readln;
end.
Если нам дальше нужно что-то делать с этими произведениями, то нужно было собрать их в массив.
if pr>0 then kol:=kol+1;
b[kol]:=pr;
А потом вывести эти произведения в цикле из массива
for i:=1 to kol do
write(b[i]:8:2);
puporev вне форума Ответить с цитированием
Старый 12.01.2008, 18:15   #6
jaw
Пользователь
 
Регистрация: 25.10.2007
Сообщений: 12
По умолчанию

Спасибо!но теперь считает произведение только первого столбца,а количество с положительными элементами не считает...
jaw вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти ошибку ( с++ ) JOFRIF Помощь студентам 10 23.05.2008 14:34
Помогите найти ошибку! Студентка@ Помощь студентам 3 21.05.2008 14:21
Помогите найти ошибку N!ckeL Общие вопросы Delphi 9 05.05.2008 14:15
Помогите найти ошибку JOFRIF Помощь студентам 8 22.04.2008 14:22
Помогите найти ошибку NeiL Общие вопросы Delphi 7 04.03.2008 07:14