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


Michael_Rybak
*****

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

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


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


Новичок
*

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

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


Ну что то вроде этого...



Program MinMax;
Const
Nmax=9;
Type Matrix=array [1..nmax,1..nmax] of integer;
Vektor=array [1..nmax] of integer;
Var n,m,i,j:integer;
b:matrix;
result:vektor;
ch:char;
Var p,max,min:integer;
begin
p:=0;
for i:=1 to (n+1) div 2 do begin
max:=a[i,i];
min:=a[i,i];
for j:=i to n+1-i do begin
if a[i,j]>max then
max:=a[i,j];
if a[i,j]<min then
min:=a[i,j];
end;
inc(p);
res[p]:=max+min;
end;
if n mod 2=1 then dec(p);
for i:=n div 2+1 to n do begin
max:=a[i,n+1-i];
min:=a[i,n+1-i];
for j:=n+1-i to i do begin
if a[i,j]>max then
max:=a[i,j];
if a[i,j]<min then
min:=a[i,j];
end;
inc(p);
res[p]:=max+min;
end;
end;


Сообщение отредактировано: Roofless -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

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

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


правильно?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата(Roofless @ 18.12.2007 17:56) *

правильно?

Боюсь, что нет. И даже совсем не похоже.
Давай, начинай делать эту задачу. И приходи за помощью, если что.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Стоп!
Раздел-то Задачи На Заказ smile.gif
Ты хочешь за нее заплатить? Говори сроки.
Цена - 10 WMZ
Расчет через Форум.
Решение по факту оплаты, не ранее чем через сутки после договоренности.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


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

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

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


Последние два поста - мои. Можешь контактировать со мной здесь либо в личке.


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


Новичок
*

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

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


я хочу чтобы мне помогли
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


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

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

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


Roofless, здесь задачи не обсуждают. Здесь решают за деньги.
Если хочешь - перенесу в раздел Задачи. Хочешь?


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


Новичок
*

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

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


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


Новичок
*

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

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


Что то у меня здесь не получается
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


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

Группа: Пользователи
Сообщений: 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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

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

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


Большое спасибо, посмотрю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Новичок
*

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

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


Поздравте меня! Все! Сделал! Выкладываю в виде прцедур:


Procedure Proizv(n:byte; {Є®«ЁзҐбвў® бва®Є}
Var a:Matrix; {?бЇ®«м§гҐ¬ п ¬ ваЁж }
Var C:vector); {‚лў®¤Ё¬л ўҐЄв®а}
Var
i:byte;
Begin
For i:= 1 to n do {ЏҐаҐЎЁа Ґ¬ Є ¦¤го бва®Єг}
c[i]:=a[i,i]*a[i,n-i+1]; {Ќ е®¦¤Ґ­ЁҐ н«Ґ¬Ґ­в®ў Ј« ў­®© Ё Ї®Ў®з­®© ¤Ё Ј®­ «Ё}
End;
{====‡ ¬Ґ­  ¬Ё­Ё¬ «м­®Ј® Ё ¬ ЄбЁ¬ «м­®Ј® н«Ґ¬Ґ­в =====}
Procedure Zamena(n:byte; {Є®«ЁзҐбвў® бва®Є}
Var c:vector); {ўлў®¤Ё¬л© ўҐЄв®а}
Var
i,max,min,imax,imin:integer;
Begin
max:=c[1]; {Њ ЄбЁ¬г¬г ЇаЁбў Ёў Ґ¬ §­ зҐ­ЁҐ ЇҐаў®Ј® н«Ґ¬Ґ­в }
imax:=1; {Ќ®¬Ґаг ¬ ЄбЁ¬г¬  ЇаЁбў Ёў Ґ¬ Ґ¤Ё­Ёжг}
min:=max; {ЊЁ­Ё¬г¬г ЇаЁбў Ёў Ґ¬ §­ зҐ­ЁҐ ЇҐаў®Ј® н«Ґ¬Ґ­в , ­ е®¤п饥бп ў max}
imin:=1; {Ќ®¬Ґаг ¬Ё­Ё¬г¬  ЇаЁбў Ёў Ґ¬ Ґ¤Ё­Ёжг}
For i:= 2 to n do begin {ЏҐаҐЎЁа Ґ¬ н«Ґ¬Ґ­вл ўҐЄв®а , ­ зЁ­ п б® ўв®а®Ј®}
If c[i]>max then begin {Ќ е®¤Ё¬ §­ зҐ­ЁҐ ¬ ЄбЁ¬г¬  Ё ҐЈ® ­®¬Ґа}
imax:=i;
max:=c[i];
end
else If c[i]<min then begin {Ќ е®¤Ё¬ §­ зҐ­ЁҐ ¬Ё­Ё¬г¬  Ё ҐЈ® ­®¬Ґа}
imin:=i;
min:=c[i];
end;
end;
c[imax]:=99; {ќ«Ґ¬Ґ­вг б ­®¬Ґа®¬ ¬ ЄбЁ¬г¬ ЇаЁбў Ёў Ґ¬ 99}
c[imin]:=0; {ќ«Ґ¬Ґ­вг б ­®¬Ґа®¬ ¬Ё­Ё¬г¬ ЇаЁбў Ёў Ґ¬ 0}
End;


Сообщение отредактировано: Roofless -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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