1. Си / Говнокод #21610

    −44

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    #include<stdio.h>
    int main(){
    printf("Вітаю Вас в мою програму!\n");
    printf("Програма призначена за для перекладу зі 100\n");
    printf("бальною шкалу в 5 бальну шкалу.\n");
    printf("При наступних умовах:\n");
    puts("30>=1"); 
    puts("31-50>=2");
    puts("51-72>=3");
    puts("73-86>=4");
    puts("87-100>=5");
    printf("Ведіть оцінку:\n");
    int otsinka;
    scanf("%d",&otsinka);
    printf("Ви ввели оцінку %i\n",otsinka);
     
    if((otsinka>=1)==(otsinka<=30)){printf("Ваш результат: 1 бал\n");}
    if((otsinka<=50)==(otsinka>=31)){printf("Ваш результат: 2 бала\n");}
    if((otsinka<=72)==(otsinka>=51)){printf("Ваш результат: 3 бала\n");}
    if((otsinka<=86)==(otsinka>=73)){printf("Ваш результат: 4 бала\n");}
    if((otsinka<=100)==(otsinka>=87)){printf("Ваш результат: 5 балів\n");}
     
    return 0;
    }

    Запостил: dm_fomenok, 31 Октября 2016

    Комментарии (69) RSS

    • показать все, что скрытоНикогда бы не догадался использовать == вместо &&.

      Кстати, чё там у хохлов какие сейчас системы оценок в постсовке? Что-то краем уха слышал про 10-балльную систему в Белоруссии и про 12-балльную на Украине (или наоборот). А стобалльная применяется вроде только в Китае и где-то ещё в Юго-Восточной Азии. Или Украина решила перейти на китайский стандарт?
      Ответить
      • показать все, что скрытоВ Украине в универах 100-бальная

        > Никогда бы не догадался использовать == вместо &&
        как по мне, то огрести от такого легче, не рассмотрев случай, когда оба false
        Ответить
      • показать все, что скрыто> Никогда бы не догадался использовать == вместо &&
        Вы, вероятно, Царь и знаете, что ^ вместо && гораздо короче, чем == вместо &&.
        Ответить
      • 12-бальная система в школе. Приблизительно так:
        12..10 - високий рівень (5+..5-)
        9..7 - середній рівень (4+..4-)
        4-6 - достатній рівень (3+..3-)
        1-3 - початковий рівень (2+ .. 2-)

        100-бальная в ВУЗе (расписана в коде). У меня два три предположения о авторе:
        1. Человек "из глубинки" з жестоким диалектом
        2. Человек, который только-только начал учить мову
        3. Какой-то несмешной тролль
        Ответить
        • > У меня два три предположения о авторе
          Может, программист считает, что он должен писать код и только код, а не влодеть тонкастями язэка.
          Ответить
    • показать все, что скрыто>>Вітаю Вас в мою програму
      щито??

      блядь.
      Ответить
      • Похоже на обращение некоего анонимуса здесь на говнокоде.
        Ответить
    • показать все, что скрытоНу а что, нормальная школьная програ... кхм.
      Ответить
    • показать все, что скрытоКомбо. Здесь не только говнокод, но и говнограмматика.
      Ответить
    • показать все, что скрытокстати, странные условия
      у меня трояк начинался с 60 баллов, а пять - с 95-ти
      Ответить
    • показать все, что скрытоE 60-69
      D 70-74
      C 75-79
      B 80-89
      A 90-100
      Это в украше так
      Ответить
    • показать все, что скрытоVanished
      Ответить
    • показать все, что скрытоVanished
      Ответить
    • Я очень надеюсь что это школьничек писал и это только проба его пера. Иначе мне стремно за уровень преподавания в вузах.
      Ответить
      • Это может быть студент первого курса, который охуел от стобальной системы и написал говнопрограмму для перевода в привычную пятибальную. По времени приблизительно подходит.
        Ответить
        • Когда я учился в Укр. школах была 12-ти бальная система. Точнее я застал переход на нее. В любом случае студент профильной специальности уже должен знать что тут многое плохо.
          Ответить
          • Не все студенты профильной специальности помогают своим коллегам с других направлений писать код.
            Ответить
            • Как тогда такой студент попал в С? Щас говна типа питона полно, раньше для таких были бейсик/делфи - для автоматизации всяких расчетов, процессинга каких-то данных функциональности хватает с головой.
              Ответить
              • > Как тогда такой студент попал в С?
                Вуз сказал "ололо теперь все учат си, вам пригодится".
                > Щас говна типа питона полно
                Вот поэтому и учат не всякое говно, а православную сишку!
                Ответить
                • Ну православной сишкой нельзя по настоящему хорошо овладеть не обладая основательными знаниями вычислительной техники и информатики. Ну как ты объяснишь какомунить будущему архитектору или экологу или химику такие вещи как: короткий/обычный/длинный инт, знаковое и безнаковое число, числа с плавающей запятой разной точности, свойства локальной/глобальной/статик переменной. Динамическая и стековая память, адресная арифметика. Это не говоря уже про такие непосредственно не связанные с языком вещи как процесс компиляции и линковки - которые тоже, по хорошему, надо знать и разбираться если учишь Си.
                  Ответить
                  • показать все, что скрытоVanished
                    Ответить
                  • Ладно, не архитектору, а физику/математику (технари, а мышление у них декларативное) ещё можно объяснить.
                    1. У меня есть бумажка, я записываю там таблицу с короткими телефонами из Верхних Голубцов. Влезла вся деревня, ещё и место осталось. А у Сергея из Москвы такая же бумажка, но влезла всего пара телефонов. Так и в компьютере можно оставить под число мало места, чтоб влезло много чисел, либо много места, чтобы влезли большие числа.
                    2. Видите трёхзначное табло? (привет, 3_14dar) Оно показывает курс доллара с точностью до 10 коп., а температуру зимой - всего с точностью до градуса. Так и в компьютере. Оставил мсто для минуса - число не влезло.
                    3. А вот вы сейчас прикинули решение задачки устно? Там было Пи, а у вас 3.14, в ответе вообще типа примерно 8.1 вышло. А Вася на калькуляторе долго считал, усердно что-то в тетрадь записывал. У него пи до 9 знака, а ответ 8.09638+-0.00002. Так и в компьютере: есть вещественные числа с маленькой точностью, а есть - с большой, только во втором случае больше писать надо - места больше занимают.
                    4. Помните последнюю лекцию по матану? Там сказали, что есть D=3 - размерность, а потом было пять задач про икс, где он разное значил. У нас в программах так же. Можно записать на заборе, чтобы все видели - глобальная переменная. Можно описать пару алгоритмов и использовать один и тот же икс с разным смыслом. Слышали про рекуррентные соотношения? n(x)=n(x-2)+n(x-1). При вычислении n(5), x имеет смысл 5,4,3,2 и 1. При каждом использованни формулы свой локальный смысл.

                    Можно ещё провести аналогию с компьютером и человеком, который смотрит в список дел и выполняет. Функция - купить(товар). "Видите, мне пришлось записать на бумажку то, где остановился, чтобы не забыть вернуться"; "Мне надо записать промежуточное значение аргумента" - вот и стек.
                    Куча - как место излияния вдохновения. Никогда заранее не знаешь, сколько стихов навеет муза.
                    А дальше, если человек программирует, можно плавно вводить его в мир процессора и памяти.
                    Ответить
                    • Gost, перелогинься
                      Ответить
                    • Ну вот пара вопросов:
                      Что это за бумажка такая где 32 000 записать можно, а 33 000 нельзя ? Длинна то в строке одинаковая. Почему в отрицательные и положительные числа для одного типа одной длинны, а место для минуса находится?
                      Ответить
                      • > 32 000 записать можно, а 33 000 нельзя

                        Ну так если в десятичной системе записывать, то хоть 32 000, хоть 99 999 записать можно. Если в двоичной, то вроде бы очевидно.
                        Ответить
                        • показать все, что скрытоА зачем биологу-то?
                          Ответить
                          • Действительно. Биологу даём int32, говорим, что компьютерщики долго спорили о том, как записывать числа (вот же задроты яйцеголовые), и дошли до самой лучшей в современности 32й версии, говорим, что туда входит от -2e9 до 2e9 и всё.
                            Ответить
                            • А теперь попробуй объяснить, как записывается плавучка. И что вообще это такое.
                              Ответить
                              • > что вообще это такое
                                Ну уж про мантиссы и порядки этому биолуху то должны были рассказывать...

                                З.Ы. Меня вот, кстати, тоже плавучка бесит. Больше нравится вывод в инженерном формате, когда порядок кратен 3.
                                Ответить
                              • В некоторых случаях число имеет определённую точность. Вот вы как химики хорошо знаете число Авогадро: около 6.02*10^23. То есть это не 602000000000000000000000, а может даже 602000000000000340000006, но мы это точно не знаем, точно не измерим и записывать не будем. Мы будем записывать это как 6.02*10^23 или 6.02e23, т.к. нам важно, что там степень 23 и нужны для расчётов три знака.
                                Поэтому в компьютерах сделали возможность записывать числа примерно так же, как делают это учёные на бумажке. Компьютер по сути запоминает "6.02" и "23". Количество знаков в этом "6.02" строго задано и ограничено, а вот степень можно менять. Так мы можем и 0.2223421 можем записать, и 252120000000000000000000000.
                                Ответить
                                • А почему мы так странно записываем экспоненту: пишем число, но при вычислениях сначала вычитаем другое из него? Почему не ±, как в целых?

                                  А почему ведущую 1, мы опускаем в записи мантиссы, но в определённом случае нет?

                                  Почему определённые числа на самом деле бесконечные.

                                  И почему некоторые числа вовсе не числа? И почему их так много?
                                  Ответить
                                  • А кто вам такое сказал? Вы стандарт читали? Сразу видно, что не химик, а программист. Шпион!

                                    Химику/биологу это не нужно. Если вылезло не число, значит у тебя ошибка в коде, ищи её. В реальном мире нет бесконечностей и не-чисел. Корня из минус одного нет, есть ошибка измерений, из-за которой площадь квадрата отрицательна.

                                    Понимаете, так записывать удобней. Много не-чисел сделали на всякий случай.
                                    Ответить
                                    • В общем, я утверждаю, что числа ещё как-то можно объяснить будущему учёному, чтобы он мог ими пользоваться. И если он будет помнить, что они ограничены и не будет в здравом уме брать корень из отрицательного, то всё будет хорошо.

                                      Вот можно ли объяснить массивы в си - вопрос. Может, лучше сразу обучать какой-то библиотеке, где есть векторы и матрицы.
                                      Как объяснить передачу по ссылке, значению и т.п. - не знаю. В жс и хаскеле всё и так работает, а тут руками память передавать и чистить надо.
                                      Тут инициатор обучения сишке должен либо отменить это обучение, либо отменить использование её в своей лаборатории, либо всё вместе.

                                      P.S. И как объяснить мне, что такое CSS, для кого это сделали и почему там такие черезжопные правила, и почему банальное "блок, занимающий весь экран без одной строки и футер высотой в одну строку с адресом админа" превращается в вагон и маленькую тележку хаков?
                                      Ответить
                                      • > Как объяснить передачу по ссылке, значению и т.п. - не знаю

                                        Тут просто. Нужен язык где всё передаётся по ссылке. Причём ВСЁ, никаких особых правил для примитивов. (Современный язык, Фортран не предлагать)

                                        И работающий const, а то будет как в древнем фортране, где можно было поменять значение литерала 0. Или вообще любого литерала. Причём случайно. В отличие от жабы, где можно поменять только значения Integer от -128 до 127, и только специально.
                                        Ответить
                                        • > работающий const
                                          Тут ещё потрудиться надо, чтобы научить его расставлять.
                                          Лучше наверно наоборот модификатор "var". Хотим передать значение в функцию для изменения - пишем var, иначе функция не сможет изменить.
                                          Ответить
                                          • показать все, что скрытоVanished
                                            Ответить
                                            • Я не про тот вар, что из жс или отсутствующий в сишке, а про гипотетический, и это даже видно из комментария.
                                              Ответить
                                          • погоди, а в чем гений инженерной мысли? Взять те же си/плюсы - передано const T */& - не можешь менять, простая ссылка/указатель - можешь. Скажем, когда я смотрю на функцию и вижу что она принимает указатель, я предполагаю, что она обработает nullptr. И сам когда пишу, если функция не ожидает nullptr - делаю через ссылка
                                            Ответить
                                            • А как делаешь, если функция сохраняет указатель куда-нибудь? Если делать через ссылку есть риск что кто-то случайно пошлёт туда объект со стека. Если принимать указатель, то придётся брать адрес, что заставит задуматься.
                                              Ответить
                                            • > в чем гений инженерной мысли?
                                              В неудобных умолчаниях.

                                              В мире программирования считается более правильным сделать разработку наименее удобной для получения хороших результатов. Так, программисты переходят к статической проверке типов, включают все ворнинги, не уважают неявные касты, используют питон с принудительными отступами - делают всё для того, чтобы за счёт своего мученического бытия писать надёжный код.

                                              Пишу я в C++ int invert(Matrix& x); int size(Matrix& x);
                                              Это автоматически становится int invert(var Matrix& x); int size(var Matrix& x);, хотя вторая функция только читает матрицу, ей не надо в неё писать.
                                              В моём случае это будет эквивалентно int invert(const Matrix& x); int size(const Matrix& x);
                                              И программисту придётся писать руками int invert(var Matrix& x);
                                              С точки зрения любителей страдания: язык вынуждает тебя подумать и явно описать "да, я хочу испоганить переменную, хотя только читать её безопаснее", поэтому программа становится надёжнее.
                                              Ответить
                                              • Экая жопа.
                                                Ответить
                                              • С этой стороны да, логично. Правда, лучше вместо var что-то вроде mutable (mut, хз). Слишком неочевидна контекстуальная связь слова "var" с мутабельностью
                                                Ответить
                      • 1. А потому, что компьютер разговаривает на другом языке. Вот у нас мужик длиннее кота, а в английском языке они одинаковы. Так и число записывается чуть по-своему.
                        2. Садись, два. Надо лекцию слушать было! Только что про табло говорил. Длина табло не меняется (три места), а место для минуса находится.
                        Ответить
                        • А почему на табло можно показать -100, но нельзя +100 (только +99 входит)?
                          Ответить
                          • Садись, два. Ни -100, ни +100 на нашем трёхзначном табло не покажешь :)
                            Ответить
                            • Т.е. на этом табло показываются +00 и -00? А зачем джва нуля с разным знаком?
                              Ответить
                              • Показывается, если люди захотят. Если человек хочет, то табло покажет, т.к. человек умнее табло, а табло - раб человека.
                                Человек и на бумажке может +00 написать, и -00, человек - царь бумажки.
                                Вот в математике так обозначают, с какой стороны от нуля предел брать. А тот, кто читает надпись на табло, понимает, что это просто ноль. Так и в компьютере. Если кто-то записал +0 или -0, тот, кто читает, в итоге понимает, что это просто ноль, если дело не доходит до деления на такой ноль, тогда компьютер-математик может вернуть плюс или минус бесконечность.
                                Ответить
                                • > Так и в компьютере.
                                  Но учитель, а почему тогда на большинстве популярных табло отрицательные числа сдвинуты на 1 и перевёрнуты? -99 означает -1, а -00 означает -100?
                                  Ответить
                                  • На каких табло? Нет таких табло. Мальчик, ты программист, тебе с этим жить.
                                    Компьютерам так удобнее думать оказалось. У вас же в телефоне есть Машка Балет и Машка БольшиеСиськи, а не Иванова Мария и Медведева Мария, вам так тоже проще думать, хотя и записываете неверно.
                                    Ответить
                  • Нахуй биологу все это говно? Ему надо гены обсчитать побыстрее, а не твои задротства.
                    Ответить

    Добавить комментарий