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

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

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

> Помогите с задачей, она вроде простая...., Дана матрица A(n*n). Получить вектор C(n)......
сообщение
Сообщение #1


Новичок
*

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

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


Дали вот такую задачу: Дана матрица A(n*n) целых чисел. Получить вектор C(n), элементы которого равны произведениям элементов, стоящих на главной и побочной диагоналях матрицы. В полученном векторе найти min и max элементы. На место min элемента записать 0, а на место max элемента записать max возможное целое число. [b]
Она вроде как простая, но что то не получается; Помогите решить. Если можно с описанием.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

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

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


Вот вроде ьы так:



const
nn=9;
Type Matrix=array[1..nn,1..nn] of integer;
vector=array[1..nn] of integer;
Var n,i,j:integer;
a:matrix; {?б室­ п ¬ ваЁж }
b:vector;
Procedure matr(k:integer; var a:matrix; var b:vector);
Var
i,j,p,s,p1,s1:integer;
Begin
k:=0;
for i:= 1 to n do
for j:= 1 to n do begin
k:=k+1;
a[i,j]:=k;
end;
for i:= 1 to n do
b[i]:=a[i,i]*a[i,n+1-j];
s:=0;
p:=32000;
for i:= 1 to n do begin
if s<b[i] then begin
s:=b[i];
s1:=i;
end;
if p>b[i] then begin
p:=b[i];
p1:=i;
end;
end;
b[s1]:=0;
b[p1]:=32000;
end;




Мне нужно процедуру составить...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


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

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

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


В целом программа вроде нормальная, за исключением некоторых недочетов. Например, почему у тебв k - формальный параметр? Что ты туда собирался передавать? Может, ты имел в виду n?
Дальше, вместо 32000 лучше использовать MaxInt. И вообще, вместо куска:
      s:=0;
p:=32000;

- лучше сделать:
      s:=b[1];
p:=b[1];

В этом случае программа сможет работать с отрицательными значениями тоже.
А в конце перепутаны максимум и минимум. Максимум у тебя - s, а ты в него кладешь 0, и наоборот.

Цитата(Roofless @ 18.12.2007 21:48) *
Мне нужно процедуру составить...
Так ты вроде ее сделал.. Осталось внизу приписать основную программу.


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

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


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

 





- Текстовая версия 2.05.2024 11:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name