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

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

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

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


Новичок
*

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

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


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


Michael_Rybak
*****

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

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


Показывай - что делал, что не получается.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Roofless
сообщение 16.12.2007 21:43
Сообщение #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 - 16.12.2007 21:44
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Roofless
сообщение 18.12.2007 17:56
Сообщение #4


Новичок
*

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

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


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


Гость






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

правильно?

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


Гость






Стоп!
Раздел-то Задачи На Заказ smile.gif
Ты хочешь за нее заплатить? Говори сроки.
Цена - 10 WMZ
Расчет через Форум.
Решение по факту оплаты, не ранее чем через сутки после договоренности.
 К началу страницы 
+ Ответить 
Roofless
сообщение 18.12.2007 21:48
Сообщение #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;      {?бе(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;




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


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

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

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


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


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


Новичок
*

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

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


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


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

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

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


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


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


Новичок
*

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

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


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


Новичок
*

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

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


Что то у меня здесь не получается
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 18.12.2007 22:48
Сообщение #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 
 К началу страницы 
+ Ответить 
Roofless
сообщение 19.12.2007 22:33
Сообщение #14


Новичок
*

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

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


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


Новичок
*

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

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


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


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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 

- Текстовая версия 18.07.2025 1:42
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"