![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | ||
АльTRUEи$т
Форумчанин
Регистрация: 19.03.2009
Сообщений: 784
|
![]() Цитата:
Код:
Цитата:
|
||
![]() |
![]() |
![]() |
#12 |
Подтвердите свой е-майл
Регистрация: 07.04.2007
Сообщений: 120
|
![]()
Два вопроса
1. в чем принципиальное отличие этого //массив[1]:=1;массив[2]:=3 и далее по тексту и объявления константы через const 2. Какой вариант лучше? |
![]() |
![]() |
![]() |
#13 | |
АльTRUEи$т
Форумчанин
Регистрация: 19.03.2009
Сообщений: 784
|
![]()
на второй вопрос - именно для этой задачи мой вариант!
и на первый вопрос- если вы обьявите массив через константу заполнить его по рандому вы не сможете ==> обьявление массива в константах повлечет использование еще одного массива для выполнения первых 2-х действий, а в условии задачи использовать 2 массив запрещено и еще попробуйте вот этот код Код:
Цитата:
Последний раз редактировалось IT-man; 12.12.2009 в 12:48. |
|
![]() |
![]() |
![]() |
#14 | |
Подтвердите свой е-майл
Регистрация: 07.04.2007
Сообщений: 120
|
![]() Цитата:
![]() Но с с остальным я не согласен. Принципиальной разницы между двумя вариантами нет, и в том случае и в другом будут созданы несколько байт(зависит от типа) в памяти которые, не извращаясь, изменить в паскале будет нельзя, они будут константами. Только в первом случае они будут идти подряд и у нас будет их адрес для использования (название константы), а во втором они идут не друг за другом и использовать их второй раз нельзя. Суть одна, но в общем случае эффективнее первый способ. Вот некоторые причины: 1. Если понадобится заполнить массив второй раз этими же числами: в 1м случае используем туже константу. Во втором все эти числа будут дублироваться в программном коде. => в первом случае размер программы меньше. 2. Чтобы заполнить массив в 1мслучае нужно выполнить одну операцию (копирование блока памяти). Во втором n операций, придется копировать каждой число отдельно. => Теоретически первый случай будет быстрее. Все, конечно, зависит от компилятора но в паскале и в статических массивах на делфи, скорее всего все так и есть. Хотя возможна оптимизация. 3. Если длина массива > 10 то быстрее (и удобнее) написать его значения в константе, чем присваивать каждый элемент отдельно. (текста надо написать меньше) Можно сказать что все это несущественно, и при написании реальных программ разницы мало, но принципы верные ![]() По поводу кода, выше я приводил пример что нужно сначала описать тип массива, объявить типизированную константу и массив этого типа. http://programmersforum.ru/showpost....55&postcount=8 |
|
![]() |
![]() |
![]() |
#15 | |||
АльTRUEи$т
Форумчанин
Регистрация: 19.03.2009
Сообщений: 784
|
![]() Цитата:
Цитата:
Цитата:
|
|||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как задать рекурсией? | Irdis | Фриланс | 4 | 11.02.2010 02:01 |
Как задать треугольник? | Shevali | Помощь студентам | 4 | 07.04.2009 01:01 |
задать массив как константу...нужен совет | dead-vip | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 21.12.2008 16:07 |
Как задать множество | 1234 | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 25.05.2008 16:15 |
задать массив типа X: array [0..N] of integer -где N переменная читаеться из EditBox | Kivin13 | Общие вопросы Delphi | 22 | 06.09.2007 09:25 |