Файл: Особенности описания операторов управления в различных языках программирования: достоинства и недостатки.pdf
Добавлен: 01.04.2023
Просмотров: 347
Скачиваний: 1
СОДЕРЖАНИЕ
1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ
1.1 Эволюция языков программирования
1.2 Алгоритмический язык программирования Basic
1.3 Алгоритмический язык программирования Pascal
1.4 Алгоритмический язык программирования C++
2. ОСНОВЫ ПРОГРАММИРОВАНИЯ НА С\С++, PASCAL, BASIC
Кроме оператора 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
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 "============================="
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 "============================="
Результат выполнения программы представлен на рисунке 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.
Выбранные для исследования языки программирования являются универсальными, с их помощью решены все поставленные задачи. Можно сделать вывод, что выбор одного из этих языков для программирования – дело вкуса и предпочтений программиста.