Что такое логика программы

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

Основные направления прикладного использования логики в информатике

  1. написание компьютерных программ и их верификация.
  2. при проектировании вычислительных устройств используется как теоретический инструмент.
  3. Использование логических операций в электронных микросхемах в качестве базовых.
  4. логический подход к представлению и решению различных практических задач с использованием вычислительной техники.

Определение 2

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

Дмитрий Гусев: «Что такое логика, и какую роль она играет в нашей жизни? «

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

Определение 3

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

Логические элементы имеют один (инвертор) или несколько входов, на которые подаются электрические сигналы, обозначаемые условно $0$, если сигнал отсутствует, и $1$, если электрический сигнал имеется. Выход у логических элементов один, откуда снимается новый, преобразованный электрический сигнал.

«Логика и компьютер»
Готовые курсовые работы и рефераты
Решение учебных вопросов в 2 клика
Помощь в написании учебной работы

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

Логический элемент НЕ (инвертор). Простейший логический элемент, реализующий функцию отрицания (инверсию). Унарный элемент – элемент, у которого один вход и один выход.

На функциональных схемах обозначается

Если на вход инвертора подаётся $1$, то на выходе реализуется $0$ и наоборот.

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

Введение в логику, урок 1: Базовые понятия

Если на входе конъюнктора все входные сигналы имеют значение $1$, то на выходе тоже будет сигнал $1$, в противном случае на выходе будет сигнал $0$.

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

Если на вход дизъюнктора поступает хотя бы один сигнал равный $1$, то выходе тоже будет сигнал $1$.

Роль базовых логических элементов в создании схем играют ещё два логических элемента: И-НЕ и ИЛИ-НЕ.

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

Логический элемент ИЛИ-НЕ (отрицание дизъюнкции) выполняет логическую функцию стрелка Пирса. Тоже бинарная операция, поэтому имеет, как минимум, два входа. На функциональных схемах обозначается так:

Функциональные схемы

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

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

Как по заданной функциональной схеме записать структурную формулу?

Элемент И осуществляет конъюнкцию $bar$ и $Y$, над результатом в элементе НЕ выполняется операция отрицания, то есть вычисляется значение выражения

Записали, что структурной формулой данной функциональной схемы является формула

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

Составим таблицу истинности для вышеприведённой схемы. Количество столбцов таблицы равно суммарному количеству входов и выходов нужной схемы. Итого $5$ столбцов. Количество строк таблицы равно $2^n$, где $n$ – количество входов (здесь два), строк $4$.

Читайте также:
Как отключить активацию программ

Обработка любой информации на компьютере − выполнение процессором различных арифметических и логических операций. Для этого в составе процессора есть арифметико-логическое устройство (АЛУ), которое состоит из ряда устройств, построенных на логических элементах, рассмотренных выше. Главными устройствами являются триггеры, полусумматоры, сумматоры, шифраторы, дешифраторы, счетчики, регистры.

Конструируется логическое устройство по следующему алгоритму:

  1. по заданным условиям работы проектируемого узла (т.е. по соответствию его входных и выходных сигналов) строится таблица истинности;
  2. конструируется логическая функция данного узла по таблице истинности, выполняется при необходимости её преобразование (упрощение), если cоставляется функциональная схема проектируемого узла по формуле логической функции;
  3. реализуется полученная схема.

Источник: spravochnick.ru

Логика в информатике

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

Логика в информатике

Логика в информатике как учебной дисциплине была введена в самых первых учебниках информатики Каймина в 1985 году и в учебник информатики Каймина для средних школ в 1987-89гг. Парадокс в том, что первых школьных учебниках информатики Ершова, Кушниренко и многих действующих учебниках информатики для школ и вузов логика отсутствует.

В 2004 году в России были введены Единые экзамены ЕГЭ по информатике, в содержании которых изучение и знание основ логики стало обязательным. Логика в информатике используется в поиске информации в Интернет, в базах данных, в базах знаний, в алгоритмах, алгоритмизации и во всех языках программирования. Ранкинг TAdviser100: Крупнейшие ИТ-компании в России 2023

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

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

Логика в программировании

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

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

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

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

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

Практика применения и доказательных методов программирования показала, что эта технология вполне доступна студентам математических факультетов, которым вполне по силам написание доказательств правильности алгоритмов, после проверки и тестирования программ на ЭВМ.

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

Интуитивные методы анализа правильности алгоритмов и программ характерны для олимпиад по информатике и программированию, где победителями и призёрами становятся те студенты, которые освоили технику тестирования программ на ЭВМ и составления алгоритмов и программ без ошибок.

  • ВАК, проф.,док.комп.наук 12:43, 3 июля 2009 (UTC)

Логика и искусственный интеллект

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

Читайте также:
Как освоить компьютер программа

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

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

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

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

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

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

Логика и логическое программирование

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

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

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

Логика в базах данных

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

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

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

Поиск информации в реляционных базах данных проводится с помощью языка запросов SQL (англ. Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, поиска и модификации информации в базах данных.

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

Простые условия в языке SQL имеют вид равенств и неравенств типа имя = значение, где имя — это имя столбца в таблице, а значение — конкретное числовое или символьное значение (в зависимости от типа столбца в таблице).

Сложносоставные условия в запросах на языке SQL записываются с использованием логических связок AND (И), OR (ИЛИ), NOT (НЕ), выражающих логические высказывания — условия поиска информации в реляционных базах данных.

С логической точки зрения условия поиска в запросах SQL полностью соответствуют исчислению высказываний (с равенствами) — полностью эквивалентно логике высказываний Аристотеля — автора первого в истории учебника по логике и первых трех законов логики (законов Аристотеля).

Источник: www.tadviser.ru

Бизнес-логика, что это такое?

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

Источник Не совсем ясно, что означает этот термин

Читайте также:
Число операторов в программе это

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

Отслеживать
4,641 1 1 золотой знак 14 14 серебряных знаков 49 49 бронзовых знаков
задан 24 июл 2016 в 16:26
user33274 user33274

5 ответов 5

Сортировка: Сброс на вариант по умолчанию

Бизнес-логика — это логика доменной модели — все, что в вашем приложении происходит в терминах предметной области.

Например, на SO — это все действия с пользователями, вопросами, ответами, плюсы, минусы и т.д.

  1. Если пользователь не набрал ZZZ репутации — отправить его правку на проверку другими участниками — это бизнес-логика, ей место в модели.
  2. Перенаправить пользователя на страницу вопроса после его создания — не-бизнес логика, которой место в контроллере.
  3. Скрыть кнопку «Оставить комментарий» если текущий пользователь не имеет право оставлять комментарии — особенности представление данных (флага из модели) — во view.

MVC позволяет выделить «не-бизнес» логику, связанную с пользовательским интерфейсом:

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

. и поместить логику представления в отдельный кусок приложения — Controller.

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

Стоит отметить, что ссылка в вопросе ведет на статью, иллюстрированную диаграммой Classic MVC. Реально в Web используется более современный вариант паттерна — MVC Model2 — и его производные. Его отличие — View не взаимодействует с моделью напрямую.

Взаимодействие в современном MVC выглядит вот так:

введите сюда описание изображения

Отслеживать
ответ дан 25 июл 2016 в 8:09
user177221 user177221

Оборот про «И поместить ее в отдельный кусок приложения — Controller.» совсем не понятен. А еще не понятно как бизнес-логика связана с контролером

25 июл 2016 в 11:11

Я к тому, что процитированный мной кусок, по-логике содержит опечатку. Вместо Controller должно быть Model. Или я чего-то не понимаю?

25 июл 2016 в 11:33
– user177221
25 июл 2016 в 11:37
– user177221
25 июл 2016 в 12:09
– user177221
28 окт 2019 в 14:51

Бизнес-логика — то же самое что и логика предметной/доменной/прикладной области. Допустим, вы программируете софт для приюта животных и для детского приюта.

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

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

При этом все структуры данных, алгоритмы и т.д. — в двух программах практически одинаковы. Кроме вот этой маленькой детали.

«ЭТОТ один ИФЧИК решил СУДЬБУ КОТЕЙКИ», или, например «начинающий программист УБИЛ младенца ВЕКТОРОМ»

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

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

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

Вы не отделили интерфейс (панель управления для запуска котят на луну) от бизнес-логики и все запуталось.

Ну, я предупреждал.

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

Под правильно подразумевается корректность результатов в приемлемое время. Все остальное ваших заказчиков не интересует. До тех пор, пока они не являются вашими владельцами.

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

P.S. Маленький исторический экскурс. Бизнес-логикой это называется потому, что в Нормальном Мире, во Внешней Империи, программирование в коммерции и корпорациях развивалось еще с 50х-60х годов: банки, страховые агентства, туроператоры, медицина.

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

Хорошо, что это бизнес-логика, а не партийная логика, как в Северной Корее.

Источник: ru.stackoverflow.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru