Найти логические ошибки

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

Многие слышали про логику и даже знают, что это наука. И еще любят шутить на эту тему, особенно про женскую логику, которая «отсутствие» всякой логики. Мужчины же считают себя знатоками этой науки, поскольку больше думают головой, нежели сердцем, и это тоже противоречит основам логики. Обычно знания о ней у большинства на этом и заканчиваются. Но как прост и ясен (и логичен) был мир, если мы бы знали и применяли хотя бы фундаментальные знания в этой науке. В мире стало бы меньше конфликтов и споров, массовых манипуляций сознанием и хитроумных уловок, бездумных поступков и иррациональных решений. Любые споры решались бы спокойным и рациональным обсуждением, в котором каждый мог бы объяснить другому свои мысли легко и доступно.

Чем же в обычном бытовом общении отличается человек, знающий и применяющий законы логики, от обычного человека? Примерно тем же, чем в бою обычный безоружный человек отличается от хорошо вооруженного натренированного бойца элитного подразделения спецназа.

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

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

Наименование

Описание ошибки

Пример ошибки

Обращение к успешности

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

– «Как ты можешь говорить о необходимости личной свободы, если сама сидишь в одиночестве без нормального мужика?»

Форма важнее содержания

Вместо оценки сути, правильности и действенности аргумента – в защиту идёт исключительно внешняя привлекательность.

– «В этой фирме работают только профессионалы».
– «Откуда ты это знаешь?»
– «Ты только посмотри, какой у них шикарный офис! Всё такое дорогое и все в костюмах. Предложили кофе бесплатно. Им точно можно доверить наши вложения!»

Аргументация по кругу

Доказательство изображается исключительно на основе своей особой уверенности в правоте и в заявлениях об истинности чего-либо просто потому, что это верно (вообще без доказательств).

– «Да это было так и никак иначе!»

– «Почему?»

– «Я знаю это давно и уверен в этом. Это так абсолютно точно».
– «Откуда знаешь?»

– «Потому что я знаю это 100 %! И это так».

Авторитетное мнение

Собеседник в качестве аргумента приводит неизвестное мнение какого-нибудь авторитета или исследование ученых.

– «Аристотель считал демократию наихудшей формой правления… Голосуй! Ты умнее его!».

Желаемое за действительное или отсутствие связи

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

– «Эти пирожные идут только на пользу моей фигуре».

– «Как это так?»

– «Потому что когда я их ем, моё тело получает огромное море удовольствия, а значит, они полезны для моей фигуры!»

Отвергнутая идея или

Уловка Галилея

Человек настаивает на верности определённой идеи только потому, что её отрицает какое-либо общество.

– «Все говорят, что нельзя много выиграть в лотерею, а вот мужик из Рязани выиграл 10 миллионов, значит, и я скоро столько выиграю». Или: – «Галилею тоже никто не верил — но он оказался прав!».

Ложная аналогия или аналогия без реальной связи

Манипуляция, в которой создаётся аналогия или метафора для перетаскивания выводов в обсуждаемую ситуацию. Естественно, приводимый пример и выводы отличаются от существующей ситуации, но иногда это очень убедительно.

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

Сужающийся круг или поэтапное изменение условий

Самопроизвольное изменение человеком условий доказательства чего-либо после выполнения предыдущих условий. Истинное доказательство при этом смещается.

– «Как тут не пить? В нашем поселке все пьют».

– «Ну как же! Анька, Дашка и Васька не пьют».

– «Я имел в виду, что все мужики, которые приходят ко мне вечером пьют».

– «Ромка вчера вечером заходил, и он тоже не пьет».

– «А вот на нашей лавочке во дворе только алкаши все собираются…»

Аргумент в сторону последствий или ложная причинно следственная связь

Ошибочное мнение, что если последствия благоприятны, значит, те действия, что к ним приводят, правильны. Если последствия неблагоприятны, значит, и действие неправильно.

– «Если ты не будешь есть очень полезный лук и чеснок, то у тебя ослабится иммунитет, ты будешь много болеть и рано умрёшь».

Мнимое доказательство

Человек отрицает любые косвенные доказательства, основываясь на одном неоспоримом, но ничем не подтверждаемом предположении.

– «Мне кажется, моя жена изменяет мне. Она приходит поздно, одежда мятая, от неё пахнет мужским одеколоном и сигаретами, а ещё ей кто-то поздно названивает и пишет сообщения».

– «У тебя есть видео, как она тебе изменяет?»

– «Нет, конечно».

– «Значит, успокойся, никто тебе не изменяет, это просто твои догадки».

Принижение роли и достоверности источника

Отвлечение внимания от аргументов путём сообщения негативной информации об их источнике, что отвлекает и создает заблуждение, что был опровергнут и сам аргумент.

– «А вот стройные парижанки худеют, кушая булочки после 20:00!» – Это во Франции может и работает, у них там свои понятия о стройности, а у нас Россия, у нас булки  по другим рецептам готовят и кушают их в огромном количестве».

– «Но у нас продают и французские булочки…»

– «Ты что думаешь, что у нас настоящие французы их пекут? И кто вообще тебе об этом рассказал? Наверно, съездила какая-нибудь девица в Париж, сходила вечером в кафе и решила, что все француженки спокойно худеют, кушая булочки после 20:00».

Общий враг или враг моего врага

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

– «Я считаю, что нам пора завести ребенка, дорогой, а то потом будет поздно, правда, мам?

– «Да, зятек, пора уж, а то ребенка поднимать ещё придется, а время-то идёт».

Высмеивание или обвинение в отсутствии чувства юмора

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

– «Здесь нельзя парковаться, вот знак стоит».

– «Ты, что тут, местный гаишник, что ли? Может, тебе и в трубочку дунуть, чтоб замолчал?»

Ошибка субъективного восприятия наблюдателя

Часто наблюдающий из-за своей субъективности (или слепо корректируя под свои убеждения) делает ошибочный вывод.

– «Ну и молодежь пошла, ты посмотри, что Дашка наша надела, совсем уже ни стыда ни совести, с таким нарядом только на панель».

Не обоснованное обобщение

На основе частных случаев делаются обобщающие выводы. Сопровождается словами «все», «никогда», «всегда».

– «Вот думаю купить себе девятку»

– «Никогда не покупай отечественный автопром! Была у меня одна девятка, все русские машины – это всегда лотерея с болтами!»

Последовательная нелогичность, ложная причинно следственная связь

Когда одно событие произошло перед другим – это совсем не означает, что причиной второго обязательно было первое. Часто это касается не только общения, но и поведения по жизни.

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

Угрозы физического насилия

Когда некоторым людям не хватает логических аргументов, в ход часто могут пойти угрозы физической расправы, разумеется, без логических обоснований.

– «Если ты ещё раз проводишь Ленку, то мы тебе так наваляем, неделю ходить не сможешь, понял?»

Кривое зеркало

Искажение ваших доводов для того чтобы легче было осуществить нападение на ваше решение.

– «Ты знаешь, я согласился работать на два часа больше, и теперь буду приходить домой поздно, но мы сможем купить себе машину!»

– «Вот уж не думала, что для тебя ездить на машине важнее, чем быть вечером с семьей!»

Ложная цепочка

Намеренно делается ошибочное предположение, что если произойдет событие 1, то это обязательно приведет к событию 25, без учета других разных вероятных событий в цепи. И всё это ради вывода о том, что событие 1 никак нельзя совершать.

– «Если я сейчас куплю тебе этот пончик, то когда ты станешь взрослой, ты будешь толстой, как тетя Маша, и все будут смеяться над тобой».

Неизбежное, необходимое зло или месть=добро

Оправдание своих плохих поступков тем, что точно так же поступали и другие, или заявлять, что моё зло просто компенсирует их зло. Око за око.

– «Ты зачем украл с работы инструменты?»

– «Да потому что все воруют, у нас по-другому никак. Да и в прошлом месяце у меня с зарплаты высчитали за то, что кто-то спёр на складе. Должна же быть в мире хоть какая-то справедливость!»

Ошибка ассоциаций

Совершающие эту ошибку заявляют, что из-за наличия неких сходных характеристик свойства одной вещи присущи другой.

– «Известно, что человек состоит на 70% из воды. При этом огурец состоит на 90% из воды. Используя математику, легко подсчитать, что человек на 65% огурец. А ещё Иисус умел ходить по воде. Значит, если я могу ходить по огурцам, тогда я на 90% Иисус».

Аргумент к традициям

Когда собеседник в качестве доказательства приводит давнюю или сложившуюся традицию, которая, по его мнению, неспроста существует и, значит, действовать согласно традиции будет лучше или так будет правильно.

– «Мам, я же не люблю грибной суп, сколько можно его готовить?!»

– «Нет, ты должен есть грибной суп, потому что и я, и папа, и все твои предки воспитывались, кушая суп. Значит, для нас нет ничего полезнее супов. А грибной суп – это традиционный обед в нашей семье!»

Взаимоисключение

Ошибка, когда человек отстаивает взаимоисключающие вещи.

– «Всего две вещи в жизни ненавижу: расизм и негров!»

Полный абсурд

Доведение аргументов до абсурда. Иногда в этом есть доля истины, но чаще всего нет.

– «Вы весите уже 150 килограмм, вам срочно необходимо снизить калорийность питания и отказаться от сладкого и жирного, иначе с вашим-то «букетом» вы можете и не дожить до следующего Рождества».

– «Поживу сколько поживу, но голодать точно не буду!»

Аргумент к доказательству

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

– «Я не знаю, как мне удалось выжить в этом шторме, значит, только Бог мог спасти меня».

(«Я не знаю» сразу превращается в «я знаю»)

Ошибка статистики

Часто возникает у любителей азартных игр. Они ошибочно предполагают возникновение конкретного результата после ряда повторяющихся, но совершенно независимых друг от друга, вероятностей, полагаясь на статистику, которая тут неуместна.

– «А вдруг опять нарвёмся на неприятности?»

– «Не бойся, два раза снаряд в одну воронку не падает».

Или-или

Умышленное предоставление всего двух альтернативных вариантов, как единственных, для принятия выбора. На самом деле вариантов может быть намного больше.

– «Ты с нами или против нас?»

Схожие процессы

Человек, объясняя связь между процессами, настаивает на том, что одно событие является причиной другого.

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

Посмотри на себя

Вместо аргументации своей позиции, в ход идёт упоминание личных качеств или характера собеседника, чтобы отвести внимание и победить в споре.

– «Ещё раз напоминаю, чтобы нам вовремя платили зарплату очень важно вовремя сдавать отчёты в бухгалтерию».

– «Ну-ну, ты нам ещё на прошлом собрании говорил, как важно всё делать вовремя, а сам-то постоянно на работу опаздываешь!»

Неудобный вопрос

Способ отвести внимание с помощью неудобного и часто провокационного вопроса.

– «У нас произошли большие перемены, улучшились условия труда, стало больше рабочих мест…»

– «А вы уже больше не берёте так много взяток, как раньше?»

Авторитет вместо аргумента

Предоставление вместо логичных аргументов мнение какого-либо авторитетного лица.

– «И почему же это пить алкоголь полезно?»

– «Главный кардиолог страны сказал, что принятие алкоголя полезно для сердца».

Закон природы

Выстраивание доказательства по принципу «Что естественно, то не безобразно», а даже полезно, правильно, идеально и т.п. Обращение к дикой природе, как к мировому судье.

– «Мы живем в жестоком мире, где человек человеку волк: или ты обманул, или тебя обманули – таков закон джунглей».

Часть = целое

Попытка приравнивания свойств частички к свойствам целого или, например, возможностей одного человека к возможностям толпы.

Уже очень многие люди покорили Эверест. Значит, для любого человека это возможно.

Случай против статистики

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

– «Дима, тебе не стоит так увлекаться пьянкой и курением. Алкоголь и сигареты значительно сокращают срок твоей жизни».

– «Да мой дед всю жизнь курил как паровоз и пил как слесарь, а дожил до 95 лет».

(Увы, чуть позже, когда Диме исполнилось 30, у него диагностировали рак легких)

Выводы из причины или

порочный круг

Человек делает выводы из причин, помещая свои аргументы в замкнутый круг.

– «Представляешь, тортики на ночь полезны, потому что во Франции так худеют и улучшают фигуру. И многие француженки худеют и улучшают фигуру только потому, что кушают тортики на ночь».

Все так делают

Человек пытается спрятаться за широким общественным мнением, за «мнением толпы», аргументируя свою позицию тем, что «все так делают».

– «Мама, хочу айфон!»

– «А зачем он тебе?»

– «Ну у всех в школе уже есть, а у меня нет».

Особые условия

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

– «Ты должен был вернуть мне 1000$ еще вчера!»

– «Я бы вернул, но они у моего дяди, а дорога туда 300 рублей стоит, одолжишь?»

Особый случай

Подгонка аргументов собеседника под «особый случай» без соотношения с какими-либо объективными показателями.

– «Ни одна уважающая себя девушка не пойдет знакомиться с парнем первой».

– «А моя сестра первая со своим мужем познакомилась и счастлива!»

– «Вообще-то, ни одна уважающая себя девушка не станет первой знакомиться с парнем».

Подтасовка фактов

Подтасовывание фактов для оправдания какого-либо события или своей точки зрения.

– «Я читала, что девушки, регулярно кушающие пирожные перед сном, улучшают свои умственные способности, имеют утонченный вкус и, как правило, по жизни намного богаче, чем те, которые этого не делают».

Презумпция невиновности

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

– «Я верю в потусторонний мир и приведений. Они вокруг нас, и я их иногда вижу».

– «Да ну, и чем докажешь?»

– «Не веришь мне? А ты вот докажи, что их нет!»

Посмотри на себя

Человек вместо опровержения доводов собеседника указывает на то, что собеседник сам не соответствует тому, о чём говорит.

– «Хорошие семейные отношения, Леша, – это всегда честность и открытость».

– «Вот ты говоришь, что честность – залог хороших отношений, но не отдаешь своей жене всю зарплату, и все шабашки заначиваешь!»

Эмоции вместо аргументов

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

– «Я так хотела эту кофточку, а ты… Ты меня совсем не любишь!»

Цепляться к деталям отвергая суть

Человек ищет во всем суждении одну ошибку и сразу цепляется к ней, убеждая собеседника в ошибочности всего суждения.

– «Нельзя кушать торты после 20:00, потому что они дают много энергии, а она не израсходуется и значит, сразу пойдет в жир и у тебя испортится фигура. Да и не продают у нас сейчас вкусных тортиков».

– «Я знаю много вкусных тортиков, которые пекут недалеко в кондитерской и их очень хорошо кушать, когда идешь к кому-то в гости или перед сном, и это совсем не вредно!»

Убежденная некомпетентность или апелляция к недоверию

Эту ошибку часто совершают неграмотные или некомпетентные люди, которые из-за своего непонимания вопроса, считают информацию ошибочной и высказывают своё недоверие к ней.

– «Светодиодные лампы более долговечны, меньше потребляют энергии и лучше по всем показателям, чем обыкновенные лампы накаливания».

– «Что ты мне рассказываешь! Я всю жизнь работал с обычными лампочками и знаю, что они точно долго не портятся и хорошо светят, а эти все новомодные штучки только для того, чтобы у людей побольше денег выудить».

Двойной смысл

Иногда для искажения фактов используют двойное значение слов в речи или похожие речевые словообороты.

– «Отстань, у меня и без тебя итак уже руки отваливаются».

– «И долго еще ждать, когда они у тебя вконец отвалятся?»

– «Отвали, и слышать тебя не хочу!»

– «Ну хочешь не хочешь, а слышишь…»

Ошибка происхождения аргумента

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

– «Ты изменил мне с Ленкой, я видела тебя на фотке вместе с ней «ВКонтакте»!»

– «Да ты что! Там в социальной сети одно вранье и фотошоп, меня там даже не было».

Компромисс

Возникает у людей, ищущих во всем компромисс или золотую середину. Позиция таких людей в споре: и ни нашим, и ни вашим, пусть все будут довольны. Иногда это срабатывает, однако, истина одна, и далеко не всегда она может быть «где-то рядом».

– «Алкоголь – это главное зло в России!»

– «А главный кардиолог страны сказал, что принятие алкоголя полезно для сердца».

– «Ребята, я думаю, для нас немного алкоголя не сотворит в России много зла».

Лишние детали или умножение сущностей

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

– «Поедание торта после 20:00 ведет к ожирению и портит фигуру».

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

Поздравляем, вот и закончился список основных и популярных ошибок логики, с которыми вы можете столкнуться в повседневной жизни. Конечно, список внушительный, но далеко не полный. Если же в голове у вас заварилась каша из одной сплошной логической ошибки, то вы обычный человек и вам не нужно расстраиваться. Освоение и исправление ошибок происходит не в один момент. Главное, что нужно понять — ошибок не нужно бояться! Иногда ошибаться неприятно, иногда это очень глупо, иногда забавно, но почти всегда ошибаться полезно! И польза приходит к вам тогда, когда вы выявляете ошибку и стараетесь исправить её.

Что же делать, если вы заметили логическую ошибку? Ни в коем случае не нужно сразу пытаться сказать: «Ага, тут ты совершаешь грубейшую логическую ошибку!». Вам просто нужно продолжать удерживать собеседника на доказательстве его аргументов и направлять разговор в логичное русло, пресекая любые манипуляции вашим сознанием. Когда сделать это невозможно, тогда просто оставьте споры с этим человеком, – он не ищет истины и не хочет стать лучше, он просто хочет поспорить и быть правым, абсолютно при этом не вникая в логичность или нелогичность ваших и своих доводов.

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

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

Помните логическую ошибку «Или-или»? Так вот, вы хотите быть всегда правыми или счастливыми? Теперь вы знаете правильный ответ на эту фразу.

Статью подготовили: Анна Круговая и Круговой Эдуард.

Как искать и исправлять ошибки в коде

Искать ошибки в программах — непростая задача. Здесь нет никаких готовых методик или рецептов успеха. Можно даже сказать, что это — искусство. Тем не менее есть общие советы, которые помогут вам при поиске. В статье описаны основные шаги, которые стоит предпринять, если ваша программа работает некорректно.

Шаг 1: Занесите ошибку в трекер

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

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

Трекер поможет вам не потерять нить размышлений и о текущей проблеме, и о той, которую вы временно отложили. А если вы работаете в команде, это поможет делегировать исправление коллеге и держать все обсуждение в одном месте.

Вы должны записать в трекер следующую информацию:

  1. Что делал пользователь.
  2. Что он ожидал увидеть.
  3. Что случилось на самом деле.

Это должно подсказать, как воспроизвести ошибку. Если вы не сможете воспроизвести ее в любое время, ваши шансы исправить ошибку стремятся к нулю.

Шаг 2: Поищите сообщение об ошибке в сети

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

Шаг 3: Найдите строку, в которой проявляется ошибка

Если ошибка вызывает падение программы, попробуйте запустить её в IDE под отладчиком и посмотрите, на какой строчке кода она остановится. Совершенно необязательно, что ошибка будет именно в этой строке (см. следующий шаг), но, по крайней мере, это может дать вам информацию о природе бага.

Шаг 4: Найдите точную строку, в которой появилась ошибка

Как только вы найдете строку, в которой проявляется ошибка, вы можете пройти назад по коду, чтобы найти, где она содержится. Иногда это может быть одна и та же строка. Но чаще всего вы обнаружите, что строка, на которой упала программа, ни при чем, а причина ошибки — в неправильных данных, которые появились ранее.

Если вы отслеживаете выполнение программы в отладчике, то вы можете пройтись назад по стектрейсу, чтобы найти ошибку. Если вы находитесь внутри функции, вызванной внутри другой функции, вызванной внутри другой функции, то стектрейс покажет список функций до самой точки входа в программу (функции main() ). Если ошибка случилась где-то в подключаемой библиотеке, предположите, что ошибка все-таки в вашей программе — это случается гораздо чаще. Найдите по стектрейсу, откуда в вашем коде вызывается библиотечная функция, и продолжайте искать.

Шаг 5: Выясните природу ошибки

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

    Вы начали цикл for с единицы вместо нуля или наоборот. Или, например, подумали, что метод .count() или .length() вернул индекс последнего элемента. Проверьте документацию к языку, чтобы убедиться, что нумерация массивов начинается с нуля или с единицы. Эта ошибка иногда проявляется в виде исключения Index out of range .
    Ваш процесс или поток пытается использовать результат выполнения дочернего до того, как тот завершил свою работу. Ищите использование sleep() в коде. Возможно, на мощной машине дочерний поток выполняется за миллисекунду, а на менее производительной системе происходят задержки. Используйте правильные способы синхронизации многопоточного кода: мьютексы, семафоры, события и т. д.

  1. Неправильные настройки или константы
    Проверьте ваши конфигурационные файлы и константы. Я однажды потратил ужасные 16 часов, пытаясь понять, почему корзина на сайте с покупками виснет на стадии отправки заказа. Причина оказалась в неправильном значении в /etc/hosts , которое не позволяло приложению найти ip-адрес почтового сервера, что вызывало бесконечный цикл в попытке отправить счет заказчику.
  2. Неожиданный null
    Бьюсь об заклад, вы не раз получали ошибку с неинициализированной переменной. Убедитесь, что вы проверяете ссылки на null , особенно при обращении к свойствам по цепочке. Также проверьте случаи, когда возвращаемое из базы данных значение NULL представлено особым типом.
  3. Некорректные входные данные
    Вы проверяете вводимые данные? Вы точно не пытаетесь провести арифметические операции с введенными пользователем строками?
  4. Присваивание вместо сравнения
    Убедитесь, что вы не написали = вместо == , особенно в C-подобных языках.
  5. Ошибка округления
    Это случается, когда вы используете целое вместо Decimal , или float для денежных сумм, или слишком короткое целое (например, пытаетесь записать число большее, чем 2147483647, в 32-битное целое). Кроме того, может случиться так, что ошибка округления проявляется не сразу, а накапливается со временем (т. н. Эффект бабочки).
  6. Переполнение буфера и выход за пределы массива
    Проблема номер один в компьютерной безопасности. Вы выделяете память меньшего объема, чем записываемые туда данные. Или пытаетесь обратиться к элементу за пределами массива.
  7. Программисты не умеют считать
    Вы используете некорректную формулу. Проверьте, что вы не используете целочисленное деление вместо взятия остатка, или знаете, как перевести рациональную дробь в десятичную и т. д.
  8. Конкатенация строки и числа
    Вы ожидаете конкатенации двух строк, но одно из значений — число, и компилятор пытается произвести арифметические вычисления. Попробуйте явно приводить каждое значение к строке.
  9. 33 символа в varchar(32)
    Проверяйте данные, передаваемые в INSERT , на совпадение типов. Некоторые БД выбрасывают исключения (как и должны делать), некоторые просто обрезают строку (как MySQL). Недавно я столкнулся с такой ошибкой: программист забыл убрать кавычки из строки перед вставкой в базу данных, и длина строки превысила допустимую как раз на два символа. На поиск бага ушло много времени, потому что заметить две маленькие кавычки было сложно.
  10. Некорректное состояние
    Вы пытаетесь выполнить запрос при закрытом соединении или пытаетесь вставить запись в таблицу прежде, чем обновили таблицы, от которых она зависит.
  11. Особенности вашей системы, которых нет у пользователя
    Например: в тестовой БД между ID заказа и адресом отношение 1:1, и вы программировали, исходя из этого предположения. Но в работе выясняется, что заказы могут отправляться на один и тот же адрес, и, таким образом, у вас отношение 1:многим.

Если ваша ошибка не похожа на описанные выше, или вы не можете найти строку, в которой она появилась, переходите к следующему шагу.

Шаг 6: Метод исключения

Если вы не можете найти строку с ошибкой, попробуйте или отключать (комментировать) блоки кода до тех пор, пока ошибка не пропадет, или, используя фреймворк для юнит-тестов, изолируйте отдельные методы и вызывайте их с теми же параметрами, что и в реальном коде.

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

Шаг 7: Логгируйте все подряд и анализируйте журнал

Пройдитесь по каждому модулю или компоненту и добавьте больше сообщений. Начинайте постепенно, по одному модулю. Анализируйте лог до тех пор, пока не проявится неисправность. Если этого не случилось, добавьте еще сообщений.

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

Шаг 8: Исключите влияние железа или платформы

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

Если ваша программа работает по сети, проверьте свитч, замените кабель или запустите программу в другой сети.

Ради интереса, переключите кабель питания в другую розетку или к другому ИБП. Безумно? Почему бы не попробовать?

Если у вас возникает одна и та же ошибка вне зависимости от среды, то она в вашем коде.

Шаг 9: Обратите внимание на совпадения

  1. Ошибка появляется всегда в одно и то же время? Проверьте задачи, выполняющиеся по расписанию.
  2. Ошибка всегда проявляется вместе с чем-то еще, насколько абсурдной ни была бы эта связь? Обращайте внимание на каждую деталь. На каждую. Например, проявляется ли ошибка, когда включен кондиционер? Возможно, из-за этого падает напряжение в сети, что вызывает странные эффекты в железе.
  3. Есть ли что-то общее у пользователей программы, даже не связанное с ПО? Например, географическое положение (так был найден легендарный баг с письмом за 500 миль).
  4. Ошибка проявляется, когда другой процесс забирает достаточно большое количество памяти или ресурсов процессора? (Я однажды нашел в этом причину раздражающей проблемы «no trusted connection» с SQL-сервером).

Шаг 10: Обратитесь в техподдержку

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

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

Полезные советы (когда ничего не помогает)

  1. Позовите кого-нибудь еще.
    Попросите коллегу поискать ошибку вместе с вами. Возможно, он заметит что-то, что вы упустили. Это можно сделать на любом этапе.
  2. Внимательно просмотрите код.
    Я часто нахожу ошибку, просто спокойно просматривая код с начала и прокручивая его в голове.
  3. Рассмотрите случаи, когда код работает, и сравните их с неработающими.
    Недавно я обнаружил ошибку, заключавшуюся в том, что когда вводимые данные в XML-формате содержали строку xsi:type=’xs:string’ , все ломалось, но если этой строки не было, все работало корректно. Оказалось, что дополнительный атрибут ломал механизм десериализации.
  4. Идите спать.
    Не бойтесь идти домой до того, как исправите ошибку. Ваши способности обратно пропорциональны вашей усталости. Вы просто потратите время и измотаете себя.
  5. Сделайте творческий перерыв.
    Творческий перерыв — это когда вы отвлекаетесь от задачи и переключаете внимание на другие вещи. Вы, возможно, замечали, что лучшие идеи приходят в голову в душе или по пути домой. Смена контекста иногда помогает. Сходите пообедать, посмотрите фильм, полистайте интернет или займитесь другой проблемой.
  6. Закройте глаза на некоторые симптомы и сообщения и попробуйте сначала.
    Некоторые баги могут влиять друг на друга. Драйвер для dial-up соединения в Windows 95 мог сообщать, что канал занят, при том что вы могли отчетливо слышать звук соединяющегося модема. Если вам приходится держать в голове слишком много симптомов, попробуйте сконцентрироваться только на одном. Исправьте или найдите его причину и переходите к следующему.
  7. Поиграйте в доктора Хауса (только без Викодина).
    Соберите всех коллег, ходите по кабинету с тростью, пишите симптомы на доске и бросайте язвительные комментарии. Раз это работает в сериалах, почему бы не попробовать?

Что вам точно не поможет

  1. Паника
    Не надо сразу палить из пушки по воробьям. Некоторые менеджеры начинают паниковать и сразу откатываться, перезагружать сервера и т. п. в надежде, что что-нибудь из этого исправит проблему. Это никогда не работает. Кроме того, это создает еще больше хаоса и увеличивает время, необходимое для поиска ошибки. Делайте только один шаг за раз. Изучите результат. Обдумайте его, а затем переходите к следующей гипотезе.
  2. «Хелп, плиииз!»
    Когда вы обращаетесь на форум за советом, вы как минимум должны уже выполнить шаг 3. Никто не захочет или не сможет вам помочь, если вы не предоставите подробное описание проблемы, включая информацию об ОС, железе и участок проблемного кода. Создавайте тему только тогда, когда можете все подробно описать, и придумайте информативное название для нее.
  3. Переход на личности
    Если вы думаете, что в ошибке виноват кто-то другой, постарайтесь по крайней мере говорить с ним вежливо. Оскорбления, крики и паника не помогут человеку решить проблему. Даже если у вас в команде не в почете демократия, крики и применение грубой силы не заставят исправления магическим образом появиться.

Ошибка, которую я недавно исправил

Это была загадочная проблема с дублирующимися именами генерируемых файлов. Дальнейшая проверка показала, что у файлов различное содержание. Это было странно, поскольку имена файлов включали дату и время создания в формате yyMMddhhmmss . Шаг 9, совпадения: первый файл был создан в полпятого утра, дубликат генерировался в полпятого вечера того же дня. Совпадение? Нет, поскольку hh в строке формата — это 12-часовой формат времени. Вот оно что! Поменял формат на yyMMddHHmmss , и ошибка исчезла.

Отладка

Отладка, или debugging, — это поиск (локализация), анализ и устранение ошибок в программном обеспечении, которые были найдены во время тестирования.

Виды ошибок

Ошибки компиляции

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

В интерпретируемых языках (например Python) текст программы команда за командой переводится в машинный код и сразу исполняется. К моменту обнаружения ошибки часть программы уже может исполниться.

Ошибки компоновки

Ошибки связаны с разрешением внешних ссылок. Выявляет компоновщик (редактор связей) при объединении модулей программы. Простой пример — ситуация, когда требуется обращение к подпрограмме другого модуля, но при компоновке она не найдена. Ошибки также просто найти и устранить.

Ошибки выполнения (RUNTIME Error)

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

  • сообщение об ошибке, которую зафиксировали схемы контроля машинных команд. Это может быть переполнение разрядной сетки (когда старшие разряды результата операции не помещаются в выделенной области памяти), «деление на ноль», нарушение адресации и другие;
  • сообщение об ошибке, которую зафиксировала операционная система. Она же, как правило, и документирует ошибку. Это нарушение защиты памяти, отсутствие файла с заданным именем, попытка записи на устройство, защищенное от записи;
  • прекращение работы компьютера или зависание. Это и простые ошибки, которые не требуют перезагрузки компьютера, и более сложные, когда нужно выключать ПК;
  • получение результатов, которые отличаются от ожидаемых. Программа работает стабильно, но выдает некорректный результат, который пользователь воспринимает за истину.

Ошибки выполнения можно разделить на три большие группы.

Ошибки определения данных или неверное определение исходных данных. Они могут появиться во время выполнения операций ввода-вывода.

К ним относятся:

  • ошибки преобразования;
  • ошибки данных;
  • ошибки перезаписи.

Как правило, использование специальных технических средств для отладки (API-логгеров, логов операционной системы, профилировщиков и пр.) и программирование с защитой от ошибок помогает обнаружить и решить лишь часть из них.

Логические ошибки. Они могут возникать из ошибок, которые были допущены при выборе методов, разработке алгоритмов, определении структуры данных, кодировании модуля.

В эту группу входят:

  • ошибки некорректного использования переменных. Сюда относятся неправильный выбор типов данных, использование индексов, выходящих за пределы определения массивов, использование переменных до присвоения переменной начального значения, нарушения соответствия типов данных;
  • ошибки вычислений. Это некорректная работа с переменными, неправильное преобразование типов данных в процессе вычислений;
  • ошибки взаимодействия модулей или межмодульного интерфейса. Это нарушение типов и последовательности при передаче параметров, области действия локальных и глобальных переменных, несоблюдение единства единиц измерения формальных и фактических параметров;
  • неправильная реализация логики при программировании.

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

Веб-разработчик с нуля

Освойте веб-разработку за 12 месяце и делайте сайты и приложения любой сложности.

Методы отладки программного обеспечения

Метод ручного тестирования

Отладка программы заключается в тестировании вручную с помощью тестового набора, при работе с которым была допущена ошибка. Несмотря на эффективность, метод не получится использовать для больших программ или программ со сложными вычислениями. Ручное тестирование применяется как составная часть других методов отладки.

Метод индукции

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

Вот как выглядит процесс:

Важно, чтобы выдвинутая гипотеза объясняла все проявления ошибки. Если объясняется только их часть, то либо гипотеза неверна, либо ошибок несколько.

Метод дедукции

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

Метод обратного прослеживания

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

Как выполняется отладка в современных IDE

Ранние отладчики, например gdb, представляли собой отдельные программы с интерфейсами командной строки. Более поздние, например первые версии Turbo Debugger, были автономными, но имели собственный графический интерфейс для облегчения работы. Сейчас большинство IDE имеют встроенный отладчик. Он использует такой же интерфейс, как и редактор кода, поэтому можно выполнять отладку в той же среде, которая используется для написания кода.

Отладчик позволяет разработчику контролировать выполнение и проверять (или изменять) состояние программ. Например, можно использовать отладчик для построчного выполнения программы, проверяя по ходу значения переменных. Сравнение фактических и ожидаемых значений переменных или наблюдение за ходом выполнения кода может помочь в отслеживании логических (семантических) ошибок.

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

Шаг с заходом (step into)

Команда выполняет очередную инструкцию, а потом приостанавливает процесс, чтобы с помощью отладчика было можно проверить состояние программы. Если в выполняемом операторе есть вызов функции, step into заставляет программу переходить в начало вызываемой функции, где она приостанавливается.

Шаг с обходом (step over)

Команда также выполняет очередную инструкцию. Однако когда step into будет входить в вызовы функций и выполнять их строка за строкой, step over выполнит всю функцию, не останавливаясь, и вернет управление после ее выполнения. Команда step over позволяет пропустить функции, если разработчик уверен, что они уже исправлены, или не заинтересован в их отладке в данный момент.

Шаг с выходом (step out)

В отличие от step into и step over, step out выполняет не следующую строку кода, а весь оставшийся код функции, исполняемой в настоящее время. После возврата из функции он возвращает управление разработчику. Эта команда полезна, когда специалист случайно вошел в функцию, которую не нужно отлаживать.

Как правило, при пошаговом выполнении можно идти только вперед. Поэтому легко перешагнуть место, которое нужно проверить. Если это произошло, необходимо перезапустить отладку.

У некоторых отладчиков (таких как GDB 7.0, Visual Studio Enterprise Edition 15.5 и более поздних версий) есть возможность вернуться на шаг назад. Это полезно, если пропущена цель либо нужно повторно проверить выполненную инструкцию.

Веб-разработчик с нуля

За 12 месяцев вы освоите базовую верстку, frontend и backend. В конце обучения у вас будет готовое портфолио из проектов.

Виды ошибок в программах

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

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

Итак, основных вида всего три:

Синтаксические ошибки в программах

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

Синтаксические ошибки — это ошибки синтаксиса (а то бы вы не догадались))). То есть ошибки правил языка. Например, для Паскаля это будет синтаксической ошибкой:

Потому что после первой строки нет точки с запятой.

Подобные ошибки очень часто совершают новички. И это вгоняет их в ступор — они пугаются и не могут понять, что же не так с их кодом. Хотя если бы они внимательно его посмотрели и прочитали сообщение об ошибке, то легко могли бы исправить её:

Синтаксические ошибки в программах

Потому что в сообщении чётко сказано:

что можно перевести как

То есть компилятор говорит нам: я ожидал увидеть точку с запятой, а нашёл идентификатор READLN .

Логические ошибки в программах

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

И компилятор вам ничего об этой ошибке не расскажет, потому что правила языка не нарушены.

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

Пример логической ошибки:

Здесь мы сравниваем значение i с числом 15, и выводим сообщение, если i = 15 . Но фишка в том, что в данном цикле i не будет равно 15 НИКОГДА, потому что в цикле переменной i присваиваются значения от 1 до 10.

Эта ошибка довольно безобидная. Здесь мы имеем просто бессмысленный код, который не причинит никакого вреда. Однако представьте, что программа должна выдавать какой-то сигнал тревоги, если i = 15 . Тогда получится, что никакого сигнала пользователь никогда не услышит, даже если случилось что-то страшное. А всё потому, что программист немного ошибся. Вот так вот и падают ракеты и самолёты…

Распространённые логические ошибки в С++ вы можете посмотреть здесь.

Ошибки времени выполнения программы

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

Одна из самых рапространённых ошибок времени выполнения — это неожиданное деление на ноль. Пример:

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

Но представьте, что пользователь введёт ноль. Что тогда будет? Правильно — попытка деления на ноль. А на ноль делить нельзя. Поэтому во время выполнения этой программы произойдёт ошибка, которая очень расстроит пользователя. Потому что в случае, например, с консольным приложением программа просто закроется, и пользователь не поймёт, что это было. Но зато поймёт, что программа — говно, и программы от этого разработчика лучше больше никогда не использовать.

В данном случае, если вы не уверены на 100%, что y будет отличаться от нуля, надо всегда делать проверку на ноль. И хороший код должен быть хотя бы таким:

Ну что же. На этом с видами ошибок пока всё. Изучайте программирование и поменьше ошибайтесь.

ТЕМА
№28. Логические ошибки и парадоксы

План

Введение

Проблема
совершения логических ошибок в речи
очень актуальна в наше время. Многие
люди делают логические ошибки в своей
речи. Одни
вследствие незнания законов логики,
другие просто пренебрегают этими
законами. Но логичность речи – это очень
важное коммуникативное качество, которым
нельзя пренебрегать. Именно от него
зависит правильное понимание предложения
или даже содержание всего текста, а
также смысл высказывания.

Очень
важно строить свою речь последовательно
и не противоречиво, соблюдать законы
логики. Ещё Аристотель предостерегал
нас от логических ошибок в речи. Он
утверждал: «Речь должна отвечать законам
логики». Иначе вас могут понять не
правильно или даже не понять совсем. А
логическая речь предупреждает искажение
вашей мысли в ходе речи, а также облегчает
незатрудненное понимание каждого вашего
предложения и текста в целом.

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

Цель
данной контрольной работы
исследовать логические ошибки и
парадоксы. Для достижения цели необходимо
решить следующие задачи:

  • раскрыть
    понятие логической ошибки и её виды.
    Содержательные и формальные ошибки.
    Софизмы и паралогизмы;

  • определить,
    что такое парадокс;

  • выполнить
    упражнения.

1. Понятие логической ошибки и её виды. Содержательные и формальные ошибки. Софизмы и паралогизмы.

Логические
ошибки – ошибки в умозаключениях,
рассуждениях, определениях понятий,
доказательствах и опровержениях,
вызванные нарушением законов и искажением
форм мышления. Логические ошибки
изучались уже Аристотелем в сочинении
«Опровержение софистических аргументов».
На этой основе в традиционной логике,
начиная с трудов схоластов, было
разработано подробное описание логических
ошибок. В соответствии с выделяемыми в
традиционной логике частями доказательства
логические ошибки были подразделены
на:

  1. Ошибки
    в посылках, то есть в основаниях
    доказательства:

  • ложное
    основание, или основное заблуждение,
    когда доказываемый тезис пытаются
    вывести из ложных посылок (аргументов);

  • предвосхищение
    основания, или недоказанное основание,
    когда доказываемый тезис пытаются
    вывести из таких посылок, которые может
    и не ложны, но которые еще сами нуждаются
    в том, чтобы доказать их истинность;

  • порочный
    круг, или
    круг в доказательстве, когда тезис
    выво­дится из посылок, а посылки в
    свою очередь выводятся из тезиса, так
    что получается круг, который не
    дока­зывает ни тезиса, ни посылок.

2) Ошибки
в отношении тезиса, то есть мысли, которую
следует доказать:

  • подмена
    тезиса,
    или отступление от тезиса, когда, начав
    дока­зывать один тезис, через некоторое
    время в ходе этого же доказательства
    начинают доказывать уже другой тезис,
    часто сходный с начальным тезисом
    только внешне;

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

3) Ошибки
в аргументации, то есть в форме
умозаключения, рассуждения:

  • тезис
    не вытекает, не следует из посылок,
    когда в подтверждение
    тезиса
    выставляются аргументы, сами по себе
    верные, но которые не являются достаточным
    основанием для тезиса и поэтому не
    доказывают выдвинутого тезиса.

  • аргументация
    к тому, кто выдвинул тезис, или
    аргументация
    к человеку,
    когда вместо обоснования истинно­сти
    или ложности тезиса с помощью объективных
    ар­гументов пытаются все свести к
    положительной или
    отрицательной
    характеристике личности человека,
    утверждение которого поддерживается
    или оспарива­ется.

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

  • поспешное
    обобщение, когда некоторое свойство,
    обнаруженное только у небольшой части
    предметов данного класса, переносят
    на все предметы класса только на том
    основании, что не встречалось предметов,
    у которых нет этого свойства.

  • смешение
    причинной связи с простой последовательностью
    во времени, когда рассуждают по ошибочному
    правилу: «после этого, значит по причине
    этого»

  • учетверение
    терминов, когда в силлогизме появляется
    четвертый термин, в который вкладывается
    разное содержание и который поэтому
    не может связать крайние термины
    силлогизма в заключении.

Другой
важной классификацией логических ошибок
является их деление на содержательные
и формальные. Логические
ошибки, связанные с неверным представлением
о действительном положении дел, называются
содержательными. Содержательная ошибка
может быть результатом заблуждения, то
есть несоответствующего, одностороннего,
но непреднамеренного, отражения предметов
и явлений в сознании человека, или
продуктов лжи, дезинформации как
целенаправленного действия.

Пример
содержательной ошибки:

Все
страны являются федерациями.

Беларусь
является страной .

Следовательно,
Беларусь является федерацией.

Ошибка
называется формальной, если связь между
высказываниями в рассуждениях не
соответствует логическим законам.
Пример формальной ошибки:

Некоторые
страны являются федерациями.

Беларусь
является страной.

Следовательно,
Беларусь является федерацией.

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

Пример
паралогизма:

Мой
пиджак сшит из материи.

Материя
вечна.

Следовательно,
мой пиджак вечен.

Coфизмы
( от греческого sophisma

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

Пример
софизма:

Сидящий
встал.

Кто
встал, тот стоит.

Следовательно,
сидящий стоит.

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

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

Соседние файлы в предмете Логика

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Понравилась статья? Поделить с друзьями:
  • Найдите две ошибки your presentation was discussed
  • Найти выборочную дисперсию ошибок прибора
  • Найдите астрономическую ошибку пусть тоща как щепа
  • Найдите 1 орфографическую ошибку вдруг находит на небо
  • Найти 404 ошибки на сайте