Логика и компьютер
Логика в информатике – это те отрасли знания и направления исследований, в которых логика применяется в информатике и искусственном интеллекте. В информатике логика оказалась гораздо более эффективной, чем это было в математике.
Основные направления прикладного использования логики в информатике
- написание компьютерных программ и их верификация.
- при проектировании вычислительных устройств используется как теоретический инструмент.
- Использование логических операций в электронных микросхемах в качестве базовых.
- логический подход к представлению и решению различных практических задач с использованием вычислительной техники.
Определение 2
Стандартное математическое представление любого вычисления − это отображение переменных (их внутреннего состояния) вычислительного устройства на входе в новое состояние на выходе. В алгебре логики решается стандартная задача, а именно: определяется функциональная полнота логических связок, то есть проверяется, является ли фиксированный набор логических операций достаточным для того, чтобы представить новое результирующее значение путём комбинации любых других (базовых) функций. А это значит, что базовые логические устройства должны быть универсальными и позволять решать большое число задач.
Логика в информатике. Основные понятия
Решим твою учебную задачу всего за 30 минут
Попробовать прямо сейчас
Работу большинства вычислительных устройств, которые существуют в настоящее время, прекрасно описывает алгебра логики, разработанная Джорджем Булем. К таким устройствам относятся триггеры, сумматоры, группы переключателей, Кроме того булева алгебра и компьютеры связаны между собой при помощи используемой в ЭВМ двоичной системы счисления. Поэтому в устройствах компьютера можно хранить и преобразовывать и значения логических переменных, и числа.
Определение 3
Логические элементы — это электронные устройства, которые по определенному закону преобразуют проходящие через них двоичные электрические сигналы.
Логические элементы имеют один (инвертор) или несколько входов, на которые подаются электрические сигналы, обозначаемые условно $0$, если сигнал отсутствует, и $1$, если электрический сигнал имеется. Выход у логических элементов один, откуда снимается новый, преобразованный электрический сигнал.
«Логика и компьютер»
Готовые курсовые работы и рефераты
Консультации эксперта по предмету
Помощь в написании учебной работы
Все электронные схемы компьютера могут быть реализованы с помощью трёх базовых логических элементов И, ИЛИ, НЕ.
Логический элемент НЕ (инвертор). Простейший логический элемент, реализующий функцию отрицания (инверсию). Унарный элемент – элемент, у которого один вход и один выход.
На функциональных схемах обозначается
Если на вход инвертора подаётся $1$, то на выходе реализуется $0$ и наоборот.
Логический элемент И (конъюнктор) реализует умножение двух или более логических значений, т.е. имеет два или более входов и один выход. На функциональных схемах обозначается:
CPU логика
Если на входе конъюнктора все входные сигналы имеют значение $1$, то на выходе тоже будет сигнал $1$, в противном случае на выходе будет сигнал $0$.
Логический элемент ИЛИ (дизъюнктор) реализует сложение двух или более логических значений, т.е. имеет два или более входов и один выход. На функциональных схемах обозначается:
Если на вход дизъюнктора поступает хотя бы один сигнал равный $1$, то выходе тоже будет сигнал $1$.
Роль базовых логических элементов в создании схем играют ещё два логических элемента: И-НЕ и ИЛИ-НЕ.
Логический элемент И-НЕ (отрицание конъюнкции) выполняет логическую функцию штрих Шеффера. Операция бинарная, поэтому имеет, как минимум, два входа. На функциональных схемах обозначается следующим образом:
Логический элемент ИЛИ-НЕ (отрицание дизъюнкции) выполняет логическую функцию стрелка Пирса. Тоже бинарная операция, поэтому имеет, как минимум, два входа. На функциональных схемах обозначается так:
Функциональные схемы
Сигнал, который вырабатывает один логический элемент, можно подать на вход другого элемента. Это даст возможность образовать цепочку из отдельных логических элементов – функциональную схему.
Функциональная (логическая) схема – это схема, которая выполняет определённую функцию и состоит из базовых логических элементов. Проанализировав фунциональную схему, можно понять, как работает логическое устройство, то есть ответить на вопрос, какую же функцию она выполняет. А чтобы описать функциональную схему, нужна структурная формула.
Как по заданной функциональной схеме записать структурную формулу?
Элемент И осуществляет конъюнкцию $bar$ и $Y$, над результатом в элементе НЕ выполняется операция отрицания, то есть вычисляется значение выражения
Записали, что структурной формулой данной функциональной схемы является формула
Для функциональной схемы нужно составить таблицу значений сигналов на входах и выходах схемы, по которой можно понять, какую функцию выполняет данная схема, – таблицу истинности.
Составим таблицу истинности для вышеприведённой схемы. Количество столбцов таблицы равно суммарному количеству входов и выходов нужной схемы. Итого $5$ столбцов. Количество строк таблицы равно $2^n$, где $n$ – количество входов (здесь два), строк $4$.
Обработка любой информации на компьютере − выполнение процессором различных арифметических и логических операций. Для этого в составе процессора есть арифметико-логическое устройство (АЛУ), которое состоит из ряда устройств, построенных на логических элементах, рассмотренных выше. Главными устройствами являются триггеры, полусумматоры, сумматоры, шифраторы, дешифраторы, счетчики, регистры.
Конструируется логическое устройство по следующему алгоритму:
- по заданным условиям работы проектируемого узла (т.е. по соответствию его входных и выходных сигналов) строится таблица истинности;
- конструируется логическая функция данного узла по таблице истинности, выполняется при необходимости её преобразование (упрощение), если cоставляется функциональная схема проектируемого узла по формуле логической функции;
- реализуется полученная схема.
Источник: spravochnick.ru
Логические основы компьютера.
Логика – наука, изучающая законы и формы мышления. Алгебра логики это математический аппарат , с помощью которого записывают, упрощают, преобразовывают и вычисляют логические высказывания. Это раздел математики, который изучает высказывания с точки зрения их логических значений и логических (операций)связок. Впервые АЛ, как математический аппарат возникла в середине 19 века в трудах английского математика Джорджа Буля и с тех пор носит название «булева алгебра».
Логическое высказывание это любое повествовательное предложение, в отношение которого можно сказать однозначно истинно оно или ложно. Рим – столица Италии (истина), 5 – четное число (ложь). Кроме того, в АЛ используются и сложные высказывания, которые содержат несколько простых мыслей, соединенных между собой (связками) логическими операциями.
Каждая логическая связка рассматривается как операция над логическими высказываниями и имеет свое название и обозначение:
НЕ — Операция, выражаемая словом «не», называется отрицанием и обозначается чертой над высказыванием (или знаком ). Высказываниеистинно, когда A ложно, и ложно, когда A истинно. Пример. «Луна — спутник Земли» (А); «Луна — не спутник Земли» ().
И — Операция, выражаемая связкой «и», называется конъюнкцией (лат. conjunctio — соединение) или логическим умножением и обозначается точкой » » (может также обозначаться знакамиили 10 делится на 2 и 5 больше 3″ истинно, а высказывания : «10 делится на 2 и 5 не больше 3», «10 не делится на 2 и 5 больше 3», «10 не делится на 2 и 5 не больше 3» — ложны.
ИЛИ — Операция, выражаемая связкой «или» (в неисключающем смысле этого слова), называется дизъюнкцией (лат. disjunctio — разделение) или логическим сложением и обозначается знаком v (или плюсом). Высказывание А v В ложно тогда и только тогда, когда оба высказывания А и В ложны. Например, высказывание «10 не делится на 2 или 5» ложно, а высказывание «10 делится на 2 или 10 делится на 3», — истинно.
Логический элемент компьютера — это часть электронной логической схемы, которая реализует элементарную логическую функцию.
Логическими элементами компьютеров являются электронные схемы И, ИЛИ, НЕ, (называемые также вентилями), а также триггер. Имеется один или несколько входов и один выход.
Каждый логический элемент имеет свое условное обозначение, которое выражает его логическую функцию, но не указывает на то, какая именно электронная схема в нем реализована. Это упрощает запись и понимание сложных логических схем.
Работу логических элементов описывают с помощью таблиц истинности.
Таблица истинности — это табличное представление логической схемы (операции), в котором перечислены все возможные сочетания значений входных сигналов (операндов) и соответствующие им значения выходного сигнала (результата операции) для каждого из этих сочетаний.
Схема И реализует конъюнкцию двух или более логических значений. Условное обозначение на структурных схемах схемы И с двумя входами представлено на рис 1.
Таблица истинности схемы И
Источник: studfile.net
Логические основы работы компьютера
Знания из области математической логики можно использовать для конструирования электронных устройств. Нам известно, что 0 и 1 в логике не просто цифры, а обозначение состояний какого-то предмета нашего мира, условно называемых «ложь» и «истина». Таким предметом, имеющим два фиксированных состояния, может быть электрический ток.
Логические элементы имеют один или несколько входов и один выход, через которые проходят электрические сигналы, обозначаемые условно 0, если «отсутствует» электрический сигнал, и 1, если «имеется» электрический сигнал.
Базовые логические элементы реализуют три основные логические операции: «И», «ИЛИ», «НЕ».
Логический элемент «НЕ» (инвертор)
Простейшим логическим элементом является инвертор, выполняющий функцию отрицания. Если на вход поступает сигнал, соответствующий 1, то на выходе будет 0. И наоборот.
У этого элемента один вход и один выход. На функциональных схемах он обозначается:
Говорят также, что элемент «НЕ» инвертирует значение входной двоичной переменной.
Логический элемент «И» (конъюнктор)
Логический элемент «И» (конъюнктор) выдает на выходе значение логического произведения входных сигналов.
Он имеет один выход и не менее двух входов. На функциональных схемах он обозначается:
Сигнал на выходе конъюнктора появляется тогда и только тогда, когда поданы сигналы на все входы. На элементарном уровне конъюнкцию можно представить себе в виде последовательно соединенных выключателей. Известным примером последовательного соединения проводников является елочная гирлянда: она горит, когда все лампочки исправны. Если же хотя бы одна из лампочек перегорела, то гирлянда не работает.
Логический элемент «ИЛИ» (дизъюнктор)
Логический элемент «ИЛИ» (дизъюнктор) выдает на выходе значение логической суммы входных сигналов. Он имеет один выход и не менее двух входов. На функциональных схемах он обозначается:
Сигнал на выходе дизъюнктора не появляется тогда и только тогда, когда на все входы не поданы сигналы.
На элементарном уровне дизъюнкцию можно представить себе в виде параллельно соединенных выключателей.
Примером параллельного соединения проводников является многорожковая люстра: она не работает только в том случае, если перегорели все лампочки сразу.
Пример 1.
Составьте логическую схему для логического выражения: F=A / B / A.
1. Две переменные – А и В.
2. Две логические операции: 1-/, 2-/.
Пример 2.
Постройте логическую схему, соответствующую логическому выражению F=А/В/ ¬(В/А). Вычислить значения выражения для А=1,В=0.
1. Переменных две: А и В; 1 4 3 2
2. Логических операций три: / и две /; А/В/ ¬ (В/ А).
3. Схему строим слева направо в соответствии с порядком логических операций:
4. Вычислим значение выражения: F=1 / 0 / ¬(0 / 1)=0
- Теория
- Формы мышления
- Алгебра высказываний
- Логические функции
- Таблица истинности и логические выражения
- Законы алгебры логики
- Решение логических задач
- Логические основы работы компьютера
- Психология
- Психология отношений
- Формы мышления
- Алгебра высказываний
- Логические функции
- Таблица истинности и логические выражения
- Законы и правила преобразования логических выражений
- Решение логических задач
- Логические основы устройства компьютера
- Формы мышления
- Алгебра высказываний
- Тренировка по теме «Логические функции»
- Логические выражения и таблица истинности
- Законы и правила преобразования логических выражений
- Решение логических задач
- Логические основы работы компьютера
- Формы мышления
- Алгебра высказываний
- Логические функции
- Таблица истинности и логические выражения
- Законы и правила преобразования логических выражений
- Решение логических задач
- Логические основы работы компьютера
Источник: mir-logiki.ru
Логика и структура программы. для детей и блондинок
Товарищи!
Подскажите, пожалуйста, как работает приложение Windows с операционной системой.
Какова вообще структура программы. Что находится в винде и чем управляет программа.
Т.е. это уровень до «начинающих». Без терминов. Автор учебного пособия по микроконтроллерам Рюмик объяснял переменные как «шкатулки, куда можно положить что-то, а потом оттуда взять», сам микроконтроллер как «гавань, куда заходят и откуда выходят корабли» и т.п.
И по этому пособию учатся инженеры-электротехники разных возрастов. Готовый работающий на микроконтроллере коммерческий продукт удалось сделать за 3 дня с этим пособием.
Объяснение понятными категориями позволяет быстро составить представление.
Я могу написать хелло ворлд, но я хочу понять как это работает физически, хоть приблизительно.
Так как если бы вам пришлось объяснять ребенку или блондинкам
Используя термины из обыденной жизни — там, одежки, бусинки, коробочки, блокнотики, стаканчики, баночки, лампочки, переключательчики, развилочки .
Спасибо всем! 🙂
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Структура для списка времен года рождения детей
Нужно составить структуру для формирования списка времен года рождения детей с указанием различных.
Структура: Получить список названий и цен игрушек для детей от 1 до 2 лет
Дан файл f, содержащий сведения об игрушках: указывается название игрушки (например, кукла, кубики.
Ошибки при работе программы из книги ПРОГРАММИРОВАНИЕ ДЛЯ ДЕТЕЙ
Всем добрый день! Мой ребенок учит Питон после Scratch. Но я уже устал с этим его питоном, что.
Логика программы для доступа к БД
Есть потребность получить доступ к базе данных MS Access на удаленной машине и передавать часть.
быдлокодер
1722 / 909 / 106
Регистрация: 04.06.2008
Сообщений: 5,644
Сообщение было отмечено как решение
Решение
А без толку.
Ну слушай схематично если для блондинок.
НАчать с того, что прогу (или процесс, что то же самое в данном случае), можно запучстить несколькими способами. Во-первых, ткнуть мышью в имя, во-вторых, набрать в командной строке имя этого процесса и в третьих, запустить прогу, которая запустит нужную. прогу. Опосредованно тык скыть.
Ну после этого создаётся одноимённый процесс, который начинает выполняться.
Допустим твоя прогу называется proga.exe
На жёстком диске существует файл с таким именем, просто-напросто именованное пространство.
Этот файл представляет из себя КОМАНДЫ ПРОЦЕССОРУ. По идее процессор должен считывать команды с этого пространства и их выполнять. Но в действиетльности всё просиходит немного по-другому, а именно: файл proga.exe переписывается с жёсткого диска на другой носитель информации, который называется ОПЕРАТИВНОЙ ПАМЯТЬЮ (Это термин называется «загружаться в память»)
Теперь для блондинок: суть загрузки такова: если на жёстком диске файл proga.exe занимал, например 100 килобай, то в оперативной памяти он будет занимать БОЛЬШЕ. Например, 200. Увеличение и качественное изменение файла делается не просто так, а по определённым правилам.
Кто хочет их изучить пусть изучает формат PE-файла.
Да, прога, естессно не сама переписывается в оперативную память, а её переписывает ПРОГРАММА-ЗАГРУЗЧИК.
НАдобно также сказать, что в любом исполняемом файле кроме собсно кода, существует так называемыя шапка (заголовок файла), где прописано много-много служебной информации.
Одна из таких информаций говорит, откуда именно начинается процесс. С какой то есть ячейки памяти. С 20-ой или 30-ой или ещё какой (Далеко не факт, что с первой).
Когда программа-загрузчик загрузить прогу память, она считает эту служебную информацию и хитрым образом сообщит процессору, что надо начать считывать команды именно с этой вот ячейки. Процессор начинает считывать команду за командой и их выполнять. Вот собсно и всё (А то, что на жёстком диске, об этом как бы забывается, щас идёт работа только с оперативной памятью)
Регистрация: 17.03.2010
Сообщений: 29
Огромное спасибо! Имею представление как выполняется программа. Вот именно тот самый уровень, который нужен для создания примерного представления. Спасибо!
И есть вопросы.
1. Сама программа, например programma.exe в виндовс является набором машинных кодов? Зачем тогда виндовс?
2. Что делает компилятор? Переводит в машинные коды или в файл понятный для kernel.dll? А то мне написали, что программа общается с периферией (ну, допустим, порт является периферией, а процессор, память являются ли периферией?) через это самое ядро системы.
Если второе, то что потом с этим файлом делает kernel.dll и как? Может ли программа виндовс на уровне машинных кодов прямо обращаться к той или иной части харда, например к контроллеру HDD или только через посредников? Каких посредников? Чем это чревато?
3. Когда я запускаю среду MS Visual C++, что я могу написать, а чего не могу? К кому я апеллирую, когда пишу например принт «хелло ворлд»? В чем смысл «объектности» программирования? Шаблонные куски кода? Правильно ли я понимаю «объект» в «объектно-ориент. программировании» как шаблонный кусок кода, например окна программы, или организации взаимодействия с портом?
Разработка визуальная интерфейса?
4. Что такое в самом простом объяснении класс, зачем он нужен?
быдлокодер
1722 / 909 / 106
Регистрация: 04.06.2008
Сообщений: 5,644
Начну со второго вопроса.
Компилятор преобразует программу, написанную на языке C, допустим, в набор команд, понятный процессору.
ТО есть. Вот, например, такая команда процессору:
MOV EAX, 8
Она означает: поместить в регистр EAX значение 8
(Но, вообще-то, по-большому счёту, компилятор её не поймёт. Вот её аналог в шестнадцатиричном виде: B808000000.
Хе, но и это он не поймёт! А вот это поймёт:
101110000 00001000 00000000 00000000 00000000
Но нам незачем так глубоко углубляться. Достаточно сказать, что набор команд, понятных процессору, это команда типа MOV EAX, 8)
Ну вот много-много таких команд и есть прога, транслированная из языка С, например, в язык машинных команд. (По какому принципу транслируются, я ума не приложу, это знают только те, кто разрабатывал программы-компиляторы. Видать, надо было сделать так, чтобы на определённом этапе в регистре EAX оказалось значение 8)
kernel.dll тут вообще ни при чём. Вернее, при чём, но не тут. kernell.dll как и все остальные файлы с таким расширением это так называемые динамические библиотеки. Они содержат код, готовый к исполнению. И они находятся в оси windows, то есть вместе с ней поставляются. И используются сторонними программами.
Это непонятно на первый взгляд, но это так: динамические библиотеки это часть оси, используемая сторонними программами. Ну то есть: вот вы пишите helloword. Но! Это ваше самое окошко с надписью кто будет за вас делать? А буковки попиксельно прорисовывать? ИМея ввиду, что это всё КОД и он для многих программ одинаков, принято решение: не заставлять каждого разработчика делать ВСЁ, а пусть он делает самое необходимое (printf «hello, word!»), а остальное за него пусть делает ГОТОВЫЙ КОД, содержащийся в файлах *dll)
Помните, я говорил вам подзаголовки исполняемого файла? Помня, что файлов *dll в оси не помню уж сколько, какие именно нужны- это смотрит программа-загрузчик в заголовке. И тоже загружает файлы *dll *(kernel.dll, user.dll и многие-многие другие в оперативную память). Вся эта загруженная херь в совокупности называется адресным пространством процесса.
(Деталь: если прога крутая-навороченная, то и код соответствующий. Например, прога прорисовывает красивое-красивое НЕСТАНДАРТНОЕ окошко. Готовых решений в оси просто нет! Тогда разработчик формирует свою собственнную dll, отвечающую за это, как-то её называет и поставляет вместе с проектом.)
Добавлено через 5 минут
Теперь первый вопрос.
Ну как зачем винда? ОНа управляет работой компьютера, она обеспечивает вас ОДНОВРЕМЕННОЙ РАБОТОЙ программ (так называемая многозадачность), она распределяет процессорное время для каждой программы, она является как бы вместилищем *dll- стандартного кода, который вы используете, сами того не подозревая.
Понятное дело, что приложение это наше всё, но приложения это лишь верхушка айсберга. Всё остальное скрыто под водой и невидимо. Там много-много СЛУЖЕБНЫХ прог и процессов копошатся. Это где-то читать специально надо.
Добавлено через 6 минут
Может ли программа виндовс на уровне машинных кодов прямо обращаться к той или иной части харда, например к контроллеру HDD или только через посредников? Каких посредников? Чем это чревато?
Прямо не может, а через посредников- пожалуйста. Они называются API-функциями. Каждая dll состоит из участков кода, называемых api-функциями. Вот, их изучайте, есть такие, которые отвечают за работу с хардом. У меня есть прога, которая его может менять, она на них основана. Да по-другому быть не может, там всё на них, всё пользовательское ПО.
А если минуя их, это уже супер-пупер программирование, это вам надо сходить сюда http://www.wasm.ru/index.php и поискать что-о типа «программирование в защищённом режиме». Только зачем, если существуют нормальные рабочие посредники. А натворить с ними много чего можно. Можно затереть к матери весь хард.
Добавлено через 2 минуты
Насчёт объекто-ориентированного программирования- ну тут я вам не помощник, да оно вообще мне не нравится, путаницы больше. Единственный плюс- переопределение фукнкций, ну то есть код короче становится.
Что касается шаблонных кусков кода, то это не то, они везде ДОЛЖНЫ использоваться программёрами, велосипед пусть заново изобретают новички зелёные.
Источник: www.cyberforum.ru