ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБЩЕОБРАЗОВАТЕЛЬНОЕ
УЧРЕЖДЕНИЕ МОСКОВСКОЙ ОБЛАСТИ
"ОДИНЦОВСКИЙ "ДЕСЯТЫЙ ЛИЦЕЙ"
«Разработка приложения на языке Python»
(Проектная работа)
(Информатика)
(Секция – IT)
Выполнил:
Беневоленский Александр Сергеевич
ученик 9В класса
Руководитель:
Деткова Людмила Анатольевна, учитель информатики
Одинцово
2024
Паспорт проекта
Название |
«Разработка приложения на языке Python» |
Автор |
Беневоленский Александр, ученик 9В класса |
Научный руководитель |
Деткова Людмила Анатольевна, учитель информатики |
Цель |
Создать компьютерное приложение. |
Задачи |
1. Познакомиться с языком программирования Python. 2. Познакомиться с основами библиотеки Tkinter создания приложений; 3. Установить на свой компьютер необходимую программу PyCharm и получить базовые знания по написанию программы для предстоящей работы; 4. Создать приложение с помощью PyCharm и приобретённых знаний. |
Даты |
В сентябре 2023 г. я получил задание на написание проекта. В сентябре-октябре выбрал тему проекта и представил презентацию о проекте. Ноябрь 2023 г. - февраль 2024 г. работа над проектом, разработка приложения. |
Материальнотехническое обеспечение |
Материальных затрат проект не требует, нужны только компьютер, программы и свободное время. |
Введение……………………………………………………………………….. 4 1. ОСНОВНАЯ ЧАСТЬ............................................................................................. 5
1.1. Что такое Python............................................................................................. 5
1.2. История Python................................................................................................ 6
1.3. Библиотека Tkinter......................................................................................... 9
2. ПРАКТИЧЕСКАЯ ЧАСТЬ............................................................................. 15
2.1. Создание приложения................................................................................... 15
2.2. Порядок проектирования приложения....................................................... 15
Заключение.......................................................................................................... 22
Список литературы............................................................................................. 23
Приложения……………………………………………………………………..24 ВВЕДЕНИЕ
Прикладные программы являются неотъемлемой частью жизни каждого пользователя персонального компьютера. Такие программы отвечают за выполнения множества задач, таких как написание текстовых документов, обработка аудио или видео файлов, а также выполнение математических расчетов. Подобные приложения позволяет решать огромное количество задач быстрее и точнее, чем это смог бы обычный человек. Анализируя «рынок программистов», увидел, что язык Python востребованный и часто используемый.
Python - один из самых популярных языков программирования на данный момент. У него существуют свои фанаты, но есть и те, кто данный язык не переносит, в любом случае равнодушным он никого не оставляет. На сегодняшний день углубление знаний и расширение навыков по разработке алгоритмов и их реализации на персональном компьютере дает большие возможности в мире программирования.
Актуальность: Актуальность моего приложения состоит в том, что в нём собрана основная информация по предмету «Информатика» для учеников 7-8 классов.
Проблема: Информация по предмету «Информатика» 7-8 классов разбросана по разным источникам, может быть неисчерпывающей и размытой. Поэтому я решил создать приложение, в котором будет основная информация по предмету «Информатика» с 7 по 8 класс.
Цель:
- создать компьютерное приложение.
Задачи:
- познакомиться с языком программирования Python;
- познакомиться с основами библиотеки Tkinter создания приложений;
- установить на свой компьютер необходимую программу PyCharm и получить базовые знания по написанию программы для предстоящей работы; - создать приложение с помощью PyCharm и приобретённых знаний.
Методы исследования:
- изучение Интернет ресурсов по работе с библиотекой Tkinter;
- работа с источниками Интернета и электронными ресурсами.
1. ОСНОВНАЯ ЧАСТЬ.
Python — это интерпретируемый язык программирования высокого уровня с динамической типизацией. Язык Python поддерживает различные виды программирования: императивное (исходный код, основанный на командах выполняющиеся последовательно), процедурное (деление программ на подпрограммы), структурное (представление программы в виде структуры блоков инструкций), объектно-ориентированное (основанное на типах), метапрограммирование (написание программ, которые управляют другими программами) и функциональное (вычисления трактуются как значения функций).
Python часто изучается и рекомендуется как первый язык программирования. Простота синтаксиса Python обеспечивает высокую производительность при написании кода.
Хотя Python является не таким быстрым, как языки, такие как C или C++, экономится время на программирование, а в большинстве программ разница в скорости все равно не будет заметна.
Есть множество причин для успеха Python. Python имеет гораздо более простой и понятный синтаксис, чем другие популярные языки, например, Java, C и C++, что упрощает изучение. Многие считают, что один из главных факторов успеха Python это наличие дружелюбного и отзывчивого сообщества пользователей, наряду с дизайнерской интуицией его создателя Гвидо Ван Россума.
Автор Python Гвидо ван Россум
Первичная концепция языка Python была придумана в конце 1980-х Гвидо Ван Россумом, сотрудником голландского Национального исследовательского института математики и информатики.
Изначально язык был разработан как ответ языку программирования ABC, родиной которого также являются Нидерланды. Среди главных особенностей Python в сравнении с языком ABC можно выделить то, что Python мог обрабатывать исключения и был в основном ориентирован на операционную систему Amoeba.
Забавный факт. Python не имеет никакого отношения к змеям. Язык получил свое название в честь британского телешоу — «Летающий цирк Монти Пайтона».
Конечно же, Python, как и все языки программирования, пережил целый ряд различных версий. Python 0.9.0 впервые вышел в свет в 1991 году. Помимо обработки ошибок, Python имел классы, списки и строки. И, что более важно, он включал лямбда-функции, map(), filter() и reduce(). Всё это говорило о сильной направленности языка в сторону функционального программирования.
Python 1.0 появился в январе 1994 года. Последней версией, выпущенной Ван Россумом во время работы в центре математики и информатики (CWI), был Python 1.2.
В 2000 году вышла новая версия Python — 2.0. Здесь уже были генераторы списков и полноценный сборщик мусора. Также версия 2.0 поддерживала Unicode.
Первая обратно-несовместимая версия Python 3.0 была выпущена 3 декабря 2008 года после длительного периода тестирования.
В октябре 2019 года он ушел на пенсию. Но в ноябре 2020 г. вернулся в ряды разработчиков, но на этот раз в Microsoft, чтобы улучшить работу Python в Windows.
Конечно, Python улучшается не только в Windows, но и в целом. Так в конце 2022 года было выпущено сразу несколько обновлений, которые усилили безопасность Python-программ, а также значительно увеличили его скорость работы и улучшили подсказки в случае возникновения ошибок.
Само собой на этом развитие языка не остановилось и в 2023 и в 2024 годах мы ожидаем еще больше возможностей.
Этапы развития языка Python отражены в Приложении 1.
Преимущества Python
-скорость выполнения программ, написанных на Python очень высока;
-возможность написать свои собственные модули для Python на С или С++;
- в стандартных библиотеках Python можно найти средства для работы с электронной почтой, протоколами Интернета, FTP, HTTP, базами данных;
-скрипты, написанные при помощи Python, выполняются на большинстве современных ОС (Linux, Windows, OS X);
-Python подходит для любых решений в области программирования, будь то офисные программы, вэб-приложения, GUI-приложения и т.д.
Недостатки Python
-непривычный синтаксис;
-низкая скорость выполнения программ по сравнению с такими языками, как C и C++;
-несовместимость разных версий языка;
-динамическая типизация создает трудности при изучении;
-отсутствие учебников для школьников.
Где используется Python?
•Компания Google использует Python в своей поисковой системе
•Компании Intel, Cisco, HP, Seagate, Qualcomm и IBM, используют Python для тестирования аппаратного обеспечения
•Служба коллективного использования видеоматериалов YouTube в значительной степени реализована на Python
•Агентство национальной безопасности (NSA) использует Python для шифрования и анализа данных;
•Компании JPMorgan Chase, UBS, Getco и Citadel применяют Python для прогнозирования финансового рынка.
Python в индустрии
Теперь предлагаю посмотреть индекс TIOBE за 2023 год (Приложение2). Индекс TIOBE отражает популярность языков программирования. Рейтинг учитывает количество разработчиков, курсов и статей по конкретному языку во всём мире.
На первом месте находится Python. Этот язык программирования уже несколько раз признавался языком года по данным индекса TIOBE и вот сейчас мы вновь видим его на первой строчке рейтинга. На втором месте с незначительным отставанием находится язык программирования C. На третьем месте оказался язык C++, а Java опустился на 4-ю строчку.
Tkinter — это кроссплатформенный графический интерфейс Python, позволяющий работать с библиотекой Tk. Он содержит элементы графического интерфейса пользователя (GUI — Graphical User Interface), с помощью которых можно создавать различные приложения.
GUI (Graphical User Interface) — это графический интерфейс пользователя, оболочка программы, с которой мы взаимодействуем с помощью клавиатуры и мыши. На современных операционных системах почти все программы работают с графическим интерфейсом, и мы каждый день сталкиваемся с GUI: читаем статьи в браузере, набираем текст в редакторе или играем в игры.
Для работы с GUI в Python есть четыре библиотеки:
-Tkinter;
-Kivy; -Python QT; -wxPython.
Мы выбрали Tkinter, потому что она не требует дополнительной установки и позволяет быстро создавать приложения с простым графическим интерфейсом.
Изначально Tkinter был разработан в 1988 году профессором математических наук в университете Беркли Джоном Остерхаутом для собственного языка программирования Tcl. С 1994 года этот программный пакет входит в стандартный дистрибутив языка программирования Python.
Tkinter позволяет создать полноценный работающий интерфейс пользователя мобильного или десктопного приложения с помощью уже встроенных в программный пакет классов и наследующих им объектов. Это довольно универсальный инструмент, у которого есть свои преимущества и недостатки, определяющие сферу его применения.
Преимущества Tkinter
• Функциональность.
• Кроссплатформенность.
• Простота.
• Широкая поддержка.
• Включение в стандартный дистрибутив Python.
• Свободное использование.
Недостатки Tkinter
• Устаревший интерфейс.
• Ограниченный функционал.
• Ограниченная производительность. Ошибки переносимости.
Ключевые объекты в работе с Tkinter — виджеты. Это аналоги тегов из HTML, которые позволяют создавать интерактивные и неинтерактивные элементы, например надписи или кнопки. Всего их 18, но чаще всего используют следующие:
Button — кнопки;
Canvas — «холст», на котором рисуют графические фигуры;
Entry — виджет для создания полей ввода;
Label — контейнер для размещения текста или изображения;
Menu — виджет для создания пунктов меню.
По умолчанию, в программах с библиотекой Tkinter создаётся объект класса Tk. Объект Tk представляет главное («корневое») окно программы – которое открывается вместе с запуском программы. Остальные виджеты являются дочерними к Tk.
Label – этикетки. Используется для отображения текста или вставки изображения на окне приложения.
Button – кнопка. Нужны для создания кликабельных кнопок.
Canvas – холст
Entry – однострочное текстовое поле ввода.
Используется в случаях, когда требуется получить информацию от пользователя.
Message
Message служит для вывода текста. Он может автоматически и гибко разбивать длинные строки. Обладает большим количеством настраиваемых параметров.
PhotoImage – объект с изображением
В библиотеке Tkinter кнопки, метки, холсты, текстовые виджеты и меню могут выводить изображения путём передачи графических объектов атрибуту image. Виджет PhotoImage поддерживает файлы форматов GIF, PPM и PGM.
Размещение виджетов
Размещение виджетов в Tkinter возможно методами pack(), grid() и place().
pack() – упорядочивает виджеты по горизонтали или вертикали. Подходит для создания простых интерфейсов. Недостаток – с помощью pack() проблематично реализовать сложную компоновку.
grid() – упорядочивает виджеты в сетку из рядов и столбцов. Самый гибкий и мощный, позволяет создавать сложные интерфейсы, состоящие из виджетов разных размеров.
place() – позволяет задать точное положение и размер каждого виджета в окне.
Отступы
Параметры padx и pady позволяют указать отступы виджета от границ контейнера.
Я решил сделать приложение на языке Python с помощью библиотеки Tkinter. В данном приложении я напишу краткую информацию, которая поможет ученикам на уроках информатики в 7 - 8 классе. В приложении будут содержаться основные формулы и понятия. Ученик в любой момент сможет воспользоваться этим «Помощником», а также после этого проверить полученные знания, пройдя тесты, предложенные в приложении.
Писать код на Python лучше всего в специальной IDE, например в PyCharm или Visual Studio Code. Они подсвечивают синтаксис и предлагают продолжение кода — это сильно упрощает работу. Весь код я писал в PyCharm.
1. Внедрение библиотеки Tkinter в программу Python
Библиотека Tkinter предустановлена в Python. Поэтому её нужно только импортировать:
from tkinter import *
Теперь мы можем использовать любые модули из этой библиотеки.
2. Создание окна приложения
Теперь создадим окно нашего приложения. Для этого воспользуемся модулем Tk. Приложение назовём «Помощь в учебе на каждый день»:
window.title("Помощь в учебе на каждый день")
После запуска кода ничего не произойдёт. Необходимо указать, что окно приложения не должно закрываться до тех пор, пока пользователь сам не сделает этого. Для этого к коду добавим функцию window.mainloop(), указывающую на запуск цикла событий:
3. Задать размеры и задний фон окна
С помощью метода geometry укажем размер окна:
С помощью метода resizable запретим изменять параметры окна:
window.resizable(width=False, height=False)
Добавим картинку на задний фон главного окна:
bg = PhotoImage(file = "background.png") label3 = Label(window, image = bg)
label3.place(x = 0, y = 0)
4. Создание приветственного сообщения
Указываем цвет заднего фона, создаем 4 сообщения, в которых написано название приложения, краткая о нем информация, создатель и версия. Также выстраиваем положения сообщений и задаем сколько будет длиться заставка.
splash_screen = tk.Canvas(window, width=1550, height=1000, background=" darkslategray2") splash_screen.pack()
splash_screen.create_text(775, 400, text="Помощь в учебе на каждый день", font=("Helvetica", 60), anchor="center") splash_screen.create_text(775, 500,
text="Данное приложение поможет учащимся на уроках информатики, а также присутствуют тесты для закрепления материала",
font=("Helvetica", 24), anchor="center")
splash_screen.create_text(775, 850, text="Создатель: Александр Беневоленский", font=("Helvetica", 18), anchor="center")
splash_screen.create_text(775, 900, text="Версия: 1.0.0", font=("Helvetica", 10), anchor="center") window.update() window.after(6000)
splash_screen.destroy()
5. Создание заголовка в приложении
Воспользуемся виджетом Label, а таже зададим задний фон, цвет и шрифт надписи:
label = Label(window, text="Темы 7-ого класса:", font=("Helvetica ", 40), background=" darkturquoise", foreground="black")
6. Создание главного меню с возможностью выбора класса и темой по информатике с помощью кнопок
Добавим кнопки, которые будут показывать информацию по выбранной теме. Сделаем это с помощью виджета Button. Также воспользуемся методом grid, которое выравнивает кнопки по сетке. Используем свойство pady и padx, которое обозначит отступы по вертикали и горизонтали.
button1 = Button(window, text="•7 класс Информатика \nЧто такое информатика?")
7. Создание дизайна кнопок
С помощью foreground и background зададим цвет текста и кнопки и также настроем размеры кнопки.
button1 = Button(window, text="•7 класс Информатика \nЧто такое информатика?", height=4, width=25, foreground="black", background="lightgoldenrod1) button1.grid(row=0, column=1, padx=3, pady=10)
8. Создание функций, с помощью которых появляется текст по темам
Напишем функции def show_text_1():, которые будут показывать текст по определенным темам, а также зададим место появления текста с помощью relx, rely и anchor.
def show_text_1(): label.config( text="Информатика – наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий.\nОбъектами изучения информатики являются: \n– информация, процессы её сбора, хранения и преобразования с помощью систем обработки информации; \n– компьютер, включая его механические части и программное обеспечение.") |
label.place(relx=0.685, rely=0.68, anchor=tk.S)
9. Создание дизайна текстов с информацией
С помощью wraplength, опции, которая позволяет ограничить количество символов в каждой строке, укажем данное количество символов. Также зададим задний фон, шрифт и его цвет, а ещё с помощью justify укажем, что выравнивание должно быть по левой стороне.
def show_text_1(): label.config(
text="Информатика – наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий.\nОбъектами изучения информатики являются: \n– информация, процессы её сбора, хранения и преобразования с помощью систем обработки информации; \n– компьютер, включая его механические части и программное обеспечение.",
wraplength=1000, justify="left", font=("Helvetica", 14), background=" darkturquoise", foreground="gray9")
10. Подключение каждой кнопки к соответствующей функции
Чтобы при нажатии кнопки появлялся текст, command нужно приравнять к названию функции и при нажатии на кнопку теперь будет появляться наш текст.
button1 = Button(window, text="•7 класс Информатика \nЧто такое информатика?", height=4, width=25, foreground="black", background="lightgoldenrod1", command=show_text_1) button1.grid(row=0, column=1, padx=3, pady=10)
11. Создание массива с вопросами для теста 7 и 8 класса
questions_7 = [ "1. Информатика - это ... \n Написать одно слово.", "2. Объектами изучения информатики являются:\nНаписать через 'и'.", "3. По чему делятся типы информации\nНаписать через запятые.", "4. Напишите формулу скорости передачи информации.", "5. Напишите формулу информационного объёма сообщения.", "6. Сколько байт в 3 Кбайтах?", "7. Сколько бит в 10 Мбайтах?", "8. Наименьший элемент дисплея - это ...", "9. Описание на формальном языке, «понятном» компьютеру - это ...", "10. Наименьшая единица измерения информации - это ..." ] |
12. Создание массива с ответами для теста 7 и 8 класса
"наука",
"информация и компьютер",
"способу восприятия, способу представления, назначению",
"I=V/t",
"I=K*i",
"3072",
"83886080",
"пиксель",
"программа",
"бит"
]
13. Создание кнопок, которые переносят учеников на тест
Создадим новое окно и назовем его. Далее используем lambda, чтобы задерживает выполнение, иначе окно в command запуститься сразу при запуске приложения. Также подключим выведение массивов с вопросами и ответами.
question_7_title = "Тест для 7-го класса" button_question_7 = Button( window,
text=question_7_title, command=lambda: question_window( title=question_7_title, questions=questions_7,
correct_answers=correct_answers_7
) )
button_question_7.grid(row=4, column=2, padx=3, pady=3)
14. Создание дизайна кнопок для тестов Зададим задний фон кнопкам.
question_7_title = "Тест для 7-го класса" button_question_7 = Button( window, text=question_7_title, foreground="black", command=lambda: question_window( title=question_7_title, questions=questions_7, correct_answers=correct_answers_7 ) ) button_question_7.pack(pady=2) |
15. Создание окна при нажатии на кнопку с тестом
Здесь указываем родительское окно, а также укажем размер окна и его задний фон.
def question_window( title, questions, correct_answers ):
question_window = Toplevel(window) question_window.title(title) question_window.geometry('550x730') question_window.configure(background=" darkslategray2")
16. Создание массива для сбора ответов
user_answers = []
17. Создание списка вопросов и полей для ввода ответа
Перебором формируется список вопросов и полей для ввода ответа.
for i in range(len(questions)):
label = Label( question_window, text=questions[i], font=("Helvetica", 13), background=" darkslategray2", foreground="black"
)
label.grid(row=2 * i, column=0, padx=2, pady=2, sticky=NW) user_answer = StringVar() label = Entry( question_window, textvariable=user_answer, font=("Helvetica", 13)
)
label.grid(row=2 * i + 1, column=0, padx=2, pady=2, sticky=NW)
user_answers.append(user_answer)
18. Создание функции проверки ответов
def check_results(): correct_count = 0 for i in range(len(correct_answers)): if user_answers[i].get() == correct_answers[i]:
correct_count += 1
result = "{}/{}".format(correct_count, len(correct_answers)) result_color = "green" if correct_count == len(correct_answers) else "red" label = Label( question_window, text="Результат: " + result, font=("Helvetica", 13), background=" darkslategray2", foreground=result_color
)
label.grid(row=2 * len(questions) + 2, column=0, padx=2, pady=2)
19. Создание кнопки, которая проверяет правильность введённых ответов и выводит конечный результат ученика
answer_button = Button( question_window, text="Проверка результата", command=check_results ) answer_button.grid(row=2 * len(questions) + 1, column=0, padx=2, pady=2) |
Полный программный код этого приложения можно посмотреть в Приложении 3.
При запуске приложения у нас появляется название приложения, автор и версия (Приложение 4).
Далее появляется главное меню приложения, где можно выбрать тему, которая интересует учеников в зависимости от класса обучения, выбрать тест для закрепления полученных знаний и прорешать олимпиадные задачи (Приложение 5).
В результате моего исследования, поставленные цели и задачи были достигнуты, а именно:
- в процессе работы над проектом я узнал о языке программирования Python, историю возникновения языка Python, изучил библиотеку Tkinter, рассмотрел виджеты библиотеки Tkinter.
- создал приложение по информатике «Помощь в учебе на каждый день» для учеников 7-8 классов, в котором содержится вся необходимая информация по информатике, тесты для закрепления материала и олимпиадные задачи для 78 классов.
- приобрёл навыки по написанию программы создания компьютерных приложений.
Я считаю, что данное приложение поможет ученикам в изучении такого предмета как информатика.
1. Википедия о Питоне
URL:https://ru.wikipedia.org/wiki/Python
2. «История языка Python»
URL:https://www.interestprograms.ru/article-python-istoriya-sozdaniya-yazykaprogrammirovaniya?ysclid=lsacbnswt1490456526
3. Введение в Tkinter
URL:https://habr.com/ru/articles/133337/
4. Информация по информатике 7-8 класс
URL: https://resh.edu.ru/
ПРИЛОЖЕНИЯ
Приложение 1
Этапы развития языка Python.
Приложение 2
Рейтинг языков программирования по данным индекса TIOBE
Приложение 3
Полный программный код приложения «Помощь в учебе на каждый день»
from tkinter import * import tkinter as tk
def show_text_1(): label.config(
text="Информатика – наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий.\nОбъектами изучения информатики являются: \n– информация, процессы её сбора, хранения и преобразования с помощью систем обработки информации; \n– компьютер, включая его механические части и программное обеспечение.",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.685, rely=0.75, anchor=tk.S)
def show_text_2(): label.config(
text="Типы информации:\n• по способу восприятия: визуальная, тактильная, аудиальная, обонятельная, зрительная; \n• по способу представления: звуковая, числовая, текстовая, графическая; \n• по назначению:
личная, специальная, общественно значимая.",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.635, rely=0.73, anchor=tk.S)
def show_text_3(): label.config(
text="Формулы: \nСкорость передачи информации: \nI = V / t \nV — скорость передачи данных измеряется в бит/с; \nI — объем (размер) передаваемого файла (сообщения) измеряется в бит; \nt — время, за которое передается файл (сообщение) измеряется в секундах. \nФормула определения количества информации: \nN = 2ᴵ \nN — мощность алфавита; \ni — информационный вес символа; \nИнформационный объём сообщения: \nI = К * i \nI – объём информации в сообщении; \nК – количество символов в сообщении; \ni – информационный вес одного символа.",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.68, rely=0.94, anchor=tk.S) def show_text_4(): label.config(
text="1 бит – это наименьшая единица измерения информации. \n1 байт = 8 бит \n1 Кб (килобайт) = 1024 байта= 2¹ байт \n1 Мб (мегабайт) = 1024 Кб =
2¹ Кб \n1 Гб (гигабайт) = 1024 Мб = 2¹ Мб \n1 Тб (терабайт) =1024 Гб = 2¹ Гб",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.68, rely=0.76, anchor=tk.S) def show_text_5(): label.config(
text="Современный компьютер – это универсальное электронное программно-управляемое устройство для работы с информацией.\nПрограмма – это описание на формальном языке, «понятном» компьютеру, последовательности действий, которые необходимо выполнить над данными для решения поставленной задачи. \nПиксель – наименьший элемент дисплея, формирующий изображение.
\nГлубина цвета – длина двоичного кода, который используется для кодирования цвета пикселя. \nТекстовый документ – это, представленная на бумажном, электронном или ином материальном носителе, информация в текстовой форме. \nТекстовый редактор – это прикладная программа для создания и обработки текстовых документов.",
wraplength=950, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.68, rely=0.83, anchor=tk.S)
def show_text_6(): label.config( text="Система счисления – это совокупность правил для записи чисел. \nЦифры – это знаки, c помощью которых записываются числа. \nАлфавит – это множество всех цифр, используемых для записи чисел. \nАлфавит десятичной системы состоит из десяти цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. \nДля записи чисел в двоичной системе счисления используются только две цифры: 0 и 1. \nБуквы,которые используются для записи чисел в шестнадцатиричной системе счисления: A, B, C, D, E, F имеют значения 10, 11, 12, 13, 14, 15 соответственно.",
wraplength=950, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.68, rely=0.79, anchor=tk.S)
def show_text_7(): label.config(
text="• Преобразовать число из двоичной системы счисления в десятичную можно следующим образом: каждый разряд числа необходимо умножить на 2ⁿ, где n - номер разряда, начиная с 0. Затем суммировать полученные значения. \n• Преобразовать число из восьмеричной системы счисления в десятичную можно следующим образом: каждый разряд числа необходимо умножить на 8ⁿ, где n - номер разряда, начиная с 0. Затем суммировать полученные значения. \n• Преобразовать число из шестнадцатеричной системы счисления в десятичную можно следующим образом: каждый разряд числа необходимо умножить на 16ⁿ, где n - номер разряда, начиная с 0. Затем суммировать полученные значения.",
wraplength=900, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.68, rely=0.83, anchor=tk.S)
def show_text_8(): label.config(
text="• Для перевода чисел из десятичной системы в двоичную нужно разделить число на 2, где 2 — основание двоичной системы, и записать остаток от деления. Полученное частное снова разделить на 2 и также записать остаток. Повторять действия, пока частное не станет равным 0. Записать все остатки в обратном порядке. \n• Для перевода чисел из десятичной системы в восьмеричную нужно разделить число на 8, где 8 — основание двоичной системы, и записать остаток от деления. Полученное частное снова разделить на 8 и также записать остаток. Повторять действия, пока частное не станет равным 0. Записать все остатки в обратном порядке. \n• Для перевода чисел из десятичной системы в шестнадцатеричную нужно разделить число на 16, где 16 — основание двоичной системы, и записать остаток от деления. Полученное частное снова разделить на 16 и также записать остаток. Повторять действия, пока частное не станет равным 0. Записать все остатки в обратном порядке.", wraplength=900, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.68, rely=0. 89, anchor=tk.S)
def show_text_9(): label.config(
text="Исполнитель – человек, животное или техническое устройство, способное выполнить предложенную ему последовательность команд. \nАлгоритм – это последовательность операторов Паскаль, с помощью которых мы пришли к решению задачи. \nСвойства алгоритма: понятность, точность, конечность, дискретность, массовость. \nСпособы записи алгоритмов – словесное описание, построчная запись, блок-схема.",
wraplength=990, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.68, rely=0.75, anchor=tk.S)
def show_text_10(): label.config(
text="Некоторые типы данных в Pascal: \n• Целочисленный – Integer; \n• Вещественный – Real; \n• Логический – Boolean; \n• Символьный – Char; \n• Строковый - String.",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.68, rely=0.76, anchor=tk.S)
def show_text_11(): label.config(
text="Стандартные функции Pascal: \n• abs(x) - модуль x; \n• sqr(x) - квадрат x; \n• sqrt(x) - квадратный корень из x; \n• round(x) - округление x до ближайшего целого; \n• random - случайное число 0 ≤ Random <1; \n• random(x) - случайное целое число 0 ≤random(x) <x.", wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.685, rely=0.78, anchor=tk.S)
def show_text_12(): label.config(
text="Структура программы на Pascal: \nProgram <Имя программы>; \nVar <раздел описания переменных>; \nBegin \n<раздел операторов> \nEnd.", wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.69, rely=0.76, anchor=tk.S)
def show_text_13(): label.config(
text="Массовая информация – сведения, понятные большей части населения.\nСпециальная информация – сведения, которые могут быть не понятны основной массе людей, но необходимы и понятны узкой социальной группе специалистов.\nСекретная информация – сведения для узкого круга, передаваемые по закрытым каналам.\nЛичная информация — сведения о каком–либо человеке, определяющие социальное положение и типы социальных
взаимодействий.\nОбщественно значимая информация – это информация, которая удовлетворяет потребности граждан в знании и понимании того, что происходит в государстве.",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.67, rely=0.81, anchor=tk.S) def show_text_14(): label.config(
text="Программное обеспечение компьютера – это совокупность всех программ, предназначенных для выполнения на компьютере. \nОперационная система – это комплекс программ, обеспечивающих совместное функционирование всех устройств компьютера и предоставляющих пользователю доступ к ресурсам компьютера. \nСервисные программы – это программы-архиваторы, антивирусные программы, коммуникационные программы и другие.",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.67, rely=0.77, anchor=tk.S)
def show_text_15(): label.config(
text="Файл – это поименованная область внешней памяти. \nИмя файла состоит из двух частей, разделённых точкой: имени файла и расширения. \nКаталог – это поименованная совокупность файлов и подкаталогов. \nФайловая структура – это совокупность файлов на диске и взаимосвязей между ними. \nПростые файловые структуры могут использоваться для дисков с небольшим количеством файлов. \nИерархические файловые структуры используются для хранения большого количества файлов. ",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.685, rely=0.77, anchor=tk.S)
def show_text_16(): label.config(
text="Информационная безопасность – процесс соблюдения трёх аспектов безопасности: доступности, целостности и конфиденциальности информации. \nУгроза – это возможность нарушения или нежелательного изменения одного из аспектов информационной безопасности. \nАтака – действие, которое приводит к реализации угрозы. \nКомпьютерные вирусы – это программы, которые распространяются по доступным носителям без ведома пользователя и наносят тот или иной ущерб данным пользователя. \nСпам — массовая несанкционированная рассылка сообщений рекламного или несанкционированного характера. \nАнтивирусы — специализированные программы для выявления и устранения вирусов.",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.67, rely=0.83, anchor=tk.S)
def show_text_17(): label.config(
text="Информационные процессы - процессы, связанные с изменением информации или действиями с использованием информации.\nИнформационная деятельность - деятельность человека, связанную с процессами сбора, представления, обработки, хранения и передачи информации.\nОбработка информации — это целенаправленный процесс изменения содержания или формы представления информации.\nСохранить информацию — значит тем или иным способом зафиксировать её на некотором носителе.",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.68, rely=0.78, anchor=tk.S) def show_text_18(): label.config(
text="Начало и окончание алгоритма – овал;\nБлок ввода или вывода данных – параллелограмм;\nБлок обработки данных – прямоугольник;\nПроверка условия - ромб.",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.68, rely=0.73, anchor=tk.S)
def show_text_19(): label.config(
text="Логическое высказывание – это повествовательное предложение, про которое можно однозначно сказать, истинно оно или ложно.\nМатематический аппарат, с помощью которого записывают, упрощают и преобразуют логические высказывания, вычисляют их значения, называется алгеброй логики.\nОсновными логическими операциями, определенными над высказываниями, являются: инверсия, конъюнкция и дизъюнкция.\nПри вычислениях логических выражений сначала выполняются действия в скобках. Приоритет выполнения логических операций: НЕ, И, ИЛИ.",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.675, rely=0.81, anchor=tk.S)
def show_text_20(): label.config(
text="Div — оператор, который выполняет целочисленное деление. Его можно использовать только с целыми типами данных.\nНапример, 19 div 2 будет равно 9.\nMod — оператор, который определяет остаток от целого деления.\nНапример, 19 mod 2 будет равно 1, так как ближайшее целое число, которое можно разделить на 2 — это 18.",
wraplength=1000, justify="left", font=("Helvetica", 14), background="darkturquoise", foreground="gray9") label.place(relx=0.67, rely=0.74, anchor=tk.S)
def question_window( title, questions, correct_answers
): question_window = Toplevel(window) question_window.title(title) question_window.geometry('550x730')
question_window.configure(background="darkslategray2")
user_answers = []
for i in range(len(questions)):
label = Label( question_window, text=questions[i], font=("Helvetica", 13), background=" darkslategray2", foreground="black"
)
label.grid(row=2 * i, column=0, padx=2, pady=2, sticky=NW) user_answer = StringVar() label = Entry( question_window, textvariable=user_answer, font=("Helvetica", 13)
)
label.grid(row=2 * i + 1, column=0, padx=2, pady=2, sticky=NW) user_answers.append(user_answer)
def check_results(): correct_count = 0 for i in range(len(correct_answers)): if user_answers[i].get() == correct_answers[i]: correct_count += 1
result = "{}/{}".format(correct_count, len(correct_answers)) result_color = "green" if correct_count == len(correct_answers) else
"red"
label = Label( question_window, text="Результат: " + result, font=("Helvetica", 13), background=" darkslategray2", foreground=result_color
)
label.grid(row=2 * len(questions) + 2, column=0, padx=2, pady=2)
answer_button = Button( question_window, text="Проверка результата", command=check_results
)
answer_button.grid(row=2 * len(questions) + 1, column=0, padx=2, pady=2)
window = tk.Tk()
window.title("Помощь в учебе на каждый день") window.geometry('1550x1000') bg = PhotoImage(file = "background.png") window.resizable(width=False, height=False)
splash_screen = tk.Canvas(window, width=1550, height=1000, background="darkslategray2") splash_screen.pack()
splash_screen.create_text(775, 400, text="Помощь в учебе на каждый день", font=("Helvetica", 50), anchor="center") splash_screen.create_text(775, 500,
text="Данное приложение поможет учащимся на уроках информатики, а также присутствуют тесты для закрепления материала", font=("Helvetica", 18), anchor="center") splash_screen.create_text(775, 850, text="Создатель: Александр Беневоленский", font=("Helvetica", 18), anchor="center")
splash_screen.create_text(775, 900, text="Версия: 1.0.0", font=("Helvetica",
10), anchor="center") window.update() window.after(7000)
splash_screen.destroy()
label3 = Label(window, image = bg) label3.place(x = 0, y = 0)
label = Label(window, text="Темы 7-ого класса:", font=("Helvetica ", 40), background="darkturquoise", foreground="black") label.grid(row=0, column=0, padx=3, pady=10)
button1 = Button(window, text="•7 класс Информатика \nЧто такое информатика?", height=4, width=25, foreground="black", background="lightgoldenrod1", command=show_text_1) button1.grid(row=0, column=1, padx=3, pady=10)
button2 = Button(window, text="•7 класс Информатика \nТипы информации", height=4, width=25, foreground="black", background="lightgoldenrod1", command=show_text_2)
button1.grid(row=0, column=2, padx=3, pady=10)
button3 = Button(window, text="•7 класс Информатика \nОсновные формулы", height=4, width=25, foreground="black", background="lightgoldenrod1", command=show_text_3) button3.grid(row=0, column=3, padx=3, pady=10)
button4 = Button(window, text="•7 класс Информатика \nЕдиницы измерения
\nинформации", height=4, width=25,
foreground="black", background="lightgoldenrod1", command=show_text_4) button4.grid(row=0, column=4, padx=3, pady=10)
button5 = Button(window, text="•7 класс Информатика \nОсновные понятия", height=4, width=25, foreground="black", background="lightgoldenrod1", command=show_text_5) button5.grid(row=0, column=5, padx=3, pady=10)
button13 = Button(window, text="•7 класс Информатика \nВиды информации \nпо назначению", height=4, width=25,
foreground="black", background="lightgoldenrod1", command=show_text_13) button13.grid(row=1, column=1, padx=3, pady=10)
button14 = Button(window, text="•7 класс Информатика \nПрограммное обеспечение", height=4, width=25, foreground="black", background="lightgoldenrod1", command=show_text_14) button14.grid(row=1, column=2, padx=3, pady=10)
button15 = Button(window, text="•7 класс Информатика \nФайловая система", height=4, width=25, foreground="black", background="lightgoldenrod1", command=show_text_15) button15.grid(row=1, column=3, padx=3, pady=10)
button16 = Button(window, text="•7 класс Информатика \nОсновы информационной\nбезопасности", height=4, width=25,
foreground="black", background="lightgoldenrod1", command=show_text_16) button16.grid(row=1, column=4, padx=3, pady=10)
button17 = Button(window, text="•7 класс Информатика \nИнформационные процессы", height=4, width=25, foreground="black", background="lightgoldenrod1", command=show_text_17) button17.grid(row=1, column=5, padx=3, pady=10)
label1 = Label(window, text="Темы 8-ого класса:" , font=("Helvetica ", 40), background="darkturquoise", foreground="black")
label1.grid(row=2, column=0, padx=3, pady=10)
button6 = Button(window, text="•8 класс Информатика \nСистема счисления ", height=4, width=25, foreground="black", background="lightgoldenrod2", command=show_text_6) button6.grid(row=2, column=1, padx=3, pady=10)
button7 = Button(window, text="•8 класс Информатика \nПеревод из 2, 8, 16
\nсистем счисления в 10 \nсистему счисления", height=4, width=25, foreground="black", background="lightgoldenrod2", command=show_text_7) button7.grid(row=2, column=2, padx=3, pady=10)
button8 = Button(window, text="•8 класс Информатика \nПеревод из одной
\nсистемы счисления в другую",
height=4, width=25, foreground="black", background="lightgoldenrod2", command=show_text_8) button8.grid(row=2, column=3, padx=3, pady=10)
button9 = Button(window, text="•8 класс Информатика \nАлгоритмы", height=4, width=25, foreground="black", background="lightgoldenrod2", command=show_text_9) button9.grid(row=2, column=4, padx=3, pady=10)
button10 = Button(window, text="•8 класс Информатика \nТипы данных", height=4, width=25, foreground="black", background="lightgoldenrod2", command=show_text_10) button10.grid(row=2, column=5, padx=3, pady=10)
button11 = Button(window, text="•8 класс Информатика \nФункции", height=4, width=25, foreground="black", background="lightgoldenrod2", command=show_text_11) button11.grid(row=3, column=1, padx=3, pady=10)
button12 = Button(window, text="•8 класс Информатика \nСтруктура программы", height=4, width=25, foreground="black", background="lightgoldenrod2", command=show_text_12) button12.grid(row=3, column=2, padx=3, pady=10)
button18 = Button(window, text="•8 класс Информатика \nОсновные блоки \nблоксхем", height=4, width=25,
foreground="black", background="lightgoldenrod2", command=show_text_18) button18.grid(row=3, column=3, padx=3, pady=10)
button19 = Button(window, text="•8 класс Информатика \nВысказывания и
\nоперации с ними", height=4, width=25,
foreground="black", background="lightgoldenrod2", command=show_text_19) button19.grid(row=3, column=4, padx=3, pady=10)
button20 = Button(window, text="•8 класс Информатика \nDiv и Mod", height=4, width=25, foreground="black", background="lightgoldenrod2", command=show_text_20) button20.grid(row=3, column=5, padx=3, pady=10)
label2 = Label(window, text="Тесты для повторения:", font=("Helvetica ", 40), background="darkturquoise", foreground="black")
label2.grid(row=4, column=0, padx=3, pady=10)
label4 = Label(window, text="Олимпиадные \nзадание:", font=("Helvetica ",
40), background="darkturquoise", foreground="black")
label4.grid(row=5, column=0, padx=3, pady=10)
questions_7 = [
"1. Информатика - это ... \n Написать одно слово.",
"2. Объектами изучения информатики являются:\nНаписать через 'и'.",
"3. По чему делятся типы информации\nНаписать через запятые.",
"4. Напишите формулу скорости передачи информации.",
"5. Напишите формулу информационного объёма сообщения.",
"6. Сколько байт в 3 Кбайтах?",
"7. Сколько бит в 10 Мбайтах?",
"8. Наименьший элемент дисплея - это ...",
"9. Описание на формальном языке, «понятном» компьютеру - это ...",
"10. Наименьшая единица измерения информации - это ..."
]
correct_answers_7 = [
"наука",
"информация и компьютер",
"способу восприятия, способу представления, назначению",
"I=V/t",
"I=K*i",
"3072",
"83886080",
"пиксель",
"программа",
"бит"
]
questions_7_1 = [
"1. Двоичный код – это код, содержащий…",
"2. Алфавит некоторого языка состоит из 32 символов. Каков
\nинформационный вес символа этого алфавита?",
"3. Сообщение из 50 символов несет 200 битов информации. \nКакова мощность алфавита, с помощью которого записано \nэто сообщение?",
"4. 1.5 Мбайт - это ... байт",
"5. Что является минимальной единицей измерения информации?",
"6. 1 байт равняется:",
"7. Алфавит языка состоит из 8 символов. Сколько информации \nнесет сообщение, состоящее из 64 символов?",
"8. Ввод звуковой информации в компьютер осуществляется \nс помощью…",
"9. Какая самая популярная операционная система?",
"10. Имя файла состоит из двух частей, разделённых точкой: ..."
]
correct_answers_7_1 = [
"0 и 1",
"5 битов",
"16",
"1536",
"1 бит",
"8 битам",
"192 бита",
"микрофона",
"Windows",
"имени файла и расширения"
]
questions_7_2 = [
"1. Что такое программное обеспечение компьютера?",
"2. Что такое операционная система?",
"3. Что такое каталог в файловой системе?",
"4. Что такое спам?",
"5. Что такое антивирус?",
"6. Какие 3 аспекта существует в информационной безопасности?",
"7. Что такое информационные процессы?",
"8. Какие существуют виды информации по значению?",
"9. Что такое массовая информация?", "10. Что такое секретная информация?"
]
correct_answers_7_2 = [
"это совокупность всех программ, предназначенных для выполнения на компьютере",
"это комплекс программ, обеспечивающих совместное функционирование всех устройств компьютера и предоставляющих пользователю доступ к ресурсам компьютера",
"это совокупность файлов на диске и взаимосвязей между ними", "массовая несанкционированная рассылка сообщений рекламного или несанкционированного характера",
"специализированные программы для выявления и устранения вирусов",
"доступность, целостность и конфиденциальность информации", "процессы, связанные с изменением информации или действиями с использованием информации",
"массовая, специальная, секретная, личная, общественно значимая",
"сведения, понятные большей части населения",
"сведения для узкого круга, передаваемые по закрытым каналам"
]
questions_8 = [
"1. Что такое система счисления? ",
"2. Какие буквы есть в шестнадцатеричной системе счисления?",
"3. Преобразуйте число 101011011, которое в двоичной системы\nсчисления в десятичную систему счисления.",
"4. Преобразуйте число 401, которое в восьмеричной системы\nсчисления в двоичную систему счисления.",
"5. Преобразуйте число 1A4F, которое в шестнадцатеричной системы\nсчисления в десятичную систему счисления.",
"6. Что такое алгоритм?",
"7. Перечислите свойства алгоритма.\nНаписать через запятые.",
"8. Как обозначается тип данных 'Логический' на языке Pascal.",
"9. Как обозначается корень квадратный из x на языке Pascal.",
"10. Как называется раздел описания переменных на языке Pascal.",
]
correct_answers_8 = [
"совокупность правил для записи чисел",
"A, B, C, D, E, F",
"347",
"100000001",
"6735",
"последовательность операторов Паскаль, с помощью которых мы пришли к решению задачи",
"понятность, точность, конечность, дискретность, массовость",
"Boolean",
"sqrt(x)",
"var",
]
questions_8_1 = [
"1. Сколько 1 в двоичной записи десятичного числа 15?",
"2. Как называется совокупность всех знаков, \nиспользуемых в системе счисления для записи чисел?",
"3. Как называются знаки, используемые в системе счисления для \nзаписи чисел?",
"4. Алгоритм, записанный на языке программирования, называется …",
"5. Для работы с вещественными числами в Паскаль \nиспользуется тип …",
"6. Имя программы записывается после слова …",
"7. Двоичное число 100110 в десятичной системе счисления \nзаписывается как:",
"8. Для вычисления квадратного корня из х используется функция:",
"9. Для вывода результатов в Паскале используется оператор:",
"10. Какой фигурой в блок-схеме обозначается проверка условия?",
]
correct_answers_8_1 = [
"4",
"алфавит",
"цифры",
"программой",
"real",
"program", "38",
"sqrt(x)",
"write",
"ромб",
]
questions_olymp = [
"1. Укажите тип файла koshka.jpeg:\nА) Звуковой Б) Графический В)
Текстовый",
"2. Укажите расширение файла olimpiada.docx:\nА) olimpiada Б) .docx В) docx",
"3. Какое расширение файла у WEB-страниц? ",
"4. Какое самое известное расширение звуковых файлов?" ,
"5. Какое расширение имеют системные файлы?" ,
"6. Какое расширение имеет файл языка Python?" ,
"7. Из скольки частей состоит имя файла?"
]
correct_answers_olymp = [
"Б",
"В",
"html",
"mp3",
"sys",
"py",
"2"
]
questions_olymp_1 = [
"1. Сколько ходов надо совершить, чтобы набрать воды ровно 1л,\nпользуясь банками в 3л и 5л?" ,
"2. Сколько ходов надо совершить, чтобы отмерить 4л воды с\nпомощью сосудов в 3л и 5л?" ,
"3. Сколько ходов надо совершить, имея лишь два сосуда\nёмкостью 5л и 7 л, отмерить 6л воды?" ,
"4. Сколько ходов надо совершить, чтобы из реки можно принести\nровно 6л воды, если имеется только два ведра:одно - емкостью 4л,\nдругое - 9л? ", "5. Бидон емкостью 10л заполнен молоком. Сколько ходов надо\nсовершить, чтобы перелить из этого бидона 5л в семилитровый\nбидон, используя при этом еще один бидон, вмещающий 3л." ,
"6. Сколько ходов надо совершить, чтобы имея два бидона\nемкостью 4л и
5л, можно ли налить в ведро 3л воды.\nЕсли емкость ведра не менее Зл?"
] correct_answers_olymp_1 = [
"4",
"8",
"10",
"8",
"8",
"5"
]
questions_olymp_2 = [
"1. Какое сочетание клавиш отвечает за возвращение к последнему\nвводу?",
"2. Какое сочетание клавиш отвечает за выделение всего?" ,
"3. Какое сочетание клавиш отвечает за копирование?" ,
"4. Какое сочетание клавиш отвечает за вставление?" ,
"5. Какое сочетание клавиш отвечает за переключение на строку\nпоиска?" ,
"6. Какое сочетание клавиш отвечает за открытие Cortana?" ,
"7. Какое сочетание клавиш отвечает за сохранение скриншота\nэкрана?" ,
"8. Какое сочетание клавиш отвечает за открытие новой вкладки\nили окна?"
]
correct_answers_olymp_2 = [
"CTRL+Z",
"CTRL+A",
"CTRL+C",
"CTRL+V",
"CTRL+E",
"WIN+C",
"WIN+PrtSc",
"CTRL+N",
]
questions_olymp_3 = [
"1. «Мозг» компьютера и любого другого электронного\nустройства - это ..." ,
"2. Устройство, преобразующее графический образ в форму,\nпригодную для дальнейшего вывода на экран монитора - это ..." ,
"3. Часть системы компьютерной памяти, в которой во время\nработы компьютера хранится информация - это ..." ,
"4. Как называется компонент в компьютере, которая используется\nдля лучшего контакта между процессором и кулером?" ,
"5. Устройство, которое преобразовывает сетевое переменное\nнапряжение в несколько постоянных напряжений, которые\nпотребляют различные компоненты компьютера – это …",
"6. Запоминающее устройство произвольного доступа, основанное\nна принципе магнитной записи – это …",
"7. Печатная плата, являющаяся основой построения модульного\nустройства
– это …"
]
correct_answers_olymp_3 = [
"процессор",
"видеокарта",
"оперативная память",
"термопаста",
"блок питания",
"жёсткий диск", "материнская плата"
]
questions_olymp_4 = [
"1. Одно из фундаментальных понятий информатики, \nописывающее некоторую последовательность действий - это…\nA) Internet Б) алгоритм B) Pascal Г) компьютер",
"2. Какими клавишами можно скопировать текст в буфер обмена?\nA) Ctrl +
Ins Б) Shift + Del B) Alt + Ctrl Г) Shift + Ins",
"3. Какое число является логическим продолжением ряда 17, 9, 5, 3?\nA) 1
Б) 2 B) 3 Г) 0",
"4. С каким расширением создается файл в программе Microsoft
\nPowerPoint? A) .doc Б) .xls B) .ppt Г) .bmp",
"5. Наглядное средство представления состава и структуры \nсистемы - это…A) блок-схема Б) граф B) схема Г) чертёж",
"6. Имеются два пустых флакона: на 5 и на 7 капель. Рядом -\nисточник воды. За какое наименьшее количество ходов можно \nотметить три капли?" , "7. В классе 1111 девочек и 1100 мальчиков.\nСколько учеников в классе?"
]
correct_answers_olymp_4 = [
"Б",
"А",
"Б",
"В", "Б",
"4",
"27"
]
question_7_title = "Тест для 7-го класса" button_question_7 = Button( window, text=question_7_title, height=4, width=25, foreground="black", command=lambda: question_window( title=question_7_title, questions=questions_7, correct_answers=correct_answers_7
) )
button_question_7.grid(row=4, column=2, padx=3, pady=3)
question_7_1_title = "Тест для 7-го класса" button_question_7_1 = Button( window, text=question_7_1_title, height=4, width=25, foreground="black", command=lambda: question_window( title=question_7_1_title, questions=questions_7_1, correct_answers=correct_answers_7_1
) )
button_question_7_1.grid(row=4, column=1, padx=3, pady=3)
question_7_2_title = "Тест для 7-го класса" button_question_7_2 = Button( window, text=question_7_2_title, height=4, width=25, foreground="black", command=lambda: question_window( title=question_7_2_title, questions=questions_7_2, correct_answers=correct_answers_7_2
) ) button_question_7_2.grid(row=4, column=3, padx=3, pady=3)
question_8_title = "Тест для 8-го класса" button_question_8 = Button( window, text=question_8_title, height=4, width=25, foreground="black", command=lambda: question_window( title=question_8_title, questions=questions_8, correct_answers=correct_answers_8
)
)
button_question_8.grid(row=4, column=4, padx=3, pady=3)
question_8_1_title = "Тест для 8-го класса" button_question_8_1 = Button( window,
text=question_8_1_title, height=4, width=25, foreground="black", command=lambda: question_window( title=question_8_1_title, questions=questions_8_1, correct_answers=correct_answers_8_1
) )
button_question_8_1.grid(row=4, column=5, padx=3, pady=3)
question_olymp_title = "Олимпиадные задачи\nРасширения" button_question_olymp = Button( window,
text=question_olymp_title, height=4, width=25, foreground="gray9", background="lightgoldenrod3", command=lambda: question_window( title=question_olymp_title, questions=questions_olymp, correct_answers=correct_answers_olymp
) )
button_question_olymp.grid(row=5, column=1, padx=3, pady=3)
question_olymp_1_title = "Олимпиадные задачи\ nПереливание " button_question_olymp_1 = Button( window,
text=question_olymp_1_title, height=4, width=25, foreground="gray9", background="lightgoldenrod3", command=lambda: question_window( title=question_olymp_1_title, questions=questions_olymp_1,
correct_answers=correct_answers_olymp_1
) )
button_question_olymp.grid(row=5, column=2, padx=3, pady=3)
question_olymp_2_title = "Олимпиадные задачи\nСочетание клавиш" button_question_olymp_2 = Button( window,
text=question_olymp_2_title, height=4, width=25, foreground="gray9", background="lightgoldenrod3", command=lambda: question_window( title=question_olymp_2_title, questions=questions_olymp_2,
correct_answers=correct_answers_olymp_2 ) ) button_question_olymp.grid(row=5, column=3, padx=3, pady=3)
question_olymp_3_title = "Олимпиадные задачи\nКомпоненты компьютера" button_question_olymp_3 = Button(
window,
text=question_olymp_3_title, height=4, width=25, foreground="gray9", background="lightgoldenrod3", command=lambda: question_window( title=question_olymp_3_title, questions=questions_olymp_3, correct_answers=correct_answers_olymp_3
) )
button_question_olymp.grid(row=5, column=4, padx=3, pady=3)
question_olymp_4_title = "Олимпиадные задачи\nРазное" button_question_olymp_4 = Button( window,
text=question_olymp_4_title, height=4, width=25, foreground="gray9", background="lightgoldenrod3", command=lambda: question_window( title=question_olymp_4_title, questions=questions_olymp_4, correct_answers=correct_answers_olymp_4
) )
button_question_olymp.grid(row=5, column=5, padx=3, pady=3)
window.mainloop()
Приложение 4 Первая страница при запуске приложения.
Приложение 5
Меню приложения
© ООО «Знанио»
С вами с 2009 года.