Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.07.2015
Сообщений: 36
1

Объявление массива

24.07.2020, 13:57. Показов 1501. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста возможно ли как-то на Delphi сделать что-то типа этого:
Delphi
1
2
var
  StringArray: array of String = ('String1', 'String2', 'String3');
Т.е. объявить некий динамический/открытый массив, где компилятор сам вычислит количество элементов и этот массив тут же задать значения элементам массива.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.07.2020, 13:57
Ответы с готовыми решениями:

объявление функции как массива
помогите пожалуйста разобраться, пишу прогу, в которой нужно сформировать несколько массивов...

Объявление массива
Есть два файла первый с функцией main() main.cpp #include <iostream> #include <string>...

объявление массива
int N = 10; int mas = {5,8,2,0,6,3,8,2,7,9}; По чему так нельзя, подчеркивает masN]?

Объявление массива
Как объявить массив следующего типа: A d] т.е. массив A, в котором N элементов (индекс i),...

22
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
24.07.2020, 14:14 2
Цитата Сообщение от m45 Посмотреть сообщение
компилятор сам вычислит количество элементов
Сомневаюсь что Ваш компилятор настолько умен.
0
0 / 0 / 0
Регистрация: 06.07.2015
Сообщений: 36
24.07.2020, 14:24  [ТС] 3
Цитата Сообщение от Puporev Посмотреть сообщение
Сомневаюсь что Ваш компилятор настолько умен.
Я тоже сомневаюсь, поэтому спрашиваю...
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.07.2020, 14:27 4
m45, я, конечно, извиняюсь, но чем Вам не угодил TStringList? Или пользоваться возможностями выбранного IDE теперь у нас не по Фэншую?

TStringList
1
0 / 0 / 0
Регистрация: 06.07.2015
Сообщений: 36
24.07.2020, 14:30  [ТС] 5
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
я, конечно, извиняюсь, но чем Вам не угодил TStringList? Или пользоваться возможностями выбранного IDE теперь у нас не по Фэншую?
Кошерней сначала воспользоваться возможностями компилятора, а потом уже возможностями библиотеки.
0
Модератор
9267 / 6045 / 2380
Регистрация: 21.01.2014
Сообщений: 25,815
Записей в блоге: 3
24.07.2020, 14:31 6
Динамический - нельзя, только статический, и то только в глобальной области видимости, а если в локальной - то только в разделе const, а не var
1
0 / 0 / 0
Регистрация: 06.07.2015
Сообщений: 36
24.07.2020, 14:41  [ТС] 7
Цитата Сообщение от D1973 Посмотреть сообщение
Динамический - нельзя, только статический, и то только в глобальной области видимости, а если в локальной - то только в разделе const, а не var
Понятно. Спасибо!
Жаль, что язык не продвинулся до элементарного автоматического подсчета элементов...
0
Модератор
9267 / 6045 / 2380
Регистрация: 21.01.2014
Сообщений: 25,815
Записей в блоге: 3
24.07.2020, 14:48 8
Цитата Сообщение от m45 Посмотреть сообщение
язык не продвинулся до элементарного автоматического подсчета элементов
Он продвинулся куда как дальше, просто оставив массивы в далеком прошлом...
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
24.07.2020, 15:03 9
Цитата Сообщение от m45 Посмотреть сообщение
компилятор сам вычислит количество элементов.
Delphi
1
2
3
var L:TSringList;
................................
 количество элементов=L.count;
1
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.07.2020, 15:06 10
Цитата Сообщение от m45 Посмотреть сообщение
Кошерней сначала воспользоваться возможностями компилятора, а потом уже возможностями библиотеки.
Хм, это кто такое сказал? Объясню на абстрактном примере: у Вас есть спички, зажигалка и газовая горелка, но Вы упорно пытается зажечь костер с помощью трения двух палочек друг о друга... Если Вы считаете это здравым подходом, тогда зачем Вам Дельфи, Вам хватит турбо паскаля или какие там еще версии паскаля выжили...

Добавлено через 27 секунд
Puporev, Вы, милорд, тоже некошерный у нас)))
0
3586 / 2195 / 693
Регистрация: 29.05.2013
Сообщений: 9,377
24.07.2020, 20:00 11
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
у Вас есть спички, зажигалка и газовая горелка, но Вы упорно пытается зажечь костер с помощью трения двух палочек друг о друга
Спички отсырели, газ/бензин в зажигалке кончился, в вот палочек и дури много
0
0 / 0 / 0
Регистрация: 06.07.2015
Сообщений: 36
24.07.2020, 22:16  [ТС] 12
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
у Вас есть спички, зажигалка и газовая горелка, но Вы упорно пытается зажечь костер с помощью трения двух палочек друг о друга... Если Вы считаете это здравым подходом, тогда зачем Вам Дельфи, Вам хватит турбо паскаля или какие там еще версии паскаля выжили...
Т.е. по вашему возможности компилятора - это архаичное, устаревшее барахло (палочки), а нам нужен примитивный компилятор и под него жирная либа (газовая горелка с большим газовым баллоном).
И зачем только постоянно выходят новые стандарты языков программирования... Сидели бы дальше на ассемблере.
0
884 / 586 / 179
Регистрация: 28.02.2017
Сообщений: 2,359
Записей в блоге: 1
24.07.2020, 23:04 13
Зависит от того, что именно требуется и с какими допущениями... И какая версия Делфи...
Блог GunSmoker-а (переводы): Параметры типа открытый массив и "array of const".

Добавлено через 2 минуты
Delphi
1
2
3
4
5
6
7
8
9
10
11
Var
  StringArray: TArray<String> // или Array Of String
        = ['String1', 'String2', 'String3'];
 
Procedure TForm1.Button1Click(Sender: TObject);
Var
  S: String; // или i: Integer;
Begin
For S In StringArray Do // или For i := Low(StringArray) To High(StringArray) Do
  ShowMessage(S); // или ShowMessage(StringArray[i]);
End;
Добавлено через 1 минуту
Начиная с какой версии точно не помню. Возможно XE7+.
2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32835 / 21172 / 8148
Регистрация: 22.10.2011
Сообщений: 36,432
Записей в блоге: 8
24.07.2020, 23:04 14
GoodWeather, это только начиная с XE7, раньше - будет облом.
1
0 / 0 / 0
Регистрация: 06.07.2015
Сообщений: 36
25.07.2020, 13:31  [ТС] 15
GoodWeather
Спасибо!
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
27.07.2020, 19:05 16
Цитата Сообщение от Пытливый Посмотреть сообщение
Спички отсырели, газ/бензин в зажигалке кончился, в вот палочек и дури много
Пытливый, ну прям описали положение дел в 99,(99)% игровых компаний... Ни идей, ни мозгов, зато понтов на сто лет запасено... А ресурсы рационально использовать - это путь динозавров, а мы еще немного нарастим мощи компьютеру... Не хватит, снова нарастим... И так до достижения полного фэншуя... Нет, спасибо, лучше я потусую среди динозавров...

Цитата Сообщение от m45 Посмотреть сообщение
.е. по вашему возможности компилятора - это архаичное, устаревшее барахло (палочки), а нам нужен примитивный компилятор и под него жирная либа (газовая горелка с большим газовым баллоном).
И зачем только постоянно выходят новые стандарты языков программирования... Сидели бы дальше на ассемблере.
m45, во всем должна быть мера... Не берите жирную либу, напишите все с 0... Да и зачем Вам чужой компилятор, напишите свой компилятор... Нет, еще не все - нечего Вам пользоваться чужими ПК, начинайте разработку с архитектуры Вашего процессора...

и еще одно замечание про жирные либы: вот за подключение к проекту boost, чтобы найти максимальный элемент в массиве, умников этих пересаживал бы на электронику МК-51...

А вот про asm - ну Вы просто сделали мой день!!! Я тоже считаю, что пока юные дарования в идеале не осилят ассемблер, нечего им делать даже в паскале или с/с++...
0
0 / 0 / 0
Регистрация: 06.07.2015
Сообщений: 36
28.07.2020, 13:23  [ТС] 17
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
во всем должна быть мера... Не берите жирную либу, напишите все с 0... Да и зачем Вам чужой компилятор, напишите свой компилятор... Нет, еще не все - нечего Вам пользоваться чужими ПК, начинайте разработку с архитектуры Вашего процессора...
Все правильно - не нужно пользоваться возможностями компилятора, нужно написать свой.
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
28.07.2020, 13:46 18
m45, рад, что компьютер вы уже себе смастерили... Компилятор - это уже мелочи
0
0 / 0 / 0
Регистрация: 06.07.2015
Сообщений: 36
28.07.2020, 13:53  [ТС] 19
Lord_Voodoo, зачем мне компьютер. Я все вычисления делаю в уме.
0
0 / 0 / 0
Регистрация: 29.07.2020
Сообщений: 5
29.07.2020, 09:50 20
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
паскаля выжили..
По своей сущности в наше время лучше изучать C# язык простой, все лаконично. Самое главное работая на Delphi несколько лет бесит ошибка access violation. Сколько раз возникала - в большинстве случаев это заканчивалось перепиской всего проекта, т.к. почему та не удавалось ее найти.
0
29.07.2020, 09:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2020, 09:50
Помогаю со студенческими работами здесь

Объявление массива
Всем привет! Я знаю следующие способы объявить массив //Статический int a; //Динамический...

объявление массива
Можно ли так объявлять массив? Если да, то в чем отличие? ... int b=5; int a; ...

с C# в C++, объявление массива
Добрый вечер, Всем! =) Пытаюсь перевести ф-цию с C# в VS C++ Есть функция на C# int M_SLED()...

объявление массива
помнится в паскале можно было написать нечто вроде Public Stroka(50) As String Public...

Объявление массива
Всем добрый день, очень нужна помощь. Вопрос собственно такой: Объявляется объект class...

Пояснить объявление массива
Помогите пожайлуста. Только начинаю разбираться в си и не знаю как перевести следущую строчку. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru