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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2011, 23:38   #1
Наташок
Пользователь
 
Регистрация: 06.10.2010
Сообщений: 17
По умолчанию Динамические массивы

Разработать программу выявления седловой точки в матрице размерности n*n. Матрица размещается в оперативной памяти в форме двухмерного массива динамически (значение n вводится по запросу с клавиатуры). Седловой точкой в матрице называют элемент, одновременно наибольший в своей строке и наименьший в своем столбце.Не получаются эти динамические массивы вообще.
Наташок вне форума Ответить с цитированием
Старый 12.04.2011, 05:13   #2
kolob2000
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 23
По умолчанию

Вот так:
int nstr, nstb;
cin >> nstr >> nstb;
int ** a =new int *[nstr];
for(int i = 0; i <nstr; i++)
a[i] = new int [nstb];

уничтожать так:
delete [ ] a;
kolob2000 вне форума Ответить с цитированием
Старый 12.04.2011, 05:57   #3
kolob2000
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 23
По умолчанию

Извини ошибся, тебе же на паскали нужно. Вечером напишу на паскал....
kolob2000 вне форума Ответить с цитированием
Старый 12.04.2011, 06:43   #4
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Код:
const n=5;
var dm:array of array of integer;
    i,j:integer;
begin
     Randomize;
     setlength(dm,n,n);
     for i:=0 to n-1 do
     begin
          for j:=0 to n-1 do
          begin
               dm[i,j]:=random(9);
               write(dm[i,j]:3);
          end;
          writeln;
     end;
     //определение седловой точки
end.
пс: актуально для object pascal (не для turbo etc.)
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.

Последний раз редактировалось Sparkman; 12.04.2011 в 10:21.
Sparkman вне форума Ответить с цитированием
Старый 12.04.2011, 09:30   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Код:
var dm:array of array of integer;
оптимисты...
Если автору нужно именно на Pascal - то этот код не пойдёт. В стандартном Паскаль нет и не было динамических массивов.
Только указатели + выделение памяти...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.04.2011, 11:55   #6
kolob2000
Пользователь
 
Регистрация: 27.03.2009
Сообщений: 23
По умолчанию

Как же нет? А это что по вашему тогда?
<a href = "ru.m.wikipedia.org/wiki/Переменная_(программирование)">
kolob2000 вне форума Ответить с цитированием
Старый 12.04.2011, 12:03   #7
Наташок
Пользователь
 
Регистрация: 06.10.2010
Сообщений: 17
По умолчанию

вот что получилось у меня.
но тут что-то неправильно.результат не выдает,выходит из выполнения программы.
Код:
program cedlo;
uses crt;
Type
   Mas = array [1..100] of integer;
   MasUk = array[1..100] of ^Mas;
Var
   a:^MasUk;
   N,I,J,R,p,min,max,maxj,minj:integer;
   z1,z2:boolean;
Begin
clrscr;
   {$R-}
   writeln('Vvedite razmernost kvadratnoy matricy:');
   read(N);
   writeln('Vvedite matricy:');
   GetMem(a,SizeOf(Mas)*N);
   For I:=1 to N do
       begin
         GetMem(a^[I],2*N);
         for J:=1 to N do
             read(a^[I]^[J]);
       end;

 for i:=1 to n do
 begin
min:=a^[i]^[1];
max:=a^[i]^[1];
maxj:=1;
minj:=1;
for j:=2 to n do
begin
  if a^[i]^[j] < min then
  begin
    min:=a^[i]^[j];
    minj:=j;
    end;
  if a^[i]^[j] >max then
  begin
    max:=a^[i]^[j];
    maxj:=j;
  end;
  end;
  z1:=true;
  z2:=true;
  
  for p:=1 to n do
  begin
  if min<a^[p]^[minj] then
  z1:=false;
  if max>a^[p]^[maxj] then
  z2:=false;
  end;
  if z1 then
  writeln('tochka', a^[i]^[minj],'i=',i,'j',minj);
  if z2 then
  writeln('tochka', a^[i]^[maxj],'i=',i,'j',maxj);
         end;
  freemem(a,sizeof(mas)*n);
     readln;
    {$r+}


    end.



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 12.04.2011 в 13:24.
Наташок вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические массивы Цветик Общие вопросы C/C++ 1 22.11.2010 08:46
Динамические массивы с++ maxsept Общие вопросы C/C++ 2 27.10.2010 20:16
динамические массивы - C++ ? denes Общие вопросы C/C++ 31 18.06.2010 10:57
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
Динамические массивы Matr1x Общие вопросы C/C++ 5 07.12.2009 13:38