|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|||||||||||
Нужен способ помещения разного рода типа данных в контейнеры типа массивов или структур18.02.2014, 14:05. Показов 5563. Ответов 47
Сабж. Нужен способ помещения разного рода типа данных в контейнеры типа массивов или структур или... пободного рода простых для восприятия методов.
Поясню. Пишу базу дынных, используя структуры я могу получить динамически кол-во строк исходя из данных в структуре. Например:
Где заранее будет проинициализированна глобальная переменная типа int, а перед определением самой структуры, я бы написал что например n = 10, j = 30... Ещё интересует вопрос с разнородными переменными, например я вот захочу чтоб в структуре было char[], int, float, WORD типы переменных... Посоветовали юзать тип VARIANT, однако как его юзать, если кол-во бит выделенное для каждого типа переменных - будет различаться... В общем нужен простой подход(в синтаксисе) к данному вопросу. И повторюсь - классы и векторы не предлагать, они слишком сложны в синтаксисе.(переубеждать меня не надо, данная тема не для этого создана).
0
|
|||||||||||
| 18.02.2014, 14:05 | |
|
Ответы с готовыми решениями:
47
Сортировка массивов разного типа Создание массива массивов разного типа переменных Программирование задач с использованием комбинированного типа данных или структур |
|
1675 / 1047 / 174
Регистрация: 27.09.2009
Сообщений: 1,945
|
|
| 18.02.2014, 16:37 | |
|
Резюмируя: вы не хотите использовать для решения своих задач средства, которые для них предлагает язык C++.
Рекомендация: сменить язык программирования на тот, который предоставляет приемлемые для вас средства.
1
|
|
| 18.02.2014, 17:59 | |||||||||||||
|
Izual, а что мешает сделать массив m двумерной ссылкой?
Кстати, без использования классов и векторов:
2
|
|||||||||||||
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|||
| 18.02.2014, 18:04 [ТС] | |||
|
Язык Си предлагает массу вариаций, но синтаксис навороченных классов - через чур сложен для понимания, особенно я замечаю что когда проходит довольно длительное время, а ваша программа устаревает, то начиная опять в ней копаться - классы сильно затрудняют жизнь. Это лично моё мнение, спорить со мной не надо, и не надо мне предлагать того что мне не надо. Если бы я спросил в теме тот вопрос на который вы дали ответ, то тема бы называлась по другому, а вы спамите, потому что не по делу ответили. С++ в свою очередь даёт массу возможностей, которые просто надо додумать как реализовать. У кого то в подписи было изречение, мол "настоящий программист пишет код, который понятен даже школьнику", с чем я полностью согласен. В Си есть структуры, есть динамическое выделение памяти, есть массивы, есть даже готовая структура типов VARIANT. Так что вы мне тут советуете о смене языка, если всё что надо есть. Не хватает только практических навыков и знаний, чего я и ищу. Добавлено через 3 минуты По поводу раздела "Си", не думаю что он подойдёт, структуры же это уже ООП принципы(а значит ++), а тем более я всё же собираюсь использовать VARIANT, там уж точно будут фичи с классами(хотя они будут идти как добавочное, что мне изучать нет нужды).
0
|
|||
| 18.02.2014, 18:19 | ||
|
Пардон, не ссылки, а указатели, конечно же
0
|
||
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|||||||
| 18.02.2014, 18:42 [ТС] | |||||||
|
Хмм, в книге Хабибулина, по которой я изучаю Си\Си++ структуры помещены в раздел ООП, вот я и решил что это уже ООП. Но есть другая сторона медали, в разделе чистого Си маловато народу... Да и я использую всё же операторы New и Delete, которые относятся к С++. Вообще предполагаю что из плюсов я многим чем пользуюсь, тем более что програмлю под WinApi, а там всё же ++ мне кажется =) Сам принцип ООП, как объектов - для меня несёт немного другой смысл, нежели для большинства(имхо). В принципе даже сам массив - это уже объект, хотя по причине того что в него не помещяется разнородного типа данные - это выходит за рамки объекта, но зато с этой задачей справляется структура. Кстати, а что по поводу разных типов данных? Я тут в книге увидел пример с использованием unsigned:
0
|
|||||||
| 18.02.2014, 19:27 | ||||||||||
0
|
||||||||||
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
||||||
| 18.02.2014, 20:08 [ТС] | ||||||
|
Книга "Профессиональное программирование на языке высокого уровня С/С++".
Кстати раздел в котором находится описание структур, звучит "Расширение языка Си в С++"... Т.е. всё таки плюсы =) По поводу отличия, синтаксис сложный у классов и векторов, очень много символов которые затрудняют понимание, всякие двойные >> << :: и т.п. а потом всё это вместе друг с другом... Получается просто "херня" =) Для меня важен синтаксис, потому что я буду строить интерпритатор(если я правильно его назвал) текста, т.е. т.к. в Windows нет встроенного компилятора, мне придётся в программе реализовать алгоритм чтения и приминения блок схем пользовательских функций. Не хотелось бы чтоб там присутствовал сложный синтаксис, тем более что парсить в таком случае файл с кодом, который создаст программа исходя из блок-схемы будет просто очень тяжело. А уж если потом вылезет ошибка, то в создаваемом файле "чёрт голову сломает", всё должно быть просто как автомат АК.(хотя бы потому что я хочу и авто проверку на ошибки сделать и способ устранения ошибок, чтоб всё было автономно по максимуму) Я понимаю что WinApi это всего лишь библиотека, однако для её полного использования всё же С++ (тем более что я использую ещё и OLEAUTO, для работы с Excel импорт-экспортом, а там используются классы). Говорю же мой взгляд на ООП иной, я буквально всё воспринимаю.(в этом заслуга вед и буквицы) Кстати, а вот если я в цикле задания массива захочу чтоб например у меня в 3-ей строке было отличительное кол-во элементом, то ничего страшного в этом не будет?... Например так:
0
|
||||||
| 18.02.2014, 20:35 | ||||||
|
0
|
||||||
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|
| 18.02.2014, 22:13 [ТС] | |
|
Сдвиги.. что то слышал )))) Но речь не именно о этих символах, а вообще о синтаксисе при классовом программировании, там этих символов постоянно пачками, это раздражает. Структуры проще - всего льшб точка - как разделитель.
Не не, IDE это для разработчика, а я хочу чтоб программа в зависимости от нужд пользователей - сама себя либо рекомпилировала(как это можно было бы сделать в Linux, т.к. там встроенный GCC), либо вот я мечтаю(готовлюсь) осуществить через чтение блок схем файлов. На обычном Си не всё реализованно под Excel и удобства намного меньше. А тем более новые версии экселя выходят, так новые фичи тока под ++ пишутся(и то, OLEAUTO уже забросили, там что то другое мутят) Взгляд меняет всё! Только с помощью взгляда на вещи мы видим например, что андроид - "куй проссыш" как настроить, а iOS - прост на столько, что 5-и летний ребёнок поймёт. Размем будет естественно в виде отдельной переменной. Только что то я не понял, что значит "в самой структуре"?...Ну т.е. я понял это как отдельную переменную, но я бы хотел её хранить в другой подобной динамической структуре... Которая будет описывать таблицы на основе той структуры которую мы тут описываем... ололо, называется "сам то понял что сказал")))) Но на самом деле я знаю что я имею ввиду, но "по другому не скажеш" =) Вот теперь осталась последняя задача, с типами данных. Хотя тут будет немного размытее, т.к. вот у меня динамический массив в структуре уже есть, но он то мне нужен для того чтоб выделять память под разного рода типы... Типа чтоб m[0] было например char(и размер j - был бы задаваемым), m[1] было int.. и т.д. Кстати суть то хоть того что я хочу сделать понятна?.. И куда может вывести подобная программа всю индустрию обработки баз данных?... Если реализовать как надо - 1С программа будет курить в сторонке.
0
|
|
| 19.02.2014, 08:43 | |||||||||||||||||||||||||||||
Не по теме: Компилятор, встроенный в Linux, называется сс, а gcc устанавливается отдельно. К тому же это компилятор языка Си, а не плюсов Не по теме:
0
|
|||||||||||||||||||||||||||||
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|
| 19.02.2014, 09:23 [ТС] | |
|
Вот про реализацию синтаксиса я и говорю, чёрт голову сломает.
Интерпретатор он как ни крути будет... Блок-схемы - это же школьный курс, либо в книгах - это самые азы.(графическое представление хода действия программы с всякими угольниками, кругами, ромбами и т.п. - для понимания, а так же для устранения/выявления ошибок). По поводу Linuxa уже что то перехотелось вообще сидеть на нём, т.к. говорят куча ошибок там, даже в простых функциях(я говорю о переносимости WinApi кода)... а раз уж без плюсов, то возможно и к лучшему. Работа с Excel это COM библиотека, не WinApi, я просто сказал как бы в добавок о том что на плюсах оно лучше. Сам iOS не знаю, но все друзья и знакомые хвалят эти игрушки за именно простоту в настройке, мол там не надо 100500 вкладок чтоб найти нужные настроечные данные... Ну я больше поклонник всего что проверенно временем, так что вообще по барабану, телефон - это телефон... Если уж говорить о удобном компьютере - то мини ноут или планшет... Не, ООП(как классы) не надо, это меня ещё на год заступорит, или на вечно. СУБД да, уже научен горьким опытом, когда к БД присоединяеш дополнительную СУБД, пишеш код для сцепки... а потом получается что надо ещё и ещё, а копипаста не сработает, т.к. имена переменных разные, приходится переписывать очень много - не мой стиль, я как в мультике "Я на месте не сижу, щяс пойду и попляшу" =) Не усидчивый и не могу заниматься нудной работой, и из за этого программу не могу доделать должным образом, хотя уже 17к строк... Мне нравится сам творческий процесс - создания алгоритмов... Ну от природы не уйдёш. ("И даже мудрец поступает согласно природе своей, так к чему противленье?" с.Бхагавад Гидта) Поддержка не знаю уж почему такая большая, наверно потому что это первая программа в классе СУБД, где можно увидеть прям из неё исполняемый код и ошибки.(видел как то пару раз, но это всё равно не достаточно, я хочу с блок схемами, т.к. логика расширится) Так а теперь по поводу кода. Конешно будет несколько структур, взаимо связанных. Без этого никуда, т.к. приоритет должен быть управляемым с уровней. Возник тут вопросик... А вот как мне реализовать N-ое(динамическое) кол-во экземпляров структуры? Т.е. например низший уровень, структура - которая в себе держит данные для формы колонок\столбцов. И мне например надо будет не одну или две, а 5-6 экземпляров(т.е. разные названия, в моём примере были экземпляры 'ma' и 'mar', а две как минимум - для того чтобы хотябы одну можно было дописывать\изменять в процессе работы), но только не статически им названия давать, а опять же динамически.
0
|
|
| 19.02.2014, 11:03 | ||||||||||
|
0
|
||||||||||
| 19.02.2014, 18:10 | |
|
0
|
|
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
|
| 19.02.2014, 18:26 [ТС] | |
|
namespace, ну да, что то слышал =) постольку поскольку иногда пользуюсь, но вроде 100500 символов он не требует, покрайней мере в той копипасте, которую я скопировал в свой код))
Есть тут у одного старичка на форуме подписка, мол(примерно) "хороший код может написать любой програмист, но написать код понятный обычным людям может только профессионал"... здесь самое главное слово - "Простота"! - и это залог всего, так же как я веды изучаю, да есть лекторы несущие такой объём знаний, что можно мир завоевать, но понять и принять эти знания в себя, когда они разсказываются стилем попа, без чувств, без интонации, без пауз на "весёлые" примеры и т.п. - их никто не примет, кроме "задротов". Это как в школе, бывают такие люди - они тупо заучивают учебник, а толку? Я всегда следовал принципу - найди самое важное (например формулу), пойми суть и используй. Ведь в программировании как в геометрии... преобладает логика, эти "допустим" и "если"... И это в конечном итоге определяет достигнеш ли ты цели или нет, и хватит ли терпения, ведь заучить книги по математике не так уж и трудно, там книга на год, а у нас в нашем не лёгком деле - так всё быстро мчиться что подобным способом можно заучивать 100500 книг, но только что же останется в памяти? иии а как же творческий процесс?... Блок схема - помогает для восприятия алгоритмов, если её продумать, то это как brakepoints, по которым даже можно смотреть результат на определённом выполнении этапа. Тем более что если данное будет - то даже недо программисты(бугалтера и другой шлак) могут справляться с исправлением алгоритмических ошибок. POSIX - слышал что то, но не сталкивался, так что тёмный лес. А вообще, ну как LINUX может не поддерживать код WinApi... ну это честно говоря бредово, винда это же придаток линхи как ни крути. Да и WINE там есть... в общем фиг с этой линухой. Поддерживает и хорошо, но не о том речь.(но спасибо за инфу, может пригодится) Сложная в синтаксисе. Мне этого хватает. Как только книгу переварачиваеш за поовину начинется бред сивой кабылы с таким кол-вом соединительных символов... опять же простота залог всего. Есть основная база данных, которая читается из одного файла, и есть ещё с десяток дополнительных файлов, откуда читается ещё, при этом эти придатки должны загрузиться правильно, т.е. если основная база данных была изменена, то придаток должен эти ньюансы проработать и измениться ровно так же, чтоб стыковка прошла успешно.(вся эта конитель потому что и так база огромная, а если все придатки грузить сразу то будет овер мемори - говорю же уже 17 000 строк кода накатал, ну и постольку поскольку - но работает, хотя меня не хватает одного, и уже за**** переписывать один и тот же алгоритм стыковки с разницей в стыковочных узлах - а это самое мерзкое, потому что в 100 строках кода надо изменять названия переменных, а ещё иногда что то другое дополнять, а это уже сложно, потому что алгоритм не гибкий получается, хрен знает когда ты его писал, а теперь не понятно что есть что, для этого и нужна графическая блок схема, для того чтобы править код прям в ней, это как графическая IDE) Дело в том что 1С прост, те кто работают у них на выездах - это в основном недо программисты, которые придумать сами не умеют, у них есть дорога по которой овцы ходят... Я по поводу например сделать ma[N], int N - определить как кол-во загруженных "таблиц", и в последствии иметь возможность изменять это N. Например вот при подгрузке придатка как я объяснил выше. (я просто не знаю можно так или нет, ни в книге ни в гугле не видел, да и ключевое слово для поиска наверно не правильно подобрал, т.к. не знаю как это называется) Рефакторинг был, уже 3 раза. Но 17к всё равно остаётся, я тупо делаю огромную базу данных(в одиночку ~ ~), ну суть не в этом, а в том что всё что есть - необходимо, я уже и в функции всё вывел, и алгоритмы укорачивал, но при 10 стыковочных доп. баз данных к основной, где разные связующие звенья - единую функцию для стыковки не напишеш. Остался теперь последний рефакторинговый этап - разбить один файл с 17к строк на несколько файлов, но т.к. я сразу не думал что столько получится - я использовал не очень переносимые алгоритмы, зависящие от некоторых деталей... ладно это я на закуску себе оставлю, тем более что я уже к 3 рефакторингу вывел много чего в функции с возвращяемыми значениями, осталось доделать и уже потом можно разъединять файл...
0
|
|
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
||
| 19.02.2014, 20:22 [ТС] | ||
|
0
|
||
| 19.02.2014, 20:44 | |||||||||||||||
|
Izual, сам себе противоречишь:
И да, винда - не придаток линукса. Мало того, она раньше появилась. А wine - это вообще отдельная программа.
0
|
|||||||||||||||
|
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
|
||
| 19.02.2014, 21:50 [ТС] | ||
|
Но с другой стороны, вот вы дали ссылку, и ну я таким же методом(почти) и поступаю. Так получилось, что после 8 класса(когда музыкальная школа была окончена) появилось много свободного времени, пьянки гулянки - надоедали, т.к. люди которые в них принимали участие в основном... мягко говоря быдловаты) А я как белка в олесе всегда был, то с ботанами, то с бакланами) Ну у каждых из них свои приемущества и недостатки, думаю если задаться вопросом то сами найдёте) И в общем информатика стала для меня самым любимым предметом для тренировки логики(т.к. обожал логические задачки из всех точных наук). 10-11 класс - параллельно учился в шараге(тупо С++ осваивал там), потом шарагу то я еле еле закончил, и ещё 2 года в инсте, потом терпение лопнуло, потому что знания и практика должны идти параллельно, а институт такого не даёт, +ещё куча не нужных предметов(основанных на догмах) - вообще поставили крест. В итоге я два года потом дома сидел штрудировал всякие задачки и DirectX, т.к. душа всегда тянулась к красоте. И вот полтора года назад - первый проэкт, база данных, ни конкретного ТЗ, ни чего такого не было, пришлось импровизировать, но задача была примерно ясна. Первые пару месяцев(а в добавок работаю я дома, без рамок ограничения во времени и т.п.) я 24\7 сидел парился над WinAPi, и понял что шарага в месте с инстом дали меньше 1% от того что надо хотябы для понимания основ работы с формами. Вот и получилось, что я примерно "вашим" же способом и делаю, т.е. тут и пища для ума, и творчество, и много ещё "и", плюсы которых ни один институт не даст. (кстати, streamami не пользуюсь, предпочитаю Си стиль, т.е. fopen, fgets и т.п.) Ладно с оффтопом нада завязывать =) По поводу "нагромождения" - а по другому никак, есть задача - выполняеш теми знаниями которые есть, постепенно понимание и знания приходят(фактор времени никто не отменял) и потому совершенствование так же идёт. По поводу того что "якобы сложно" - да нет, 17к строк кода это не сложно, потому что методы которые я использую - просты как самые базовые книжёнки по С/С++. И даже маломальски грамотный человек(понимающий что такое if\else) поймёт код, а логику - я для себя всё же описываю в комментах, ну так где это необходимо - хотя таких моментов мало. Почему сложно переделывать - потому что алгоритм стыковки при если если... не вмещяется на экран - не видишь полностью картину, да и плюс переменные надо помнить куда какая принадлежит и за что отвечает(ну это я только продумываю в плане именации их). Мне лично ООП не нужно(если вы о классах), но если смотреть как на структуры то именно это для меня самый высший приоритет, потому что понятно и объяснить на пальцах можно. Дада, вот этот синтаксис(в частности) мне тоже не нравится, это о примере с namespace. По поводу Linux, ну возможно всё так как вы и говорите, но непереносимость кода(потому что библиотек нет на Linux под WinApi) конешно большой минус. Тем более - ну кто пользуется Linuxom?.. Не выгодно изучать форму под Linux, когда самой ОС не пользуются обычные бухгалтера. Wine - понятное дело что это программа, но это я так привёл просто пример того, что могли бы блин и реализовать переносимость, как это делает Wine. Как это не должна переноситься в RAM? А просчёты формул и данных на основе тех переменных которые в файле?... И мне нужно именно динамически контролировать кол-во экземпляров структуры.(блин вы походу не въехали, говорю же я пишу программу так, чтобы потом не мучаться(расширять основы).(и я же говорил что придатков СУБД у меня более чем 10, иногда надо несколько сразу загрузить для расчёта данных перманентно) Работа чужого кода, основанного на классах - нет спасибо =) У меня свой стиль, свои убеждения, а в конечном итоге программа будет не только для баз данных. Кстати, я тут подумал, да в принципе фиг с тем что структура содержит только char тип, ведь в конечном итоге - (наверно) из char можно во все типы конвертировать данные.
0
|
||
| 19.02.2014, 22:38 | ||||||||
|
0
|
||||||||
| 19.02.2014, 22:38 | |
|
Помогаю со студенческими работами здесь
20
Ввод в строку данных разного типа Хранение в массиве данных разного типа Сохранение данных разного типа в один файл две базы данных разного типа на хостинге Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|