Добавлен: 12.12.2023
Просмотров: 41
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
КУРСОВОЙ ПРОЕКТ
ВВЕДЕНИЕ
Прикладные программы являются неотъемлемой частью жизни каждого пользователя персонального компьютера, такие программы отвечают за выполнения множества задач, таких как написание текстовых документов, обработка аудио или видео файлов, а также выполнение математических расчетов. Подобные приложения позволяет решать огромное количество задач быстрее и точнее, чем это смог бы обычный человек и является существенным фактором в развитие различных сфер деятельности человека начиная с простого ведения учета расходов за месяц и заканчивая запуска ракет в космос.
Целью курсовой работы является углубление знаний и расширение навыков по разработке алгоритмов и их реализации на персональном компьютере на примере создание калькулятора на языке Python для выполнения простейших математических вычислений.
Для выполнения поставленной цели необходимо решить следующие задачи:
- провести анализ предметной области;
- изучить доступные средства программирования;
- изучить существующие аналоги приложения;
- разработать компоненты приложения.
Курсовая работа состоит из введения, двух глав каждая из которых состоит из 3 параграфов, заключения, списка использованных источников и приложений, по завершению работы поставленная цель была достигнута, задачи были выполнены.
Для выполнения работы был использован аналитический метод исследования и также метод моделирования.
Глава 1. Теоретические аспекты создания приложения Калькулятор в объектно-ориентированном языке программирования Python
Сущность языка программирования
Язык программирования является формальным языком, предназначенным для записи компьютерных программ, он определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые будут выполняться исполнителем.
Большая часть языков программирования состоят из инструкций для компьютера. Существуют программируемые машины, которые используют специфические инструкции, а не языки программирования.
Описание программного языка как правило разделяется на два компонента синтаксис (форма) и семантика (значение). Некоторые языки четко определены при помощи документаций, например, ISO стандарты в случае с языком программирования C, тогда как другие используют декларативные формы, то есть описывается, что представляет собой проблема и ожидаемый результат.
Языки программирования обладают следующими характерными чертами:
Функции и цели – язык компьютерного программирования используются для взаимодействия между человеком и машиной, в большинстве случаев в роли машины выступает компьютер.
Абстракция – языки программирования обычно содержат абстракции для обозначения и управления структурой данных и порядком управления.
Сила выражений – теория алгоритмов классифицирует языки программирования, по алгоритмам, которые они способны выражать.
История языков программирования начинается с 1940 года. В этом году был создан первый современный компьютер, но мощности компьютера на тот момент не хватало для выполнения программ на языке ассемблера и было необходимо вручную переписывать команды на язык нулей и единиц.
Конрад Цузе создал свой высокоуровневый язык Планкалкюль (Plankalkül) в 1943-1945 для своего Z1 компьютера, но язык не был имплементирован.
Первые функционирующие языки программирования появились в 1950-х годах. Short Code Джона Уильям Мокли, предложенный в 1949 году, был одним из первых высокоуровневых языков для электронного компьютера. В отличие от машинного кода, выражения в Short Code представляли из себя понятные математические выражения. Однако при каждом запуске программы она переводилась в машинный код что существенно замедляло скорость работы и по сравнению с эквивалентным машинным кодом Short Code был медленнее.
В ранних 1950-х, Алик Глени разработал Autocode, возможно первый компилируемый язык программирования. В 1954 году вторая итерация данного языка известная как Mark 1 Autocode была разработана для Mark 1 Брукером Р.А. Затем в 1950-х вместе с Университетом Манчестера Брукер разработал Autocode для Ферранти Меркури. Версия для EDSAC 2 была разработана Дугласом Харти из Кембриджского Университета.
В 1954 году командой под лидерством Джона Бакус из IBM был изобретен FORTRAN. Это был первый повсеместно используемый высокоуровневый язык программирования с имплементацией функций. Данный язык все еще используется для написания программ оценки производительности суперкомпьютеров.
Период с 1960 по 1970 годов принес расцвет языков программирования. Большинство современных парадигм программирования появились именно в этот период.
Speakeasy – разработан в 1964 году в ANL Стэнли Кохен, является объектно-ориентированным языком программирования. Использует синтаксис Fortran как свою основу. Данный язык всё еще используется.
Simula – разработан в поздних 1960-х Нигардом и Далем как надстройка Algol 60, был первым языком с поддержкой объектно-ориентированного программирования.
C – компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка B.
Smalltalk – середина 1970-х, предоставил фундаментальный дизайн объектно-ориентированного языка.
Prolog – разработан в 1972 году Колмерауером, Рузелом и Ковальски, является первым логическим языком программирования.
ML – разработан Робином Милнером в 1973 году, разработал статическую типизацию функциональных языков программирования.
Большинство современных языков являются родственниками хотя бы одного из перечисленных языков.
В 1960-1970-х также проводились дебаты о преимуществах «структурированного программирования», что означает программирование без использования «goto». Большая часть программистов верила в то, что использование «goto» является плохим стилем программирования за исключением некоторых случаев. Причина возникновения подобных дебатов являлось то, что некоторые языки программирования не использовали «goto», что заставляло программистов использовать структурированный подход к программированию.
В 1980-ые вместо создания новых парадигм, все начали более тщательно прорабатывать идеи разработанные в прошлом десятилетие. C++ совместило объектно-ориентированное программирование и системное программирование. США стандартизировали Ada. Многие страны начали инвестировать в пятое поколение языков программирования.
Одним из важнейших новых трендов является дизайн языков с фокусом на большие системы через использование модулей или больших организационных юнитов кода. Ada и ML использовали модульные системы.
Пусть в этот период и не появилось новых крупных парадигм, но разработчики расширили идеи старых парадигм и адаптировали их под современные условия.
В 1990-х благодаря росту популярности сети интернет, открылись новые платформы для компьютерных систем. Интернет дал возможность новым языкам таким как JavaScript получить популярность благодаря ранней интеграции с Netscape Navigation браузером. Различные другие языки получили распространение в разработки специальных приложений для веб-серверов, например, PHP.
Более радикальными и инновационными чем RAD языки стали новые сценарные языки. Они имели новый синтаксис и более свободное объединение функций. Сценарные языки стали самыми выдающимися языками для веб разработки.
В настоящее время присутствуют определенные тренды развития языков программирования, такие как:
-
увеличение поддержки функционального программирования в коммерческих популярных языках, включая чистоту функционального программирования чтобы сделать код легче для восприятия и распараллеливать на микро- и макро- уровнях; -
конструкции для поддержки параллельного и распределенного вычисления; -
механизмы для улучшения безопасности и надежности верификаций языка: увеличенная проверка статичных данных, зависимого типа, контроль информационного потока, статичная потоковая безопасность; -
альтернативные механизмы для компонуемой и модульности: примесь, типаж, классы типов, делегации, аспекты; -
компонент ориентированная разработка ПО; -
метапрограммирование, рефлексия или доступ к абстрактному синтаксическому дереву; -
увеличение интереса в распространение и мобильности; -
интеграция с базами данных; -
открытое программное обеспечение как философия языков программирования; -
исследование квантовых компьютеров; -
повышенный интерес в визуальных языках программирования.
Каждый из языков программирования следует хотя бы одной из парадигм программирования. Парадигма программирования – это совокупность идей и понятий, определяющих стиль написания компьютерных программ. Выделяют следующие основные парадигмы:
• императивная парадигма – исходный код состоит из команд, которые выполняются последовательно, а результат этих команд может быть записан в память и читаться последующими инструкциями;
• декларативная парадигма – в данном стиле написания исходного кода задаётся спецификация решения задачи, то есть описывается, что представляет собой проблема и ожидаемый результат;
• структурная парадигма – в основе лежит представление программы в виде иерархической структуры блоков;
• функциональная парадигма – противопоставляется императивной парадигме;
• логическая парадигма – основа на автоматическом доказательстве теорем;
• объектно-ориентированная парадигма - основана на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования.
Практически все современные языки программирования в той или иной степень допускают использование различных парадигм, также парадигмы зачастую пересекаются в деталях. По статистике tiobe.com из 5 самых популярных языков программирования 4 являются объектно-ориентированными языками.
Специфика объектно-ориентированной парадигмы программирования
Объектно-ориентрованное программирование является одной из методологий (парадигм) разработки программного обеспечения, в эту методологию входят языки, основанные на концепции «объектов» – условных сущностей, которые объединяют в себе поля (данные) и методы (выполняемые объектом действия).
Достаточно сложно конкретно определить, что такое объектно-ориентированный язык программирования, одним из основных подходов являются 6 принципов Алана Кэя, отца основателя ООП.
-
Всё является объектом. -
Вычисления осуществляются путём взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие. Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия. -
Каждый объект имеет независимую память, которая состоит из других объектов. -
Каждый объект является представителем класса, который выражает общие свойства объектов (таких, как целые числа или списки). -
В классе задаётся поведение (функциональность) объекта. Тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия. -
Классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования. Память и поведение, связанное с экземплярами определённого класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве.
Особенностями данных объектно-ориентированных языков использование механизмов, таких как – наследование, инкапсуляция, полиморфизм.
Наследование - Создание нового класса объектов путём добавления новых элементов (методов). Некоторые объектно-ориентированные языки позволяют выполнять множественное наследование, то есть объединять в одном классе возможности нескольких других классов.
Инкапсуляция – сокрытие деталей реализации, которое позволяет вносить изменения в части программы безболезненно для других её частей, что существенно упрощает сопровождение и модификацию ПО.