2 / 2 / 1
Регистрация: 15.02.2011
Сообщений: 70
1

С++.Структура данных.

15.02.2011, 23:01. Показов 4410. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот мой вариант но говорят что неправильно,ибо ссылочный тип не может указывать на языковую константу:
Pascal
1
2
3
4
5
6
7
8
9
10
11
struct list
{ char *elem;
list *next; }
list *p;
p=NULL;
p=new list;
(*p).elem='a';
(*p).next=null;
(*p).next=newlist;
(*p).(*next).elem='b';
p next next=null;
извините за орфографические ошибки

интересует все-таки что неправильно)
Миниатюры
С++.Структура данных.  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2011, 23:01
Ответы с готовыми решениями:

Структура современной связи как структура системы власти - как структура государственного управления
Структура современной связи всё больше становится структурой государственного управления, в...

Структура данных
Здравствуйте. Подскажите как правильнее распределить данные и обращаться к ним. Есть...

Структура данных
Я сейчас изучаю Си. (по книжкам(Керниган,Ритчи ) и видеокурс от "Специалист"). У меня такой вопрос...

Структура данных
Нужно разработать процедуру для списка замены выбранного элемента состоящую из трех типов полей.

14
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
15.02.2011, 23:45 2
код выложи сначала
0
2 / 2 / 1
Регистрация: 15.02.2011
Сообщений: 70
16.02.2011, 05:47  [ТС] 3
up блин(вопрос остался не решенным(
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,514
16.02.2011, 06:20 4
первое что я вижу null а не NULL
null это константа
а NULL ато макрос
хотя и то и другое сгенерит 0 но для языка это две большие разницы.
ибо указатель не может быть равен 0
он может инициализироватся значением 0 т.е указывать на нулевую ячейку памяти
С уважением Валерий

Добавлено через 4 минуты
второе
(*p).elem='a';
а это символ а не строка
надо
(*p).elem="a";
тогда это будет строка из одного символа
и третее
почему не так пишешь
p->elem='a';

Добавлено через 8 минут
(*p).next=newlist;
(*p).(*next).elem='b';
это вообще интересно
может все же так
C++
1
2
3
4
5
6
7
list *p=new list;
p->elem='a';
p->next=null;
 
list * b=new list;
b->elem='b';
b->next=p;
0
2 / 2 / 1
Регистрация: 15.02.2011
Сообщений: 70
16.02.2011, 06:37  [ТС] 5
Если вы не видите,то я извинился за орфографические ошибки,проверяет у меня преподаватель,а не компьютер так что я могу впринципе хоть как писать)
писал так потому,что писать было лень)
проблема даже не в этом)дело в том что elem имеет ссылочный тип, а присваивание ссылочному типу какой-либо константы(в моем случае это языковая) через обычное присваивание как у меня невозможно,то есть надо как-то подругому, думаю от того что я поставлю "a" вместо 'a' смысл не поменяется.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,514
16.02.2011, 06:49 6
Очень даже поменяется (или значение или адрес)
проверяет у меня преподаватель,а не компьютер так что я могу впринципе хоть как писать)
писал так потому,что писать было лень)
О КАК
а зачем тогда учиться ???
Я тебе указал на конкретные ошибки а ты их даже не понял!!!
судя по картинке ты изучаешь двусвязные списки, а сам даже основы языка не знаешь
извини но помогать(А тем более за тебя писать не буду)
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
16.02.2011, 12:21 7
Цитата Сообщение от ValeryS Посмотреть сообщение
null это константа
Никогда не слышал о константе null.
В новом стандарте есть такая штука, как nullptr, обозначающая именно нулевой указатель, но она поддерживается сейчас только MSVS2010 и последним GCC.

Цитата Сообщение от ValeryS Посмотреть сообщение
ибо указатель не может быть равен 0
он может инициализироватся значением 0 т.е указывать на нулевую ячейку памяти
В чём разница? Переменная-указатель содержит значение 0, т.е. ptr == 0 вернёт true. Это противоречит вашему утверждению.
2
2 / 2 / 1
Регистрация: 15.02.2011
Сообщений: 70
16.02.2011, 15:20  [ТС] 8
Дорогой Валерий, буду политкорректным именно для вас.
Во-первых,цель учебы не научиться быть "тупоголовым" кодером,пишущим все как надо,и пишущем к сожалению на 1 языке программирования, если вы незнаете, то мы сейчас пишем на высоких уровнях языка, мы отдаляемся от машинного кода и приближаемся к гибкому математическому,уловив суть,я могу писать и на паскале и на с,на с++,и т.д.Коды меняются,решение остается. Не важна эта трабла с запятыми и точками. Во-вторых вы указали мне ошибки???Вы сказали все что вы знаете о структуре данных,но к сожалению вы знаете мало, и указали код,который неверен.А NULL и null вообще неочем,скажите вы на чем там пишете,что они у вас разные?Мне нужно просто было сказать что разноименовывание elema и есть мой результат. Ибо если вы сами не знаете,что именно мне было писать,пишу именно для вас. Задача решалась так, решил за минутку, только как мне сказали что нужно применить разноименовывание(ибо знак -> может указывать только на структуру, а * может на все что угодно, тем более символьные константы "a"и "b" лежали в динамической памяти,тоесть неимели имени,приравнивание типо как у вас: b->next=p; невозможно,так как мы выделяем статическую память) Короче вот ответ(для вас ОМАЙГАРЕБЛДАЭТОЖЕУЧИТЕЛЬОРФОГРАФИИ даже без орфографических ошибок):
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct list
{char *elem;
list *next;}
list *p;
p=NULL; //как вы любите NULL,а не null хотя это бессмысленно
p=new list;
p->elem=new char;
*(p->elem)='a'; //вот,что я просил обьяснить
p->next=new list;
p->next->elem=new char;
*(p->elem)='b';
p->next->next=NULL;
И если вы, дорогой Валерий, знаете чуть больше моего(под сомнением точно), не смейте мне попрекать о том,что я невижу и незнаю совсем язык,вы не мой преподаватель и незнаете совершенно меня, от чего такие выводы вы делаете? Если вы кодер, который не может анализировать задачу и делаете все по лекалам, то я вам сочуствую.
0
8 / 8 / 0
Регистрация: 25.01.2011
Сообщений: 21
16.02.2011, 16:12 9
цель учебы не научиться быть "тупоголовым" кодером,пишущим все как надо
Хм...я слышал, конечно, что в образовании грядут всё новые реформы, но чтоб настолько...
Вот так невзначай вы оскорбили минимум 50% обитателей сего форума...

мы сейчас пишем на высоких уровнях языка
Может на языке высокого уровня?...

Не важна эта трабла с запятыми и точками.
А вот практика показывает ровно обратное
Даже если вы можете
хоть как писать
, то никто не собирается догадываться, что вы хотели сказать своим быдлокодом. Соответственно, не стоит и помощи ждать, а уж тем более возмущаться, что вас не поняли.

И вообще, впредь будьте менее хамоваты.
0
2 / 2 / 1
Регистрация: 15.02.2011
Сообщений: 70
16.02.2011, 16:40  [ТС] 10
Вы считаете что 50% обитателей форума "тупоголовые кодеры"?оО
На счет языка высокого уровня:да,именно так
а насчет практики,нужно до нее сначала как-бы дойти,не зная алгоритма решения задачи, практика написания орфографически правильных алгоритмов бессмысленна, тем более ею можно овладеть буквально за короткое время,что не скажешь о написании алгоритмов.
Если никто не хотел рассматривать мой быдлокод,могли бы добавить свой небыдлокод,вопрос был сфотографирован, когда во время диктанта учитель русского у вас видел ошибку,он же не пытался ее понять?Он перечеркивал и писал правильный вариант. Мой быдлокод был исправлен и исправлен неправильно.

А насчет хамства,просто отвечаю людям тем же.
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
16.02.2011, 18:23 11
Wolfed, послушайте, вы используете кучу терминов. Хорошо, что у вас богатый словарный запас, но если несвязанные термины связывать, то мысль превращается в кашу. Например:
Цитата Сообщение от Wolfed Посмотреть сообщение
практика написания орфографически правильных алгоритмов бессмысленна
Единственное, что бессмысленно - так это процитированное предложение. Бессмысленно, потому что бессвязно.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,514
16.02.2011, 18:54 12
silent_1991
извини ступил
null вообще не существует
просто до этого писал программу с булевыми переменными и по шаблону TRUE true и ответил
Wolfed
для тебя 'a' и "a" это одно и тоже?
а так 'aaaaa' и "aaaaa" это тоже одинаково,
0
2 / 2 / 1
Регистрация: 15.02.2011
Сообщений: 70
18.02.2011, 00:37  [ТС] 13
Читайте лучше,связь там есть)
Но если вы уж не поняли суть предложения,поясню: В алгоритме главное не орфография, а суть алгоритма,его правильность и верность. для меня хоть тысячу "а" напишите мне будет ровно тысяча 'a'.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,514
18.02.2011, 10:05 14
Алгоритм описывается псевдоязыком, блок-схемой, словами наконец
но никак не программой на каком либо конкректном языке
0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
18.02.2011, 10:20 15
Wolfed, в вашем первом сообщении я вижу код на Си (обрамлённый почему-то в тег Pascal, но суть не меняется). А, значит, мы уже ушли от составления алгоритма к его описанию на конкретном языке. И напиши вы 'aaaaa' вместо "aaaaa", компилятор наплюёт на вашу правильность алгоритма и пошлёт вас подальше, ему, подонку такому, "орфографию" подавай.
0
18.02.2011, 10:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2011, 10:20
Помогаю со студенческими работами здесь

Структура данных
Наверное, очень глупый вопрос. Но в Перле я новичок. Что это за структура данных? Как обойти это...

структура данных
Помогите доделать задачу(то что выделено ): 1. Описать структуру с именем ZNAK, содержащую...

Структура данных
Задание:Известны оценки каждого из 20-ти студентов группы по двенадцати предметам. Определить...

Структура данных
Для структуры данных, приведенной на рисунке, создать массив записей и определить фирму, товар...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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