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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2010, 15:16   #1
Nubik
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 17
Вопрос Нужно доработь прогу паскаль матрицы

cоnst=10;
type matr=array[0..n,0..n] of integer;
для матрицы создать следующую функцию:
Max(A:matrix): integer; определяющую максимальный элемент матрицы в заштрихованной области(Где квадратики)

[][][][][][][][][][]
[] -------------[]
[] -------------[]
[] -------------[]
[] -------------[]
[] -------------[]
[] -------------[]
[] -------------[]
[][][][][][][][][][]

Програ считает тока среди положительных чисел нужно сделать так чтоб среди отрицательных тоже.

{ uses crt;
cоnst
n=10;
Type
Matr=array[0..n,0..n] of Integer;
Var
x:Matr;
i,j :Integer;
Function Max(A:Matr):Integer;
var
m :Integer;
Begin
max:=A[0,0];
For i:=0 to n do begin
If A[0,i]>m then m:=a[0,i];
If A[n,i]>m then m:=a[n,i];
If A[i,0]>m then m:=a[i,0];
If A[i,n]>m then m:=a[i,n];
end;
Max:=m
End;
BEGIN
randomize;
For i:=0 to n do begin
for j:=0 to n do begin
x[i,j]:=Random(198)-99;
Write(x[i,j]:4)
end;
WriteLn;
end;
WriteLn('макс эл. указанной области' = ',Max(x):2);
ReadLn
END.}

Последний раз редактировалось Nubik; 23.01.2010 в 15:20.
Nubik вне форума Ответить с цитированием
Старый 23.01.2010, 15:24   #2
Serious
Пользователь
 
Регистрация: 09.02.2009
Сообщений: 29
По умолчанию

просто проходим по области начиная от
max:=a[2,2];
for i:=2 to n do
for j:=2 to n do
if max>=matr[i,j] then
max:=a[i,j];

где n это на 1 меньше, чем длинна матрицы.
и туда берём вбиваем
ну вот и весь поиск, он должен быть на любые числа.
я примерно набросал. но должно работать, я просто не читал названия переменных

Последний раз редактировалось Serious; 23.01.2010 в 15:29.
Serious вне форума Ответить с цитированием
Старый 23.01.2010, 15:36   #3
Nubik
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Serious Посмотреть сообщение
просто проходим по области начиная от
max:=a[2,2];
for i:=2 to n do
for j:=2 to n do
if max>=matr[i,j] then
max:=a[i,j];

где n это на 1 меньше, чем длинна матрицы.
и туда берём вбиваем
ну вот и весь поиск, он должен быть на любые числа.
я примерно набросал. но должно работать, я просто не читал названия переменных


Нее это ищет не ту зону если я понимаю, мне надо искать где квадратики) смотри внимательно код программы
Nubik вне форума Ответить с цитированием
Старый 23.01.2010, 16:08   #4
Serious
Пользователь
 
Регистрация: 09.02.2009
Сообщений: 29
По умолчанию

for i:=1 to n do
if max<= a[i,1] then
max:=matr[i,1];

for i:=1 to n do
if max<= matr[i,n] then
max:=matr[i,n];

for i:=1 to n do
if max<= matr[1,i] then
max:=matr[1,i];

for i:=1 to n do
if max<= a[n,i] then
max:=a[n,i];

да длинно, но должно работать
Serious вне форума Ответить с цитированием
Старый 23.01.2010, 16:16   #5
Nubik
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 17
По умолчанию

спасиб попробую)
Nubik вне форума Ответить с цитированием
Старый 23.01.2010, 16:18   #6
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Да уж!!!
Код:
max:=A[0,0];
исправьте на
Код:
m :=a[0,0];
и будет работать с отрицательными ваша программа
вот код
Код:
uses crt; 
cоnst 
n=10; 
Type 
Matr=array[0..n,0..n] of Integer; 
Var 
x:Matr; 
i,j :Integer; 
Function Max(A:Matr):Integer; 
var 
m :Integer; 
Begin 
m:=A[0,0]; 
For i:=0 to n do begin 
If A[0,i]>m then m:=a[0,i]; 
If A[n,i]>m then m:=a[n,i]; 
If A[i,0]>m then m:=a[i,0]; 
If A[i,n]>m then m:=a[i,n]; 
end; 
Max:=m 
End; 
BEGIN 
randomize; 
For i:=0 to n do begin 
for j:=0 to n do begin 
x[i,j]:=Random(198)-99; 
Write(x[i,j]:4) 
end; 
WriteLn; 
end; 
WriteLn('макс эл. указанной области' = ',Max(x):2); 
ReadLn 
END.
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 23.01.2010, 16:23   #7
Nubik
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 17
По умолчанию

Аааа спасибо!!!! а я думал почему не работает))
Nubik вне форума Ответить с цитированием
Старый 23.01.2010, 16:24   #8
Nubik
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 17
По умолчанию

Подскажи еще почему она положительные искала?))
Nubik вне форума Ответить с цитированием
Старый 23.01.2010, 16:28   #9
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Потому что m не была проинициализирована и по умолчанию была равна 0- ну а 0 больше любого отрицательного
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 23.01.2010, 16:34   #10
Nubik
Пользователь
 
Регистрация: 07.12.2009
Сообщений: 17
По умолчанию

мда программирование сложная штука=)
Nubik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно доработать прогу в ПАСКАЛЕ Nubik Помощь студентам 2 21.12.2009 00:09
Нужно написать прогу на С++ Михаил Борисович Помощь студентам 2 06.01.2009 10:39
HELP! Нужно подкоректировать прогу на СИ. NEWLOGIN Помощь студентам 3 10.05.2008 18:11
Нужно написать прогу на Delphi Zhekoff Фриланс 3 31.03.2008 20:44