Разработка учебной программы на алгоритмическом языке Python для моделирования работы и поиска возникающих неисправностей в микросхеме К155ПК2

Особенности строения цифровых микросхем, их логические элементы. Использование алгоритмического языка сверхвысокого уровня Питон (Python). Задание расположения кнопок в рабочем окне. Рабочее окно разработки IDLE. Характеристика рабочего окна программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 25.04.2017
Размер файла 933,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Департамент образования города Москвы

Частное учреждение профессиональная образовательная организация

«СТОЛИЧНЫЙ БИЗНЕС КОЛЛЕДЖ»

для специальности 09.02.03 «Программирование в компьютерных системах»

Курсовая работа

по теме: Разработка учебной программы на алгоритмическом языке Python для моделирования работы и поиска возникающих неисправностей в микросхеме К155ПК2

Содержание

Введение

1. Теоретическая часть

1.1 Логические элементы: К155ПК2

2. Программная часть

Заключение

Список источников

Приложение А- Текст программы

Введение

В данной курсовой работе используется в качестве исходного теоретического материала программа для персонального компьютера, разработанная в Московском Институте Инженеров Транспорта (авторы: Грамолин В. Павлова А. Павлов А. Ляндерс В. -).

Данная программа разработана под операционную систему DOS. В настоящее время на всех компьютерах устанавливается операционная система Windows XP, которая не поддерживает напрямую программы, написанные в DOS'е. Поэтому в задании на выполнение курсовой работы было предложено разработать аналогичную учебную программу, которая бы работала на операционной системе Windows XP. Изучив алгоритм этой программы был составлен и написан текст программы на языке Python для моделирования работы и поиска возникающих неисправностей в микросхеме К155ЛИ1. цифровой микросхема логический программа

Программа предназначена для изучения принципа работы микросхемы и устранения возможных неполадок в ней. В данной работе используются цифровая микросхема на биполярных транзисторах, выполненная по технологии ТТЛ и ТТЛШ, которая очень широко применялись в микросхемах 155 и 555 сериях, выпускаемых в России. Были использованы такие типы микросхем как: логические вентили (К155ЛИ1, К155ЛЛ1, К155ЛП5, К155ЛА2, К155ЛР3, К155ЛЕ4, К155ЛР4) и комбинационные схемы(К155КП2, К155КП7, К155ИД3, К155ИД4, К155ИМ1, К155ИМ3, К155ИП2, К155ИП3).Программа изначально предлагает изучить одну из микросхем(например, логическое И).

Принцип моделирования заключается в том, что на экране изображается условное графическое изображение логических элементов и более сложных комбинационных микросхем, как это принято по ГОСТУ, а на входы подаются цифровые сигналы в виде логического 0 и логической 1. Для того чтобы они визуально различались, сигнал логической 1 обозначается соответствующей цифрой при нажатии, при этом входной сигнал, изображённый в виде кнопки выделяется и выводится на экране в более светлом фоне. Соответственно, на выходе аналогичным образом происходит выделение кнопки при нажатии на сигналы входа в нужной последовательности, в зависимости от типа микросхемы.

Если микросхема исправна, то она полностью соответствует таблице истинности Булевой алгебры. Поскольку микросхему надо изучить, была разработана программа с неисправностями. Студент, изучив, первоначально, правильно работающую микросхему, в дальнейшем вынужден будет найти ряд неисправностей в ней, определяющихся в случайной последовательности. Неисправностей на каждой микросхеме по две. Программа даёт студенту 2 попытки для определения неисправности, после чего показывает правильный ответ и предлагает изучить работающую микросхему снова. Разработанная программа смоделирована с различными неисправностями цифровых микросхем на основе генератора случайных чисел. Главной задачей при модернизации данной лабораторной установки было создать изначально реальную графическую модель с полностью рабочими сигналами для изучения, и впоследствии вывод неполадок в них для проверки знаний и подробном изучении. Также была создана отдельная программа «справочник», помогающая студенту изучить рабочую модель. В нем приведены основные определения работы микросхем.

1. Теоретическая часть

Рисунок 1-Условное графическое изображение К155ПК2

Рисунок 2- К155ПК2

Микросхемы К155ЛЛ1, (7432) представляют собой четыре логических элемента 2ИЛИ. Выходной стекающий ток (Ioвых) микросхем К155ЛЛ1, (7432) равен 16 мА. Корпус К155ЛЛ1 (7432) типа 201.14-1, масса около 1 грамма. Зарубежным аналогом микросхем К155ЛЛ1, являются микросхемы 7432, SN7432N, SN7432J

Таблица 1

Параметры логических элементов К155ЛЛ1, (7432)

1

Номинальное напряжение питания

+ 5%

2

Выходное напряжение низкого уровня

? 0,4 В

3

Выходное напряжение высокого уровня

? 2,4 В

4

Входной ток низкого уровня

? -1,6 мА

5

Входной ток высокого уровня

? 0,04 мА

6

Входной пробивной ток

? 1 мА

7

Ток потребления при низком уровне выходного напряжения

? 38 мА

8

Ток потребления при высоком уровне выходного напряжения

? 22 мА

9

Потребляемая статическая мощность на один логический элемент

? 39,4 мВт

10

Время задержки распространения при включении

? 22 нс

11

Время задержки распространения при выключении

? 15 нс

Таблица 2

Состояние микросхемы К155ЛЛ1, (7432)

Вход

Выход

A1 (A2) (A3) (A4)

B1 (B2) (B3) (B4)

A1+B1 (A2+B2)(A3+B3) (A4+B4)

В

х

В

х

В

В

Н

Н

Н

1.1 Логические элементы

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

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

Итак, какие бывают элементы?

Элемент «И» (AND)

Иначе его называют «конъюнктур».

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

Вот так выглядит элемент «И» и его таблица истинности:

Рисунок 3- Элемент И

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

Смотрим таблицу истинности, и проясняем в мозгу принцип. Понять его не сложно: единица на выходе элемента «И» возникает только тогда, когда на оба входа поданы единицы. Это объясняет название элемента: единицы должны быть И на одном, И на другом входе.

Если посмотреть чуток иначе, то можно сказать так: на выходе элемента «И» будет ноль в том случае, если хотя бы на один из его входов подан ноль. Запоминаем. Идём дальше.

Элемент «ИЛИ» (OR)

По другому, его зовут «дизъюнктов».

Любуемся

Рисунок 4- Элемент ИЛИ

Опять же, название говорит само за себя.

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

Едем дальше. Дальше у нас очень простенький, но очень необходимый элемент.

Элемент «НЕ» (NOT) Чаще, его называют «инвертор».

Рисунок 5- Элемент НЕ

Надо чего-нибудь говорить по поводу его работы?

Ну тогда поехали дальше. Следующие два элемента получаются путём установки инвертора на выход элементов «И» и «ИЛИ».

Рисунок 6- Элемент И-НЕ

Та же история - элемент «ИЛИ» с инвертором на выходе.

Следующий товарищ устроен несколько хитрее:

Элемент «Исключающее ИЛИ» (XOR)

Он вот такой:

Рисунок 7-Исключаюшее ИЛИ

Операция, которую он выполняет, часто называют «сложение по модулю 2». На самом деле, на этих элементах строятся цифровые сумматоры.

Смотрим таблицу истинности. Когда на выходе единицы? Правильно: когда на входах разные сигналы. На одном - 1, на другом - 0. Вот такой он хитрый.

Эквивалентная схема примерно такая:

Рисунок 8 - Эквивалентная схема

2. Программная часть

В курсовой работе использован алгоритмический язык сверхвысокого уровня Питон (Python). Термин сверхвысокий уровень означает то, что программы, написанные на алгоритмическом языке Питон мог мыть реализованы практически на всех компьютерах с операционными системами Windows

Ассемблер предназначены для компа с конкретным микропроцессором.

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

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

Рисунок 9- Рабочее окно разработки IDLE

Для формирования новой программы в главном меню выбирается пункт File и в появившемся меню выбираем пункт New file, в который записываем нашу программу.

На следующем рисунке показана первая страница нашей программы.

В первых трех строках программы подключаются внешние библиотеки. Библиотека Tkinter подключает графический интерфейс пользователя GUI. Библиотека Random позволяет генерировать случайные числа, которые необходимы для случайного формирования неисправностей в микросхеме. Библиотека Time позволяет регистрировать интервалы времени.

Рисунок 10 - Первая страница программы

В первых трех строках программы подключаются внешние библиотеки. Библиотека Tkinter подключает графический интерфейс пользователя GUI. Библиотека Random позволяет генерировать случайные числа, которые необходимы для случайного формирования неисправностей в микросхеме. Библиотека Time позволяет регистрировать интервалы времени.

Если в программе используются переменные величины, то в начале задается начальное значение. В нашем случае переменные In0 - In 7 соответствуют входным сигналам. Переменные Out0 -Out3 соответствуют выходным сигналам.

Для удобства понимания и чтения программы используют комментарии, которые в Питоне записывают после символа #. Переменные In Out могут принимать только два

значения 0 или 1, которые соответствуют двоичной системе счисления. Для удобства восприятия значение 0 выводится на белом фоне, а значение 1 =- на красном.

Переменная i_click показывает сколько раз была нажата кнопка Button9. Переменная Err_Yes = 0 если микросхема исправна и Err_Yes = 1 если микросхема неисправна. Переменная err_number соответствует номеру неисправности. Переменная err_pin соответствует номеру вывода микросхемы, на котором возникла неисправность. Переменная butt_answer соответствует номеру вывода микросхемы, который по мнению пользователя неисправен. Переменная goal соответствует количеству полученных очков за правильные ответы. Зха правильный ответ с первого раза начисляются 2 очка. За правильный ответ со второго раза начисляется одно очко. Переменная err_attept используется для предоставления второй попытки правильного ответа.

Строка root = TK() подключает нашу главную программу к библиотеке tkinter. Строка root.geometry('370x430') определяет размеры рабочего окна нашей программы. Строка root.title("Микросхема К155ЛЛ1 -- 2И") выводит заголовок рабочего окна. Для того, чтобы показать в рабочем окне условное графическое изображение заданной микросхемы К155ЛЛ1 используются строки

temp = PhotoImage(file = "К155ЛЛ1.png")

temp1 = PhotoImage(file = "счёт_неиспр.png")

Аналогично для того чтобы подсчитывать набранные очки используют следующие две строки:

temp1 = PhotoImage(file = "счет_неиспр.png")

Label(root, image = temp1).place(x=235, y=0)

В основную программу root встроен набор функций, которые начинаются со служебного слова def. Расположение кнопок в рабочем окне задается обычно в конце программы, как показано на рисунке 12.

Рисунок 11- Задание расположения кнопок в рабочем окне

Событие, связанное с щелканой левой клавишей мышки по соответствующей кнопке, определяют строки:

button0 = Button(root, text=in0, bg='white', command=button_clicked)

button0.place(x=0,y=5)

В данном примере текст соответствует значению переменной in0. Цвет фона кнопки - белый, а само событие обрабатывается функцией button_clicked. Пример оформления функции показан на рисунке 12.

Рисунок 12 - Функция события -- «нажата кнопка мыши»

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

Рисунок 13-Рабочее окно программы

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

Рисунок 14-Измененное рабочее окно

Заключение

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

Список литературы

1.ГОСТ 7.32-2001. Система стандартов по информации, библиотечному делу, Отчет о научно-исследовательской работе. Структура и правила оформления [Электронный ресурс]. URL: http://gostexpert.ru/gost/gost-7.322001(Дата обращения 13.05.2015)

Грамолин В. Павлова А. Павлов А. Ляндерс В.

2.ГОСТ Р 7.0.5-2008 Система стандартов по информации, библиотечному делу, Библиографическая ссылка.

3.ГОСТ 7.1-2003. Система стандартов по информации, библиотечному делу, Библиографическая запись, библиографическое описание. Общие требования и правила составления..

4.ГОСТ 7.82-2001. Библиографическая запись. Библиографическое описание электронных ресурсов. Общие требования и правила составления

5.ГОСТ 7.9-95 Реферат и аннотация. Общие требования

Справочная книга корректора и редактора Под общ.ред. А.Э.Мильчина. М.: Книга, 1974.- 414 с.

6. Мильчин А. Э. Издательский словарь-справочник. М.: Юристъ, 1998.

7.Гиленсон П.Г. Справочник технического редактора. М.: Книга, 1972. -311 с.

Приложение А- Текст программы

from tkinter import *

from random import randrange as rnd, choice

import time

in0 = 0

in1 = 0

in2 = 0

in3 = 0

in4 = 0

in5 = 0

in6 = 0

in7 = 0

in8 = 0

i_click = 0 # счетчик для button9

out0 = 0

out1 = 0

out2 = 0

out3 = 0

err_yes = 0 # если err_yes = 0 -неисправности нет; если err_yes = 1 -неисправность есть

err_number = 0 # номер неисправности: 1,2,3,4, если 0 - исправная микросхема

err_pin = 0 # на каком выводе возникла неисправность, 0 - все исправно

butt_answer =0 # ответ - какой вывод неисправен

goal = 0

err_attempt = 0 # err_attempt = 1- для второй попытки

root = Tk()

root.geometry('550x490')

root.title("Микросхема K155ЛП5")

temp = PhotoImage(file = "K155ЛП5.png")

Label(root, image = temp).place(x=15, y=0)

temp1 = PhotoImage(file = "счет_неиспр.png")

Label(root, image = temp1).place(x=400, y=0)

def button_clicked():

global in0,out0,butt_answer, err_yes

butt_answer = 1

if err_yes != 0:

answer()

else:

if in0 == 0:

in0 = 1

button0 = Button(root, text=in0, bg='red', command=button_clicked)

button0.place(x=0,y=5)

else:

in0 = 0

button0 = Button(root, text=in0, bg='white', command=button_clicked)

button0.place(x=0,y=5)

good()

def button_clicked1():

global in1,out0,butt_answer, err_yes

butt_answer = 2

if err_yes != 0:

answer()

else:

if in1 == 0:

in1 = 1

button1 = Button(root, text=in1, bg='red', command=button_clicked1)

button1.place(x=0,y=30)

else:

in1 = 0

button1 = Button(root, text=in1, bg='white', command=button_clicked1)

button1.place(x=0,y=30)

good()

def button_clicked2():

global in2,out1,butt_answer, err_yes

butt_answer = 3

if err_yes != 0:

answer()

else:

if in2 == 0:

in2 = 1

button2 = Button(root, text=in2, bg='red', command=button_clicked2)

button2.place(x=0,y=68)

else:

in2 = 0

button2 = Button(root, text=in2, bg='white', command=button_clicked2)

button2.place(x=0,y=68)

good()

def button_clicked3():

global in3,out1,butt_answer, err_yes

butt_answer = 4

if err_yes != 0:

answer()

else:

if in3 == 0:

in3 = 1

button3 = Button(root, text=in3, bg='red', command=button_clicked3)

button3.place(x=0,y=92)

else:

in3 = 0

button3 = Button(root, text=in3, bg='white', command=button_clicked3)

button3.place(x=0,y=92)

good()

def button_clicked4():

global in4, out2,butt_answer, err_yes

butt_answer = 5

if err_yes != 0:

answer()

else:

if in4 == 0:

in4 = 1

button4 = Button(root, text=in4, bg='red', command=button_clicked4)

button4.place(x=0,y=133)

else:

in4 = 0

button4 = Button(root, text=in4, bg='white', command=button_clicked4)

button4.place(x=0,y=133)

good()

def button_clicked5():

global in5,out2,butt_answer, err_yes

butt_answer = 6

if err_yes != 0:

answer()

else:

if in5 == 0:

in5 = 1

button5 = Button(root, text=in5, bg='red', command=button_clicked5)

button5.place(x=0,y=157)

else:

in5 = 0

button5 = Button(root, text=in5, bg='white', command=button_clicked5)

button5.place(x=0,y=157)

good()

def button_clicked6():

global in6,out3,butt_answer, err_yes

butt_answer = 7

if err_yes != 0:

answer()

else:

if in6 == 0:

in6 = 1

button6 = Button(root, text=in6, bg='red', command=button_clicked6)

button6.place(x=0,y=198)

else:

in6 = 0

button6 = Button(root, text=in6, bg='white', command=button_clicked6)

button6.place(x=0,y=198)

good()

def button_clicked7():

global in7,out3,butt_answer, err_yes

butt_answer = 8

if err_yes != 0:

answer()

else:

if in7 == 0:

in7 = 1

button7 = Button(root, text=in7, bg='red', command=button_clicked7)

button7.place(x=0,y=222)

else:

in7 = 0

button7 = Button(root, text=in7, bg='white', command=button_clicked7)

button7.place(x=0,y=222)

good()

def button_clicked8():

global err_yes, err_pin

err_pin = rnd(1,12)

# Label5 = Label(root,width=9,height=2, text=('0:0'),bg='yellow',fg='black').place(x=307,y=185)

button10 = Button(root, text='Если Вы поняли \n где находится неисправность,\n'

'то щелкните ЗДЕСЬ \n, чтобы дать ОТВЕТ', bg='yellow', command=button_clicked10)

button10.place(x=200,y=320)

button9 = Button(root, text=('Теперь в микросхеме\n появилась неисправность. \n '

'Ваша задача, найти ее \n пощелкав мышкой по входам \n'

'(режим отладки!!! err_pin =', err_pin, ')'),

bg='yellow',command=button_clicked9)

button9.place(x=0,y=300)

print('нажата кнопка button8 ')

def button_clicked9():

global i_click, err_yes

if i_click == 0:

i_click = 1

button_clicked()

return

if i_click == 1:

i_click = 2

button_clicked1()

return

if i_click == 2:

i_click = 3

button_clicked2()

return

if i_click == 3:

i_click = 4

button_clicked3()

return

if i_click == 4:

i_click = 5

button_clicked4()

return

if i_click == 5:

i_click = 6

button_clicked5()

return

if i_click == 6:

i_click = 7

button_clicked6()

return

if i_click == 7:

button_clicked7()

i_click = 0

def button_clicked11():

global butt_answer, butt_out0, butt_out1, butt_out3, butt_out2,in7,out3,butt_answer, err_yes

butt_answer = 9

answer()

print('button9',butt_answer,'err_pin',err_pin)

def button_clicked12():

global butt_answer, butt_out0, butt_out1, butt_out3, butt_out2

butt_answer = 10

answer()

print('button10',butt_answer,'err_pin',err_pin)

def button_clicked13():

global butt_answer, butt_out0, butt_out1, butt_out3, butt_out2

butt_answer = 11

answer()

print('button11',butt_answer,'err_pin',err_pin)

def button_clicked14():

global butt_answer, butt_out0, butt_out1, butt_out3, butt_out2

butt_answer = 12

answer()

print('button12',butt_answer,'err_pin',err_pin)

def button_clicked15():

global butt_answer, err_yes, button8, button9

butt_answer = 0

err_yes = 0

Label_del = Label(root, text = ' \n \n \n '

, width=30,height=10,bg='white',fg='black').place(x=200,y=320)

button8 = Button(root, text='Внести неисправность',

bg='yellow', command=button_clicked8)

button8.place(x=240,y=340)

button9 = Button(root, text='В настоящий момент \n микросхема исправна \n '

'можете убедиться, \n пощелкав мышкой по входам',

bg='yellow', command=button_clicked9)

button9.place(x=0,y=300)

print('вторая попытка butt_answer = ',butt_answer,'err_pin',err_pin)

def button_clicked16():

global butt_answer,err_pin, err_yes, err_number,err_attempt

butt_answer = 0

err_attempt = 0

err_yes = 0

err_pin = rnd(1,12)

err_number = err_number + 1

err_pin = rnd(1,12)

Label_del = Label(root, text = ' \n \n \n '

, width=30,height=10,bg='white',fg='black').place(x=200,y=320)

Label_del = Label(root, text = ' \n \n \n '

, width=30,height=10,bg='white',fg='black').place(x=0,y=320)

button10 = Button(root, text='Если Вы поняли \n где находится неисправность,\n'

'то щелкните ЗДЕСЬ \n, чтобы дать ОТВЕТ', bg='yellow', command=button_clicked10)

button10.place(x=200,y=320)

print('следующая неисправность butt_answer = ',butt_answer,'err_pin',err_pin)

def button_clicked10():

global err_yes, err_pin, button9,butt_out0, butt_out1, butt_out3, butt_out2

err_yes = err_yes + 1

# Label5 = Label(root,width=9,height=2, text=('0:0'),bg='blue',fg='black').place(x=405,y=185)

Label_del = Label(root, text = 'Теперь надо щелкнуть \n'

'по неисправному \n выводу'

, width=30,height=10,bg='white',fg='black').place(x=0,y=300)

Label_del = Label(root, text = ' \n \n \n '

, width=30,height=10,bg='white',fg='black').place(x=200,y=320)

butt_out0 = Button(root, text = out0, width=1,height=2,bg='white',fg='black',

command=button_clicked11).place(x=130,y=8)

butt_out1 = Button(root, text = out1, width=1,height=2,bg='white',fg='black',

command=button_clicked12).place(x=130,y=70)

butt_out2 = Button(root, text = out2, width=1,height=2,bg='white',fg='black',

command=button_clicked13).place(x=130,y=135)

butt_out3 = Button(root, text = out3, width=1,height=2,bg='white',fg='black',

command=button_clicked14).place(x=130,y=198)

print('нажата кнопка button10 ')

def answer():

global err_pin,err_yes,goal,err_number,err_attempt

yn = 185 + 32*err_number

if err_pin == butt_answer:

if err_attempt == 0:

Label5 = Label(root,width=9,height=2, text=('2:0'),bg='green',fg='black').place(x=405,y=yn)

goal = 2

Label_del = Label(root, text = 'Ответ ПРАВИЛЬНЫЙ!\n \n \n \n'

, width=30,height=3,bg='white',fg='black').place(x=0,y=300)

button16 = Button(root, text='Для перехода \n к следующей неисправности,\n'

' щелкните ЗДЕСЬ \n', bg='yellow', command=button_clicked16)

button16.place(x=200,y=320)

else:

Label5 = Label(root,width=9,height=2, text=('1:1'),bg='yellow',fg='black').place(x=405,y=yn)

goal = 1

Label_del = Label(root, text = 'Вы со втоого раза \n дали правильный ответ \n'

, width=30,height=10,bg='white',fg='black').place(x=0,y=300)

Label_del = Label(root, text = '\n\n\n\n\n \n'

, width=30,height=8,bg='white',fg='black').place(x=200,y=320)

button16 = Button(root, text='Для перехода \n к следующей неисправности,\n'

' щелкните ЗДЕСЬ \n', bg='yellow', command=button_clicked16)

button16.place(x=200,y=320)

else:

if err_attempt == 0:

Label5 = Label(root,width=9,height=2, text=('0:0'),bg='red',fg='black').place(x=405,y=yn)

err_attempt = 1

err_yes = 0

goal = 0

Label_del = Label(root, text = ' НЕПРАВИЛЬНО !!!\n ВАМ ДАЕТСЯ ВТОРАЯ ПОПЫТКА \n'

'\n Остается прежняя неисправность \n'

' Ваша задача, найти ее \n'

'пощелкав мышкой по входам '

, width=30,height=8,bg='white',fg='black').place(x=0,y=300)

button10 = Button(root, text='Если Вы поняли \n где находится неисправность,\n'

'то щелкните ЗДЕСЬ \n, чтобы дать ОТВЕТ', bg='yellow', command=button_clicked10)

button10.place(x=200,y=320)

else:

Label5 = Label(root,width=9,height=2, text=('0:0'),bg='red',fg='black').place(x=405,y=yn)

Label_del = Label(root, text = '\n Вы со втоого раза \n дали неправильный ответ \n'

'Изучайте теорию \n читайте учебник ! ! ! \n\n\n\n'

, width=30,height=10,bg='white',fg='black').place(x=0,y=320)

err_yes = 0

err_attempt = 0

err_pin = 0

err_number = 0

goal = 0

button15 = Button(root, text='Для возврата \n к испраной микросхеме,\n'

'то щелкните ЗДЕСЬ', bg='yellow', command=button_clicked15)

button15.place(x=200,y=320)

print ('butt_answer',butt_answer,'неисправность номер: err_number =',err_number)

def good():

global err_pin, out0, out1, out2, out3

print('good',butt_answer,'err_pin',err_pin)

if err_pin != 9:

out0 = in0 and in1

if out0 == 0:

Label1 = Label(root,width=1,height=2, text=out0,bg='white',fg='black').place(x=300,y=8)

else:

Label1 = Label(root,width=1,height=2, text=out0,bg='red',fg='black').place(x=300,y=8)

if err_pin != 10:

out1 = in2 and in3

if out1 == 0:

Label2 = Label(root,width=1,height=2, text=out1,bg='white',fg='black').place(x=300,y=70)

else:

Label2 = Label(root,width=1,height=2, text=out1,bg='red',fg='black').place(x=300,y=70)

if err_pin != 11:

out2=in4 and in5

if out2 == 0:

Label3 = Label(root,width=1,height=2, text=out2,bg='white',fg='black').place(x=300,y=135)

else:

Label3 = Label(root,width=1,height=2, text=out2,bg='red',fg='black').place(x=300,y=135)

if err_pin != 12:

out3=in6 and in7

if out3 == 0:

Label4 = Label(root,width=1,height=2, text=out3,bg='white',fg='black').place(x=300,y=198)

else:

Label4 = Label(root,width=1,height=2, text=out3,bg='red',fg='black').place(x=300,y=198)

# out0 - Error

if err_pin == 1:

out0 = 1 and in1

if out0 == 0:

Label1 = Label(root,width=1,height=2, text=out0,bg='white',fg='black').place(x=300,y=8)

else:

Label1 = Label(root,width=1,height=2, text=out0,bg='red',fg='black').place(x=300,y=8)

if err_pin == 2:

out0 = in0 and 1

if out0 == 0:

Label1 = Label(root,width=1,height=2, text=out0,bg='white',fg='black').place(x=300,y=8)

else:

Label1 = Label(root,width=1,height=2, text=out0,bg='red',fg='black').place(x=300,y=8)

if err_pin == 9:

out0 = out0

# out1 - Error

if err_pin == 3:

out1 = 1 and in3

if out1 == 0:

Label2 = Label(root,width=1,height=2, text=out1,bg='white',fg='black').place(x=300,y=70)

else:

Label2 = Label(root,width=1,height=2, text=out1,bg='red',fg='black').place(x=300,y=70)

if err_pin == 4:

out1 = in2 and 1

if out1 == 0:

Label2 = Label(root,width=1,height=2, text=out1,bg='white',fg='black').place(x=300,y=70)

else:

Label2 = Label(root,width=1,height=2, text=out1,bg='red',fg='black').place(x=300,y=70)

if err_pin == 10:

out1 = out1

# out2 - Error

if err_pin == 5:

out2 = 1 and in5

if out2 == 0:

Label3 = Label(root,width=1,height=2, text=out2,bg='white',fg='black').place(x=300,y=135)

else:

Label3 = Label(root,width=1,height=2, text=out2,bg='red',fg='black').place(x=300,y=135)

if err_pin == 6:

out2 = in4 and 1

if out2 == 0:

Label3 = Label(root,width=1,height=2, text=out2,bg='white',fg='black').place(x=300,y=135)

else:

Label3 = Label(root,width=1,height=2, text=out2,bg='red',fg='black').place(x=300,y=135)

if err_pin == 11:

out2 = out2

# out3 - Error

if err_pin == 7:

out3 = 1 and in7

if out3 == 0:

Label4 = Label(root,width=1,height=2, text=out3,bg='white',fg='black').place(x=300,y=198)

else:

Label4 = Label(root,width=1,height=2, text=out3,bg='red',fg='black').place(x=300,y=198)

if err_pin == 8:

out3 = in6 and 1

if out3 == 0:

Label4 = Label(root,width=1,height=2, text=out3,bg='white',fg='black').place(x=300,y=198)

else:

Label4 = Label(root,width=1,height=2, text=out3,bg='red',fg='black').place(x=300,y=198)

if err_pin == 12:

out3 = out3

button0 = Button(root, text=in0, bg='white', command=button_clicked)

button0.place(x=0,y=5)

button1 = Button(root, text=in1, bg='white', command=button_clicked1)

button1.place(x=0,y=30)

button2 = Button(root, text=in2, bg='white', command=button_clicked2)

button2.place(x=0,y=68)

button3 = Button(root, text=in3, bg='white', command=button_clicked3)

button3.place(x=0,y=92)

button4 = Button(root, text=in4, bg='white', command=button_clicked4)

button4.place(x=0,y=133)

button5 = Button(root, text=in5, bg='white', command=button_clicked5)

button5.place(x=0,y=157)

button6 = Button(root, text=in6, bg='white', command=button_clicked6)

button6.place(x=0,y=198)

button7 = Button(root, text=in7, bg='white', command=button_clicked7)

button7.place(x=0,y=222)

button8 = Button(root, text='Внести неисправность',

bg='yellow', command=button_clicked8)

button8.place(x=240,y=410)

button9 = Button(root, text='В настоящий момент \n микросхема исправна \n '

'можете убедиться, \n пощелкав мышкой по входам',

bg='yellow', command=button_clicked9)

button9.place(x=0,y=410)

Label1 = Label(root, text = out0, width=1,height=2,bg='white',fg='black').place(x=300,y=8)

Label2 = Label(root, text = out0, width=1,height=2,bg='white',fg='black').place(x=300,y=70)

Label3 = Label(root, text = out0, width=1,height=2,bg='white',fg='black').place(x=300,y=135)

Label4 = Label(root, text = out0, width=1,height=2,bg='white',fg='black').place(x=300,y=198)

#butt_out0 = Button(root, text = out0, width=1,height=2,bg='white',fg='black',

# command=button_clicked11).place(x=155,y=8)

#butt_out1 = Button(root, text = out1, width=1,height=2,bg='white',fg='black',

# command=button_clicked12).place(x=155,y=70)

#butt_out2 = Button(root, text = out2, width=1,height=2,bg='white',fg='black',

# command=button_clicked13).place(x=155,y=135)

#butt_out3 = Button(root, text = out3, width=1,height=2,bg='white',fg='black',

# command=button_clicked14).place(x=155,y=198)

print( 'out0 = ', out0)

root.mainloop()

Размещено на Allbest.ru

...

Подобные документы

  • Отличительные особенности языка программирования Python: низкий порог вхождения, минималистичный язык, краткий код, поддержка математических вычислений, большое количество развитых web-фреймворков. Традиционная модель выполнения программ на языке Python.

    реферат [51,9 K], добавлен 18.01.2015

  • Разработка программ средствами библиотеки tkinter на языке Python. Изучение основы работы в текстовом редакторе Word. Описание авторской идеи анимации. Использование базовых команд и конструкций. Процесс проектирования и алгоритм разработанной программы.

    контрольная работа [125,3 K], добавлен 11.11.2014

  • Особенности программирования аркадных игр в среде Python. Краткая характеристика языка программирования Python, его особенности и синтаксис. Описание компьютерной игры "Танчики" - правила игры, пояснение ключевых строк кода. Демонстрация работы программы.

    курсовая работа [160,3 K], добавлен 03.12.2014

  • Программное обеспечение Python и ее основные характеристики, как программной среды. Общие сведения о языке программирования Python. Особенности применения ППП Python (x,y) с использованием его различных вычислительных модулей в учебном процессе.

    дипломная работа [2,9 M], добавлен 07.04.2019

  • Основные элементы окна программы MathCAD. Выполнение операций с файлами, редактирование, настройка программы. Способы ввода и редактирования в рабочем поле окна программы. Задание на рабочей области необходимых функций и матриц, выполнение вычислений.

    контрольная работа [18,0 K], добавлен 11.09.2019

  • Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.

    курсовая работа [3,1 M], добавлен 27.02.2015

  • Понятие и характеристики облачных технологий, модели их развертывания, технологические процессы, аспекты экономики и критика. Язык программирования Python, оценка функциональности, сравнение с аналогами. Управление облаком в Python на примере libcloud.

    курсовая работа [43,0 K], добавлен 08.06.2014

  • Разработка оконного приложения на языке C#, в окне которого будет игра "Лабиринт. Диаграмма вариантов использования языка UML. Описание разрабатываемой программы с точки зрения программиста. Разработка прикладного окна, классов Enemy и Dot, Wall и Map.

    курсовая работа [457,6 K], добавлен 22.06.2015

  • Представление полиномов в виде кольцевых списков и выполнение базовых арифметических действий над ними. Реализация алгоритмов сложения, умножения и вычитания полиномов класса List на языке программирования Python 2.7. в интегрированной среде Python IDLE.

    курсовая работа [228,1 K], добавлен 11.01.2012

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

    курсовая работа [222,0 K], добавлен 24.04.2015

  • Анализ основ ООП, изучение языка программирования Python, применение полученных знаний на практике для реализации предметной области. Понятие и механизм инкапсуляции. Фиксирование информационной работы отеля. Диаграмма классов. Реализация на языке Python.

    курсовая работа [227,6 K], добавлен 14.05.2017

  • Об'єктно-орієнтована мова Python - сучасна мова програмування, проста у вивченні та використанні. Наявність повної стандартної бібліотеки. Середовища програмування на Python. Механізм функціонування інтерпретатора. Колекції даних, комбіновані оператори.

    презентация [753,2 K], добавлен 06.02.2014

  • Use case-диаграмма. Оценка трудоёмкости и сроков разработки проекта с использованием языка Python по методикам CETIN И COCOMO-II. Проектирование информационной системы. Разработка приложения с использованием Django: создание шаблонов, моделей и пр.

    дипломная работа [1,3 M], добавлен 10.07.2017

  • Особенности и преимущества языка C#. Алгоритмы поиска маршрутов в графе. Разработка вычислительной системы транспортной логистики на языке C#. Выбор среды разработки, визуализация транспортной сети. Задание условий поиска и пример работы алгоритма.

    дипломная работа [457,1 K], добавлен 24.06.2015

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

    лабораторная работа [830,3 K], добавлен 28.04.2014

  • Программный комплекс для разработки программы транслирующей программу с языка Pascal на язык С++. Построение логической и арифметической модели решения. Разработка компилятора для программы. Методы отладки программы и создание для нее документации.

    курсовая работа [742,6 K], добавлен 03.07.2011

  • Исторические аспекты развития линии "Алгоритмизация и программирование" в старшей школе. Изучение языка программирования Python с применением дистанционных курсов Coursera. Методическая система обучения программированию с использованием Coursera.

    дипломная работа [808,8 K], добавлен 13.12.2017

  • Организация вычислительных процессов и программирования на алгоритмическом языке. Создание программы "Калькулятор". Выбор языка и среды программирования. Функциональная схема работы программы, описание разработанных алгоритмов. Способы устранения ошибок.

    курсовая работа [434,1 K], добавлен 27.08.2012

  • Изучение работы периферийных устройств, из назначения и характеристик. Особенности интерфейса программы и его возможностей: окна и их компоненты, управляющие элементы окна, командные кнопки, переключатели, радиокнопки, поля текста, иконки (пиктограммы).

    реферат [1,0 M], добавлен 02.03.2010

  • Использование программы Outlook Express для работы с электронной почтой. Рабочее окно программы. Выбор режима работы, назначение панелей инструментов. Настройка программы для совместного использования. Создание, отправка и удаление электронного письма.

    курсовая работа [18,7 K], добавлен 21.06.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.