Как теперь студентов учат информатике

Третьего дня один хороший товарищ попросил помочь сделать задания по контрольной работе. Дисциплина – информатика. Товарищ учится на заочке, при этом специальность его абсолютно никакого отношения к программированию не имеет (видимо, просто накидали часов для веса). Посему не стал рассказывать гражданину о необходимости обязательного понимания предмета и просто решил помочь. В ответ товарищ прислал скан методички (см аттач), по которой нужно делать работу. Ну и в ходе изучения данного документа я наткнулся на следующие шедевры мысленной деятельности (в скане – стр. 1, 22, 23):



Обращаю ваше внимание: при постановке задачи не ведется вообще никакой речи о возможных значениях вводимых элементов массива. То есть решение должно быть выполнено в общем виде. И несмотря на это – «нужно в ячейку Xmax записать очень маленькое число, заведомо меньшее всех элементов массива». Что такое «очень маленькое число», откуда мы можем знать, что оно будет меньше всех элементов массива – автор методички скромно умалчивает. Равно как и молчит о том, как будет решена задача, если все элементы массива будут меньше -1000.

Отмечу, что задание я товарищу сделать помог (исходя из жизненного опыта). И даже объяснил ему, почему надо делать именно так. И только потОм ради интереса решил прочитать всю методичку, ну и наткнулся на приведенные выше измышления. Как подобное говно могли допустить к печати – понимать отказываюсь. Речь даже не о том, что в 2015 году студентов учат программировать на Фортране, ибо само по себе умение мыслить алгоритмами и блок-схемами лишним не будет. Но вот про «очень маленькое число» я даже не знаю, что и сказать. Видимо, для авторов сего манускрипта приравнять переменную Xmax к первому элементу массива – это что-то запредельное, да.

Вывод, который я в очередной раз для себя сделал – любой профессии нужно учиться ДО поступления в ВУЗ, технарь, шарагу и т.д. При этом действительно получить знания можно только в процессе работы, на спецкурсах и при общении с профессионалами в данной области. Ну а вышка дает лишь корки для тетенек из отдела кадров.

Для справки: методичка выпущена шарагой под названием НГТУ – вторым по значимости государственным (!) ВУЗом в городе Нижний Новгород. Я сам в нем учился и, честно говоря, действительно нужных знаний по профессии (инженер-электронщик) особо не получил. Однако, насколько деградировал уровень преподавания за последние 10 лет – я даже и предположить не мог, ибо нам давали хоть и бесполезные, но всё-таки хотя бы безвредные знания.

Оригинал методички (djvu)

Комментарии (99)

RSS свернуть / развернуть
Фраза «нужно в ячейку Xmax записать очень маленькое число, заведомо меньшее всех элементов массива» не верна. Нужно положить значение первого элемента. Макслиманое значение не может быть меньше него. И далее искать элементы больше первого.
З.Ы. Но да. Сейчас образование в сране целенаправленно убивается. Вижу по своим детям из заданиям которые им дают на дом.
0
ну так о чем и речь — в строке Xmax=X(1) даже щелчков по клаве меньше, чем в строке Xmax=-1000:)

я прекрасно понял бы, если б такое наваял семиклассник — опыта там никакого, но ведь «в верном направлении движется»:) но когда подобное публикуется в методических указаниях для студентов — это вообще туши свет.
0
ну так о чем и речь — в строке Xmax=X(1) даже щелчков по клаве меньше, чем в строке Xmax=-1000:)
…и однажды прога начнёт падать, потому что на входе окажется пустой массив.

Если б методичка была для будущих программеров, я бы согласился. И ещё добавил, что удобнее запоминать не максимальное значение, а только его индекс. Но зачем это нормальным людям?

Я вот вспоминаю школу, старшие классы. Информатика, турбо паскаль, алгоритмы типа поиска и сортировки. Одноклассникам вот этот обмен двух переменных давался с трудом. Объяснить удавалось не всегда. Аналогия с телевизором весьма удачная, могла сработать. Да, конечно, это была школа и среднее образование, а не ВУЗ, тем более технический, студенты должны быть поумнее. Но я не вижу ничего страшного в таких упрощениях. Общий принцип поиска максимума в массиве разжёван, а детали, кому они нужны, если предмет непрофильный? Глядишь, хоть что-то в голове про алгоритмизацию отложится. А нет — так и фиг с ним.
+1
А вот действительно, что должен выдать алгоритм в случае, если массив пустой? Так что самое минимальное число не кажется столь уж абсурдным. (Это если мы возвращаем не индекс а именно значение)
0
В случае если массив не пустой, то его надо проверить не пустой ли он, а если он пустой — проверить пустой ли он. Мы проверили оба варианта? Вот и замечательно. Теперь можно что-нибудь и сделать.
0
я говорю о возврате величины. что выдавать на return, если выходное значение — минимальное число из массива?
0
Ошибку он должен выдать. Как именно отделить сигнал ошибки от результата — есть несколько методов, выбор зависит от ситуации.
0
индексный доступ — медленнее.
0
Да здравствует американская система обучения! (Сарказм)
-1
У нас не американская система обучения. У нас от советской системы, под видом американской, убили вообще систему обучения.
+1
я не совсем в теме, но насколько я понимаю — в «американской системе обучения» дают строго специализированные знания. то есть, грубо говоря, если ты слесарь, то о том, что The_мля вращается вокруг Солнца тебе знать совершенно необязательно. но тут-то речь о заведомой херне, вбиваемой в башку студентам:)
0
по поводу очень маленького числа, если речь о целых числах, то в принципе, это возможно… Но сам факт того, что это «методичка» — руководство к действию, устрашает.
0
в принципе, это возможно

нет, камрад, это невозможно:) ибо в данном случае изначально не оговаривается — какие именно числа могут содержаться в массиве: целые, положительные, однобайтные, красивые или еще какие-нибудь.

больше всего меня убило то, что грамотный-то вариант не предусматривает никаких особых ухищрений по сравнению с «рекомендованным». ну приравняй ты Xmax к первому элементу, ёлы-палы. нет, сцуко, мы возьмем число "-1000" и от него будем всё отсчитывать:)
0
может еще углубимся до комплексных чисел (сравнение которых емнип до сих пор открытая задача)? раз уж иное не уточнено ;)
0
комплексных чисел

их еще ввести надо суметь:) я не спец по фортрану, но подозреваю, что это не так-то просто:)
0
можно в матричной форме работать. ты лучше скажи что больше 4+1i или 1+4i?
0
что больше 4+1i или 1+4i?

да откуда ж я знаю?:) я вообще в математике, мягко говоря, не знаток. вот 4+1=1+4 — это точно:)
0
А разве комплексные можно сравнивать?)
0
все верно. на данный момент комплексные числа принято относить к несравниваемым величинам. (далее сарказм) но мало ли когда и что придумают, поэтому задачу, в которой не оговорено…
0
Не, ну было бы желание, можно по модулю сравнивать. Нормальный способ.
0
модуль числа не есть число
0
Так вроде вопрос был как сравнивать комплексные числа? Ну вот так и можно сравнивать — по модулю. Понятно, что это не само число, ну так это и не требуется.
0
вопрос был как сравнивать комплексные числа, а не как сравнивать модули комплексных чисел. по твоей логике можно их еще по площади занимаемой цифрами сравнить, тоже не само число, но какая разница? ;)
0
По площади цифр не то чтобы нельзя, но непрактично — площадь не дает возможности однозначного сравнения. Зависит от написания.
Но вообще-то именно сравнение — операция достаточно произвольная…
0
Успокойтесь. Фраза «нужно в ячейку Xmax записать очень маленькое число, заведомо меньшее всех элементов массива» вполне корректна. Она в себе содержит формулировку, что «вы должны определить диаппазон входных значений, и взять значение меньше них всех». Если это не понятно, то возможно не сейчас образование стало хуже?
0
А чего невозможного? Когда на входе известный тип переменной, минимальное и максимальное значения всегда известны.
0
Единственное, что хоть как-то успокаивает, так это то, что это пособие для «заочной и дистанционной форм обучения».
Хотя по стилю подачи информации автор считает обучаемого полным дебилом, не способным воспринимать технические и математические термины=)
0
автор считает обучаемого полным дебилом

ну, это не так уж и страшно, если в итоге дебил получает правильные знания (и понимает их):)

гораздо хуже то, что и сам(и) автор(ы) — судя по всему, не сильно в предмете шарят:)
0
просто методичку делал якобы умный заочник за зачет (авторство конечно же передано преподавателю).
0
я кстати хозработы по подобной системе проставлял. делал тесты какие то для внучки завкафа преподававшей культурологию. думаю со стороны шарящих в культурологии мои тесты тоже показались бы полнейшим бредом.
0
А чем «заочный» диплом отличется от «очного»? Почему Вы допускаете возможность скидок при обучении для отдельной группы людей, но при этом жизнь не допускает для них скидок? А потом эти люди ноют, что все плохо, но не считают что виноваты они сами…
0
Не поймите меня не правильно: У меня много знакомых, которые учились на заочной форме обучения… Для них учеба только для того, чтобы по ее окончании получить диплом (который, как Вы правильно заметили не имеет отличий между очным и заочным). Сессия в большинстве случаев вырождается в покупку дорогого спиртного, кофе, шоколада и прочего и попытках всучить все это добро принимающему, дабы его задобрить=) А диплом нужен им «на всякий случай»
0
Я учился на заочке, да, есть пробелы. Особенно в программирование, но как-то на втором курсе я уже работал на заводе сначала в цеху, после бакалавра меня перевели в КБ и дали должность инженера электронщика. Из всей группы, как это ни печально, я один так и завис в этой области. Да, большинство платило бабки. Но я с детства любил электронику и старался делать все сам, где-то было трудно, особенно всякие химии и экономики. С нескольких попыток и этот рубеж был преодолен.
0
чуть не забыл, к руководящим должностям с высшим образование пробраться гораздо легче=)
0
А чем «заочный» диплом отличется от «очного»?

ну, давайте смотреть правде в глаза — при поступлении на работу очный от заочного отличается практически всем:) за редким исключением мелких (каким бы странным это ни показалось) контор, где само по себе наличие диплома у принимаемого мало кого интересует (в отличие от реальных навыков)
0
как раз таки много где нужен просто любой документ подтверждающей высшее образование. ни раз видел как после введения современных стандартов тетки работавшие на предприятии с 80х-90х идут на ЛЮБУЮ заочку чтоб получить ЛЮБОЙ диплом.
0
извиняюсь, не уточнил — я имел ввиду железо/софт (хотя и тут лет шесть как почти не в теме). а так — да, у самогО есть куча знакомых, стройными рядами шедшие за любым дипломом, только чтобы с работы на улицу не выкинули.
0
среди технарей та же история. я о том что обычно важно только наличие или отсутствие диплома. очное или заочное как раз таки никого значения иметь не будет.
0
За редким исключением мелких, как раз-таки, контор, диплом вообще никому не сдался.
0
Кажется, в мое время даже книжки для детей на тему информатики толковее были)
0
  • avatar
  • Vga
  • 07 октября 2015, 13:24
Нам в СевНТУ (г.Севастополь) препод на экзамене по цифровой схемотехнике сказал: «Вот я поставил тебе 4ку, в 80е я бы выгнал тебя с экзамена». Я удивился, ибо уровень занятий был серьезный по всем профильным предметам. Этот препод нас гонял как сидоровых коз, некоторые экзамены с 5 попытки сдавали. Единственное но, учили только ассемблер и паскаль. Сейчас вот приходится учить С и С++.
0
  • avatar
  • Jman
  • 07 октября 2015, 13:44
Та ладно, стареют они просто. У меня физик такой был, пол лекции гундел что мол еще два года назад студенты были ого-го, а вы… В итоге на первой сдаче экзамена две 4 и 58 двоек. А на следующий день, хто пошел на перездачу, куча 4 и 5.
Одним словом мудак человек настроения.
0
Это не Афанасьич с электроники вам такое сказал?
0
Он самый.
0
Качество образования в России пострадало очень сильно и продолжает страдать, уже давно известная истинна.

Но в данном случая, думается мне, все гораздо проще — обычное разгильдяйство.
В обычном провинциальном вузе, преподавателям понадобилась методичка, чтобы получить галочку за печатное издание. Они собрали студентов двоечников и поставили им задачку — слепить методичку. Те задание выполнили (слепили «из того, что было») и получили свой «зачет». А преподаватели пустили это дело на печать, не удосужившись прочитать (в лучшем случае пролистали), при этом отчитались, где нибудь на кафедре, какие они молодцы — методичку выпустили!
+1
Спасает, то что это методичка которую припахали писать студентов ( сам две написал, одна из них по МК, надо как то выложить поржать). Все дело в том, что министерство требует их обновлять раз в 5 лет, а зачем если методичка хорошая никого не волнует.
Хотя, конечно, расчет усилителя на кт315 и комлекта СБИС на 8086 полный бред.
+2
Это еще очень хорошая методичка.
Просто написанная преподавателем.
В совковой высшей школе как элемент «профессионального роста» каждый преподаватель должен написать Х методичек по своим предметам.
Эти пошарпанные куски говна, свёрстанные в 97 Ворде и распечатанные силами кафедры, давно стали притчей во язытцех во всех совковузах.
Хочешь научиться — достань общий учебник по предмету и делай задания. Хочешь получить зачёт — купи методичку.
И уверяю вас, этот шедевр ни разу не виноват в удручающем состоянии современных выпускников вузов. Это всё равно что проклинать отечественные дороги только за малое количество карманов для аварийной стоянки.
0
О наболевшем пост…
Этот ад изнутри удалось мне повидать! Проблема большая в компетентности преподавателей всегда была, сейчас она втройне актуальна, мало того что знания полученные во время обучения (на момент изучения) уже устаревшие на несколько лет, так еще подача этого всего устаревшего ужасная, некоторые преподаватели даже не в курсах о чем сами речь ведут — так, чтоб час отметить...
— К этому всему нужно навернуть кучу самодуров.
— Низкая ЗП преподавателей (нормальных специалистов забирают предприятия на хорошую работу с хорошей ЗП).
— Скудное финансирование лабораторной и практической баз (про использование стендов разработок 60х, 70х, 80х годов можно промолчать).
— Огромное количество пенсионеров, пнуть под жопу ногой которым не хотят по многим причинам.
— Суда добавляются чьи либо СЫНОЧКИ руководства вуза, всунутые на теплое место от армейки и ждущие когда им папа дисер напишет.
— Желание получить личную выгоду с студента, чем хуже научил — тем больше шансов нагреться.
— Список можно продолжать до бесконечности…
С чем лично столкнулся, так это вставлянием палок в колеса, попирательством от руководства в любых продвижениях и нововведениях, обсирательство, зависть (даже ловили уважаемого доцента за переламыванием кабеля стенда) и т.д.
З.Ы. а самой большой бедой в этом всем является отсутствие собственного опыта работы, кроме как чтения с листочка… Вот чего может научить преподаватель по электронике, который не спалил с два ведра электроники, Или по экономике предприятия, знающий работу предприятия только по книгам, а не из нутри (в должности того же самого экономиста)?
+5
  • avatar
  • kalik
  • 07 октября 2015, 15:27
Да, как то по дурному сейчас получается универ-аспирантура-преподование, и ни минуты работы в реальном секторе. При том одно дело, когда человек читает «Теория....», еще пол беды, но такие предметы обычно дедушки подминают, а молодые читают «Технология в ....». Увы, возможно, при союзе был расчет на нии, или получения опыта за счет НИРов, а так ситуация совсем печальна.
0
ЗП и скудное финансирование тут ни при чем. во-первых ЗП в ВУЗах вполне достойная (по крайней мере в моем вузе ставка старшего преподавателя относительно неплоха, плюс куча надбавок за научную степень и должность). во-вторых ни разу не видел преподавателя который не любит свою работу (опять же среди тех у кого учился и с кем работал) и зачастую преподаватели имеют дополнительный доход на второй работе/подработке, а преподают лишь из любви к делу. как бы там некоторые не высказывали по поводу «как же вы меня достали», это лишь брюзжание, никак не связанное с реальностью.
А вот с подачей материала могут быть проблемы, это да. и действительно часто это связано с предпенсионными преподавателями.
В любом случае ВУЗ должен научить человека учиться. остальное тонкости. Например, я знаю нескольких преподавателей, которые на лекциях читают какую то утверденную теоретическую ересь, а на практике дают задания, требующие самостоятельного изучения предмета в современных реалиях.
-2
и не надо про устаревшие знания. они нынче устаревают за пол-года — год. про разнообразие языков вообще молчу. какая разница на чем будут учить, на фортране или паскале, если найдется тот кто даже про с++14 скажет «нахрена нам этот анохронизм, есть c# (Ruby, Java, etc).
0
Ну как сказать… когда это касается таких вещей как языки программирования — тут я согласен, уследить за нововведениями весьма сложно, но когда вопрос касается допустим электропривода и преподаватель тебе рассказывает о том что самые современные привода построены на основе тиристоров (MOSFET и IGBT модули только только начинают применяться), а при моделировании электродвигатель представляется в виде одного апериодического звена (как в книге Чиликин М.Г. Сандлер А.С, про дискретные системы лучше молчать) и вся система с регуляторами не выходит за пределы 5-го порядка, моделировать умеет только в каком нибудь «IMDS МАСС» года так 90го разработки (называя это верхом инженерной мысли и паралельно обсирая MATLAB), а последний привод ручками включал лет эдак 20 — 30 назад…
Как такие анахронизмы потом проявятся на работе?
+1
ЭЭээммм… что это, Пух???
Как это было допущено к печати в качестве методического пособия?
Это ж базовый алгоритм. Закончил ПОИТ(ПО информационных технологий) БГУИР (РБ). У нас хватало бредовых метод и откровенно сырых материалов, бесчеловечно объяснявших простые истины но чтобы такое…
Какие нахрен весы? Какой нахрен заведомо -1000? Весь алгоритм описывается одним абзацем для дебилов или циклом+условием вообще. Нахрена было так наворачивать этот бред?
Н.Вирта видать авторы сего «пособия» не осилили…
И вообще, печально все. Образование во всем СНГ, судя по всему, коллапсирует, даже скорее агонирует. :(
0
Вы думаете, методичку хоть кто-то читал перед печатью? Разве что корректор, и то не факт. Более чем уверен, если прогнать её через плагиат-систему, получится что 80% текста — из реферат.ру
+2
Класс! «Покупайте наш новый бестселлер «Программирование для клинических идиотов!»».
Самое удручающее в этой ситуации то, что в медицинских ВУЗах дела обстоят немногим лучше. Жить становится все страшнее.
+1
Я сам в нем учился и, честно говоря, действительно нужных знаний по профессии (инженер-электронщик) особо не получил.
Я не увидел заявленного в подзаголовке.
Если чего то сам дистанционно не понял — могу разъяснить:
Задача как задача — сам иногда использую заведомо мелкие (в том числе и абсолютный «0») или отрицательные значения в некоторых алгоритмах.
Почему?
Такое значение является «маркером» — если в конце процедуры оно не изменилось… значит что_то_пошло_не_так и в пошаговом режиме надо искать ошибку или с датчиков не пришли данные — своебразный программный детект обрыва провода в стандарте 4-20 мА :).

А есть вот такие задачки от Грефа:
Совсем не по автоматизации, НО!.. Письмо вот такого содержания получила моя жена от Сбербанка. Особенно обратите внимание на текст внизу!
А теперь давайте немного посчитаем:
1. Вклад — 5 000 руб.
2. Полгода (~182 дня) кладём каждый день по: 250 руб.*182=45 500 руб.
3. Прибавляем первоначальный вклад: 45 500+5 000=50 500 руб.
4. А в результате получаем: 50 406 рублей, ВКЛЮЧАЯ НАЧИСЛЕННЫЕ ПРОЦЕНТЫ!!!
50 406 — 50 500 = НАЧИСЛЕННЫЕ ПРОЦЕНТЫ
0
Не хватает пары сносок мелким текстом:
* За открытие счёта — комиссия ХХХ руб.
** За снятие денег — комиссия ХХХ руб.
*** При закрытии счёта мы «забудем» закрыть платёжную карту, подождём пока там набежит пеня 2-3 тысячи рублей, и продадим долг коллекторскому агенству «Ашот и Ко», чтобы вы вспоминали нас каждый раз когда звонит телефон.
+4
Если напрягает пустой массив, можно взять наименьшее значение типа данных, которые сравниваем. Т.к. тип данных заранее известен — а если это не так, то сравниваем: крокодил больше зеленый, чем плоский, или нет?
0
А если все элементы массива одинаковы, что тогда функция вернёт? Правильно, INT_MIN, а индекс элемента высосет из кремниевого пальца.
Полвека уже массовому, коммерческому программированию, а люди всё еще велосипеды изобретают.
Кто себя считает хорошим программистом — попробуйте себя на www.codility.com. Вроде простые задачки, а вот эффективные и полные решения — совсем не простые.
0
Граждане. Вам знакомо такое слово, как «например»?
+1
Сколько шума из-за такой мелочи! А что собственно неправильно в том алгоритме? Действительно, если в начале записать «заведомо меньшее» значение, то программа 100% решит задачу правильно? Что вас смущает? Другое дело, когда диапазон возможных значений элементов массива неизвестный. Но в данном конкретном примере он известный, раз написано «заведомо меньшее».
+1
Заведомо меньшее — это a[0], например, а не -1000, например, а в остальном да, все нормально: образованию жопа, а типы данных и их мощность уже совсем не важны, например.
(facepalm)
0
«меньше» != «равно», а а[0], как это ни странно, «равно» одному из элементов массива, и никак не «меньше».
0
Так, ладно, я уже в этом бреду вокруг двух деревьев уже сам начинаю теряться.
Условие: найти наименьший элемент массива.
Решение:
min= a[0], min_i = 0, i = 0
while i < len(a):
if a[i] < min:
min= a[i], min_i = i
print «Min value:» min
print «Min index:» min_i
ps: псевдо-код.
0
Мелочь — ну вроде как да, в рамках учебного процесса, а потом такие специалисты пойдут программы писать. Ну вот очень условный пример: нужно отсортировать массив со значениями зарплат сотрудников, чтобы посмотреть у кого самая маленькая зп и прибавить :) Подготовленный по таким задачам спец решит: Так какое бы число взять «заведомо меньше», логично что меньше прожиточного минимума никто не получает, ведь по закону не положено и возьмет 3000. Сделает программу. А директор дядя Вася, плевал на закон, и платит уборщице 2500. Вот и получится что по его алгоритму прибавку получит кто то другой. Все это конечно абстрактно, а суть одна — учить нужно правильно, корректно, чтобы потом проблем не было!
0
И заметьте, это быа не ошибка алгоритма, которого научили, а ошибка конкретного индивида, который учился. Некорректный выбор начальных условий это не ошибка тех кто учит. А причина проста, люди привыкли сваливать свои недостатки на всё что угодно, только не на себя.
0
Так млин, надо же учить писать так, чтобы алгоритм был устойчив к ошибкам конкретного индивида.
Если один алгоритм сработает неправильно из-за некорректного выбора начальных условий, а второй — правильно, то второй алгоритм объективно (!) лучше при прочих равных.
Вот этому бы неплохо учить…
0
Извините, но Ваш пример не соответствует условию задачи. Действительно, ведь 3000 не является «заведомо меньшим» значением, раз какой-то элемент массива имеет значение 2500. В этом случае как раз -1000 будет хорошим вариантом для начального значения поиска. В любом случае я утверждаю, что нет логического противоречия в алгоритме из методички. Автор написал «заведомо меньшее, например -1000». Мог написать «заведомо меньшее, например а[0]-1» или т.п. Просто дав условие «заведомо меньшее» он четко поставил задачу, а -1000 — это просто один из возможных в каком-то определенном случае.
+1
Сколько шума из-за такой мелочи! А что собственно неправильно в том алгоритме?… Что вас смущает?
There's more than one way to skin a cat. Но хороший алгоритм должен быть по максимуму универсальным, это одно из его основных качеств. Тут же вводится никому ненужное ограничение по входным данным и их типу. Зачем учить на очевидно неоптимальном примере?
+1
А что значит оптимальный пример?
Вот оптимальный пример для демонстрации того, что 9-8=8 :)
и ведь в реальности то тут, то там задают вопрос о глючности результата какой то программы… просто программист не предусмотрел всех возможных вариантов
9.1 Ошибки связанные с точностью представления вещественных чисел в формате IEEE754. Опасная редукция.

Данная ошибка всегда присутствую в компьютерных вычислениях.
Причина её возникновения описана в п.7.4.
Радует только то, что величина относительной ошибки имеет размерность для single 10-6 для double 10-14
Величины абсолютных ошибок могут быть значительными, максимально для single 1031 и для double 10292, что может вызывать определённые проблемы вычислений.

//Пример 1. Ошибка вызванная точностью представления числа в формате IEEE754
#include «stdio.h»
int
main(int argc, char *argv[])
{
float a, b, f;
a=123456789;
b=123456788;
f=a-b;
printf(«Result: %f\n», f);
return 0;

}
Result: 8.000000 (Ответ должен быть 1.000000)

Если пример посчитать на бумажке, то ответ будет 1. Абсолютная ошибка равна +7.
Почему ответ получился неправильным?
Число 123456789 в single=4CEB79A3hex(ieee)=123456792(dec) абсолютная ошибка представления равна +3
Число 123456788 в single=4CEB79A2hex(ieee)=123456784(dec) абсолютная ошибка представления равна -4
Относительная погрешность исходных чисел приблизительно равна 3,24e-6%
В результате одной операции относительная погрешность результата стала 800%, т.е. увеличилась в 2,5e+8 раз.
Это я называю «Опасной редукцией», т.е. катастрофическим понижением точности вычислений в операция где абсолютное значение результата много меньше любого из входного значения переменных.

На самом деле ошибки точности представления числа наиболее безобидные в компьютерных вычислениях, и обычно многие программисты на них не обращают никакого внимания. Тем не менее они вас могут сильно огорчить.
0
Увидел аббревиатуру НГТУ, хотел было уже ужаснуться тому, как низко пал НЭТИ, но потом посмотрел, что это происходит в Нижнем, а не в Нске. Отлегло! ))))
0
Отлегло! ))))

а вот нашим можешь посочувствовать!!!:)
0
Дык…
-1
«Кто ничерта не умеет, тот идет преподавать» (ц) доктор Хаус (или Scrubs, а может и там и там)

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

Ну да, вот оно образование из совдепии. Вот он дух свободы, когда в 90х было модно не ходить на пары, а все сдавать за взятки, перекопанные огороды и часы на гаражах.
Это прекрасное поколение теперь выросло, и занимает посты от дворников, до депутатов. Есть и преподаватели. Пишут методички по понятиям и другим совдеповским методичкам, а не по книгам Кнута.
Чего ожидать от людей, выросших на желтых книгах и «200 сочинений»?

Давайте еще подождем в экономике вставания с колен.
+2
  • avatar
  • igorp
  • 09 октября 2015, 16:38
Ребяты, о чем Вы, какой дух 90х, какое молодое поколение.

МАИ, 1990ый год, я на 1ом курсе, методичка к практической работе по физике «Маятник Обербека». Первый абзац. Определение маятника Обербека:

«Маятник Обербека состоит из ЧЕТЫРЕХ взаимно перпендикулярных перекладин...»

Все. Это был тот момент, когда я понял, что следующие пять лет будут самыми ужасными в моей жизни.

Не ошибся.
0
когда я глумлюсь над быдловузниками, то это как бы плохо считается
а правду-то не скроеш
0
Ты глумишься над теми моментами, которые сделаны правильно. Ну, более-менее.
+1
какими например?
0
[смеется] аж на трое суток растянулись камменты:) я такого даже и предположить не мог – думал, максимум за два дня всё завянет и утихнет. однако, как оказалось – херовая из меня ванга, да.

В то же время, поскольку я являюсь (в некотором роде) зачинщиком данной дискуссии, хотел бы прояснить некоторые моменты, раз уж сегодня вечер пятницы и платы разводить физически не получается. Замечу, что всё ниженаписанное – исключительно моя точка зрения, объясняющая посыл данной заметки. Спорить (а уж тем паче – что-либо доказывать) я ни с кем я не собираюсь, просто излагаю своё вИдение данной темы.

Уважаемые «несогласные» камрады, ну неужели непонятно, что ключевая фраза заметки вот эта:

при постановке задачи не ведется вообще никакой речи о возможных значениях вводимых элементов массива
?

Неужели не ясно, что речь не о минус тыщще как таковой, а о дебильных вводных? Я нисколько не против значения «-1000», хоть и считаю это всё же костылями (да и само число «-1000» несколько страннО с точки зрения информатики, но это уж так – старческое брюзжание). Важно здесь то, что данная величина не привязана вообще ни к чему. Ну вглядитесь в условие задачи:

Пусть требуется найти максимальный элемент массива х(5)


Всё, блин. Больше ведь никаких условий не задано. Просто абсолютно произвольный массив из пяти элементов. К чему все эти «если»?

…и однажды прога начнёт падать, потому что на входе окажется пустой массив.


С хера ли он пустой? (Прога, кстати, начнет также падать, если все элементы массива будут меньше Xmax=-1000). Или имеется ввиду, что все значения равны нулю? Ну так строка Xmax=X(1) даст именно наибольший (и единственный) элемент данного массива (в отличие от Xmax=-1000). Индекс элемента, заметьте, является фичей, а не необходимостью (исходя из той же методички).

Или всё же есть кривизна в «ТЗ»? Ведь если задать условие «Пусть требуется найти максимальный элемент массива х(5), содержащий элементы в диапазоне -127<=X<128», то и значение «-1000» вовсе не кажется идиотизмом. Пусть под Xmax придется отвести не байт, а слово – насрать. Пусть ресурсы железа, возможно, расходуются нерационально (честно говоря, не знаю – куда залит этот фортран) – это совсем другой вопрос. Важно, что «ТЗ» вполне согласуется с приведенным в методичке алгоритмом. Ну а если диапазон входных значений не задан в явном виде – получится как у камрада ppram5:

логично что меньше прожиточного минимума никто не получает, ведь по закону не положено и возьмет 3000


Логично, конечно, ведь рамок же никаких нет.

Так что для всех «несогласных» отмечу еще раз: суть заметки не в том, что предложенный алгоритм – кривой (хоть, повторюсь, я и считаю его костыльным). Суть заметки в том, что студентам предлагается заведомо кривая связка «ТЗ-алгоритм»: тут либо задание ебанутое, либо алгоритм тупорылый. Либо мы заранее определяем диапазон величин элементов массива, либо не можем брать для сравнения число от фонаря.

И тезис

этот шедевр ни разу не виноват в удручающем состоянии современных выпускников вузов


с которым я полностью согласен (у меня жена – бухгалтер, а таблицу умножения до 9 без калькулятора не вспомнит), ни разу не отменяет того, что рассматриваемая выше методичка – говно.

Вот – как-то так:)
+1
Вот я уже — пожилой человек… И помню, как мы в молодости «донимали» преподов: Дайте нам, хоть что-нибудь конкретное — не из теории, а из практики… На что всегда получали ответ — да через 10 лет вся электроника будет совсем другая! Не забивайте голову себе! Учите теорию!
Блин, но правы они были… Лет 15 назад я это осознал :-)
+1
ни-бэ-мэ, ни-бэ-ме (аналог инородного bla-bla-bla)
с которым я полностью согласен (у меня жена – бухгалтер, а таблицу умножения до 9 без калькулятора не вспомнит), ни разу не отменяет того, что рассматриваемая выше методичка – *****.
Ты даже не знаешь русского языка и путаешь назначения слов.
Ты попробовал себя как ничему не научившийся экскрементальный журналюга — главное «Заголовок с экскрементами» и применение «экскрементальных» слов «правдорубца».
Не нравится методичка 10-летней давности?
Есть особая методика обучения постановкой задачи со спорными моментами — у меня школьный физик любил в школе любил ставить задачи, которые вызывали вопросы и мы их задавали для уточнения условий задачи…
Постепенно он выработал «рефлекс сомнения» — и прежде чем тупо ответить по инстинкту «Я Самый Умный и Самый Первый Поднял Руку» стали задумываться перед ответом.

Я думаю ты и эту методичку не поймёшь и не сможешь работать с шерстяными двигателями
-2
уважаемый, ты не болен, нет?
+2
я же пишу о недоученности и ещё критикуешь других за нелогичность ТЗ:
«ты не болен, нет? „ — как правильно ответить на некорректно заданный вопрос: “нет не болен» или «нет болен» или «да не болен» или «да болен» или «не дождёщься :)»
ветку спутал — но это про себя написал такой же «не_поспециальности»:
Самое главное разочарование месяца — я почти весь месяц проболел — и как в конце оказалось виной всему мой нос, а именно гайморит который в нём — теперь хожу на процедуры, жру таблетки, попал на кучу денег, которые можно было бы использовать куда более интересно.
И ещё Маша не все обследования прошла, так что мой Вам совет — как только заболели — проверьтесь, пролечитесь как положено — в итоге выйдет как минимум дешевле.
Считаю просто сдать анализы в нормальной лаборатории или в санатории — это как минимум залог того, что не пропустите какую-нибудь масштабную ж***...
любители экскрементально-направленного контента — почему не надо «пропустить какую-нибудь масштабную ж***» или кучку *****? а надо в неё влезть с головой ми поведать об этом всему миру… вляпался!!!
-4
ты короче в меня влюбился походу — на цитаты прям меня растащил! Будешь в Железноводске — заскочи к нам в контору — я тебе автограф дам!
+2
Ты сначала от упомянутого «гемороя» вылечись :) проверьтесь на хламидиоз… знаю, как много верставший для ВМА
и с дрожжами не экспериментируй

Будешь в Железноводске
Не буду… 100% Ближайшие поездки на Керченский мост.
-4
Ты смотри с мостами тоже не экспериментируй, и яблок не забудь с собой взять)
0
Трезвый инженерный расчёт НИОКР требует натурных экспериментов :)
0
А в чем прикол, чета я не врублюсь?
+1
или ты просто тупо несешь херню и тебе это нравится?

прежде чем тупо ответить по инстинкту «Я Самый Умный и Самый Первый Поднял Руку»

оно, видимо, не про тебя, да?
+1
ИЧСХ, английский текст в таких «руководствах» правильный.
0
Google Translator на удивление внятно переводит технические китайские тексты на английский. Чего нельзя сказать о переводе en->ru и ch->ru.
+1
Очередное подтверждение тому, что лучше читать первоисточник, выучив английский.
+2
Угу. Только сдается мне, в данном случае первоисточник китайский, а не английский.
0
Да не суть))
0
На заметку — аналогия должна быть либо полной либо её вообще быть не должно — иначе только труднее понять будет. Тут же — весы это ячейки памяти, числа это яблоки, но тем не менее в чашу весов мы «записываем маленькое число, например минус тысяча» уже сказал бы, что кладём туда арбузную семечку.

Это как бы при том, что я скорее всего вхожу в целевую аудиторию данной методички — вроде как технический специалист, но далёк от информатики. В августе я по Си читал на сайте у Полякова — Программирование на языке Си, в 4 главах. Вот там очень доступно и просто написано про массивы, во второй главе. И там реально понятно — для чего они вообще нужны. И это для школы он позиционирует.

Здесь же таким языком написано, что сначала нужно просто понять, что автор вообще имел в виду — например:
«Для суммирования нам понадобится ещё одна ЯЧЕЙКА — ПРОСТАЯ ПЕРЕМЕННАЯ S, которую мы ДОЛЖНЫ ПОЛОЖИТЬ РАВНОЙ НУЛЮ.
Повторения часто проскакивают — »Для перестановки местами элементов массива необходимо ввести промежуточную ячейку С" — потом идёт чёрная магия с телевизорами и рисунками столов, потом опять «Для перестановки местами элементов массива необходимо ввести промежуточную ячейку С»
Это всё идёт до того, как пошло дело про весы и яблоки — понимаете — там просто об само изложение можно сломать мозг. Похоже на черновик, я когда статью пишу — у меня вот первый раз что-то похожее получается, потом садишься ещё пару раз редактируешь — и более-менее читаемо.
Но конечно, тут более ответственное дело — посты от праздности писать это Вам не методички по информатике!
Там и так пойдёт!
Преподаватель аспиранта пнул — Пиши методичку!
Аспирант набрал текст вечером, лишь бы отъебались.
Утром отдал на кафедру ассистенту, который там работает ради того, чтоб на экзаменах помогли.
Ассистент зашёл, грамматические ошибки красненьким подчёркнутые в ворде исправил и на печать!
Учебно-методическое пособие готово! Всё равно заочникам оно нахуй не нужно! Слава системе образования в РФ!
А три автора — это преподаватель, аспирант, и ассистент))
Может тут и не так было, но что-то подсказывает, что было очень похоже.
+3
В разные времена преподаватели могут обращаться к разным наглядным примерам из своего времени — кому то понятны задачки про весы и перемещение 50 КГ трубочного телевизора Самсунг со встроенными стерео системой — от низов соседи наверху подпрыгивают (какой есть у меня :)
пример из брошюрки АН СССР 90-х о программировании параллельных потоков для многопроцессорных систем
-1
Обложка брошюрки АН СССР 90-х о программировании параллельных потоков для многопроцессорных систем
Таким безобидным сумашедшим монстром тогда представлялся «Скайнет»
+2
Спящая и баянящая головы отлично сочетаются)))
0
отрубленной головы не хватает, из которой кровь хлещет. Программеры меня поймут))
+3
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.