![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Earl_Ananiy |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Ананий Репутация: ![]() ![]() ![]() |
Разработать блок-схему алгоритма и составить программу для решения задачи с использованием подпрограмм. Условия, ‴Заданы три матрицы 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 |
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Пожалуйста проверьте мою программу, а то не могу найти ошибки. Не раньше, чем ты потрудишься назвать сами ошибки.. Что не так? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
Цитата Пожалуйста проверьте мою программу, а то не могу найти ошибки. Компилятор покажет твои ошибки. Нажми F9, и увидишь их... Хинт: нельзя присваивать значение Integer <- Real... Обратно, Real <- Integer, можно. |
Earl_Ananiy |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Ананий Репутация: ![]() ![]() ![]() |
Не раньше, чем ты потрудишься назвать сами ошибки.. Что не так? Выдает ошибку Error 26: Type mismatch. ![]() |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Я тебе сказал, в чем ошибка. Исправляй...
|
Earl_Ananiy |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Ананий Репутация: ![]() ![]() ![]() |
Я тебе сказал, в чем ошибка. Исправляй... Я исправил но все равно показывает такую же ошибку Прикрепляю исправленный файл. ![]() |
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Я исправил но все равно показывает такую же ошибку Ты не все исправил. Вот тут еще: x:=H(A,m);
y:=H(B,n);
z:=H(C,m);
- функции типа Real, их нужно как-то привести к целым: либо округлить (Round), либо отсечь (Trunc). А ты не можешь сам найти строку, в которой ошибка? Компилятор тебе не показывает ее? Так было бы намного быстрее.. Какой у тебя компилятор? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата Я исправил Исправил, да не везде. У тебя X, Y, Z тоже описаны как Integer, а ты в них хочешь записать вещественные числа. |
Earl_Ananiy |
![]()
Сообщение
#9
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Ананий Репутация: ![]() ![]() ![]() |
Ты не все исправил. Вот тут еще: x:=H(A,m);
y:=H(B,n);
z:=H(C,m);
- функции типа Real, их нужно как-то привести к целым: либо округлить (Round), либо отсечь (Trunc). А ты не можешь сам найти строку, в которой ошибка? Компилятор тебе не показывает ее? Так было бы намного быстрее.. Какой у тебя компилятор? Turbo Pascal 7.0 Добавлено через 15 мин. Исправил, да не везде. У тебя X, Y, Z тоже описаны как Integer, а ты в них хочешь записать вещественные числа. Заработал. Только выдает нулевую матрицу все 0 ![]() |
Lapp |
![]()
Сообщение
#10
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Turbo Pascal 7.0 Так он прекрасно ставит курсор прямо на то место, где ошибка..Цитата Заработал. Только выдает нулевую матрицу все 0 Естественно )). Ты же не передаешь заполненную матрицу из процедуры назад. Используй var в процедуре F. Вот так:procedure F(var D:Mat;R:integer);
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Earl_Ananiy |
![]() ![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Реальное имя: Ананий Репутация: ![]() ![]() ![]() |
Так он прекрасно ставит курсор прямо на то место, где ошибка.. Естественно )). Ты же не передаешь заполненную матрицу из процедуры назад. Используй var в процедуре F. Вот так: procedure F(var D:Mat;R:integer);
Спасибо огромное!!! Все заработало!!! Ур-р-ра!!! ![]() |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 0:10 |