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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2016, 13:05   #1
E1337
Пользователь
 
Регистрация: 24.01.2016
Сообщений: 20
По умолчанию Указатели, Динамическая память (Паскаль)

Известно, что в следующем фрагменте программы массив matrica содержит оценки студентов груп-пы, фамилии которых перечислены в типе familiya:
Type
Familiya = (Иванов, Просветкин, Лемин, Михайлов, Маслов, Юрьева, Беляева, Малащенко, Нагайцев, Семыкин);
Predmet = (матанализ, алгебра, информатика, ис-тория, матлогика, механика, педагогика, дифурав-нения, статистика):
Var
Matrica: array [familiya, predmet] of integer;
Поменять местами оценки любого студента, средний балл которого минимален, с оценками первого из студентов списка, который не имеет неудовлетворительных оценок.
E1337 вне форума Ответить с цитированием
Старый 14.03.2016, 09:46   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

без указателей
написано в блокноте (не проверялось!)

Код:
var f: Familia;
  p: Predmet;
  s: integer;

smin:=0;
for p:=low(predmet) to high(predmet) do
  smin:=smin+6; //заведомо больший средний(суммарный) балл

for f:=high(Familia) downto low(Familia) do begin
  s:=0; fgood:=true;
  for p:=low(predmet) to high(predmet) do begin
    s:=s+matrica[f,p];//считаем не средний а суммарный балл
    fgood:=fgood and (matrica[f,p]>2); //проверка "положительных оценок"
  end;

  if s<smin then begin
    smin:=s;
    fmin:=f;// студент с минимальным баллом
  end;
  if fgood then fisrtgood:=f;//последний найденный(будет первым в списке с учетом ОБРАТНОГО просмотра списка)
end; 

// поменяем их оценки местами
for p:=low(predmet) to high(predmet) do begin
  matrica[firstgood, p]:=matrica[fmin, p] +matrica[firstgood, p];
  matrica[fmin, p]:=matrica[firstgood, p] -matrica[fmin, p];
  matrica[firstgood, p]:=matrica[firstgood, p] -matrica[fmin, p];
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 19.03.2016, 12:55   #3
E1337
Пользователь
 
Регистрация: 24.01.2016
Сообщений: 20
По умолчанию

up!
E1337 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатели. Динамическая память. Kazik Помощь студентам 2 18.01.2014 00:17
Ссылки, указатели, динамическая память, С++ TRIZER Помощь студентам 9 01.08.2013 16:54
Указатели. Динамическая память в С++ Solnze2 Помощь студентам 0 21.05.2011 10:47
Указатели.Динамическая память Solnze2 Паскаль, Turbo Pascal, PascalABC.NET 6 12.06.2010 10:08