[Ответить в тред] Ответить в тред

26/03/16 - Конкурс: Помоги гомункулу обрести семью!
15/10/15 - Набор в модераторы 15.10 по 17.10
27/09/15 - Двач API — Инструкция к применению


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 177 | 7 | 27
Назад Вниз Каталог Обновить

Аноним 28/03/16 Пнд 00:22:10  121543615  
14591137309940.png (10Кб, 427x210)
Привет, анончик. Тема моего треда-программирование. Хочу попросить тебя, друг, объяснить мне смысл программы на пикриле.
То, что подчеркнуто красным: Мы объявляем указатель и присваиваем ему символьную строку. Зачем нам нужен указатель s?
Голубым: мы присвоили s переменную str, чтобы впоследствии проводить какие-то операции с нашей строкой.
Фиолетовым: цикл for. Нам не нужна точка отсчета. По дефолту он будет проводить свой цикл, начиная с самого начала? А дальше указатель str считывает каждую букву до тех пор, пока не встретится с нуль символом?
Желтым: пока в указателе
str есть символ, то переписывать каждый символ, начиная единожды с впереди стоящим. Так?
Жду вашей помощи, друзья. Надеюсь, что вы мне поможете понять программу, как необходимо
Аноним 28/03/16 Пнд 00:25:29  121543972
>>121543615 (OP)
Берешь книжку по плюсам и наворачиваешь.
Слишком много говна, чтобы пояснять.
Аноним 28/03/16 Пнд 00:32:07  121544677
>>121543972
Один пост пояснит мне, что да как. С книгой уйдет гораздо больше времени, а здесь такие темы из учебников, которые описываются по 30-40 страниц. А тут один ответ нужен, чтобы понять смысл всего написанного.
Аноним 28/03/16 Пнд 00:32:59  121544768
>>121544677
Ответ мб и один, но он будет огромен и не охватит все аспекты программирования, т.е. ты также будешь продолжать делать говнокод с ошибками.
Аноним 28/03/16 Пнд 00:37:52  121545243
>>121544768
Я не думаю, что ответ будет огромен. По каждому вопросу можно ответить в один-два-три небольших предложения, чтобы понять, зачем они прописываются. Я не прошу объяснять мне элементарное. Просто сказать: “вот это нужно потому, что это терминнейм, который дает программе в определенной строке работать так, как надо“
Аноним 28/03/16 Пнд 00:39:11  121545386
>>121543615 (OP)
Переменной присваивается не строка, а указатель на строку. Собственно, в Си нет отдельного типа "строка", есть только указатель на область памяти. По соглашению признаком конца строки является нулевой байт. Во втором цикле этот \0 и проверяется.
Аноним 28/03/16 Пнд 00:40:57  121545560
>>121543615 (OP)
пиздец, кто так строки объявляет? ты ищешь себе проблемы с указателями ?
пищи так
char str[] = "text\0";
ты забыл нуль-символ
Почитай как пишется for, что за нечитабельный пиздец у тебя там
Аноним 28/03/16 Пнд 00:42:02  121545661
>>121545560
Это пример из материалов, которые я нашел. Вот, сижу и решаю
Аноним 28/03/16 Пнд 00:44:41  121545909
>>121545560
абалдел штоле ? не нужен никакой нуль символ
Аноним 28/03/16 Пнд 00:45:27  121545984
короче, программа норм, указатель s не нужен
Аноним 28/03/16 Пнд 00:45:34  121545998
>>121545661
серьёзно, не знаю какой у тебя "уровень", но если ты новичок в плюсах, то лучше пиши так что бы тебе был понятно
судя по всему, for пропускает пробелы, заметь символ ; после скобки
затем строка без пробелов записывается в поток ввода-вывода, но лучше для таких операций юзать специальные функции для работы со строками, ибо у тебя могут возникнуть проблемы
Аноним 28/03/16 Пнд 00:47:15  121546172
14591152358360.jpg (25Кб, 500x313)
>>121545560
>char str[] = "text\0";
>\0";
Аноним 28/03/16 Пнд 00:47:21  121546183
>>121545661

Это где ты подобрал материалы без пояснений?
Жирновато.
Аноним 28/03/16 Пнд 00:47:37  121546213
>>121545998
Это не моя прога. Я ее нашел с заданием:"Объясните использование типов, переменных и констант.что будет напечатано в результате выполнения этого фрагмента программы"
Аноним 28/03/16 Пнд 00:47:56  121546254
чуваки не надо прикапываться к стилю, это учебный материал. Тут специально используются указатели вместо стрингов
Аноним 28/03/16 Пнд 00:49:22  121546387
>>121543615 (OP)
Кооче ты сперва инклюдиш какойто стдавх, эхз чо это, потом вводвывот инклюдишь в прогу короче.Вот. Ну там дальше тоже хуйня какая то есть.

Аноним 28/03/16 Пнд 00:49:25  121546393
>>121546183
Пояснения есть, но уж больно все там смутно
Аноним 28/03/16 Пнд 00:50:57  121546536
>>121543615 (OP)
ты что, ебанутый? Зачем тебе плюсы? Учи сразу норм язык
Аноним 28/03/16 Пнд 00:51:17  121546563
Цикл for: увеличивать указатель str, пока он указывает на пробел. Цикл while: вставлять символ на который указывает str в поток cout и увеличивать str, пока str не указывает на 0 (нуль-символ)
Аноним 28/03/16 Пнд 00:51:17  121546564
>>121546536
пхп?
Аноним 28/03/16 Пнд 00:51:56  121546624
>>121546536
Всяко въебывать на плюсах в вузике. надо чо-то знать
Аноним 28/03/16 Пнд 00:53:39  121546791
В цикле for первый непробельный символ ищем, вернее его позицию. Затем в while выводим строку посимвольно, начиная с позиции первого непробельного символа.
Аноним 28/03/16 Пнд 00:56:51  121547092
>>121546791
Понял тебя, анон. Спасибо
Аноним # OP  28/03/16 Пнд 00:58:19  121547215
Только вот нихуя не понял с укзателем *s. Зачем мы его прописали и каким образом? Есть же термин
Аноним # OP  28/03/16 Пнд 00:59:18  121547303
Как дойдет до меня с указателем *s, вкинуть еще задачек или тред можно слить?
Аноним 28/03/16 Пнд 01:01:47  121547528
>>121545560
Он сам добавляется при такой записи, что память сначала не выделили явно тебя же не смутило
Аноним 28/03/16 Пнд 01:07:36  121548010
Можно вообще королем потока стать, заявив, что запись char str = "stroka" неправильная, т.к. str указывает на строковую константу. Правильно надо писать const char str = "stroka" . Некоторые современные компиляторы даже предупреждение выдают.
Аноним 28/03/16 Пнд 01:08:12  121548066
>>121548010
звездочки потерлись
Аноним 28/03/16 Пнд 01:10:04  121548233
>>121548010
Поясни лучше за указатель *s. Королем ты здесь не станешь, но сделаешь добро для меня. Буду тебе благодарен. А потом, если желаешь, вкину еще задач
Аноним 28/03/16 Пнд 01:11:08  121548306
>>121547215
Указатель s нигде не используется. Скорее всего его просто ввели для демонстрации присваивания.
Аноним 28/03/16 Пнд 01:13:27  121548491
>>121548306
То есть программа будет исправно работать, если я уберу указатель *s из переменной указателя на строку и операции присваивания?
Аноним 28/03/16 Пнд 01:15:04  121548618
>>121548491
Да и еще строку "cout << s" - вывод строки на экран.
Аноним 28/03/16 Пнд 01:17:09  121548795
>>121548618
>>121548306
Двачую
Аноним 28/03/16 Пнд 01:17:20  121548813
>>121548618
Спасибо. Выручил
Аноним 28/03/16 Пнд 01:20:11  121549086
>>121545560
>char str[]

А это уже будет не переменная указатель, а массив элементов с памятью в стэке.
Аноним # OP  28/03/16 Пнд 01:23:02  121549324
14591173823640.png (8Кб, 704x88)
#include <iostream>

using namespace std;

struct pel
{
int data;
pel next;
};


void spisok()
{
int s;
pel
head = NULL; pel fin = NULL;

for (int i = 0; i <10; i++)
{
s = i;
pel
np = new pel;

if (head == NULL) head = np;
else fin -> next = np;
fin = np; fin -> data = s; fin -> next;
}

pel *np = head;

while (np != NULL)
{
cout << np -> data << endl;
np = np -> next;
}

while (head != NULL)
{
np = head -> next;
delete head;
head = np;
}

}

int main()
{
spisok();
}
Аноним 28/03/16 Пнд 01:23:19  121549350
>>121543615 (OP)
Указатель первоначально указывает на строку с пробелами в начале.
В фиолетовой строке циклически указатель на начало строки смещается вправо, пока не кончатся пробелы.
В желтой строке в стандартный вывод выводится результирующая строка (без пробелов) по буквам.
Точно не уверен, но данная операция небезопасна - если потом удалять такой модифицированный указатель, то проебется память. Но это не точно.
Аноним 28/03/16 Пнд 01:26:36  121549638
>>121549350
>Точно не уверен, но данная операция небезопасна - если потом удалять такой модифицированный указатель, то проебется память.

Динамическая память здесь не выделяется, только на стеке и память под строку в блоке статической памяти.
Аноним 28/03/16 Пнд 01:26:42  121549650
>>121549086
Не, строковую константу компилятор перенесет в сегмент данных при линковании, так что сам указатель будет на стеке, а указывать будет в сегмент данных.
Аноним # OP  28/03/16 Пнд 01:28:21  121549802
Если тред погибнет, то во вторник в данное время -4 часа где-то создам новый. Именую себя Рудиком.
P.S. не хач
Аноним 28/03/16 Пнд 01:30:00  121549955
>>121549650
Не, компилятор обсчитает для тебя длину массива и выделит память на стеке.
Аноним # OP  28/03/16 Пнд 01:31:10  121550064
>pel
Что это вообще?
>pel head = NULL; pel fin = NULL;
Здесь задаем нулевые значения переменным.
Аноним 28/03/16 Пнд 01:32:03  121550149
>>121550064
Понял, pel-название структуры
Аноним 28/03/16 Пнд 01:33:06  121550232
14591179864720.png (17Кб, 295x388)
>>121549638
Я не про динамическую, а про стек. По выходу из области видимости объекты по идее уничтожаются, но видимо компилятор как-то хитро их оптимизирует, потому что ошибку я не получаю.
Аноним 28/03/16 Пнд 01:33:55  121550313
>>121550149
Но все равно не понимаю такую вещь
>pel next pel head pel *fin
Зачем мы постоянно пишем это? Локализуем?
Аноним 28/03/16 Пнд 01:35:10  121550415
>>121543615 (OP)
За 5 баксов, поясню в скайпе за память в с++.
Аноним 28/03/16 Пнд 01:35:59  121550497
>>121550313
Это что-то вроде индекса
по типу i++;
Аноним 28/03/16 Пнд 01:36:05  121550506
>>121550415
Не тот ресурс для заработка выбрал. Я-бич
Аноним 28/03/16 Пнд 01:36:47  121550573
>>121550232
На то он и стэк он же в обратку раскручивается. Что по твоёму должно здесь протекать? Локальные переменные удаляются, глобальные и строка тоже.
Аноним 28/03/16 Пнд 01:37:09  121550609
Правильно будет
pel head = nullptr; pel fin = nullptr;
Аноним 28/03/16 Пнд 01:37:30  121550641
>>121550609
звезды опять затерло
Аноним 28/03/16 Пнд 01:37:54  121550670
>>121550609
Чем он правильней? Объясни
Аноним 28/03/16 Пнд 01:38:09  121550691
>>121549955
Хочешь поспорить?)
Аноним 28/03/16 Пнд 01:38:37  121550734
>>121543615 (OP)
Красное - создаём два указателя на строку, одну строку задаём изначально.
Синее - копируем указатель на заданную строку.
Фиолетовое - передвигаем указатель str по строке до тех пор, пока условие выполняется (текущий символ - пробел). В итоге str будет указывать на букву T.
Желтое - до тех пор, пока по указателю *str не находится нуль-символ выводим посимвольно.

Короче, эта хуйня выведет ту же самую строку, только без пробелов впереди.
Аноним 28/03/16 Пнд 01:38:53  121550760
>>121550670
тем, что слова NULL нет в стандарте c++ .
Аноним 28/03/16 Пнд 01:39:39  121550826
>>121550760
Хорошо. Буду знать
Аноним 28/03/16 Пнд 01:41:34  121550997
>>121543615 (OP)
Выебоны с указателями до добра не доведут.

Алсо, ты похож на тролля.
Аноним 28/03/16 Пнд 01:42:57  121551100
>>121550997
Это реальные задания студентов в ВУЗике
Аноним 28/03/16 Пнд 01:44:36  121551253
14591186760820.png (59Кб, 430x267)
Собственно, всё так и есть.
>>121550734
Аноним 28/03/16 Пнд 01:45:52  121551369
>>121551100
В общем, сперва выводится строка с пробелами в начале, затем уже без пробелов, посимвольно. Все переменные нужны.

Но, вообще-то, вот эти игрища с char* более характерны для чистого Си. А зачем здесь тогда cout вместо православного printf()?

Тот, кто составлял задания, учит плохому. Я не знаю, для чего это может потребоваться, такое писать. Мне сложно понять, для чего это вам задают - учат читать хуевый код? Его не читать надо, валить надо из того места, где код хуевый.
Аноним 28/03/16 Пнд 01:46:28  121551419
>for (int i = 0; i <10; i++)
> { s = i;
>pel *np = new pel;
> if (head == NULL) head = np;
>else fin -> next = np;
> fin = np;
> fin -> data = s;
> fin -> next;
> }
Что вообще здесь происходит?
Аноним 28/03/16 Пнд 01:47:18  121551492
>>121551253
А почему s вывело строку, а не что-то вроде 0x7504f074?
Аноним 28/03/16 Пнд 01:47:49  121551542
>>121549955
Бред несешь. Если ты массив объявляешь, то да, под него память резервируется в стек-фрейме. А если объявляешь строковую константу, то она помещается в сегмент данных. Да ее и вообще нельзя поместить в стек-фрейм, т.к. он создается в рантайме.
Аноним 28/03/16 Пнд 01:48:05  121551566
>>121551419
ТГУ. Хуй знает, что у них в голове, но, видимо, что-то нехорошее
Аноним 28/03/16 Пнд 01:48:55  121551645
>>121551419
Связный список гугли
Аноним 28/03/16 Пнд 01:49:05  121551660
>>121551419
В односвязный список засовывают элементы, в элементе есть int и указатель на следующий элемент. В списке в итоге будет 10 элементов с int'ами от 0 до 10

fin - текущий последний элемент
head - первый
np - текущий
Аноним 28/03/16 Пнд 01:49:50  121551737
>>121551492
http://www.cplusplus.com/doc/tutorial/pointers/
"с & выведет"
Аноним 28/03/16 Пнд 01:50:00  121551754
>>121551660
Спасибо. Этого достаточно, чтобы осознать эту часть
Аноним 28/03/16 Пнд 01:50:14  121551777
>>121551492
потому что для cout перегружен вывода char* как строки нуль-терминированной
Аноним 28/03/16 Пнд 01:50:34  121551807
>>121551492
Потому что s - указатель на строку, очевидно же.
Аноним 28/03/16 Пнд 01:50:52  121551837
>>121551492
Потому что у cout есть перегруженная операция для указателя на char, которая выводит строку, а не значение указателя.
Аноним 28/03/16 Пнд 01:51:25  121551884
>>121550609
Ну строго говоря, nullptr появился только в C++11, а в задании хз какой компилятор используется, может, древний какой-нибудь - от вузиков такое вполне можно ожидать.
Аноним 28/03/16 Пнд 01:51:56  121551925
СКЕРТ СКЕРТ++
Аноним 28/03/16 Пнд 01:52:16  121551955
>>121551754
Я тебе слегка завидую.

Также, рекомендую учить JS, npm и прочее такое для фронтенда. А сишечку и прочее такое - в гроб. Чрезвычайно сложно будет найти на этом работу за деньги.
Аноним 28/03/16 Пнд 01:53:02  121552003
>>121551955
1с идет нахуй?
Аноним 28/03/16 Пнд 01:53:52  121552070
>>121551884
Борланд Паскать в досовском-окошке. И на клавиатуре западают пробел, ентер и backspace, сначала ты набираешь-набираешь, а потом оно СТИРАЕТСЯ, БЛЯДЬ.

Я потом пошел работать при кафедре и эти клавиатуры заменил, потому что нельзя над студентами так издеваться.
Аноним 28/03/16 Пнд 01:53:57  121552078
>>121552003
Конечно.
мимофрилансерРубльВСекунду
Аноним 28/03/16 Пнд 01:54:44  121552141
>>121552003
Если ты не планируешь переезжать из нашей славной РФ - то да. Из 1С можно перейти в SAP и свалить так, но боюсь сейчас, в кризис, это будет крайне сложно.
Аноним 28/03/16 Пнд 01:54:56  121552155
>>121551955
ну конечно, у нас же целое IT из веб-разработчиков только
Аноним 28/03/16 Пнд 01:55:08  121552172
>>121551955
Буду признателен, если накидаешь годных туторов или книженций, материалов и т.п.
Аноним 28/03/16 Пнд 01:58:17  121552431
>pel *np = head;
>while (np != NULL)
>{
cout << np -> data << endl;
>np = np -> next; }
Здесь, как я понимаю, идет вывод списка, начиная с 10 и проверяя последующее значение, пока не встретит 0
Аноним 28/03/16 Пнд 01:58:18  121552433
14591194985260.png (3426Кб, 1536x2048)
>>121551955
Я год сидел через стол от железнячника, писавшего на си для терминалов бесконтактных карт mifare.

А на пике - тамошний туалет. Хочешь там работать?

>>121552172
К сожалению, не накидаю. По этой области мало что есть хорошего, JS - good parts, разве что.
Аноним 28/03/16 Пнд 01:59:05  121552495
Бля

>>121552155 -> >>121552433
пикча для тебя
Аноним 28/03/16 Пнд 01:59:06  121552497
>>121552433
Спасибо и на этом
Аноним 28/03/16 Пнд 02:02:15  121552773
>>121552431
>np = np -> next; }
Вот это не понятно. Мы ведь сначала функцию вывода написали, а потом вот это. Как это объяснить правильно?
Аноним 28/03/16 Пнд 02:03:21  121552865
>>121546564
Те же плюсы
Аноним 28/03/16 Пнд 02:03:36  121552883
>>121551542
>ельзя поместить в стек-фрейм, т.к. он создается в рантайме
все что создается в рантайме, помещается в стек, пидор.
Аноним 28/03/16 Пнд 02:04:46  121552987
>>121552773
Проходимся по списку, начиная с головы, пока текущий элемент не станет null. В конце каждого шага текущему элементу присваиваем указатель на следующий, который берется из текущего же.
Аноним 28/03/16 Пнд 02:05:37  121553059
>>121552883
Ой-вей. И то, что в куче, тоже?

>>121552865
Как не стыдно такое писать, люди же поверят.
Аноним 28/03/16 Пнд 02:07:00  121553172
>>121553059
где ты кучу там увидел, пидор?
Аноним 28/03/16 Пнд 02:08:47  121553317
>>121553172
Ты писал:

>все что создается в рантайме, помещается в стек

elem *e;
e = new elem();

Где лежит e?
Аноним 28/03/16 Пнд 02:10:29  121553439
>>121553317
в стеке лежит, хуйло.
Аноним 28/03/16 Пнд 02:12:40  121553605
>>121553439
Ты ошибаешься. В каком-то ОЧЕНЬ ОСОБОМ случае new может быть переопределен и работать со стеком, а не с кучей, но в 99.9999% случаев такого не бывает.
Аноним 28/03/16 Пнд 02:15:56  121553862
>>121552987
>while (head != NULL)
>while (np != NULL)
Cтоп. Если мы, начиная с головы, проходимся по списку до нуля, то в np мы задаем значения? А с помощью head=np присваиваем значения?
Аноним 28/03/16 Пнд 02:16:22  121553896
>>121545998
>for пропускает пробелы,
Только в начале строки.
Аноним 28/03/16 Пнд 02:17:08  121553963
>>121546393
>смутно
Конкретнее. Что именно непонятно?
Аноним 28/03/16 Пнд 02:19:09  121554123
>>121553963
Друг, первую задачу мне уже анончики довольно понятно объяснили. Сейчас я бьюсь со второй
Аноним 28/03/16 Пнд 02:19:42  121554165
>>121553862
Не значения. Здесь проверка на последний элемент, а не на данные в элементе.

np - текущий элемент, мы в него записали голову
потом у текущего мы берем следующий и пишем в текущий
если текущий оказался null - значит мы все выбрали, список окончился
Аноним 28/03/16 Пнд 02:19:43  121554166
>>121553605
Указатель e находится на стеке, выделенный блок памяти под объект – в куче.
Аноним 28/03/16 Пнд 02:20:09  121554190
>>121552883
Не всё.
Аноним 28/03/16 Пнд 02:20:56  121554247
>>121554165
Да, я понял тебя. Спасибо
Аноним 28/03/16 Пнд 02:20:58  121554248
>>121554166
Да, это верно.
Аноним 28/03/16 Пнд 02:21:00  121554251
>>121553605
блять когда надо хуй найдешь ссылку. кароч обычно - в 99.9999% - хип создается в конце сегмента стека.
т.е. в стеке.

Аноним 28/03/16 Пнд 02:22:04  121554328
Спасибо всем, кто помогал. Если тред сольют, то пересоздам во вторник
Аноним 28/03/16 Пнд 02:23:01  121554398
>>121554251
Это уже детали реализации.
Аноним 28/03/16 Пнд 02:23:17  121554412
>>121549350
>результирующая строка (без пробелов).
Только в начале строки.
Аноним 28/03/16 Пнд 02:25:55  121554604
>>121551369
>В общем, сперва выводится строка с пробелами в начале, затем уже без пробелов, посимвольно.
Неверно.
Аноним 28/03/16 Пнд 02:26:23  121554629
>>121545984
Нужен.
Аноним 28/03/16 Пнд 02:26:54  121554667
>>121554604
Почему ты так думаешь? Посмотри на пример вывода в треде.
Аноним 28/03/16 Пнд 02:27:42  121554721
>>121548306
Его ввели, чтобы не потерять адрес начала строки.
Аноним 28/03/16 Пнд 02:28:18  121554763
>>121554604
Нет, ну скажи хоть суть своей правоты. Так неинтересно без аргументации
Аноним 28/03/16 Пнд 02:29:06  121554823
>>121554763
Это видимо мимикрокодил с недосыпом. Сперва протупил, а теперь ему признаться стыдно.
Аноним 28/03/16 Пнд 02:29:07  121554824
>>121549324
На pastebin выложи.
Аноним 28/03/16 Пнд 02:29:49  121554871
>>121554667
он думает что будут выводиться строки с откусыванием по одному символу.
но строка выводится при помещении указателя на char, а не разыменованного указателя.
Аноним 28/03/16 Пнд 02:30:34  121554923
>>121549324
Блядь, это типа односвязный список? Учебник мне твой не нравится: линейный самоадресуемый хуюемый, бфдто специально запутать хочет пидр.
Аноним 28/03/16 Пнд 02:30:39  121554928
>>121554721
Каким термином можно назвать указатель *s, который стоит в присваивании символьной строки
Аноним 28/03/16 Пнд 02:31:10  121554962
>>121554251
brk() с тобой не согласна.
Аноним 28/03/16 Пнд 02:32:12  121555030
>>121554923
Я буду рад посмотреть на твой вариант программы с односвязным списком
Аноним 28/03/16 Пнд 02:34:02  121555144
>>121554928
Термином? Хм... Переменная хранящая адрес начала строки...
Аноним 28/03/16 Пнд 02:34:19  121555165
>>121555144
Хорошо, спасибо
Аноним 28/03/16 Пнд 02:34:30  121555179
>>121554962
Для начала, вы вообще попытайтесь себе представить рост стека в такой модели.
Аноним 28/03/16 Пнд 02:34:55  121555201
>>121555030
struct List
{
int Data;
List Next;
};
void print(List
Head)
{
if (Head != NULL)
{
std::cout << Head->Data << "\t";
print(Head->Next);
}
else
std::cout << "\n";
}
void read(int n,List Head)
{
if (n > 0)
{
(Head) = new List();
std::cout << "Введите значение ";
std::cin >> (
Head)->Data;
(Head)->Next=NULL;
read(n-1,&((
Head)->Next));
}
}
void create(List
lst)
{
int n;
std::cout<<"N=";
std::cin>>n;
read(n,lst);
sort(lst);
}
Как-то так.Я не код твой критиковал, мне не понравились слова линейный хуейный самохуямо вместо прсотого и понятного односвязный.
Аноним 28/03/16 Пнд 02:35:50  121555252
>>121555201
Да у них препод - потомственный мудак, это видно по заданию из первого же поста в треде.
Аноним 28/03/16 Пнд 02:36:01  121555260
>>121555201
Тогда ясно. В голове у преподавателей что-то не то, видимо
Аноним 28/03/16 Пнд 02:36:17  121555270
>>121555179
Навстречу куче. Следующий.
Аноним 28/03/16 Пнд 02:37:24  121555334
И вопрос насчёт первого задания, где пробелы. А строка все пробелы-то не уберет?
Аноним 28/03/16 Пнд 02:37:57  121555357
>>121555270
Нарисуй.
Кстати, куч бывает несколько.
Аноним 28/03/16 Пнд 02:38:15  121555381
>>121555201
Ну линейный понятно (хотя нелинейный это строго говоря уже и не список, ну если мы не о всяких skip-list-ах). Но вот "самоадресуемый" меня в своп вогнало надолго.
Аноним 28/03/16 Пнд 02:38:22  121555391
>>121555334
Только те, которые в начале. И они не убираются, а просто пропускаются перед выводом.
Аноним 28/03/16 Пнд 02:38:37  121555407
Только в конце прошлой недели прошли по инфе стеки и кучи, и тут этот тред. Ты что, со мной в группе учишься?
Аноним 28/03/16 Пнд 02:39:02  121555431
>>121555334
Или программа построена на том, что убирает пробелы только перед тестом, а после первого символа прекращает работу, либо как?
Аноним 28/03/16 Пнд 02:39:02  121555434
Делать указатель на константу хуёвая идея.
Аноним 28/03/16 Пнд 02:39:25  121555469
>>121555407
По всей стране учебные программы в общем-то одинаковые.
Аноним 28/03/16 Пнд 02:39:36  121555479
>>121555381
Ну бля, это знаешь как мужской половой хуй вместо член, что-то в таком духе.
Аноним 28/03/16 Пнд 02:39:45  121555491
>>121555407
Это материалы из ТГУ. А я пока что только готовлюсь
Аноним 28/03/16 Пнд 02:41:36  121555609
>>121555357
stack segment ----> <---- heap segment
Про kernel stack, mmap, и прочий bss рассказать, зайка?
Аноним 28/03/16 Пнд 02:42:37  121555662
>>121555431
Не выдумывай.
Аноним 28/03/16 Пнд 02:44:56  121555791
>>121555609
Расскажи, как решается проблема сегментирования кучи.
Аноним 28/03/16 Пнд 02:44:58  121555794
>>121554962
>brk()
http://www.geeksforgeeks.org/memory-layout-of-c-program/ - читани
brk раздвигает сегмент неинициализированных данных за счет стека, т.е вторгается в стек
Аноним 28/03/16 Пнд 02:45:11  121555810
>>121543615 (OP)
В очередной раз понимаю, насколько кресты омерзительный язык и насколько мне противно олимпиадное программирование.
ОПу уже пояснили или это могу сделать в очередной раз я?
Аноним 28/03/16 Пнд 02:46:34  121555872
>>121555810
В крестах был бы std::string или как его. А в начале треда - поганая смесь Си и С++.
Аноним # OP  28/03/16 Пнд 02:47:01  121555895
>>121555810
Я усваиваю уже, что ява-для богов, а кресты-для хуев
Аноним 28/03/16 Пнд 02:48:00  121555956
>>121555810
Кресты, кресты... Кресты не причём! И вообще не ясно, нахуя там чар, если есть стринг. А может и надо так. Был бы программистом, сказал бы точно.
Аноним 28/03/16 Пнд 02:48:33  121555982
>>121555810
гнусавым голосом

На столе стоят три одинаковых ящика. В одном из них 2 черных шарика, в другом 1 черный и 1 белый шарик, в третьем 2 белых шарика. На ящиках написано: "2 белых", "2 черных", "черный и белый". При этом известно, что ни одна из записей не соответствует действительности. Как, вынув только один шарик, определить правильное расположение надписей?

и подобная херь
Аноним 28/03/16 Пнд 02:49:54  121556047
>>121555872
А не, видимо не одному мне атк кажется. Ещё Страуструп писал, что везде где можно юзай стринги вместо чар[] и вектора вместо массивов.
>>121555956-кун
Аноним 28/03/16 Пнд 02:50:26  121556077
>>121555982
Погнали! в прошлый раз была про мышей и вино!
Аноним 28/03/16 Пнд 02:51:10  121556118
>>121555982
вытащить шар из ящика "черный и белый"
Аноним 28/03/16 Пнд 02:51:55  121556160
>>121555872
Не просто поганая, а ПО-УНИВЕРСИТЕТСКИ ПОГАНАЯ. Все верно, стринг.

>>121555956
Пральна. Только университетские задания не всегда соответствуют логике. Я вообще не понимаю, где эта хуйня может быть не понадобится, кроме как Я МАГУ и/или А ПОЕДЬ-КА НА ОЛИМПИАДКУ.

>>121555895
>ява-для богов
Фи. На самом деле язык — только инструмент. Но есть инструменты откровенно хуевые вроде PHP.

>>121556047
Вин. Тем не менее, в универе это не избавляет меня от задачи рода «отсортируй массив». Хотя для генерации этого массива я пользуюсь няшненькими векторами.
Аноним 28/03/16 Пнд 02:52:06  121556169
>>121556047
И вообще стл не просто так написана.
Аноним 28/03/16 Пнд 02:53:24  121556230
>>121556077
Собеседовался я в яндекс на какой-то их внутренний десктопный проект. На C#. А на соебседовании меня масковские физматики зачем-то начали спрашивать про мапредьюс и сортировку данных, которые в память не влазят. Я им на ходу придумал сортировку частями, так они попросили меня оценить сложность в O.

Вот не понимаю я таких людей. Впрочем, их бог наказал уже, яндекс дохнет потихоньку.
Аноним 28/03/16 Пнд 03:02:47  121556711
S нужна чтобы не проебать начало оригинала строки.
Str мы уже двигаем по нашей строке как нам надо. Цикл for сдвигает указатель до тех пор, пока встречает пробелы, т.е. после его выполнения s будет указывать на первый символ не пробел.
Дальше, в цикле while, просто выводим строку посимвольно до тех пор, пока в ней что-то есть.
Аноним 28/03/16 Пнд 03:03:50  121556765
>>121556711
А ты, смотрю, ответы на ОП-пост не читаешь, программист?
Аноним 28/03/16 Пнд 03:04:17  121556796
>>121556765
Нет, для слабых же.
Аноним 28/03/16 Пнд 03:07:21  121556958
>>121556118
И правда чёрный и белый.
Аноним 28/03/16 Пнд 03:18:19  121557450
Ну-ка, бамп
Аноним 28/03/16 Пнд 03:22:47  121557622
>>121543615 (OP)
Первую строку лучше над так
char str[200]=" текст в строке ОПа хуя", *s;

мб то что оп написал и прокатит, но в части компиляторов на присваиваемую строку может выделяться память в какомто специальном месте хз,зависит от реализации компилятора, и по тому адресу где была строка может быть чото другое, а может уже освобожденная память
Аноним # OP  28/03/16 Пнд 03:24:42  121557691
14591246827020.png (10Кб, 642x102)
Подкину тогда еще. Желающие приветствуются
#include <iostream>
#include <cstring>

using namespace std;

void mass_str ()
{
cout << "kol-vo slov \n";
int i;

cin >> i;
cout << endl;
if (i <= 20 && i > 0)
{
cout << "slova \n";
char m_str [i+1] [11];
for (int j = 0; j < i; j++)
{
cin >> m_str [j];
if (strlen (m_str [j]) > 10)
{
j--;
cout << "ERROR, 10 smb. - max; rewrite \n";
}
}

cout << endl << endl;

for (int j = 0; j < i; j++)
{
if (j % 2 == 0)
cout << m_str [j] << endl;
}
}
else cout << "ERROR, no more then 20 words, restart programm";
}

int main()
{
mass_str();

return 0;
}
Аноним 28/03/16 Пнд 03:25:52  121557741
>>121557691
#include <iostream>
#include <cstring>

using namespace std;

void sch()
{

char txt[64] = "";

cout << "text : 64 smb - max \n";
cin.getline(txt, 64);
cout << strlen(txt) << " smb \n \n";

}


void st()
{
char txt1, txt2;
txt1 = new char[64]; txt2 = new char [64];
cout << "txt1 :" << endl;
cin.getline(txt1, 64);
cout << "txt2" <<endl;
cin.getline(txt2, 64);
cout << endl;
if (strcmp (txt1, txt2) == 0)
cout << "txt1 == txt2 \n \n";
else
cout << "txt1 != txt2 \n \n";
delete [] txt1; delete [] txt2;
}


void ob()
{
cout << "Enter the string: ";
char strg_r[128], strg1, strg2;
strg1 = new char[64]; strg2 = new char [64];

cout << "strg_1 \n";
cin.getline(strg1, 64);
cout << "strg_2 \n";
cin.getline(strg2, 64);
strcpy(strg_r, strg1);
strcat(strg_r, strg2);
cout << "result \n" << strg_r << endl;
delete [] strg1; delete [] strg2;
}


int main()
{
cout << "1" << endl;
sch();
cout << endl << "2" << endl;
st();
cout << endl << "3" << endl;
ob();

return 0;
}
Аноним 28/03/16 Пнд 03:32:08  121557923
Будет хорошо, если свое предложите(желательно, с объяснением)
Аноним 28/03/16 Пнд 03:33:50  121558004
>>121549324
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

typedef struct node {
int data;
struct node• next;
}node;

void add(node•• head, int data) {
node• n = (node•)malloc(sizeof(node));
n->data = data;
n->next = NULL;

if (•head != NULL) {
(•head)->next = n;
}

•head = n;
}

int main() {
#define NUM_ELEMS 10
node• head = NULL, •first = NULL, •curr = NULL;
int i = 0;
bool is_first = true;

for (; i < NUM_ELEMS; i++) {
add(&head, i);
if (is_first == true) {
first = head;
is_first = false;
}
}

for (curr = first; curr != NULL; curr = curr->next) {
printf("%d ", curr->data);
}

return 0;
}
Аноним 28/03/16 Пнд 03:40:11  121558230
>>121558004
Я впервые вижу такие точки в крестах
Аноним 28/03/16 Пнд 03:41:57  121558294
>>121558004
Итак. Чем программа хороша, чем предложенная мною?
Аноним 28/03/16 Пнд 03:43:46  121558375
>>121558230
Это вместо *
Аноним 28/03/16 Пнд 03:44:23  121558401
>>121558294
Модульностью, декомпозицией, рамширяемостью.
Аноним 28/03/16 Пнд 03:46:14  121558475
>>121558294
Где твоя?
Аноним 28/03/16 Пнд 03:48:11  121558554
>>121558475
Я же к каждому заданию прикреплял коды
Аноним 28/03/16 Пнд 03:48:33  121558568
>>121558401
Постараюсь сегодня под вечер разобраться, как появится время
Аноним 28/03/16 Пнд 03:51:28  121558684
>>121557691
#include <stdio.h>
#include <stdbool.h>

int main() {
#define NUM_WORDS 10
#define MAX_WORD_LEN 20
char words[NUM_WORDS][MAX_WORD_LEN] = {NULL};
int i = 0;

for (; i < NUM_WORDS; i++) {
scanf("%s", words);
}

for (i = 0; i < NUM_WORDS; i++) {
if ((i % 2 == 0) == true) {
printf("%s\n", words);
}
}

return 0;
}
Аноним 28/03/16 Пнд 03:53:58  121558778
>>121558684
>printf("%s\n", words[ i ]);
Аноним 28/03/16 Пнд 03:55:52  121558850
>>121558684

>>121558684
Ты не учел нуль символ. Или же здесь это не обязательно?
Аноним 28/03/16 Пнд 03:56:08  121558863
>>121558230
Это не кресты.
Аноним 28/03/16 Пнд 03:56:40  121558890
>>121558850
Не обязательно.
Аноним 28/03/16 Пнд 03:57:41  121558939
>>121558890
Понял. Спасибо, что помог
Аноним 28/03/16 Пнд 03:58:35  121558972
>>121558684
>if (i % 2 == 0)
проиграл от самого себя
Аноним 28/03/16 Пнд 03:59:19  121559007
>>121558939
Разбирайся, не списывай вслепую.
Аноним 28/03/16 Пнд 04:00:38  121559058
>>121559007
Да, я так и делаю. Хочу же понимать, что нужно писать
Аноним 28/03/16 Пнд 04:02:08  121559111
>>121555794
>т.е вторгается в стек
Со знаменем.
Аноним 28/03/16 Пнд 04:04:31  121559197
>>121558972
я так могу, ЛОЛКЕК
if (((((i % 2 == 0) == true) == true) == true) == true)

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 177 | 7 | 27
Назад Вверх Каталог Обновить

Топ тредов