Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Особенности описания операторов управления в различных языках программирования: достоинства и недостатки

Содержание:

ВВЕДЕНИЕ

Стремительное развитие компьютерной техники и программного обеспечения являются характерными приметами нынешнего времени. Согласно статистике, в глобальной сети Интернет ежесекундно появляется 6 тысяч новых сообщений, обрабатываются 40 тысяч поисковых запросов в Google и отправляется около 2 миллионов электронных сообщений.

За время бурного развития и массового распространения технологий человечеством сгенерировано огромное количество данных. Настолько огромное, что человек не в состоянии обработать и визуализировать эти данные. Явление получило собственное название – большие данные, Big Data. При правильном подходе к большим данным из них можно извлечь значительную пользу. Эффективно использовать такой наплыв данных помогает людям сегодня только искусственный интеллект.

Еще вчера описание искусственного интеллекта и роботов, почти неотличимых от людей, было уделом писателей – фантастов. Сегодня многие практические задачи решаются с использованием технологий искусственного интеллекта.

В сентябре 2016 года глава Сбербанка Герман Греф выразил мысль, показавшуюся многим фантастической - через пять лет Сбербанк сможет принимать 80% всех решений с помощью искусственного интеллекта. Но утверждение базировалось на анализе ситуации и опыте внедрения новейших технологий за несколько предыдущих лет.

Появление новой области деятельности влечет за собой рождение новых профессий. Каждый человек хочет идти в ногу со временем, изучать и использовать на своем рабочем месте самые современные научные достижения. Можно утверждать, что одни из самых завидных профессий ближайшего будущего - специалист по работе с данными и специалист в сфере машинного обучения.

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

Специалист в области манипулирования большими данными понимает, в каком виде данные необходимо представить компьютеру. Его задачей является обеспечить такие данные на вход компьютера. Специалист же по машинному обучению подбирает архитектуру и обучающие алгоритмы, для работы с большими данными.

Чтобы приблизиться к этим интересным профессиям, надо как минимум уметь общаться с компьютером на понятном для него языке. Сегодня компьютеры понимают языки программирования высокого уровня. Изучив их, можно подняться на одну ступеньку в понимании логики работы этих сложнейших устройств.

В современном программировании используется огромное количество различных языков программирования высокого уровня. Некоторые языки, едва увидев свет, сразу же были забыты. Другие завоевали популярность как в среде профессионалов, так и среди изучающих языки программирования студентов. Эти языки развиваются, появляются их новые версии, отвечающие современным парадигмам программирования.

Процедурно-ориентированные языки программирования высокого уровня служат для описания процедур (алгоритмов) решения задач, поэтому их также называют алгоритмическими языками программирования. Наиболее популярными процедурно-ориентированными языками программирования являются C/C++, Basic, Pascal.

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

Объектом исследования курсовой работы являются процедурно-ориентированные языки программирования высокого уровня.

Предметом исследования курсовой работы является изучение основ программирования с помощью процедурно-ориентированных языков программирования высокого уровня C/C++, Basic, Pascal, сравнение операторов управления в этих языках и реализация учебных программ на этих языках.

Цель курсовой работы – знакомство с процедурно-ориентированными языками программирования высокого уровня C/C++, QBasic, PascalABC и сравнение реализации операторов управления в этих языках.

Задачи курсовой работы:

  • изучить особенности процедурно-ориентированных языков программирования высокого уровня;
  • освоить основы программирования на процедурно-ориентированных языках программирования высокого уровня C/C++, QBasic, PascalABC;
  • изучить приемы реализации основных алгоритмических структур на C/C++, QBasic, PascalABC;
  • разработать учебные программы на языках программирования C/C++, QBasic, PascalABC с использованием операторов управления;
  • сравнить и проанализировать полученные результаты.

Методы исследования, используемые при реализации курсовой работы:

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

1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

Языком программирования называется формальная знаковая система, назначение которой состоит в разработке программного кода, понятного исполнителю. В качестве исполнителя может выступать любой субъект или объект, умеющий исполнять определенный набор команд (система команд исполнителя) и строго подчиняющийся алгоритму – последовательности их исполнения. Чаще всего роль исполнителя играет компьютер и другая микропроцессорная техника.

Язык программирования (Programming language) - совокупность предписаний для формулирования алгоритмов и структур данных, определенная по строгим правилам искусственная формальная система, посредством которой описываются алгоритмы. Язык программирования состоит из групп лексических, синтаксических и семантических правил, формирующих внешнюю сторону программы и действия, выполняемые исполнителем (в первую очередь - компьютером) под ее управлением.[2]

С момента появления первых языков программирования до наших дней прошло не так много времени, тем не менее, по некоторым оценкам исследователей сегодня их известно более 2000. Как и среди естественных языков, среди них есть мертвые языки, которые никто не использует, а есть настоящие долгожители. К таким языкам относятся исследуемые в рамках курсовой работы Basic, Pascal и C/C++ – одни из самых популярных языков программирования, прошедших проверку временем.

1.1 Эволюция языков программирования

Язык программирования – это искусственный формальный язык, который используют для записи алгоритма (последовательности команд) в виде, пригодном для его исполнения на компьютере.

С точки зрения уровня языка программирования принята классификация, представленная на рисунке 1.

Рисунок 1 – Классификация языков программирования по уровню

Языки программирования относят к инструментальному программному обеспечению – то есть они рассматриваются как инструмент разработки программных приложений для любых сфер науки, производства, обслуживания и досуга. Специалисты по признаку ориентированности выделяют пять поколений языков программирования – таблица 1.

Таблица 1 – Поколения языков программирования

Поколение

Языки программирования

Назначение, особенности

I

Машинные языки программирования

Ориентированы на использование в конкретной архитектуре ЭВМ

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

II

Ассемблер, микроассемблер

Машинно-зависимые языки, ориентированы на архитектуру конкретного компьютера.

Команды приближены к словесным кодам, поэтому лучше понятны для человека.

III

Языки программирования высокого уровня

(Fortran, Cobol, PL и др.)

Человеко – ориентированные. Ориентированы на массового непрофессионального пользователя. Просты в изучении основ, удобны для применения.

IV

Непроцедурные, объектно - ориентированные, языки запросов, параллельные

(Basic, Pascal, C++, Prolog, Langin, Simula и др.)

Машинно независимы. Ориентированы на компьютеры с параллельной архитектурой.

V

Языки искусственного интеллекта, экспертных систем и баз знаний, естественные языки

(IQLisp, SAIL, Clout и др.)

Ориентированы на повышение интеллектуального уровня компьютера и использование интерфейса на естественном языке

По признаку направлений наиболее частого применения можно предложить следующую классификацию активно используемых языков программирования – рисунок 2.[1]

Можно утверждать, что, несмотря на наличие общепринятых направлений применения языков программирования, многие из них являются универсальными, и могут применяться для решения любых поставленных задач. В частности, к универсальным языкам программирования можно отнести Basic, Pascal и C/C++.

Рисунок 2 – Классификация языков программирования по применению

Одной из задач курсовой работы является реализация управляющих операторов средствами наиболее популярных алгоритмических языков программирования – версии QBasic, PascalАВС, Visusl C++ и сопоставление полученных результатов.

Программа, написанная на языке программирования, до своего выполнения на компьютере, должна пройти ряд стандартных процедур. Схема процесса представлена на рисунке 3.

Рисунок 3 – Создание загрузочного модуля программы

Исходный код программы хорошо понятен программисту, но не может быть выполнен компьютером, для которого доступен только язык машинных кодов. Поэтому требуется специальная программа – переводчик (транслятор). В процессе транслирования создается объектный код на машинном языке, который подвергается обработке редактора связей (компоновщика), в результате чего создается единый программный модуль (файл), готовый к выполнению на компьютере. [9]

1.2 Алгоритмический язык программирования Basic

Алгоритмический язык программирования Basic (аббревиатура от Beginner’s All-purpose Symbolic Instruction Code - универсальный код символических инструкций для начинающих) - семейство высокоуровневых языков программирования универсального назначения.

Интересно, что название языка вызывает ассоциацию с одной хорошо известной историей времен покорения Америки европейцами. Один из английских миссионеров, желая наладить тесный контакт с туземцами, выделил из английского языка для употребления самую простую и распространенную его часть, насчитывающую около 300 слов и практически не имеющую грамматики. Эту версию языка он назвал BASIC ENGLISH (базовый английский). Было это больше 120 лет назад. Язык стал настолько популярен, что вскоре завоевало популярность не только среди туземцев, но среди иммигрантов.[3]

Язык программирования Basic был разработан в 1964 году профессорами Дартмутского колледжа Томасом Курцем и Джоном Кемени. Фотография Джона Кемени и Томаса Курца представлена на рисунке 4.

Разработчики создавали язык программирования в качестве инструмента обучения, с помощью которого студентов колледжа -непрограммисты могли бы самостоятельно осваивать искусство программирования и создавать компьютерные программы для решения поставленных перед ними прикладных задач. Язык оказался настолько хорош, что быстро стал популярным и получил широкое распространение.

Рисунок 4 – Джон Джордж Кемени и Томас Курц

К настоящему времени исходная версия языка претерпела существенные изменения, значительно отойдя от характерной для первых версий простоты, граничащей с примитивизмом, и превратившись в достаточно ординарный язык высокого уровня с типичным набором возможностей. Насчитывается множество версий языка Basic. В современной разработке программного обеспечения используется как самостоятельный язык для разработки прикладных программ, в основном работающих под управлением различных версий операционной системы Windows . Также широко распространён в качестве встроенного языка прикладных программных систем различного назначения и в качестве языка для программируемых калькуляторов.[12]

Современному продвинутому пользователю пакета прикладных программ 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 - Сводная таблица оператора условного перехода

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

Кроме оператора if… все языки имеют оператор множественного выбора (select case в Basic, case…of в Pascal, switch... case), позволяющий делать выбор из более чем двух альтернатив.

2.3 Циклический алгоритм

Алгоритм циклического вычислительного процесса включает в себя многократно повторяющиеся участки вычислений для различных значений данных. Повторяющийся участок называется телом цикла.[5]

В процедурно-ориентированных (алгоритмических) языках программирования высокого уровня предусмотрены три вида циклических операторов:

  • параметрический цикл – это цикл с заранее определенным числом повторений тела цикла. Закон изменения параметра такого цикла определяется начальным значением параметра цикла, его конечным значением и шагом цикла;
  • цикл с предусловием – выполнение тела цикла выполняется только при выполнении условия, проверка которого осуществляется до описания тела цикла; условие определяет порядок выхода из цикла;
  • цикл с постусловием – тело цикла выполняется как минимум один раз, после чего проверяется условие, которое определяет порядок выхода из цикла.[20]

Циклический алгоритм представлен на рисунках 19 - 21.

Рисунок 19 – Параметрический цикл

Рисунок 20 – Цикл с предусловием

Рисунок 21 – Цикл с постусловием

Реализация разных форм циклического алгоритма на языках программирования C, Pascal и Basic представлена на рисунках 22, 23 и 24. Программа выводит на экран квадраты первых 10 натуральных чисел.[15]

Фрагмент программы

Результат выполнения программы

int main()

{

for (int i=1; i<=10;i++)

{

cout<<i<<"*"<<i<<" = "<<i*i<<endl;

}

system("Pause");

}

Рисунок 22 – Параметрический цикл в C

Фрагмент программы

Результат выполнения программы

var

i:integer;

begin

i:=1;

while (i<=10) do

begin

writeln(i,'*',i,' = ',i*i);

inc(i);

end;

end.

Рисунок 23 – Цикл с предусловием в PascalABC

Фрагмент программы

Результат выполнения программы

Рисунок 24 – Цикл с постусловием в QBasic

Рисунок 25 – Сводная таблица операторов цикла

3. МАССИВЫ

3.1 Массивы данных

Для демонстрации применения операторов управления разработаны программы обработки массивов на языках программирования PascalABC, С++, QBasic.

Массив – это сложная структура данных, которая используется практически во всех алгоритмических языках программирования.

Массив – это упорядоченная совокупность однотипных данных, хранящихся в памяти компьютера под одним именем.[20]

Слово «упорядоченная» означает, что каждый член совокупности находится на отведенном ему месте.

Выражение «однотипных данных» означает, что все члены совокупности должны принадлежать к одному и тому же типу данных.

Члены совокупности называются элементами массива.

Массив имеет имя – оно является общим для всех элементов и индекс (индексы) – они указывают местоположение элемента в массиве.

Характеристиками массивы являются:

- тип – эта характеристика определяет тип элементов массива;

- размер – количество элементов массива;

-мера (размерность) – количество элементов массива, необходимых для однозначной идентификации элемента массива.[6]

По мере массивы делят на одномерные (векторы, строки) у элементов которых один индекс, двумерные (матрицы) с двумя индексами у элемента и многомерные.

Графическое представление одномерного и двумерного массива приведено на рисунках 26 – 27.

Рисунок 26 – Одномерный массив

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

Для указания элемента массива записывают имя массива и индекс элемента.

Например, А(6) = 4.

Охарактеризовать массив можно так:

А – одномерный целочисленный массив размера 11.

Рисунок 27 – Двумерный массив

Для однозначной идентификации двумерного массива (матрицы) недостаточно одного индекса, требуется два. В качестве первого индекса указывают номер строки, в качестве второго – номер столбца. Например, элемент B(5,3)=9.

Охарактеризовать массив B можно следующим образом:

В – двумерный целочисленный массив размера 7х6 (размер указывают, показав сначала количество строк в матрице, затем – количество столбцов). При таком указании размера понятна и структура матрицы, и количество элементов в ней.

Так как массив содержит в себе целую группу элементов, то любая обработка массива предполагает использование оператора цикла.

3.2 Заполнение массивов и вывод их на экран

Задача.

Разработать программу составления таблицы умножения, разместив ее в двумерном массиве и вывести на экран в виде таблицы.

Решение.

Код программы на QBasic (файл TU.bas):

CLS

PRINT " Таблица умножения"

PRINT "=============================="

DIM A(9, 9)

PRINT " ";

FOR I = 1 TO 9

PRINT USING "####"; I;

NEXT I

PRINT "------------------------------------------------"

FOR I = 1 TO 9

PRINT I; " | ";

FOR J = 1 TO 9

A(I, J) = I * J

PRINT USING "####"; A(I, J);

NEXT J

PRINT

NEXT I

Результат выполнения программы представлен на рисунке 28.

Рисунок 28 – Результат выполнения программы на QBasic

Код программы на PascalABC (файл TU.pas):

program TU;

var i,j: integer;

a:array [1..9,1..9] of integer;

begin

writeln (' Таблица умножения');

writeln('===================================');

writeln(' 1 2 3 4 5 6 7 8 9');

writeln('-----------------------------------------');

for i:=1 to 9 do begin

write (' ',i,'|');

for j:=1 to 9 do

begin

write(i*j:4);

end;

writeln;

end;

end.

Результат выполнения программы на языке программирования PascalABC представлен на рисунке 29.

Рисунок 29 – Результат выполнения программы на языке программирования Pascal

Код программы на C++ (файл TU.cpp):

// TU.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.

//

#include "pch.h"

#include <iostream>

#include <iostream>

#include <iomanip>

#include <ctime>

using namespace std;

int main()

{

setlocale(LC_CTYPE, "Russian");

cout << " Таблица умножения " << endl;

cout << "=======================================" << endl << endl;

cout << " 1 2 3 4 5 6 7 8 9" << endl;

cout << "--------------------------------------" << endl;;

for (int i = 1; i <= 9; i++)

{

cout << " " << i << "|";

for (int j = 1; j <= 9; j++)

{

cout << setw(4) << i * j;

}

cout << endl << endl << endl;

}

system("Pause");

}

Результат выполнения программы представлен на рисунке 30.

Рисунок 30 – Результат выполнения программы на C++

3.3 Сортировка массивов

Задача.

Выполнить сортировку по возрастанию одномерного массива, заполненного с помощью генератора случайных чисел (диапазон 1-50). Размер массива 10.

Решение.

Для сортировки массива использован пузырьковый метод.

Код программы (файл SORT.bas):

CLS

DIM A(10)

RANDOMIZE TIMER

PRINT " Исходный массив "

PRINT "============================="

PRINT

FOR i = 1 TO 10

A(i) = RND * 50 + 1

PRINT USING "###"; A(i);

NEXT i

FOR i = 1 TO 9

FOR j = 1 TO 9

IF A(j) > A(j + 1) THEN

t = A(j)

A(j) = A(j + 1)

A(j + 1) = t

END IF

NEXT j

NEXT i

PRINT : PRINT

PRINT " Отсортированный массив "

PRINT "============================="

PRINT

Результат выполнения программы представлен на рисунке 31.

Рисунок 31 – Сортировка массива в QBasic

Код программы на Pascal (файл SORT.pas):

program sort;

var i,j,t:integer;

A:array[1..10]of integer;

begin

randomize;

writeln (' Исходный массив');

writeln('====================================');

writeln;

for i:=1 to 10 do

begin

A[i]:= random(50)+1;

write(A[i]:4);

end;

writeln; writeln;

for i:=1 to 9 do

begin

for j:=1 to 9 do

begin

if A[j]>A[j+1] then

begin

t:=A[j];

A[j]:=A[j+1];

A[j+1]:=t;

end;

end;

end;

writeln (' Отсортированный массив');

writeln('====================================');

writeln;

for i:=1 to 10 do

begin

write(A[i]:4);

end;

end.

Результат выполнения программы представлен на рисунке 32.

Рисунок 32 – Сортировка массива в PascalABC

Код программы (файл SORT.cpp):

// SORT.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.

//

#include "pch.h"

#include <iostream>

#include <iostream>

#include <iomanip>

#include <ctime>

using namespace std;

int main()

{

setlocale(LC_CTYPE, "Russian");

srand(time(NULL));

int A[11];

cout << " Исходный массив " << endl;

cout << "==========================================" << endl << endl;

for (int i = 0; i <= 9; i++)

{

A[i] = rand() % 50 + 1;

cout << setw(4) << A[i];

}

cout << endl << endl << endl;

for (int i = 0; i < 9; i++)

{

for (int j = 0; j < 9; j++)

{

if (A[j] > A[j + 1])

{

int t = A[j];

A[j] = A[j + 1];

A[j + 1] = t;

}

}

}

cout << " Отсортированный массив " << endl;

cout << "===========================================" << endl << endl;

for (int i = 0; i <= 9; i++)

{

cout << setw(4) << A[i];

}

cout << endl << endl << endl;

system("Pause");

}

Результат выполнения программы представлен на рисунке 33.

Рисунок 33 – Сортировка массива в C++

По результатам выполнения практической части можно сделать вывод о том, что все задачи можно одинаково эффективно решить в любом выбранном языке программирования. При этом в PascalABC программировать было проще, чем в других языках.

ЗАКЛЮЧЕНИЕ

В процессе выполнения курсовой работы были выполнены все поставленные задачи:

  • изучены особенности процедурно-ориентированных языков программирования высокого уровня;
  • освоены основы программирования на процедурно-ориентированных языках программирования высокого уровня C/C++, QBasic, PascalABC;
  • изучены приемы реализации основных алгоритмических структур на C/C++, QBasic, PascalABC;
  • разработаны учебные программы на языках программирования C/C++, QBasic, PascalABC с использованием операторов управления;
  • сравнены и проанализированы полученные результаты.

Сравнивая полученные результаты, можно сделать вывод о том, что программы реализованы качественно во всех языках программирования, и каждая из них корректно выполняет поставленную задачу. Все условные и циклические конструкции имеют синтаксические различия в зависимости от используемого языка, но с точки зрения выполняемых действий они одинаковы.

По сложности программирования можно выделить язык программирования С++, так как программирование в нем требует больших навыков и терпения, нежели программирование на Pascal или Basic. Наиболее понятным и простым было программирование на языке программирования PascalABC.

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

СПИСОК ЛИТЕРАТУРЫ

  1. Абрамов С.А. и др. Задачи по программированию. - М.: Наука, 2015. – 200 с.
  2. Алексеев В.Е. и др. Вычислительная техника и программирование. Практикум по программированию. - М.: Высшая школа, 2016.- 451 с.
  3. Бобровский С. Программирование на языке QBasic для школьников и студентов. – М.:Инфорком-Пресс, ДЕСС, 2017. – 427 с.
  4. Боровский, А. C++ и Pascal в Kylix 3. Разработка интернет-приложений и СУБД / А. Боровский. - М.: БХВ-Петербург, 2015. - 544 c.
  5. Вирт Н. Алгоритмы + структура данных = программы. - М.: Мир, 1985.- 209 с.
  6. Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 1989.- 121 с.
  7. Грызлов В.И., Грызлова Т.П. Турбо Паскаль 7.0. - М.: ДМК, 2015. – 400 с.
  8. Давыдов, В. Visual C++. Разработка Windows-приложений с помощью MFC и API-функций / В. Давыдов. - М.: БХВ-Петербург, 2018. - 576 c.
  9. Дайтибегов Д. - М., Черноусов Е.А. Основы алгоритмизации и алгоритмические языки. - М.: ФиС, 2018.- 563 с.
  10. Довбуш, Галина Visual C++ на примерах / Галина Довбуш , Анатолий Хомоненко. - М.: БХВ-Петербург, 2015. - 528 c.
  11. Жданова Т.А. Основы алгоритмизации и программирвоания: учеб. пособие/ Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск: Изд-во Тихоокеан. гос. ун-та, 2011. – 56 с.
  12. Зельднер Г. А. Программируем на языке QBasic 4.5, 4-е издание. – М.: ABF, 2018. – 448 с.
  13. Зиборов, В. MS Visual C++ 2010 в среде .NET / В. Зиборов. - М.: Питер, 2017. - 320 c.
  14. Кадырова Г.Р. основы алгоритмизации и программирования: учебное пособие/ Кадырова Г.Р. – Ульяновск: УлГТУб 2014. – 95 с.
  15. Кетков, Юлий Практика программирования: Visual Basic, C++ Builder, Delphi. Самоучитель (+ дискета) / Юлий Кетков , Александр Кетков. - М.: БХВ-Петербург, 2015. - 464 c.
  16. Культин Н.Б. Программирование в Turbo Pascal и Delphi. - СПб.: BHV - Санкт-Петербург, 2017. - 240 с.
  17. Макаров В.Л. Программирование и основы алгоритмизации: Учеб. пособие. – СПб.: СЗТУб 2003. – 110 с.
  18. Мельникова О. И., Бонюшкина А. Ю. Начала программирования на языке QBasic: Учебное пособие. - М.: ЭКОМ, 2018. - 200с.
  19. Мешков, А. Visual C++ и MFC / А. Мешков, Ю. Тихомиров. - М.: БХВ-Петербург, 2016. - 546 c.
  20. Могилёв А.В., Пак Н.И., Хеннер Е.К. Информатика: Учеб. пособие для студ. пед. вузов / Под ред. Е.К. Хеннера. - М., Academia, 2014. – 348 с.
  21. Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов./ А.Г. Аузяк, Ю.А.Богомолов, А.И Маликов, Б.А. Старостин. – Казань: Изд-вл Казанского национального исследовательского технического ун-та – КАИ, 2013. – 153 с.
  22. Сафронов И. К. Бейсик в задачах и примерах, 2-е издание .-СПб.: БХВ-Петербург , 2016. – 639 с.