Файл: Основы программирования на языке Pascal (Исследование предметной области).pdf
Добавлен: 30.03.2023
Просмотров: 259
Скачиваний: 2
ВВЕДЕНИЕ
Современный мир информационных технологий очень активно развивается. Одним из главных её строительных блоков является программирование.
Язык программирования — это набор правил для компьютера или вычислительного устройства с целью решения определенных задач. Термин «язык программирования» обычно относят к языкам высокого уровня, таким как BASIC, C, C ++, COBOL, Java, FORTRAN, Ada, Pascal.
Компьютер понимает только значения в виде единиц и нулей. Однако программировать на таком уровне является очень сложной задачей для программиста.
«Язык высокого уровня» относится к более высокому уровню абстракции, чем машинный код. Вместо того, чтобы иметь дело с регистрами, адресами памяти и стеками вызовов, языки высокого уровня имеют дело с переменными, массивами, объектами, сложными арифметическими или булевыми выражениями, подпрограммами и функциями, потоками, блокировками и другими абстрактными концепциями компьютерной науки, с акцентом на удобство использования по сравнению с оптимальной эффективностью программы.
В отличие от низкоуровневых языков программирования, языки высокого уровня имеют мало, если таковые имеются, языковых элементов, которые переводятся непосредственно в собственные коды операций машины. Также могут присутствовать другие функции, например, такие как процедуры обработки строк, объектно-ориентированные языковые функции, ввод/вывод файлов. В отличие от языков низкого уровня, таких как ассемблер или, непосредственно, машинный код, высокоуровневое программирование может уменьшить контроль над разработкой и инициировать множество перемещений данных в фоновом режиме без ведома программиста. Ответственность и сложность выполнения инструкций были переданы от программиста к машине.
Находящиеся выше, языки высокого уровня — это языки, называемые языками четвертого поколения.
Процедурные языки — это языки программирования, в которых программы выражаются в виде последовательности явных подробных команд для компьютера, выполняемых по порядку. Они получают свое имя, позволяя группировать последовательности уже определенных инструкций в процедурах (иногда также называемых подпрограммами или функциями). Когда процедура определена, ее можно многократно вызывать из других частей программы и, таким образом, расширять диапазон команд, которые остальная часть программы может передавать на выполнение компьютеру.
Цель данной работы изучение основ программирования на языке Pascal.
Объектом исследования является изучение основ программирования, а предметом исследования изучение основ программирования языка Pascal.
Актуальность данной работы довольно большая, поскольку процедурные языки используются повсеместно и имеют сильное влияние на мир информационных технологий.
В рамках курсового проекта должны быть решены следующие задачи:
- раскрытие понятия «программирование»;
- анализ парадигм программирования;
- исследования истории появления языка Pascal;
- изучение синтаксиса языка Pascal;
- разработка программ на языке Pascal.
В качестве источников литературы использовались различного рода материалы по приведенным в работе языкам программирования и общим парадигмам. В конце работы приведен перечень используемой литературы.
1. Исследование предметной области
1.1 Сущность программирования
Программирование — это процесс и искусство создания компьютерных программ с помощью языков программирования.
Программирование не является наукой: нельзя получить формулу, благодаря которой «рассчитываются» программы на все случаи жизни. Соприкосновение с математикой происходит в других сферах: при оценке производительности программ (алгоритмов); использовании в программировании математических методов, теории алгоритмов и формальных систем.
Программирование имеет отношение к искусству, поскольку, стиль программирования глубоко индивидуален, а элегантный алгоритм способен вызывать эстетическое наслаждение, как и произведение искусства.
Наиболее очевидно то, что программирование имеет отношение к ремеслу. Технология – это кристаллизованное ремесло, а о технологии программирования говорится много и постоянно.
Изучение программирования нельзя начать, не ответив на вопросы: а что же такое язык программирования, алгоритм, программа, данные. [2, 7, 16]
Язык программирования — формальная знаковая система для описания программы работы компьютера в форме, пригодной для трансляции и исполнения на компьютере. Язык программирования – это, прежде всего, инструмент деятельности, и на него в первую очередь оказывает влияние класс решаемых на нем задач. Хотя бы один язык нужно знать досконально, чтобы представлять многообразие имеющихся средств и иметь возможность сравнивать с другими. Для будущих специалистов в области компьютерных технологий, безусловно, необходимо изучение языка С. Универсализм его не в том, что на нем можно написать все, а в том, что на нем можно написать все, на чем пишется все остальное, а именно: операционные системы, базы данных, трансляторы и т.п.
Назначение программирования — разработка программ управления компьютером с целью решения различных информационных задач.
Специалисты, профессионально занимающиеся программированием, называются программистами. В первые годы существования ЭВМ для использования компьютера в любой области нужно было уметь программировать. В 1970-х - 80-х годах XX века начинает развиваться прикладное программное обеспечение. Бурное распространение прикладного ПО произошло с появлением персональных компьютеров. Стало совсем не обязательным уметь программировать для того, чтобы воспользоваться компьютером. Люди, работающие на компьютерах, разделились на пользователей и программистов. В настоящее время пользователей гораздо больше, чем программистов. [2, 7, 16]
Может возникнуть впечатление, что программисты теперь уже и не нужны, но кто же тогда будет создавать операционные системы, редакторы, графические пакеты, компьютерные игры и многое другое. Программисты, безусловно, нужны, причем задачи, которые им приходится решать, со временем становятся все сложнее.
Программирование принято разделять на системное и прикладное. Системные программисты занимаются разработкой системного программного обеспечения: операционных систем, утилит и пр., а также систем программирования. Прикладные программисты создают прикладные программы: редакторы, табличные процессоры, игры, обучающие программы и многие другие. Спрос на высококвалифицированных программистов, как системных, так и прикладных, очень большой.
Для составления программ существуют разнообразные языки программирования.
Язык программирования — это фиксированная система обозначений для описания алгоритмов и структур данных.
Популярными языками программирования сегодня являются Pascal, C, C#, Java и др.
Для создания и исполнения на компьютере программы, написанной на языке программирования, используются системы программирования.
Система программирования — это программное обеспечение компьютера, предназначенное для разработки, отладки и исполнения программ, записанных на определенном языке программирования.
Существуют системы программирования на Паскале, Бейсике и других языках. [2, 7, 16]
Примером узкоспециализированного программирования является Web-программирование, ориентированное на создание Web-сайтов. Для этих целей, например, используются языки HTML, JavaScript. Языки Паскаль, Бейсик, Си относятся к числу универсальных языков программирования.
Разработка любой программы начинается с построения алгоритма решения задачи.
1.2 Парадигмы программирования
Парадигма программирования — это комплекс концепций, принципов и абстракций, определяющих фундаментальный стиль программирования.
Одной из характеристик языка является его поддержка определенных парадигм программирования. Например, Smalltalk имеет прямую поддержку программирования объектно-ориентированным способом, поэтому его можно назвать объектно-ориентированным языком. Программы OCaml, Lisp, Scheme и JavaScript имеют тенденцию активно использовать функции, поэтому они называются «функциональными языками», несмотря на наличие переменных и многих императивных конструкций.
Здесь есть два очень важных замечания:
- Очень немногие языки реализуют парадигму на 100%. Если они это делают, они являются чистыми. Очень необычно иметь «чистый ООП» язык или «чистый функциональный» язык. У многих языков есть несколько ответвлений; например, в OCaml, можно программировать с функциями на 90% или более времени.
- Многие языки облегчат программирование в одной или нескольких парадигмах. В Scala можно легко программировать с точки зрения объектно-ориентированного, и одновременного функционального программирования. Если язык специально предназначен для программирования во многих парадигмах, то он называется многопарадигменным языком. Бывают языки, которые стали поддерживать многофункциональность случайно, то есть изначально они не были разработаны с этой целью. Создатели таких языков придерживаются точки зрения, гласящей, что ни одна парадигма не может быть одинаково эффективной для всех задач, и следует позволять разработчику выбрать лучший стиль программирования для решения каждой отдельной задачи.
Рассмотрим различные парадигмы программирования. [3, 8]
Управление потоком в императивном программировании является явным: команды показывают, как вычисление происходит, шаг за шагом.
Императивная парадигма программирования предполагает, что компьютер может поддерживать через среду переменных любые изменений в процессе вычислений.
Вычисления выполняются с помощью последовательности шагов, в которой эти переменные упоминаются или изменяются. Порядок шагов имеет решающее значение, поскольку данный шаг будет иметь разные последствия в зависимости от текущих значений переменных при выполнении шага. [9]
Императивные языки программирования необходимы чаще, чем любые другие парадигмы в этом направлении. Для такой популярности есть две причины:
- императивная парадигма наиболее близко напоминает собственно машинный код, поэтому программист гораздо ближе к “железу”;
- из-за такой близости императивная парадигма была единственной, достаточно эффективной для широкого использования до недавнего времени.
Преимущества императивного подхода:
- эффективность;
- близость к «железу»;
- популярность;
- знаком программистам.
Недостатки императивного подхода:
- семантика программы может быть сложной для понимания или доказательства, поскольку ссылочная прозрачность не выполняется (из-за побочных эффектов);
- побочные эффекты также затрудняют отладку;
- абстракция более ограничена, чем в некоторых других парадигмах.
Логическая Парадигма применяет декларативный подход к решению проблем. Логическая парадигма программирования предусматривает использование математической логики для разработки программ. Проводятся различные логические утверждения о ситуации, устанавливаются все известные факты. Затем выполняются запросы. Роль компьютера — это сохранение данных и логический вывод. [15]
Логическая программа разделена на три раздела:
1. ряд определений/деклараций, определяющих проблемную область;
2. заявления соответствующих фактов;
3. постановка целей в форме запроса.
Возвращается любое выводимое решение для запроса. Определения и декларации строятся целиком из отношений. т.е. X является членом Y или X находится внутри между a и b, и т. д.
Преимущества логико-ориентированного программирования многообразны:
- система решает проблему, поэтому само программирование сводятся к минимуму;
- доказательство действительности разработанных на нём программ является простым.
Функциональная парадигма программирования рассматривает все подпрограммы, как функции в математическом смысле, неформально, они принимают в качестве аргументов и возвращают единственное решение. Возвращенное решение полностью основано на вводе, а время, когда функция вызывается, не имеет никакого отношения. Поэтому вычислительная модель является одним из функций приложения и сокращения.
Функциональные языки создаются на основе функциональной парадигмы. Такие языки допускают функциональные решения проблем, позволяя программисту рассматривать функции как объекты первого класса (их можно рассматривать как данные, которые, как предполагается, имеют значение того, что они возвращают, поэтому они могут быть переданы другим функциям в качестве аргументов или возвращены от функций). [6, 9, 11]