![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 26.07.2011
Сообщений: 376
|
![]()
Составить программу, в которой переменная-указатель ссылается на запись.
Суть задания: Задан массив записей с информацией о продукции предприятия: наименование изделия, код изделия, количество, цена. Упорядочить этот массив по возрастанию кода изделия и его цены. Собственно у меня в процесе возникли вопросы ну и соответственно ошибки.Если у кого есть пара лишних минут подсобите советом. Ошибку выделил красным. На даном этапе выскочило вот такое: "Cannot read or write variables of this type", заменил поначалу integer на byte не помогло. Но что-то подсказало что не в этом соль. Когда заменил выскочила та же ошибка. Код:
Люблю на ты.Я человек простой
![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
![]()
Леший, так я тя же запятая вместо точки )). Исправь, и все будет Ок.
Дальше не смотрел.
Предпочитаю на "ты".
|
![]() |
![]() |
![]() |
#3 | |
Подтвердите свой е-майл
Регистрация: 19.10.2011
Сообщений: 28
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 26.07.2011
Сообщений: 376
|
![]()
Tinman, ты ещё не все перлы видел какие я умею выдавать :D Но таки попрошу глянуть снова, пусть даже и бегло, и дать критику =)
Почти доделал. Но как писал выше "будут вопросы", собственно правильной ли я вообще дорожкой потопал, делая программу? Или же начал с указателей, а закончил просто виводом информации на экран( без участи сих же указателей ). В даном варианте пошол по пути сравнения (функция Compare ) , ну и после упорядочивания по возрастанию( процедура Sort ). Код:
Люблю на ты.Я человек простой
![]() Последний раз редактировалось Leshii; 27.11.2011 в 13:50. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ну, это уже что-то!
Почти хорошо. недостатки решения (внимание! порядок указания недочётов произвольный, никакого приоритета в перечислении их нет!) 1) зачем создавать элементы в отдельном цикле? Логично это делать в том же цикле, где и читаете элементы исходного массива 2) Вы при вводе значений указали конструкцию with a[i]^ однако её не пользуетесь (эта конструкция позволяет "опускать" указания объекта, к которому идёт обращение. Вы же всё равно полностью указываете элемент. Либо опустите имена (как это Вы сделали в процедуре вывода данных), либо уберите конструкцию with a[i]^ 3) теперь посерьёзней претензия. А зачем Вы меняете СОДЕРЖИМОЕ записей массива, хотя Вам достаточно поменять местами УКАЗАТЕЛИ ?! т.е. надо менять местами не a[i]^ и a[j]^ а элементы a[i] и a[j] Это принципиально и важно! 4) Ещё важно. а если C1.cod < C2.cod то какое значение вернёт функция Compare_cod Ноль? -1 ? 23410 ? Или какое? Это важно учесть. Нужно или проиницилизировать значение функции перед проверками, или написать так IF ELSE - чтобы не было вариантов, когда Compare_cod не будет присвоено значение. 5) ну и последнее маленькое замечание. в условиях исходной задачи сказано: "по возрастанию кода изделия и его цены" Где у Вас проверка на возрастание цены ? hint. если нужно сортировать по двум и более параметрам, значит надо учитывать, что первый из сортируемых параметров может совпасть. В этом случае, если первый параметер(критерий), по которому сортируем, одинаков у двух записей, тогда сравниваем записи по второму критерию.. |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 26.07.2011
Сообщений: 376
|
![]()
Прислушался переделал. Узнал что лучше без процедур и функций ( я уже походу дела полез в списки ). Вот собственно понял что надо сделать вот только касательно сортировки по двум параметрам это будет выглядеть приблизительно так ?
Код:
Код:
Люблю на ты.Я человек простой
![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 26.07.2011
Сообщений: 376
|
![]()
Ну собственно с учётом выше сказанного и предложенного получилость вот что:
Теперь вопрос, правильно ли я сделал? Условие: Задан массив записей с информацией о продукции предприятия: наименование изделия, код изделия, количество, цена. Упорядочить этот массив по возрастанию кода изделия и его цены. Код:
Люблю на ты.Я человек простой
![]() |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
указатели | Narim | Общие вопросы C/C++ | 10 | 06.04.2011 20:01 |
Указатели(С++) | Scarletred | Помощь студентам | 0 | 05.04.2010 22:53 |
Указатели(С++) | Scarletred | Помощь студентам | 0 | 05.04.2010 22:50 |
C++ Указатели | KLOP | Помощь студентам | 4 | 06.03.2010 20:27 |
[C] массивы, указатели, двойные указатели. | Iggel | Общие вопросы C/C++ | 5 | 05.05.2009 12:39 |