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

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 345

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Кроме оператора 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.

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