2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Массив или не массив?
Сообщение26.12.2010, 12:25 
Аватара пользователя


26/12/10
1
Использование массива из трех элементов, вместо создания трех переменных - экономичнее? :?

 Профиль  
                  
 
 Re: Массив или не массив?
Сообщение26.12.2010, 12:40 
Заслуженный участник
Аватара пользователя


13/08/08
14495
С точки зрения времени выполнения - экономичнее отдельные переменные. Но с точки зрения удобочитаемости программы, её понятности, объёма кода, гибкости к изменениям - массивы экономичнее.

 Профиль  
                  
 
 Re: Массив или не массив?
Сообщение26.12.2010, 13:22 
Аватара пользователя


31/10/08
1244
По скорости не важно компилятор с оптимизирует. А вот пользователю удобнее использовать массив.
Правило просто если более 3 то группируем в массив.

 Профиль  
                  
 
 Re: Массив или не массив?
Сообщение26.12.2010, 14:20 
Заслуженный участник


11/05/08
32166
По-моему, запись
Код:
y0:=...;  y1:=...;  y2:=...;

гораздо удобочитаемее, чем
Код:
y[0]:=...;  y[1]:=...  y[2]:=...;

Массивы полезны ровно тогда, когда они полезны -- когда предстоит использовать переменные в качестве индексов. Или когда надо будет присваивать что-то группе переменных как целому (в частности, при передаче параметров в процедуру). А в общем -- это в значительной степени дело вкуса.

 Профиль  
                  
 
 Re: Массив или не массив?
Сообщение26.12.2010, 15:56 
Заслуженный участник
Аватара пользователя


14/02/07
2648

(Оффтоп)

Помню, на первом или втором курсе один товарищ, явный противник показа текста программы (ну работает же, чего смотреть-то?!) сделал садистскую программу. Она текст программы (на паскале) форматировала прямоугольником, а все вводимые в программе идентификаторы заменяла на _001, _002 и так далее. Получалось где-то так:
Код:
program _001;var _002: Integer; function _003(_004, _005:Int
eger):Integer;begin _006 := _004 + _005;end; begin _002:= _0
03(1,2);Writeln(_002);end.

Так что я за переменные, да.

 Профиль  
                  
 
 Re: Массив или не массив?
Сообщение26.12.2010, 17:12 
Заслуженный участник


26/07/09
1559
Алматы
За исключением специальных случаев, вроде применения всяких там векторных расширений, использование отдельных переменных может дать выигрыш в скорости (во-первых, компилятор может положить переменные в регистры, во-вторых, нет оверхеда по арифметике указателей). Хотя-да, компилятор может все равно соптимизировать все на свой лад...

Если есть хоть малейшее подозрение, что массив может стать больше, то срабатывает аргумент gris'а, в противном случае, особенно если объектов всего несколько, больше подходит довод ewert'а. В последнем случае (при использовании отдельных переменных) появляется возможность повысить читабельность кода более четко обозначив семантику переменных путем выбора подходящих имен; в конце концов, переменные можно сгруппировать в структуру и пользоваться ею как целым, например уж лучше писать что-то вроде vector.x=0 чем vector[0]=0.

Таким образом, я считаю, что массивы лучше использовать только при необходимости обработки очень большого количества однотипных элементов, а так сгодятся отдельные переменные и структуры (записи).

P.S.: Ага, надо было тему оформить как голосование. :)

 Профиль  
                  
 
 Re: Массив или не массив?
Сообщение26.12.2010, 21:28 


02/07/08
322
Если переменные имеют одинаковый смысл, то логичнее массив, потому что его смысл - объединение однородных данных под одним именем.
Автор, вы случайно не из ШАДа?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group