Файл: Особенности описания операторов управления в различных языках программирования: достоинства и недостатки.pdf
Добавлен: 01.04.2023
Просмотров: 339
Скачиваний: 1
СОДЕРЖАНИЕ
1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ
1.1 Эволюция языков программирования
1.2 Алгоритмический язык программирования Basic
1.3 Алгоритмический язык программирования Pascal
1.4 Алгоритмический язык программирования C++
2. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА С\С++, PASCAL, BASIC
Современному продвинутому пользователю пакета прикладных программ Microsoft Office хорошо известна версия VBA (Visual Basic for Applications) – встроенная в программы пакета полноценная система программирования, делающая возможной разработку на базе любой из программ качественного приложения с использованием всего потенциала возможностей обработки данных.[18]
1.3 Алгоритмический язык программирования Pascal
Язык программирования Pascal разработан профессором Высшей федеральной технической школы в Цюрихе (Швейцария) Николаусом Виртом – рисунок 5. Автор дал созданному языку программирования имя в честь известного французского математика и философа Блеза Паскаля.
Рисунок 5 – Никлаус Вирт
Начало создания Pascal датируют 1968 годом – именно в этот период был подготовлен проект будущего языка программирования языка. Транслятор Pascal для вычислительной машины CDC 6400 был готов в 1970, а в 1971 году было представлено первое официальное описание языка.[16]
Наиболее интенсивное развитие и распространение язык получил в 1972-1975 годы. За это время он стал общепризнанным языком программирования и стал основным языком публикации программ и преподавания дисциплины программирования. Нашлись и критики, которые были не удовлетворены слишком строгими ограничениями некоторых конструкций языка.
С 1977 г. была работает группа по разработке стандарта языка Паскаль, первый международный стандарт языка был объявлен 1 декабря 1983 года.
Новую жизнь язык получил в 1992 году, когда фирмой Borland International были представлены два новых пакета программирования - Borland Pascal 7.0 и Turbo Pascal 7.0.[4]
Сегодня алгоритмический язык программирования высокого уровня Pascal является общепризнанным языком обучения программированию. Он сочетает в себе как основные методы полноценного алгоритмического языка программирования, так и доступную форму, позволяющую начинающему программисту освоить технологию создания любых программ.
Огромной популярностью у программистов во всем мире пользуется интегрированная среда программирования Delphi, программирование объектов в которой осуществляется на одноименном языке программирования, основой которого является Object Pascal. В Delphi используется современный объектно-ориентированный подход.[17]
1.4 Алгоритмический язык программирования C++
Алгоритмический язык программирования С разработан начале 70х годов Кеном Томпсоном и Дэннисом Ритчи (рисунок 6) в процессе разработки операционной системы для компьютера PDP-11 (разработка компании DEC — Digital Equipment Corporation).[13]
Первоначально была создана часть компилятора С, впоследствии она же была использована для компиляции остальной части компилятора С. Результат - разработанный компилятор для компиляции операционной системы UNIX. Операционная система UNIX первоначально распространялась в исходных кодах на С среди университетов и лабораторий, а получатель мог откомпилировать исходный код на С в машинный код с помощью подходящего компилятора С.
Рисунок 6 - Кен Томпсон и Дэннис Ритчи
Открытое распространение исходного кода программы создало из операционной системы UNIX уникальный феномен, так как давало возможность любому программисту изменить операционную систему и перенести исходный код с одной аппаратной платформы на другую. В настоящее время это стало общепризнанным стандартом.[19]
В 1989 стандарт был утвержден первый стандарт языка, а в 1990 году стандарт был принят в международном масштабе. Этот стандарт совершенствуется и поддерживается и в настоящее время.[8]
Первый коммерческий транслятор нового языка, получившего название C++, появился в 1983 году. Главное нововведение C++ - механизм классов, дающий возможность определять и использовать новые типы данных. Программист описывает внутреннее представление объекта класса и набор функций-методов для доступа к этому представлению. [11]
Дочерними по отношению с C являются и популярные сегодня языки программирования C# и Java.
В настоящее время язык программирования C++ является одним из наиболее востребованных языков программирования и входит в топ-20 (из более чем 2000 языков программирования высокого уровня). Индекс, демонстрирующий популярность языков программирования за определенный промежуток времени, как правило, один год, называется TIOBE.
Индекс TIOBE- индекс, демонстрирующий популярность языков программирования среди профессионалов. Индекс обновляется раз в месяц и основывается на количестве поисковых запросов на таких ресурсах как Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube and Baidu. По идее создателей TIOBE демонстрирует не самый «лучший» язык, а самый «популярный» язык за тот или иной промежуток времени.
На рисунке 7 представлен индекс TIOBE на июль 2019 года по сравнению с июлем 2018года. Позиция С++ усилилась за прошедший год на 2,55%, хотя по популярности язык и уступил третье место, на котором уверенно держался в течение нескольких последних лет, языку Python.
При этом языки C и C++ , представляющие фактически одно семейство языков, совместно держат в этом рейтинге первое место.
Индекс TIOBE является авторитетным в профессиональной среде индикатором популярности языков программирования, ему доверяют многие уважаемые эксперты в области программирования.
Рисунок 7 - Топ-20 (индекс TIOBE) на июль 2019 года
По представленным данным можно судить, что исследуемые в рамках курсовой работы языки программирования, хотя и колеблются в рейтинге в течение года, но всего на 1 – 2 позиции, то есть имеют свою устойчивую позицию в топ-20.
На основании изученного материала можно сделать вывод о том, что выбор языков для программирования сделан правильно. Basic, C++ и Pascal – популярные языки, прошедшие проверку временем и развивающиеся в соответствии с современными концепциями разработки программного обеспечения.
2. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА С\С++, PASCAL, BASIC
В данном разделе курсовой работы рассмотрена реализация основных алгоритмических структур в процедурно-ориентированных языках программирования высокого уровня C, Pascal и Basic.
При разработке программы и/или составлении блок-схемы алгоритма используют следующие базовые алгоритмические конструкции: линейная, циклическая и ветвящаяся.
К операторам управления относят операторы перехода, операторы выбора и операторы цикла, которые позволяют изменить линейный ход программы.
2.1 Линейный алгоритм
Линейный алгоритм (следование) описывает последовательное выполнение команд и представляется алгоритмически последовательностью блоков «процесс». Линейный алгоритм представлен на рисунке 8.[21]
Рисунок 8 – Линейная алгоритмическая конструкция
Реализация линейного алгоритма на языках программирования C (среда MS Visual Studio 2010) , Pascal (версия PascalABC) и Basic (версия QBasic) представлены на рисунках 7, 8 и 9. Программа вычисляет сумму двух целых чисел.
|
Код программы |
Результат выполнения программы |
|
#include "stdafx.h" #include <fstream> #include <iostream> using namespace std; int main() { int a, b; cout <<"a = "; cin>>a; cout <<endl; cout <<"b = "; cin>>b; cout <<endl; cout <<"a + b ="<< a + b<<endl<<endl; system("Pause"); } |
Рисунок 9 – Линейный алгоритм на языке программирования C
|
Код программы |
Результат выполнения программы |
|
var a, b:integer; begin write ('a = '); readln (a); write ('b = '); readln (b); writeln('a + b = ',a+b); end. |
Рисунок 10 - Линейный алгоритм на языке программирования Pascal
|
Код программы |
Результат выполнения программы |
Рисунок 11 - Линейный алгоритм на языке программирования Basic
Для реализации линейного алгоритма во всех алгоритмических языках программирования используются три основных оператора:
- оператор ввода информации (предназначен для передачи программе значений переменных с клавиатуры или из файлов);
- оператор вывода информации (предназначен для вывода обработанной информации на устройства вывода - экран монитора, принтер, файл в удобной для пользователя форме);
- оператор (предназначен для присваивания переменным как конкретных значений, так и значений некоторых выражений).[14]
Сводная таблица операторов ввода, вывода информации и присваивания представлена на рисунке 12.
Рисунок 12 - Сводная таблица операторов ввода, вывода информации и присваивания
Все изучаемые языки программирования имеют удобный аппарат для ввода/ вывода данных, а также для присваивания значений переменным.
Следует отметить, что все языки имеют средства для форматирования вывода, тог есть для организации вывода, например, определенного количества знаков в десятичной части числа и т.п.
2.2 Разветвляющийся алгоритм
Для изменения линейного хода программы могут быть использованы операторы условного и безусловного перехода.
Оператор безусловного перехода в языках программирования Pascal, C++, Basic реализуются одинаково:
goto <метка>
с точностью до синтаксических особенностей (например, в Pascal и C++ строка должна быть завершена точкой с запятой).
Оператор безусловного перехода передает управление строке, помеченной как метка. [10]
Специалисты не рекомендуют использовать в программах оператор безусловного перехода, так как он может нарушить логику программы. Считается, что программа любой сложности может быть реализована без использования оператора безусловного перехода, тем не менее, в отдельных случаях использование этого оператора оптимизирует программу. [7]
Алгоритм разветвляющегося вычислительного процесса это алгоритм, в котором, в зависимости от выполнения или невыполнения заданного логического условия, производится выбор одного из нескольких направлений, называемых ветвями. [22]
Разветвляющийся алгоритм может быть реализован в полной или неполной форме. Разветвляющийся алгоритм представлен на рисунках 13, 14.
Рисунок 13 – Полная форма разветвляющегося алгоритма
Рисунок 14 - Неполная форма разветвляющегося алгоритма
Реализация полной формы разветвляющегося алгоритма на языках программирования C, Pascal и Basic представлена на рисунках 15, 16 и 17. Программа определяет четность введенного пользователем числа.
|
Франгмент программы |
Результат выполнения программы |
|
int main() { int a;setlocale (LC_ALL, "Russian"); cout <<"a = "; cin>>a; cout <<endl; if (a%2==0) cout <<a<<" - четное число "<<endl; else cout <<a<<" - нечетное число "<<endl<<endl; system("Pause"); } |
1) 2) |
Рисунок 15 – Разветвляющийся алгоритм на языке программирования C
|
Фрагмент программы |
Результат выполнения программы |
|
var a:integer; begin write ('a = '); readln(a); if odd(a) then writeln(a, ' - нечетное число') else writeln(a, ' - четное число') end. |
1) 2) |
Рисунок 16 - Разветвляющийся алгоритм на языке программирования Pascal
|
Фрагмент программы |
Результат выполнения программы |
|
1) 2) |
Рисунок 17 - Разветвляющийся алгоритм на языке программирования QBasic
Сводная таблица операторов условного перехода в полной и неполной форме представлена на рисунке 18.
Рисунок 18 - Сводная таблица оператора условного перехода
Во всех языках программирования оператор условного перехода имеет идентичную логику выполнения.