• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Многомерный массив или записи?

  • Автор темы Автор темы Gerald
  • Дата начала Дата начала

Gerald

Новые
Регистрация
26 Мар 2011
Сообщения
25
Реакции
0
Баллы
0
Многомерный массив или записи?

Язык: Delphi
Дана информация о студентах: курс, группа, оценки. Мне нужно будет выяснять средний балл каждой группы. Т.е. группы 1.1, 1.2, ..., 2.2, 2.3, ...
Что меньше будет занимать памяти и что луше использовать для этого - многомерный массив или записи? Интересны также ваши предложения...
 
Язык: Delphi
Дана информация о студентах: курс, группа, оценки. Мне нужно будет выяснять средний балл каждой группы. Т.е. группы 1.1, 1.2, ..., 2.2, 2.3, ...
Что меньше будет занимать памяти и что луше использовать для этого - многомерный массив или записи? Интересны также ваши предложения...
Дело вкуса, конечно, и если все данные (курс, группа, оценки) - сугубо числовые, то можно и массив. Но я бы в любом случае использовал записи.
 
А памяти они занимают одинаково?
 
Ясно, спасибо за ваше мнение. Вот только у меня появилась проблема. Где то ошибся в коде - не могли бы вы посмотреть:
Код:
procedure GPAgr(var count:integer);
var
  i,j:integer;
  sum:real;
begin
  reset(f);
  for i := 1 to high(GPAgroup) do
    for j := 1 to high(GPAgroup[0]) do
    begin
      count:=0;
      sum:=0;
      while not(eof(f)) do
      begin
        read(f,s);
        if (i=s.Kurs) and (j=s.Group) then //Вот тут что-то нетак!!!
        begin
          sum:=sum+GPAstud(s);
          inc(count);
        end;
      end;
      if existGR(i,j)=true then GPAgroup[i,j]:=sum/count;
    end;
  Closefile(f);
end;
s.Kurs и s.Group имеют тип byte.
Так как код написал уже с массивом а особой роли как вы говорите это не играет, решил все так и оставить как есть.
Проверял по счетчику count в первом операторе if не находит совпадения - не могу понять почему... а именно в переменной j чтото нетак - подставлял число вместо нее - все ок... Помогите пожалуйста.
 
GPAgroup - это многомерный массив.
high(GPAgroup)- это должен быть индекс максимальной строки
а high(GPAgroup[0]) - по идее максимальный столбец. Или это неправильно?
 
Извините, но вообще-то я Делфи плохо знаю. Лучше бы кто из спецов посмотрел.
 
Кажется теперь я понимаю почему вы советовали записи. :tehnari_ru_203: С ними меньше проблем, должно быть... Попробую я через записи...
 
Покажите как вы определили этот массив. Максимальное значение индекса вообще-то это MaxValue, но вам, наверное, виднее :)

high(GPAgroup) - это не индекс максимальной строки (кстати, как это понять?), а вообще непонятно что!

GPAgroup - что это за компонента? На какой палитре инструментов находится?
 
Назад
Сверху