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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2010, 13:44   #1
wrmarw
Пользователь
 
Регистрация: 16.04.2010
Сообщений: 48
Стрелка паскаль, ошибка

нашлась кое-какая программа, в которой конечно же какая-то ошибка! помогите, пожалуйста, её исправить.

Найти произведение ненулевых элементов матрицы

Program proizvedenie;
Type
Matrix=array [1..10, 1..10] of integer;
Var
A: matrix;
N, m, i, j: byte;
P: integer;
Procedure vvod (var m: matrix);
Var k , h : byte ;
Begin
For i :=1 to n do
For j :=1 to m do
M[i,j]:= random(10);
End;
Procedure print (m: matrix);
Var k, h: byte;
Begin
For i:=1 to n do
begin
For j:=1 to m do
Write (M[i, j]: 4);
Writeln;
end ;
End ;
Begin
Writeln (‘Введите размерность матрицы:’);
Readln(N, M);
Vvod(a);
Print(a);
P:=1;
For i:=1 to N do
For j:=1 to M do
If a[i, j]<>0 then p:=p*a[i, j];
Writeln ( p );
End.
wrmarw вне форума Ответить с цитированием
Старый 08.05.2010, 13:48   #2
fikret123
Пользователь
 
Регистрация: 16.03.2008
Сообщений: 26
По умолчанию

скорее всего результат не помещается в integer
fikret123 вне форума Ответить с цитированием
Старый 08.05.2010, 14:29   #3
F1nZeR
Новичок
Джуниор
 
Регистрация: 08.05.2010
Сообщений: 2
По умолчанию

Попробуйте P:longint;
F1nZeR вне форума Ответить с цитированием
Старый 08.05.2010, 15:33   #4
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Цитата:
Попробуйте P:longint;
Это здесь вообще не причём:
Код:
Program proizvedenie;
Type
Matrix=array [1..10, 1..10] of integer;
Var
A: matrix;
N,m,i,j:integer;
P: integer;
Procedure vvod (Var l:matrix);
Var k ,h:byte ;
Begin
For i :=1 to n do
For j :=1 to m do
l[i,j]:= random(10);
End;
Procedure print (l:matrix);
Begin
For i:=1 to n do
begin
For j:=1 to m do
Write (L[i, j]: 4);
Writeln;
end ;
End ;
Begin
Writeln ('Введите размерность матрицы:');
Readln(N, M);
Vvod(a);
Print(a);
P:=1;
For i:=1 to N do
For j:=1 to M do
If a[i, j]<>0 then
begin
p:=p*a[i, j];
end;
Writeln ('Произведение элементов: ', p );
End.
にんじゃ

Последний раз редактировалось ROMA2PVT; 08.05.2010 в 16:04.
ROMA2PVT вне форума Ответить с цитированием
Старый 10.05.2010, 20:30   #5
fikret123
Пользователь
 
Регистрация: 16.03.2008
Сообщений: 26
По умолчанию

Цитата:
Сообщение от ROMA2PVT Посмотреть сообщение
Это здесь вообще не причём:
Причем, если ввести максимальные m=n=10, будет 100 элементов и если не будет нулей, в худшем случае произведение будет равно 9^100 степени.
А так ошибка в совпадении имен глобальной переменной и формального параметра в процедурах.
fikret123 вне форума Ответить с цитированием
Старый 10.05.2010, 20:45   #6
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

Цитата:
Причем, если ввести максимальные m=n=10, будет 100 элементов и если не будет нулей, в худшем случае произведение будет равно 9^100 степени.
А так ошибка в совпадении имен глобальной переменной и формального параметра в процедурах.
Ну так и надо было сказать человеку про ошибку в переменных.Он чё будет матрицу 10х10 чтоли вбивать.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Оператор FOR. ошибка!!! Viktory.nvrn Помощь студентам 3 29.03.2010 16:31
Ошибка ввода записи. Паскаль Базиля Помощь студентам 10 10.01.2010 21:53
Ошибка в программе с процедурами. Паскаль rooman90 Помощь студентам 1 03.04.2009 00:37
help.Паскаль 7.0.Принадлежность A к B:ошибка в while надо 2 оператора koir Помощь студентам 3 09.06.2008 03:56
Вчем ошибка?(Паскаль) NTFS Помощь студентам 1 03.04.2008 08:58