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

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

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

> Операции над матрицами, Применение процедуры и функции
Earl_Ananiy
сообщение 28.01.2010 3:46
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской
Реальное имя: Ананий

Репутация: -  0  +


Разработать блок-схему алгоритма и составить программу для решения задачи с использованием подпрограмм. Условия, ‴Заданы три матрицы A(M,M), B(N,N), C(M,M). Найти минимальное из трех чисел X, Y, Z, которые равны сумме элементов неглавной диагонали матриц A, B, C соответственно‴. Определить операции, которые необходимо оформить в виде подпрограммы и выбрать тип подпрограммы – процедуру или функцию. Обосновать свой выбор. Определить входные и выходные параметры подпрограмм.

Добавлено через 7 мин.
Пожалуйста проверьте мою программу, а то не могу найти ошибки.

program Kurs1;
uses crt;
type Mat=array[1..50,1..50] of real;
var A,B,C:Mat;
x,y,z:integer;
i,j:integer;
m,n:integer;

procedure F(D:Mat;R:integer);
begin
for i:=1 to R do
for j:=1 to R do
D[i,j]:=random(50);
end;

procedure G(D:Mat;R:integer);
begin
for i:=1 to R do
begin
for j:=1 to R do
write(D[i,j]:5);
writeln;
end;
end;

function H(D:Mat;R:integer):real;
var S:integer;
begin
S:=0;
for i:=1 to R do
for j:=1 to R do begin
if i+j-1=R then S:=S+D[i,j];
end;
H:=S;
end;

function Min(x,y:integer):integer;
begin
if x>y then Min:=y else Min:=x
end;

begin
clrscr;
randomize;
writeln('m=');
readln(m);
writeln('n=');
readln(n);

writeln;

F(A,m);
F(B,n);
F(C,m);

writeln('Matrica A');
G(A,m);
writeln;

writeln('Matrica B');
G(B,n);
writeln;

writeln('Matrica C');
G(C,m);
writeln;

x:=H(A,m);
y:=H(B,n);
z:=H(C,m);

writeln('x= ',x,' ','y= ',y,' ','z= ',z);

writeln;

writeln('min= ',Min(Min(x,y),z));
readln;

end.

Тэги!.. Lapp
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 28.01.2010 14:02
Сообщение #2


Гость






Я тебе сказал, в чем ошибка. Исправляй...
 К началу страницы 
+ Ответить 
Earl_Ananiy
сообщение 28.01.2010 14:34
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской
Реальное имя: Ананий

Репутация: -  0  +


Цитата(volvo @ 28.01.2010 14:02) *

Я тебе сказал, в чем ошибка. Исправляй...


Я исправил но все равно показывает такую же ошибку
Прикрепляю исправленный файл.Прикрепленный файл  KURS011.PAS ( 1.06 килобайт ) Кол-во скачиваний: 325
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 28.01.2010 14:43
Сообщение #4


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Earl_Ananiy @ 28.01.2010 14:34) *
Я исправил но все равно показывает такую же ошибку
Ты не все исправил. Вот тут еще:
 x:=H(A,m);
y:=H(B,n);
z:=H(C,m);
- функции типа Real, их нужно как-то привести к целым: либо округлить (Round), либо отсечь (Trunc).
А ты не можешь сам найти строку, в которой ошибка? Компилятор тебе не показывает ее? Так было бы намного быстрее.. Какой у тебя компилятор?



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 18.07.2025 3:45
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"