![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Roofless |
![]() ![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дали вот такую задачу: Дана матрица A(n*n) целых чисел. Получить вектор C(n), элементы которого равны произведениям элементов, стоящих на главной и побочной диагоналях матрицы. В полученном векторе найти min и max элементы. На место min элемента записать 0, а на место max элемента записать max возможное целое число. [b]
Она вроде как простая, но что то не получается; Помогите решить. Если можно с описанием. |
Michael_Rybak |
![]()
Сообщение
#2
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
Показывай - что делал, что не получается.
|
Roofless |
![]() ![]()
Сообщение
#3
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну что то вроде этого...
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 - 16.12.2007 21:44 |
Roofless |
![]()
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
правильно?
|
Гость |
![]()
Сообщение
#5
|
Гость ![]() |
|
Гость |
![]()
Сообщение
#6
|
Гость ![]() |
Стоп!
Раздел-то Задачи На Заказ ![]() Ты хочешь за нее заплатить? Говори сроки. Цена - 10 WMZ Расчет через Форум. Решение по факту оплаты, не ранее чем через сутки после договоренности. |
Roofless |
![]()
Сообщение
#7
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот вроде ьы так:
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; {?бе(r)¤ п ¬ ваЁж }
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;
Мне нужно процедуру составить... |
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Последние два поста - мои. Можешь контактировать со мной здесь либо в личке.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Roofless |
![]()
Сообщение
#9
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
я хочу чтобы мне помогли
|
Lapp |
![]()
Сообщение
#10
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Roofless, здесь задачи не обсуждают. Здесь решают за деньги.
Если хочешь - перенесу в раздел Задачи. Хочешь? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Roofless |
![]()
Сообщение
#11
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
перенеси
|
Roofless |
![]()
Сообщение
#12
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
Что то у меня здесь не получается
|
Lapp |
![]()
Сообщение
#13
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
В целом программа вроде нормальная, за исключением некоторых недочетов. Например, почему у тебв k - формальный параметр? Что ты туда собирался передавать? Может, ты имел в виду n?
Дальше, вместо 32000 лучше использовать MaxInt. И вообще, вместо куска: s:=0;
p:=32000;
- лучше сделать: s:=b[1];
p:=b[1];
В этом случае программа сможет работать с отрицательными значениями тоже. А в конце перепутаны максимум и минимум. Максимум у тебя - s, а ты в него кладешь 0, и наоборот. Мне нужно процедуру составить... Так ты вроде ее сделал.. Осталось внизу приписать основную программу.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Roofless |
![]()
Сообщение
#14
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
Большое спасибо, посмотрю
|
Roofless |
![]()
Сообщение
#15
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 32 Пол: Мужской Репутация: ![]() ![]() ![]() |
Поздравте меня! Все! Сделал! Выкладываю в виде прцедур:
Procedure Proizv(n:byte; {Є(r)«ЁзҐбвў(r) бва(r)Є}
Var a:Matrix; {?бЇ(r)«м§гҐ¬ п ¬ ваЁж }
Var C:vector); {‚лў(r)¤Ё¬л ўҐЄв(r)а}
Var
i:byte;
Begin
For i:= 1 to n do {ЏҐаҐЎЁа Ґ¬ Є ¦¤го бва(r)Єг}
c[i]:=a[i,i]*a[i,n-i+1]; {Ќ е(r)¦¤ҐЁҐ н«Ґ¬Ґв(r)ў Ј« ў(r)(c) Ё Ї(r)Ў(r)з(r)(c) ¤Ё Ј(r) «Ё}
End;
{====‡ ¬Ґ ¬ЁЁ¬ «м(r)Ј(r) Ё ¬ ЄбЁ¬ «м(r)Ј(r) н«Ґ¬Ґв =====}
Procedure Zamena(n:byte; {Є(r)«ЁзҐбвў(r) бва(r)Є}
Var c:vector); {ўлў(r)¤Ё¬л(c) ўҐЄв(r)а}
Var
i,max,min,imax,imin:integer;
Begin
max:=c[1]; {Њ ЄбЁ¬г¬г ЇаЁбў Ёў Ґ¬ § 票Ґ ЇҐаў(r)Ј(r) н«Ґ¬Ґв }
imax:=1; {Ќ(r)¬Ґаг ¬ ЄбЁ¬г¬ ЇаЁбў Ёў Ґ¬ Ґ¤ЁЁжг}
min:=max; {ЊЁЁ¬г¬г ЇаЁбў Ёў Ґ¬ § 票Ґ ЇҐаў(r)Ј(r) н«Ґ¬Ґв , е(r)¤п饥бп ў max}
imin:=1; {Ќ(r)¬Ґаг ¬ЁЁ¬г¬ ЇаЁбў Ёў Ґ¬ Ґ¤ЁЁжг}
For i:= 2 to n do begin {ЏҐаҐЎЁа Ґ¬ н«Ґ¬Ґвл ўҐЄв(r)а , зЁ п б(r) ўв(r)а(r)Ј(r)}
If c[i]>max then begin {Ќ е(r)¤Ё¬ § 票Ґ ¬ ЄбЁ¬г¬ Ё ҐЈ(r) (r)¬Ґа}
imax:=i;
max:=c[i];
end
else If c[i]<min then begin {Ќ е(r)¤Ё¬ § 票Ґ ¬ЁЁ¬г¬ Ё ҐЈ(r) (r)¬Ґа}
imin:=i;
min:=c[i];
end;
end;
c[imax]:=99; {ќ«Ґ¬Ґвг б (r)¬Ґа(r)¬ ¬ ЄбЁ¬г¬ ЇаЁбў Ёў Ґ¬ 99}
c[imin]:=0; {ќ«Ґ¬Ґвг б (r)¬Ґа(r)¬ ¬ЁЁ¬г¬ ЇаЁбў Ёў Ґ¬ 0}
End;
Сообщение отредактировано: Roofless - 22.12.2007 21:45 |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 1:42 |