Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#91: 2011-05-05 15:46:44 ЛС | профиль | цитата
Netspirit писал(а):
Повторюсь, я опровергал мнение, что инициализированный массив обязан объявляться с помощью const
покажи как без const проинициализировать массив.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26158
Рейтинг: 2127
#92: 2011-05-05 16:01:13 ЛС | профиль | цитата
Tad писал(а):
покажи как без const проинициализировать массив

Ты это чего

code_23728.txt
------------ Дoбавленo в 15.56:
Кстати, вот про это и писал Netspirit

Netspirit писал(а):
Не получится для локальной переменной (так как они не инициализируются), а для глобальной - вполне

------------ Дoбавленo в 16.01:
Вывод: лучше всего не парить мозги с типизированными контстантами и объявлять их как переменные, а всегда объявлять их константами, тогда не будет разницы, где они будут стоять
карма: 22

0
файлы: 1code_23728.txt [943B] [228]
Ответов: 16884
Рейтинг: 1239
#93: 2011-05-05 16:53:55 ЛС | профиль | цитата
а я про что говорил с самого начала (из-за чего весь сыр бор)
Roma писал(а):
вы так-же можете задать значения массива в самом начале
a: array[10] of integer = (0,0,0,0,2,0,0,0,8,0);

1. a: array[10] - нельзя, нужно a: array[1..10]
2. "в самом начале" - чего ?
3. без предварительного слова var или const мы нихрена не сможем.
===============================================================================
Диррективой компилятору {$WriteableConst On} разрешается изменение значений констант (Default),
{$WriteableConst Off} запрещается.

Говорят, чтобы запаха небыло, то водку принимать можно с помощью клизмы. Сам не пробовал.
То что предлагает Netspirit здорово смахивает на вышеприведенное или на удаление гланд через ж...


карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 4630
Рейтинг: 749
#94: 2011-05-05 17:21:43 ЛС | профиль | цитата
Tad, вот и нужно было сразу для Romы уточнить, в чем ошибка. Ато ошибок оказывается несколько (в том числе опечатка в книге, о которой Roma не знал), а мы тут развели демагогию на несколько страниц.
карма: 26

0
Ответов: 1321
Рейтинг: 37
#95: 2011-05-05 17:30:28 ЛС | профиль | цитата
Во всяком случае я всё исправил

И если увидете ошибки,просто скажите ,а не
"Сборник анекдотов" итд
------------ Дoбавленo в 17.30:
И ещё ,если несложно, можете проверить раздел Types
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#96: 2011-05-05 17:40:17 ЛС | профиль | цитата
Netspirit писал(а):
вот и нужно было сразу для Romы уточнить
А я хотел его заставить самого докопаться.
Netspirit, это ошибки, которые пишуший "учебник по созданию IC" должен видеть ! сам.
Если он их не видит - то это уже не учебник, а вода, туфта, лапша на уши и т.д. и т.п..
Вот я и спросил:
Tad писал(а):
Roma, может не нодо пИсать ?

Roma писал(а):
И если увидете ошибки,просто скажите ,а не
"Сборник анекдотов" итд
Roma, просто сказать - это ткнуть человека носом:
еврейский анекдот писал(а):
Разговор в бане.
- Сара, вы одеваете трусы навыворот.
- Циля, откуда вы знаете ? По шве ?
- Нет. По говне.
а намекнуть, это заставить человека думать. Не получилось... Думать мы не хочем .
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1321
Рейтинг: 37
#97: 2011-05-05 18:03:41 ЛС | профиль | цитата
Ostalnoe
Добавлено описание констант
------------ Дoбавленo в 18.03:
Tad, понимаешь, я ещё сам IC незнаю до конца
и примерно знаю что получу в ответ
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#98: 2011-05-05 18:12:16 ЛС | профиль | цитата
Roma писал(а):
вы так-же можете задать значения массива в самом начале
const
a: array[1..10] of integer = (0,0,0,0,2,0,0,0,8,0);

===========================================================
Я бы написал так
Вы также можете задать начальные значения переменным в массиве:
const a: array[1..10] of integer = (0,0,0,0,2,0,0,0,8,0);
Если
const a: array[1..10] of integer = (0,0,0,0,2,0,0,0,8,0);
или var a: array[1..10] of integer = (0,0,0,0,2,0,0,0,8,0);
поставить перед ключевым словом implementation, то переменные массива будут видны во всех процедурах и функциях unit-а.

Если
procedure THiAsmClass.doWork ;
const a: array[1..10] of integer = (0,0,0,0,2,0,0,0,8,0);
( т.е. объявлено в процедуре), то этот массив будет видно только в этой процедуре.


------------ Дoбавленo в 18.12:
Roma писал(а):
понимаешь, я ещё сам IC незнаю до конца
Roma, я и сам Delphi не знаю до конца, а IC тем более, потому, что нужно назубок знать хотябы kol, share и все остальные компоненты пакета - ведь хитрую процедуру можно для IC вытянуть из любого компонента.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Roma
Ответов: 1321
Рейтинг: 37
#99: 2011-05-05 18:37:50 ЛС | профиль | цитата
Добавил в учебник
------------ Дoбавленo в 18.37:
Добавлен новый раздел
карма: 0

0
Разработчик
Ответов: 26158
Рейтинг: 2127
#100: 2011-05-05 18:39:55 ЛС | профиль | цитата
Tad писал(а):
или var a: array[1..10] of integer = (0,0,0,0,2,0,0,0,8,0);

Я бы это убрал м оставил бы только
Tad писал(а):
const a: array[1..10] of integer = (0,0,0,0,2,0,0,0,8,0);

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#101: 2011-05-05 19:02:25 ЛС | профиль | цитата
Функция.
function myfunc(параметры:типы): тип результата;

1. Если в процессе выполнения процедуры или процедур юнита, необходимо выполнить одну и ту же работу, то коды, выполняющие эту работу, выносятся из процедуры и оформляются в виде функции - процедура возвращающая результат.
2. Если функция применяется одной процедурой, то её обычно располагают в теле процедуры.
#pas
Procedure THiAsmClass.doWork;
//============================
function myFunc(a,b,c:integer):string;
begin
.....
end; // конец функции
//====== начало кодов процедуры ======
var
.......
begin

end;

3. Если функция должна использоваться несколькими процедурами, то функция располагается и т.д. (Roma, дальше самостоятельно. Чтобы жизнь медом не казалась )
------------ Дoбавленo в 19.02:
nesco писал(а):
Я бы это убрал м оставил бы только
Учебник пишет Roma - все претензии к нему.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:Roma
Разработчик
Ответов: 26158
Рейтинг: 2127
#102: 2011-05-05 19:03:32 ЛС | профиль | цитата
Tad писал(а):
все претензии к нему

А я и не тебе советовал
карма: 22

0
Ответов: 3349
Рейтинг: 233
#103: 2011-05-05 19:08:32 ЛС | профиль | цитата
Tad, А Еще там можно обьявлять типы, кроме классов, обьектов, интерфейсов.
#pas
Procedure THiAsmClass.doWork;
type Ttest = array[0..255] of WORD;
var
.......
begin

end;
карма: 1

0
Ответов: 1321
Рейтинг: 37
#104: 2011-05-05 19:10:35 ЛС | профиль | цитата
Добавил ещё один раздел Moduli
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#105: 2011-05-05 19:17:43 ЛС | профиль | цитата
nesco писал(а):
А я и не тебе советовал
Извини, принял на свой счет.
Ivann писал(а):
А Еще там можно обьявлять типы, кроме классов, обьектов, интерфейсов.
раздел ARRAY
можно было вставить ещё
var wordArray : Array[Word] of Integer;
но и это пока никому не нужно
Roma писал(а):
Добавил ещё один раздел Moduli
это уже не компонент IC.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)