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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.12.2011, 01:36   #1
celebrimor
Новичок
Джуниор
 
Регистрация: 24.05.2011
Сообщений: 2
По умолчанию динамический массив на паскале

прошу помочь мне решить программу. видимо я еще тот дурак. пытался сам решить но ничего не получилось. ибо уперался в этот самый динамический массив.
задача:
Дан динамический массив целочисленных элементов. Пользователь заполняет его четным количеством элементов. После этого 1ая половина массива перемножаетая со второй половиной массива. Полученный уменьшанный массив выводится на экран и отображается минимальный и максимальынй элемент массива.

Заранее благодарен.
celebrimor вне форума Ответить с цитированием
Старый 28.12.2011, 02:02   #2
celebrimor
Новичок
Джуниор
 
Регистрация: 24.05.2011
Сообщений: 2
По умолчанию

Кину 100р на телефон, если сделаете к утру!)))
celebrimor вне форума Ответить с цитированием
Старый 28.12.2011, 02:28   #3
Sna1L
Форумчанин
 
Аватар для Sna1L
 
Регистрация: 15.03.2011
Сообщений: 272
По умолчанию

процедура setlength если не ошибаюсь.
Так и используете: пользователь вводит четное число.
устанавливаете длину массива по этому числу.
Ввод.
перемножаете.
Sna1L вне форума Ответить с цитированием
Старый 28.12.2011, 11:42   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
процедура setlength если не ошибаюсь.
тут всё зависит от того, для какого Паскаля нужен код.

если для TurboPascal - то там настоящих динамических массивов НЕ БЫЛО.
значит нужно или использовать обычные статические заведомо бОльшего размера, чем может быть задан пользователем, либо использовать хакерские штучки по выделению и доступу к памяти через указатели, либо использовать динамические связанные списки...

если же FPC/Delphi, то да. тут всё просто:
Код:
var Mas1, Mas2 : array of Integer;
  i, N : integer;
begin
  WriteLn('Введите размерность массива (чётное положительное число) : ');
  if (N<2) or Not Odd(N) then begin WriteLn('Неверный размер массива!'); Readln; Halt(1); end;
  SetLength(Mas1, N);
  WriteLn('Введите элементы массива: ');
  for i:=Low(Mas1) to High(Mas1) do begin
    Write(' введите A[',i+1,'] : ');
    Readln( Mas[i] );
  end;

  {установим размер массива 2 равный половине первого массива}
  SetLength(Mas2, N div 2);

  {проведём умножение "половинок" исходного массива}
  for i:=Low(Mas1) to N div 2 do
     Mas2[i] := Mas1[i] * Mas1[i+ (N div 2)];
  
  MinEl  := Mas2[ Low(Mas2) ];
  MaxEl  := Mas2[ Low(Mas2) ];

  for i:=Low(Mas2) to High(Mas2) do begin
    if Mas2[i]> MaxEl then MaxEl := Mas2[i];
    if Mas2[i]< MinEl  then MinEl := Mas2[i];
  end;
  
  WriteLn('Полученный массив:')    
  for i:=Low(Mas2) to High(Mas2) do Write(Mas2[i],'  ');
  WriteLn;
 
  WriteLn(' min = ', MinEl, ' max = ', MinEl);

  Readln
 
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив, массив указателей alexalisa Паскаль, Turbo Pascal, PascalABC.NET 4 22.04.2011 21:33
Динамический массив - или всё таки не динамический? vedro-compota Общие вопросы C/C++ 30 10.12.2010 23:22
Динамический массив Программер Михаил Общие вопросы C/C++ 2 09.12.2010 06:22