Поднимаем настроение (IT/Linux юмор)

maisvendoo, реакция продавца была такая же? )
Aivar
maisvendoo, реакция продавца была такая же? )
Не, в той конторе довольно толковые ребята, я у них всегда покупал железки (был случай память не заработала - без проблем забрали и деньги вернули). Понимающе кивнул и не стал приставать
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
Aivar, спасибо, посмеялся)))
Вот нашел на просторах опеннета:

в марте 1996 года посадили перед "сервером" (реально огромный черный гроб на колесиках) 486DX2/16RAM/SCSI 512Mb, дали толстую книгу на ангельском "UNIX" и сказали - нам нужен почтовый сервер. дело было в Мурманском ГТУ. так был поставлен первый мой FreeBSD
GitHub, ArchWiki, AUR
Буратино дали пять яблок. Два из них он съел. Вопрос: сколько осталось у него яблок? Думаете три? А вот фиг! Никто не может сказать наверняка, сколько у него уже было яблок. Мораль: обнуляйте переменные!))
root@vpupkin# cat /dev/ass > /dev/head
Sheykhnur
Вопрос: сколько осталось у него яблок?
я могу сказать что у него осталось яблок X+3, чисто программерский ответ. )))
докажи что это не так!
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Я бы посмотрел это выражение в коде :-)
a = x + 3 ? :-)
root@vpupkin# cat /dev/ass > /dev/head
Sheykhnur
бы посмотрел это выражение в коде :-)
a = x + 3 ? :-)
Сам же пишешь
Sheykhnur
обнуляйте переменные!))
Вот на переменную количества яблок посмотри. Узнаешь и сколько было, и сколько стало.
Lupus pilum mutat, non mentem.
Вы на си программировали когда-нибудь? Попробуйте не обнулить переменные и посмотрите что будет; результат вас может сильно удивить. Неужели нужно ещё разъяснять для чего это делается? Nafanja писа́л, что яблок у буратино осталось x+3. x — в данном случае неизвестное, но, когда пишешь код, — в той ячейке памяти, куда присвоится x, может быть что угодно. Вы не путайте математическое выражение и выражение в коде. В коде a = x + 3 — знак «=» является присваиванием (надеюсь, не нужно объяснять, что это такое и чем оно отличается от равенства (которое в коде выглядит как «==»)?), в то время, как в математике это является равенством. С математической точки зрения Nafanja прав, с программистской же — нет. Вся беда в том, что в математике ответ х+3 допусти́м, в то время, как в программе каждой переменной (в данном случае х) должно соответствовать строго определённое значение.
Итак задача:
Дано: Буратино дали 5 яблок, 2 из них он съел.
Вопрос: Сколько яблок осталось у буратино?
Решим эту задачу математически: Буратино обозначим переменной а. Если предположить, что у буратино уже было какое-то количество яблок (мы не знаем какое), то это неизвестное мы обозначим за х (что и предложил нам Nafanja). Т.е. а = х + (5 - 2), а = х +3.
Математический ответ: У буратино осталось х + 3 яблок.
С этим разобрались. В математике х + 3 допустимо.
Решение программистским способом (на си):

# include <stdio.h>

main ()
  {
    int a, x;      /* объявим переменные, но не проинициализируем их (боже, сколько программ сложилось от этого!) */

    a = x + (5 - 2);     /* буратино (а), дали 5 яблок, 2 из которых он съел, х - неизвестное кол-во яблок у буратино */

    printf ("Кол-во яблок у буратино: %d\n", a);      /* покажем наш результат миру */

    return 0;
  }
Что же у нас получится, когда мы выполним cc buratino.c? А получится белиберда, ибо переменные у нас не проинициализированы и при выполнении программы в ячейку а (она тоже не проинициализирована, но это не критично, т.к. выражение справа, по сути, является инициализацией этой переменной) запишется выражение х + (5 - 2). 5-2 программа высчитает, а вот с х что прикажете делать? Программа не выведет вам «математический» ответ в виде х +3, нет! в х программа присвоит произвольную область памяти, не проинициализировав (обнулив) её, что повлечёт за собой присваивание этой злосчастной х рандомное число (по сути то, что было в этой ячейке памяти до того, как туда обратилась наша программа; а быть там могло что угодно, т.к. менеджер памяти при выделении программе памяти заполняет её случайными данными).
В общем я устал писать, кто не понял, тот ССЗБ :-)
root@vpupkin# cat /dev/ass > /dev/head
Sheykhnur
на си программировали когда-нибудь? Попробуйте не обнулить переменные и посмотрите что будет; результат вас может сильно удивить. Неужели нужно ещё разъяснять для чего это делается?
Глобальные таки зануляются, а вот локальные - там может валятся всё что угодно.

А ещё круто выделить память одного размера, а записать по полученному указателю чуть больше данных, и потом удивляться, почему совершенно другая переменная вдруг спонтанно изменяет свое значение. Потом когда обнаруживаешь в отладчике что она соседствует с выделенной динамической памятью хлопаешь себя по лбу. Но это после пары часов отчаянных психов "ну почему оно не работает!!!" :)
Да пребудет с нами Сила...!
CPU Intel Core i9 10900-KF/RAM DDR4 128 Gb/NVidia GForce GTX 1080 Ti Turbo 11Gb/SSD M2 512 Gb/HDD Seagate SATA3 2 Tb/HDD Toshiba 3Tb/HDD Toshiba 6Tb
http://rusrailsim.org
maisvendoo
Глобальные таки зануляются,
Считаю это моветоном. Я всегда зануляю от греха подальше, ибо компиляторы разные, а знать все их особенности тяжко
Ооу, указатели — это вообще тема для отдельного доклада на несколько томов, сколько уже эпосов писано по их душу :-)
root@vpupkin# cat /dev/ass > /dev/head
 
Зарегистрироваться или войдите чтобы оставить сообщение.