Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2021, 18:32   #1
Krasemal
Новичок
Джуниор
 
Регистрация: 24.05.2021
Сообщений: 2
Стрелка Массив структур Си

При решении задач этого раздела необходимо разработать программу,
позволяющую работать со списком структурированных данных.
Хранение данных необходимо организовать в виде массива структур. В
программе должны быть реализованы следующие функции:
1) создание новой записи в списке;
2) вывод списка на экран в табличном виде;
3) поиск записей в списке;
4) удаление записи из списка.
Выбор действия со списком должен производиться пользователем в
диалоговом режиме.

Список изделий, хранящихся на складе. Каждая строка списка
содержит название изделия, количество изделий, цену изделий.
Обеспечить поиск изделий а) по указанной начальной подстроке
названия; б) по заданному диапазону цен.
Krasemal вне форума Ответить с цитированием
Старый 06.08.2021, 12:55   #2
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

А причём здесь массив? И какой список? Линейный? Циклический? Односвязный? Двусвязный? Пахнет велосипедом на тему БД.

Последний раз редактировалось taras-proger77; 06.08.2021 в 12:57.
taras-proger77 вне форума Ответить с цитированием
Старый 06.08.2021, 13:17   #3
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
А причём здесь массив?
Потому что задача на него.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
И какой список? Линейный? Циклический? Односвязный? Двусвязный?
"Логический". Просто таблица.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Пахнет велосипедом на тему БД.
Пахнет обычной учебной задачей.
ForenLi вне форума Ответить с цитированием
Старый 06.08.2021, 15:50   #4
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Потому что задача на него.
По тексту поста нет.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
"Логический".
Нет такой разновидности.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Пахнет обычной учебной задачей.
Во-первых, цель велосипеда может быть любой. Я тоже иногда велосипедю БД в своём софте, не цепляя СУБД, когда не нужен весь функционал системы, а надо только структурировать одно хранилище и дать пользователю минимальный интерфейс к нему. И да, именно на списках. Но уже давно не для того, чтоб изучить списки. А иногда цепляю СУБД. Зависит от задачи. Во-вторых, учебная задача может быть на любую тему, данный же конкретный пример довольно узок.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Просто таблица.
Это экранное представление. К виду списка оно не относится точно также, как голос чтеца – к чернилам, которыми написана рукопись.

Последний раз редактировалось BDA; 06.08.2021 в 17:48.
taras-proger77 вне форума Ответить с цитированием
Старый 06.08.2021, 16:02   #5
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
По тексту поста нет.
Цитата:
Сообщение от Krasemal Посмотреть сообщение
Хранение данных необходимо организовать в виде массива структур.
Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Нет такой разновидности.
Вот вам список:
1. Иван 10
2. Вася 21
3. Коля 15
...
Здесь не имелась в виду конкретная структура данных.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Во-первых, цель велосипеда может быть любой.
Это не велосипед, а обычная учебная задача.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Во-вторых, учебная задача может быть на любую тему, данный же конкретный пример довольно узок.
Представляете многие учебные задачи такие, особенно по началу. Отсортировать массив целых чисел тоже очень узкая задача.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
К виду списка оно не относится точно также, как голос чтеца – к чернилам, которыми написана рукопись.
Нету тут списков, как структур данных.

Последний раз редактировалось BDA; 06.08.2021 в 17:48.
ForenLi вне форума Ответить с цитированием
Старый 11.08.2021, 09:57   #6
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Для какой операционной системы? Массив структур динамический или статический? И какой список тоже непонятно.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 11.08.2021, 10:48   #7
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от challengerr Посмотреть сообщение
Для какой операционной системы?
Без разницы. malloc есть практически везде.

Цитата:
Сообщение от challengerr Посмотреть сообщение
Массив структур динамический или статический?
Если нужну создание/удаление по взаимодействию с пользователем... то? Можно, конечно, бахнуть статический массив на 1000000000000000000000000000000 элементов.

Цитата:
Сообщение от challengerr Посмотреть сообщение
И какой список тоже непонятно.
Читайте выше. Список у преподователя на листочке:
1. ввв ввв
2. ууу цц
3. ууу цц
Он прийдет и будет по нему вбивать в массив данные.
ForenLi вне форума Ответить с цитированием
Старый 13.08.2021, 05:37   #8
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Вот вам список:
1. Иван 10
2. Вася 21
3. Коля 15
...
Здесь не имелась в виду конкретная структура данных.
Нет. Обыденный список (он же перечень) не может быть структурирован. То есть, «Коля 15» – это одно скалярное значение, в самом списке его нельзя разделить на «Коля» и «15». Пока подэлементов всего два и они явно различаются символами (в одном буквы, в другом цифры), проблем нет. Но что делать, с:
«1. Коля 15 34 102 6 24.
2. Лена 7 2 3 8 6 2 301 5 104.
3. Саша 40 3 28»
? Коле 34 года, Саше – 40, Лене – 3, но у Коли возраст во второй позиции, у Лены – в третьей, а у Саши – в первой. Разобрать всё это и распарсить остальные числа уже невозможно. Для человека не проблема разобрать такое:
«1. Коля зарабатывает 15 рублей в месяц, 34 года, 102 рубля на книжке, 6 книг должен в библиотеку, 24 раза дал ублюдку-начальнику по морде.
2. Лена имеет 7 рублей в копилке, 2 рубля потеряла, 3 года, порвала 8 платьев, 6 подруг дёрнула за косы, 2 раза расшибла коленки, 301-ну книгу порвала, 5 книг запачкала, 104 раза была бита хулиганами.
3. Саша 40 лет, 3 дочери, зарабатывает 28 рублей в месяц». Но для программы это проблема, так как элементы списка разнотипны. А в стартовом посте:
Цитата:
Обеспечить поиск изделий а) по указанной начальной подстроке
названия; б) по заданному диапазону цен
. Это уже не обыденное понятие списка. Даже если забыть, что заявлено табличное экранное представление:
Цитата:
вывод списка на экран в табличном виде;
, а это два разных представления, что также исключает обыденное понятие списка. А какое остаётся? Остаётся список из информатики. Причём, «список» и «структура» ещё и фигурируют в одной фразе:
Цитата:
Сообщение от Krasemal Посмотреть сообщение
Хранение данных необходимо организовать в виде массива структур
. Ладно, физический массив может массивом не быть. Почитайте Шилдта, у него полно физических массивов, являющихся на самом деле не массивами, а списками. Но слово «массив» здесь не выкинуть, это составной термин, а не какая-то вшивая песня, а логический массив просто относится к другому уровню абстракции разреженного масива, в стартовом посте никак не рассмотренному. Но это явно информатика. А в информатике понятий списка три:
1) элемент интерфейса в виде выпадающего перечня строчных значений,
2) элемент интерфейса в виде постоянно присутствующего на экране перечня строчных значений,
3) неиерархическое упорядоченное хранилище данных поверх кучи, в котором каждый элемент связан одним или двумя указателями с соседними.
Два первых ну никак не лезут в контекст хранения, столь же не структурированы и явно конфликтуют с табличным представлением, так как сами являются другими экранными представлениями. А третий имеет 4 разновидности:
1) односвязный линейный список,
2) двусвязный линейный список,
3) односвязный циклический список,
4) двусвязный циклический список.
Кстати, а таблицу форматировать графически или псевдографически? Если графически, то в какой системе? Как должна быть оформлена прокрутка? А команды как должны быть оформлены? Горячими клавишами? Командной строкой? Экранными кнопками? Меню? В какой системе? Или вообще сформировать html файл и скормить его wampу, а когда wamp примет обратно форму, принять команду и её параметры через php-модуль? Взять на себя и контент сайта, и протокол и отдавать с формой html сразу в браузер, а команды и их параметры из того же браузера принимать?

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Без разницы. malloc есть практически везде.
То-то в практикуп по трупопаскалю входит создание кучи прямо в приложении.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
сли нужну создание/удаление по взаимодействию с пользователем... то? Можно, конечно, бахнуть статический массив на 1000000000000000000000000000000 элементов.
Вы никогда не сталкивались с понятием резервирования массивов? А с разумным ограничением? Например, в редакторе схем вязания нет смысла делать слои до 4*294*967*295 клеток одновременно в ширину и в высоту, так как такое не связать и за век, а слои шириной до 65 536 клеток в ширину и до 65 536 клеток в высоту вполне устроят пользовательницу.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Это не велосипед, а обычная учебная задача.
Если бы учебная задача на вполне нормализуемые структурированные хранилища не предписывала создание велосипеда, то в ней бы было прописано обращение к СУБД. Но цель велосипеда может быть любой. От учебной до отказа от лишних API и экономии ресурсов на отказе от полного функционала СУБД. И велосипед – не синоним бессмысленного сочинительства. Может на целевой системе вообще не реализована ни одна СУБД? Или каждый бит на счету? И велосипедить придётся. И да, я в курсе, что целью может быть и изучение способов хранения и обработки структурированных данных. Да и разработчиков самих СУБД надо на каких-то задачах учить. Даже если до начала разработки самой СУБД ещё лет 5, а то и 55. Но это не отменяет того факта, что похожее уже много раз не только делалось, но и описывалось и даже имеет собственную терминологию и собственную теорию. А бывает и так, что цель – как раз научиться обращаться по API к СУБД. Тогда задача и формулируется соответственно, реализация хранения в ней в этом случае не прописывается.

Последний раз редактировалось BDA; 14.08.2021 в 00:56.
taras-proger77 вне форума Ответить с цитированием
Старый 13.08.2021, 10:52   #9
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

taras-proger77, что вы строите тут из себя? Только в гавно все больше макаете.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Нет.
Да. Задача на массив.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Обыденный список (он же перечень) не может быть структурирован. То есть, «Коля 15» – это одно скалярное значение, в самом списке его нельзя разделить на «Коля» и «15». Пока подэлементов всего два и они явно различаются символами (в одном буквы, в другом цифры), проблем нет. Но что делать, с:
Может. Список оценок студентов за семестр и т.д. Список - это просто перечень чего-либо. Что-либо может иметь структуру, может не иметь.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
? Коле 34 года, Саше – 40, Лене – 3, но у Коли возраст во второй позиции, у Лены – в третьей, а у Саши – в первой.
Тогда это не список, а набор несвязных данных. Хватить придумывать.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Это уже не обыденное понятие списка.
А как это вообще относится к определению списка? Поиск, сортироввка данных - это обработка данных, а не их представление.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
а это два разных представления, что также исключает обыденное понятие списка.
Что за бред? Какие два представления? У вас есть массив структур - их вывод надо оформить в виде таблицы. Как они хранятся к этому не относится - я могу и кусок памяти, и сетевой пакет, и видео-файл вывести в виде таблицы... и?

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
А какое остаётся? Остаётся список из информатики.
Остается и был заявлен один, единственный - обывательский, человеческий, ... список на бумаге, как набор данных, которые будут вводиться.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Ладно, физический массив может массивом не быть.
Вы сами процитировади условие - массива структур. По условию задачи массив быть обязан и обязан он быть массивом.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Почитайте Шилдта, у него полно физических массивов, являющихся на самом деле не массивами, а списками.
И еще кучу не нужного говна почитайте. Напишите звездолет и получите заслуженную 2.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Два первых ну никак не лезут в контекст хранения, столь же не структурированы и явно конфликтуют с табличным представлением, так как сами являются другими экранными представлениями.
И как они кофликтуют? Вы не можете линейный список вывести в виде таблички? Может вам пойти из программирования тогда?

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
То-то в практикуп по трупопаскалю входит создание кучи прямо в приложении.
Раздел С/С++. Тема "на Си". Причем тут паскаль, турбопаскаль, куча? Как это связано с тем, что вы процитировали?

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Вы никогда не сталкивались с понятием резервирования массивов? А с разумным ограничением?
А вы читали то, что цитировали? Там написано про резервирование и что это не лучшая идея в этой учебной задаче.

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Если бы учебная задача на вполне нормализуемые структурированные хранилища не предписывала создание велосипеда, то в ней бы было прописано обращение к СУБД.
Что за бред? Студенты только язык начали учить и курс по языку, а выхотите, чтобы они сразу к СУБД подключались?

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Но цель велосипеда может быть любой. От учебной до отказа от лишних API и экономии ресурсов на отказе от полного функционала СУБД.
Зачем? Вы о чем? Причем тут СУБД?

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
И да, я в курсе, что целью может быть и изучение способов хранения и обработки структурированных данных. Да и разработчиков самих СУБД надо на каких-то задачах учить.
У вас биполярка чтоль?

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
Но это не отменяет того факта, что похожее уже много раз не только делалось, но и описывалось и даже имеет собственную терминологию и собственную теорию.
Как тот факт, что кучу раз писались парсеры, векторы, выделения памяти и т.п. поможет студенту выучить конкретный язык программирования?
ForenLi вне форума Ответить с цитированием
Старый 13.08.2021, 13:05   #10
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Цитата:
Сообщение от ForenLi Посмотреть сообщение
taras-proger77, что вы строите тут из себя? Только в гавно все больше макаете.
Сваливать с больной головы на здоровую неприлично.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Тогда это не список, а набор несвязных данных.
С какого перепугу?
Цитата:
Сообщение от ForenLi Посмотреть сообщение
Хватить придумывать.
Так в чём проблема? Не выдумывай и всего делов.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
А как это вообще относится к определению списка?
А ты подумай.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Что за бред?
Ну мне-то откуда знать? Он же у тебя.
Цитата:
Сообщение от ForenLi Посмотреть сообщение
Какие два представления?
Есть таблица и есть список. Это два разных представления.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
И как они кофликтуют? Вы не можете линейный список вывести в виде таблички?
Данные из линейного списка могу. Но сам линейный список – внутреннее представление, а таблица – экранное. Одно не может быть другим, можно только использовать данные одного и построить другое, что обычно и подразумевается под выводом списка в виде таблицы. Но если под списком понимать перечень, то он сам – экранное представление. И столбчатой диаграммой таблица быть тоже не может. Оба экранные, но разные. И совместить их одновременно на одном и том же участке экрана нельзя, иначе пользователь прочитает полный бред. Здесь то же самое подразумевание уже не пройдёт.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
У вас биполярка чтоль
У тебя да.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Зачем? Вы о чем? Причем тут СУБД?
При БД.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Да. Задача на массив.
Нет.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Что за бред? Студенты только язык начали учить и курс по языку, а выхотите, чтобы они сразу к СУБД подключались?
Я же на первой паре по Object Pascal цеплял к своей кривоподелухе серверный Oracle. Студенты разные бывают. У кого-то первый урок вообще программирования, а у кого-то – первый урок API СУБД, а у кого-то – первый урок по болэндовским внеэкранным компонентам для достпупа к СУБД. И задачи для них формулируются по-разному. Даже если обе учебные софтины делают одно и то же.

Цитата:
Сообщение от ForenLi Посмотреть сообщение
Как тот факт, что кучу раз писались парсеры, векторы, выделения памяти и т.п. поможет студенту выучить конкретный язык программирования?
С чего взял?

Последний раз редактировалось BDA; 14.08.2021 в 00:57.
taras-proger77 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры.Обработка массивов структур.Создать массив структур из 10-ти элементов molotokan Общие вопросы C/C++ 0 16.02.2019 20:23
Массив структур AllenWallker Паскаль, Turbo Pascal, PascalABC.NET 3 25.12.2013 00:06
Массив структур Mehanizator Помощь студентам 5 24.08.2011 19:20
Массив структур.......на С. MARTINS Фриланс 8 07.06.2011 21:11
Массив структур nondeadlollipop Помощь студентам 1 11.12.2010 09:28