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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.12.2010, 16:18   #1
neomax38
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 72
Печаль Проверьте код

Вот задание:
Даны векторы A[10], B[18]. У каждого вектора, компоненты которого не образуют неубывающей последовательности, отрицательные компоненты заменить максимальным элементом.

Ошибка не совпадения типа... Подскажите что непрвильно.

Код:
Program procedur;
Uses CRT;
type mas=array[1..20,1..20] of integer;

Procedure Vvod(k:byte;var x:mas);{ввод}
var i,j:integer;
Begin
for i:=1 to k do
for j:=1 to k do
begin
write('Введите элемент [', i,',', j,']= ');
readln(x[i,j]);
end;
end;

Procedure Vyvod(k:byte;var x:mas);{вывод}
var i,j:integer;
begin
for i:=1 to k do
begin
for j:=1 to k do
write(x[i,j]:4);
writeln;
end;
end;

procedure GetMaxSwap (var M: mas; count: integer);{//отрицательных компонентов }
var
i: integer;
max: integer;
begin
max := M[1];
for i := 1 to count do
if M[i] > max then max := M[i];
for i := 1 to count do
if M[i] < 0 then M[i] := max;
end;

begin
procedure CheckAndReplace(var M: mas; count: integer);
for i := 2 to count do
if M[i-1] > M[i] then begin // есть элемент, который меньше какого-то из предыдущих
GetMaxSwap(M, count); //отрицательные компоненты заменить максимальным элементом
break; // Выход, больше проверять нечего
end;
end;


var c,t,f:mas;
n:integer;

BEGIN
clrscr;
writeln('Матрица А:');
Vvod(10,C);
Vyvod(10,C);
writeln('Матрица В:');
Vvod(18,T);
Vyvod(18,T);

writeln('вывод ',CheckAndReplace(n,C));

end.
neomax38 вне форума Ответить с цитированием
Старый 27.12.2010, 16:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
max := M[1];
А матрица то квадратная... Тут должен быть второй индекс, но какой знать можешь только... автор программы, видимо
Код:
max := M[1,1];
Ну и так далее по всей программе...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.12.2010, 16:53   #3
neomax38
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 72
По умолчанию

Вот исправленный. но не срабатывает процедура CheckAndReplace пишет тип фактического элемента отличается от типа формального элемента
Код:
Program procedur;
Uses CRT;
type mas=array[1..200,1..200] of real;

Procedure Vvod(k:byte;var x:mas);{ввод}
var i,j:integer;
Begin
for i:=1 to k do
for j:=1 to k do
begin
write('Введите элемент [', i,',', j,']= ');
readln(x[i,j]);
end;
end;

Procedure Vyvod(k:byte;var x:mas);{вывод}
var i,j:integer;
begin
for i:=1 to k do
begin
for j:=1 to k do
write(x[i,j]:4);
writeln;
end;
end;

procedure GetMaxSwap (var M: mas; count: integer);//отрицательных компонентов
var
i,j: integer;
max: real;
begin
max := M[1,1];
for i := 1 to count do
if M[i,j] > max then max := M[i,j];
for i := 1 to count do
if M[i,j] < 0 then M[i,j] := max;
end;

procedure CheckAndReplace(var M: mas; count: integer);
var
i,j: integer;
begin
for i := 2 to count do
if M[i-1,j] > M[i,j] then begin // есть элемент, который меньше какого-то из предыдущих
GetMaxSwap(M, count); //отрицательные компоненты заменить максимальным элементом
break; // Выход, больше проверять нечего
end;
end;


var c,t,f:mas;
n:real;

BEGIN
clrscr;
writeln('Матрица А:');
Vvod(10,C);
Vyvod(10,C);
writeln('Матрица В:');
Vvod(18,T);
Vyvod(18,T);

writeln('вывод ',CheckAndReplace(n,C));

end.

Последний раз редактировалось neomax38; 27.12.2010 в 17:01.
neomax38 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверьте код monty "2" Помощь студентам 2 08.04.2010 17:44
С++. Проверьте пожалуйста код Alexandrk8 Помощь студентам 11 10.09.2009 11:45
код программы проверьте innaa639 Помощь студентам 3 28.05.2009 12:18
Проверьте код ! Михаил Юрьевич Общие вопросы Delphi 7 08.02.2008 09:32
Проверьте пожалуйста код forumu Помощь студентам 1 27.12.2007 21:49