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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2008, 22:11   #1
ProPaL
Пользователь
 
Регистрация: 10.11.2007
Сообщений: 22
По умолчанию Паскаль. Динамич массивы

Привет. Помогите плз написать программу через динмич. типы данных - никогда раньне не работал с этим, не знаю как... вот задание.. если не трудно можно пояснение

Дан массив P1, ... , P40.
Заменить Pmax и Pmin на среднее арифметическое всего ряда.
ProPaL вне форума Ответить с цитированием
Старый 23.03.2008, 22:17   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

В паскале нет динамических массивов.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 23.03.2008, 22:54   #3
ProPaL
Пользователь
 
Регистрация: 10.11.2007
Сообщений: 22
По умолчанию

ну дин типы данных есть же?
ProPaL вне форума Ответить с цитированием
Старый 24.03.2008, 00:08   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

есть. Через указатели. читайте помощь и примеры на NEW(..) GetMem(..)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.03.2008, 15:54   #5
ProPaL
Пользователь
 
Регистрация: 10.11.2007
Сообщений: 22
По умолчанию

мм и как её написать?
ProPaL вне форума Ответить с цитированием
Старый 25.03.2008, 01:02   #6
ProPaL
Пользователь
 
Регистрация: 10.11.2007
Сообщений: 22
По умолчанию

Кто нибудь может помочь?
ProPaL вне форума Ответить с цитированием
Старый 25.03.2008, 09:43   #7
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Писал на Delphi, поэтому в некоторых местах пропущен ^
Delphi это допускает. Компилятор Pascal подскажет где поставить.
Надеюсь дальше разберешься.

Код:
{
 Итак, динамические структуры данных
 Можно реализовать массив как связанный список
 Сначала введем структуру для хранения элемента списка
 Data - собственно данные элемента
 next - указатель на следующий элемент
}
type
   PData = ^TData;
   TData = record
      Data : integer;
      next : PData;
   end;

{ Теперь объявим ссылку на первый элемент списка }
var First : PData;
    P : PData;   // Для работы с элементами
    i, M:integer;
    Pmax, Pmin : PData;
begin
   { обязательная инициализация - список пуст }
   First := nil;

   { Добавление элементов делается следующим образом: }
   for i:=1 to 40 do begin
      { Распределяем память под элемент }
      getMem(P, sizeOf(TData));
      P^.Data := random(10);
      P^.next := nil;
      { Добавляем элемент в голову списка }
      if First = nil then First := P
      else begin
         P^.Next := First;
         First := P;
      end;
   end;

   { Проход по списку и вывод элементов }
   P := First;
   While P <> nil do begin
      write(P^.Data:2);
      P := P.next;
   end;
   writeLn;

   { Вычисление среднего арифметического }
   M := 0;
   P := First;
   While P <> nil do begin
      M := M + P^.Data;
      P := P.next;
   end;
   M := M div 40;
   writeLn(M);

   { Поиск максимального и минимального }
   Pmax := First;
   Pmin := First;
   P := First;
   While P <> nil do begin
      if P^.Data > Pmax^.Data then Pmax := P;
      if P^.Data < Pmin^.Data then Pmin := P;
      P := P.next;
   end;
   writeLn(Pmax^.data);
   writeLn(Pmin^.data);

   { Замена }
   Pmax^.Data := M;
   Pmin^.data := M;

   { Можно еще раз вывести список }
   P := First;
   While P <> nil do begin
      write(P.Data:2);
      P := P.next;
   end;
   writeLn;

   { После работы с данными освобождаем память }
   While First <> nil do begin
      P := First;
      First := P.Next;
      freeMem(P);
   end;

   readln;
alexBlack вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. массивы }{oTT@БЬ)Ч™ Помощь студентам 9 07.12.2015 20:00
паскаль динамич. списки...помогите кто чем может) Никита35 Помощь студентам 16 09.05.2008 16:41
Срочно,пожалуйста...паскаль динамич. списки Никита35 Помощь студентам 2 07.05.2008 22:48
Паскаль. Массивы Sexy Fox Помощь студентам 5 12.04.2008 21:45
Паскаль, массивы. SZero Помощь студентам 5 22.03.2008 16:06