Файл: Основные структуры алгоритмов: сравнительный анализ и примеры их использования (Операторы языка С++ для реализации базовых структур алгоритмов).pdf

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

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

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

Добавлен: 30.03.2023

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

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

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

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

Основные понятия теории алгоритмов 1.1 Понятие алгоритма  

1.2 Свойства алгоритмов

Любые алгоритмы вне зависимости от их типа обладают такими свойствами: 1)Дискретность: алгоритм должен представлять пpоцесс pешения задачи как последовательное выполнение элементарных шагов; для выполнения каждого шага требуется конечный отрезок времени. 2)Детерминированность (Однозначность). Каждое действие (шаг, этап) должно быть четким, однозначным, исключающим произвольное толкование и не оставляющим места для двусмысленности. Выполнение алгоритма носит, по сути, механический характер и не требует никаких дополнительных указаний[[10]] 3) Результативность. Алгоритм должен приводить к решению задачи или сообщению, что задача решений не имеет за конечное число шагов. 4) Конечность. Каждое отдельное действие, как и весь алгоритм должны иметь возможность реального исполнения. Поэтому алгоритм имеет предел, т. е. конечен. 5) Массовость. Алгоритм разрабатывается в общем виде так, чтобы его можно было применять для класса задач, различающихся только исходными данными. При этом исходные данные выбираются из некоторой области, которая называется областью применяемости алгоритма[[11]]. 6) Ясность – это понимание исполнителя алгоритма о том, что нужно сделать для выполнения поставленного алгоритма. 7)Формальность– это когда результат выполнения алгоритмов не должен зависеть от любого рода факторов, что не являются частью рассматриваемого алгоритма. Все исполнители, способные воспринимать и выполнять некоторые указания алгоритма (даже при этом не понимая их), действуя по нему, могут выполнить поставленную ранее задачу. Абсолютно все шаги алгоритма должны быть четко и понятно описан и определен. Также он не должен допускать собственной и произвольной трактовки конечным исполнителем.2.Базовые структуры алгоритмов

2.1.Методы описания алгоритмов

2.2. Основные структуры алгоритмов

3.Практическая реализация базовых структур алгоритмов

3.1.Операторы языка С++ для реализации базовых структур алгоритмов

3.2 Примеры использования основных структур алгоритмов на языке программирования С++

Рис. 9 Результат сортировкиЗаключение

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

while (условие выполнения)

{

тело цикла

};

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

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

Синтаксис цикла do … while:

do

{

тело цикла

}

while (условие выполнения);

Последовательность операторов (тело цикла) выполняется один или несколько раз, пока условие станет ложным. Оператор цикла do ... while используется в тех случаях, когда есть необходимость выполнить тело цикла хотя бы один раз, поскольку проверка условия осуществляется после выполнения операторов.
Если тело цикла состоит из одного оператора, то операторные скобки {} не является обязательны.

Операторы цикла while и do ... while преждевременного могут завершиться при выполнении операторов break или же return внутри тела циклов.












3.2 Примеры использования основных структур алгоритмов на языке программирования С++



Приведем примеры практического использования базовых структур алгоритмов на языке С++.

Для демонстрации линейного алгоритма рассмотрим следующий пример.

С начала сутки прошло определённое количество (n) секунд. Определите сколько часов, минут и секунд прошло с начала сутки.

Код программы написанный на языке С++ следующий:

//подключаем заголовочные файлы

#include <iostream>

#include <conio.h>

#include <clocale>

#include <math.h>

using namespace std; // объявляем пространство имен

int main()

{

float n,h,m,s; // объявляем переменные

setlocale (LC_CTYPE,"rus")[42]; //подключаем кириллицу

cout << "Введите количество секунд n: ";

cin >> n;

//находим целые значения часов, минут, секунд

h=floor(n/3600);

m=floor((n-h*3600)/60);

s=n-h*3600-m*60;

//вывод данных

cout <<"С начала сутки прошло "<<h<<" часов "<<m<<" минут "<<s<< " секунд";


getch();

return 0;

}
В результате получим:





Рис. 8 Результат алгоритма

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

#include <iostream>

#include <conio.h>

#include <clocale>

#include <math.h>

using namespace std;

int main()

{

float d1,d2,d3; // объявление переменных

setlocale (LC_CTYPE,"rus");

cout << "введите числа: ";

cin >> d1>>d2>>d3; // инициализация переменных d1, d2, d3

if ((d1>d2)&&(d2>d3)) //проверка условия убывающей последовательности[11]

{//переопределение переменных

d1=(-1)*d1;

d2=(-1)*d2;

d3=(-1)*d3;

cout<<"Последовательность убывающая! "<<endl;

}

else

{//переопределение переменных

d1=pow(d1,2);

d2=pow(d2,2);

d3=pow(d3,2);

cout<<"Последовательность не убывающаяя! "<<endl;

}

cout<<d1<<" , "<<d2<<" , "<<d3;

getch();

return0;

}

В результате получим:







Рис.9 Результат алгоритма

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

#include <iostream>

#include <conio.h>

#include <clocale>

#include <math.h>

using namespace std;

in main()

{

//подключение кириллицы

setlocale( LC_ALL,1201 );

//объявление всех переменных

int r, m, q;

//объявление массива

int М[40];

//ввод размерности вектора

cout<<»Введите размерность массива:»;

//считывание размерности вектора

cin>>m;

//ввод массива

cout<<"Введите элементы массива: ";

//считывание элементов[43]

for (r=0;r<m;r++)

cin>>M[r];

//алгоритм сортировки пузырьком

for( r=0;r < m; r++)

for( q=r+1; q < m; q++)

//проверка условия для сортировки

if (M[r] > M[q])

//переназначение элементов

swap(M[r],M[q]);

//вывод массива

cout<<"Вывод элементов массива: ";

for (r=0;r<m;r++)

//вывод элемента

cout<<М[r]<<" ";

//задержка экрана

getch();

//возврат 0

return0;

}

В результате исполнения данного кода мы получим:






 


Рис. 9 Результат сортировки

















Заключение



С каждым днём влияние компьютеров и различной умной техники на нашу жизнь увеличивается, и упрощает её. Если большинство пользователей овладеют пониманием и умением правильно обращаться с алгоритмами, а так же правильно понимать их суть — жизнь станет намного проще и легче.
Процессор компьютера, самая важная его составляющая, умеет понимать и обрабатывать только простейшие команды. А для обработки сложнейших и трудоёмких задач ему нужна помощь программиста, который составит узконаправленные и точные инструкции.
Составление алгоритма, пошагового описания каждого действия, необходимо для точного понимания исполнителем и правильной постановки действий. Этот процесс называется алгоритмизацией. В роли исполнителя может быть кто и что угодно, от сложной вычислительной техники до самого обычного человека.
Развитие и прогресс электронно-вычислительных машин определил процесс появления метода общения с процессорами — языков программирования. Цель появления таких языков — набор вычислительных формул дополнительной информации, превращающий её в алгоритм.
Язык программирования это метод общения человека и компьютера. Компьютер начинает понимать, чего от него требует программист, и выполняет предписанные ему действия в строго определённом порядке.
В работе выполнены несколько задач:
- рассмотрены и обсуждены основные понятия алгоритмов, их свойства
-описаны методы подачи алгоритмов
- дана характеристика базовых структур алгоритмов
- проведён сравнительный анализ структур алгоритмов
- проведено рассмотрение операторов для реализации основных структур алгоримов используя язык программирования C++
- приведены примеры использования базовых структур алгоритмов



























 


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ




1Основы алгоритмизации и программирования: учеб. пособие / Т.А.
Жданова, Ю.С. Бузыкова. – Хабаровск : Изд-во Тихоокеан. гос.ун-та, 2011. –56 с.
2. Горностаева, Татьяна Николаевна Г 67 Алгоритмы. Учебное пособие – М.: Мир науки, 2019. – Сетевое издание. Режим доступа:https://izd-mn.com/PDF/33MNNPU19.pdf Дата обращения 25.06.2020
3. Харахан О.Г., Системы искусственного интеллекта. Практикум для проведения лабораторных работ. Ч. 1 : Учебное пособие для вузов / Харахан О.Г. - М: Издательство Московского государственного горного университета, 2006. - ISBN 5-7418-0425-1 - Текст : электронный // ЭБС "Консультант студента" : [сайт]. - URL : https://www.studentlibrary.ru/book/ISBN5741804251.html (дата обращения: 10.07.2020). - Режим доступа : по подписке.
4.Сираждинов С.Х., Матиевская Г.П. Ал-Хорезми — выдающийся математик и астроном средневековья: Пособие для учащихся, - М.: Просвещение, 1983 89 с.
5. Алгебра: Элементы комбинаторики. Бином ньютона: Методические указания/Авт.-сост- В.А. Васильева, Т.Б. Волкова, Р.Н. Молодожникова.- М.: Изд-во МАИ. 2002 с. 88 с.
6. Физическая лаборатория школьника. Часть 2: учеб.-метод. Пособие / Н.Ю. Петров, Н.Ю. Березин, В.В. Христофоров. Новосибирск: Изд-во НГТУ, 2015. 108 с.
7. В.И. Поляков, В.И. Скорубский Основы теории алгоритмов Учебное пособие по дисциплине «Математическая логика и теория алгоритмов» - Санкт-Петербург: НИУ ИТМО, 2012 51 с.

8. Забуга А.А. Теоретические основы: Учебное пособие. Стандарт третьего пооколения. - Спб.: Питер, 2014, 208 с.
9. Основы алгоритмизации и программирования на языке высокого уровня Си: учебно-практическое пособие / Т.В. Панова, Н.Д. Николаева; Балт. гос. техн. ун-т. – СПб., 2015 176 с.
10. Есипов А.А. Информатика и информационные технологии для учащихся школ и колледжей. Спб.: БХВ-Петербург, 2004. - 470 c.
11. Информатика и ИКТ: Учебник для 9 класса:в 2ч. ч.1 / А.Ю. Босова. -М. :БИНОМ. Лаборатория знаний, 2012 244. с.
12. Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Изд-во Казанского национального исследовательского технического ун-та - КАИ, 2013, 153 С.
13. Основы алгоритмизации и программирования : учебное пособие / Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. 95 с.
14. Учебное пособие, руководство по изучению дисциплины, практикум, учебная программа / Московский государственный университет экономики, статистики и информатики. – М. ,2004. – 220 с
15. Симонович С.В. Базовый курс: Учебник для вузов. 3-е пзд. Стандарт третьего поколения. - Спб.:Питер, 2011. 640 с.
16. А.А. Тюгашев. Основы программирования. Часть I. – СПб: Университет ИТМО, 2016. – 1 Режим доступа :https://books.ifmo.ru/file/pdf/1917.pdf Дата обращения 06.07.2020 117 С.
17.Лекции по операционным системам (общий курс): учебное пособие / Е.М. Карчевский, О.В. Панкратова — Казань: Казан. Ун-т, 2011. 255 с.
18.Парадигма программирования : курс лекций / Л. В. Городняя ; Новосиб. гос. ун-т. – Новосибирск : РИЦ НГУ, 2015. 206 с.
19. Молдованова О.В. Языки программирования и методы трансляции: Учебное пособие. – Новосибирск/СибГУТИ, 2012. 134 С.
20. Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции СПб.: БХВ-Петербург,2003. – 471 с.
21. Орлов С. Теория и практика языков программирования: Учебник для вузов. 2-Ее изд. Стандарт 3-го поколения. -Спб. Питер, 2017. 688 с.
22. Гниденко И.Г., Соколовская С.А. Информатика, 2-е изд. - Спб..: Издательский дом «Нева», 2003. 320 С.
23. Перова В.И., Сабаева Т.А., Чекмарев Д.Т. РАЗРАБОТКА АЛГОРИТМОВ ДЛЯ РЕШЕНИЯ ЗАДАЧ НА ЭВМ: Учебное пособие. – Нижний Новгород: Нижегородский госуниверситет, 2015. Режим доступа:http://www.lib.unn.ru/students/src/RACV.pdf 136 с.
24. Информатика :Учебник для 6 класса / Л.Л. Босова, А.Ю. Босова. - М.: БИНОМ. Лаборатория знаний, 2013. 215 с.
25. Могилев, А. Информация и информационные процессы. Социальная информатика] / Л. Листрова, А. Могилев .— СПб. : БХВ-Петербург, 2006 222 с.
26. Хиценко В.П. Основы программирования: учебное пособие /В.П. Хиценко. - Новосибирск: Изд-во НГТУ, 2015 83 с.
27. Потопахин В.В. Язык C. Освой на примерах. Спб.: БХВПетербург, 2006.
28. Язык С : освой на примерах / Виталий Потопахин. - Санкт-Петербург : БХВ-Петербург, 2006 (СПб. : Типография "Наука" РАН). - 301 с
29. Сети и телекоммуникации : учебник и практикум для СПО / Под ред. К.Е. Самуйлова, И.А. Шалимова, Д.С. Кулябова. - М.: Издательство Юрайт, 2019. 363 с.
30. Кернинган, Брайан У,, Ритчи, Деннис М. Язык программирования С, 2-е издание.: Пер с англ. - М.: Издательский дом «Вильямс», 2007. 304 с.
31. Шилдт, Герберт, Полный справочник по С, 4-е издание. : Пер. С англ. - М.: Издательский дом «Вильямс», 2007 704 с.
32. Довбуш, Г.Ф. Visual C++ на примерах/ Г.Ф. Довбуш, А.Д. Хомоненко/ Под ред проф. А.Д.Хомоненко. - Спб.:БХВ-Петербург, 2007. 528 с.
33. Орлов С. Теория и практика языков программирования: Учебник для вузов. 2-е изд. Стандарт 3-го поколения. -Спб.: Питер, 2017 686 с.
34. Пахомов Б.И. и MS visual c++ 2010 для начинающих. СПБ.: БХВпетербург. 2011. 736 с.
35. Большая школьная энциклопедия, Т.1. Естественные науки( автор-составитель С. Исмаилова).-М.:Русское энциклопедическое товарищество, 2003 702 с.
36. Дейл Н., Уима Ч., Хедингтон М. Программирование на С++: Пер. С англ. - М.: ДМК Пресс. 673 с.
37. Программирование на языке Си: учеб. Пособие / Р.Ю. Царев. - Красноярск: Сиб. Федер. Ун-т, 2014. 108 с.
38. Прохоренок Н.А. Язык С. Самое необходимое. СПБ,: БХВПетербург, 2020. 408 с.
39. Герберт Шилдт C++: Руководство для начинающих, 2-е издание. : Пер.с англ. - М.: Издательский дом «Вильямс», 2005. 672 с


  1. 1Основы алгоритмизации и программирования: учеб. пособие / Т.А.
    Жданова, Ю.С. Бузыкова. – Хабаровск : Изд-во Тихоокеан. гос.ун-та, 2011. –
    с. 8

  2. Горностаева, Татьяна Николаевна Г 67 Алгоритмы. Учебное пособие – М.: Мир науки, 2019. – Сетевое издание. Режим доступа: https://izd-mn.com/PDF/33MNNPU19.pdf с. 4 Дата обращения 01.07.2020

  3. Системы искуственного интеллекта. Практикум для проведения лабораторных работ. Ч. 1: Учебное пособие для вузов. - М.: Издательство Московского государственного горного университета, 2006 с. 199

  4. Сираждинов С.Х., Матиевская Г.П. Ал-Хорезми — выдающийся математик и астроном средневековья: Пособие для учащихся, - М.: Просвещение, 1983 с.11

  5. Алгебра: Элементы комбинаторики. Бином ньютона: Методические указания/Авт.-сост- В.А. Васильева, Т.Б. Волкова, Р.Н. Молодожникова.- М.: Изд-во МАИ. 2002 с. 82

  6. Физическая лаборатория школьника. Часть 2: учеб.-метод. Пособие / Н.Ю. Петров, Н.Ю. Березин, В.В. Христофоров. Новосибирск: Изд-во НГТУ, 2015. с. 20

  7. В.И. Поляков, В.И. Скорубский Основы теории алгоритмов Учебное пособие по дисциплине «Математическая логика и теория алгоритмов» - Санкт-Петербург: НИУ ИТМО, 2012

  8. Забуга А.А. Теоретические основы: Учебное пособие. Стандарт третьего пооколения. - Спб.: Питер, 2014, с. 61

  9. В.И. Поляков, В.И. Скорубский Основы теории алгоритмов Учебное пособие по дисциплине «Математическая логика и теория алгоритмов» - Санкт-Петербург: НИУ ИТМО, 2012 с. 6

  10. Основы алгоритмизации и программирования на языке высокого уровня Си: учебно-практическое пособие / Т.В. Панова, Н.Д. Николаева; Балт. гос. техн. ун-т. – СПб., 2015. с. 5

  11. Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск : Изд-во Тихоокеан. гос.ун-та, 2011. с..9

  12. Есипов А.А. Информатика и информационные технологии для учащихся школ и колледжей. Спб.: БХВ-Петербург, 2004. - с. 149

  13. Информатика и ИКТ: Учебник для 9 класса:в 2ч. ч.1 / А.Ю. Босова. -М. :БИНОМ. Лаборатория знаний, 2012. с.

  14. Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Изд-во Казанского национального исследовательского технического ун-та - КАИ, 2013 с. 11

  15. Основы алгоритмизации и программирования : учебное пособие / Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. c.7

  16. Калмыкова О.В., Грибанов В.П., Сорока Р.И. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ: Учебное пособие, руководство по изучению дисциплины, практикум, учебная программа / Московский государственный университет экономики, статистики и информатики. – М., 2004. с. 10

  17. Симонович С.В. Базовый курс: Учебник для вузов. 3-е пзд. Стандарт третьего поколения. - Спб.:Питер, 2011. с 578.

  18. А.А. Тюгашев. Основы программирования. Часть I. – СПб: Университет ИТМО, 2016. – 1 Режим доступа :https://books.ifmo.ru/file/pdf/1917.pdf Дата обращения 06.07.2020 с. 10

  19. Лекции по операционным системам (общий курс): учебное пособие / Е.М. Карчевский, О.В. Панкратова — Казань: Казан. ун-т, 2011. с. 14

  20. Парадигма программирования : курс лекций / Л. В. Городняя ; Новосиб. гос. ун-т. – Новосибирск : РИЦ НГУ, 2015. с. 5

  21. Молдованова О.В. Языки программирования и методы трансляции: Учебное пособие. – Новосибирск/СибГУТИ, 2012. с. 5

  22. Опалева Э.А., Самойленко В.П. Языки программирования и методы трансляции

    Спб.: БХВПетербург, 2005. с.17

  23. Орлов С. Теория и практика языков программирования: Учебник для вузов. 2-Ее изд. Стандарт 3-го поколения. -Спб. Питер, 2017. с. 65:

  24. Гниденко И.Г., Соколовская С.А. Информатика, 2-е изд. - Спб..: Издательский дом «Нева», 2003. с. 94

  25. Перова В.И., Сабаева Т.А., Чекмарев Д.Т. РАЗРАБОТКА АЛГОРИТМОВ ДЛЯ РЕШЕНИЯ ЗАДАЧ НА ЭВМ: Учебное пособие. – Нижний Новгород: Нижегородский госуниверситет, 2015. Режим доступа:http://www.lib.unn.ru/students/src/RACV.pdf с. 32

  26. Информатика :Учебник для 6 класса / Л.Л. Босова, А.Ю. Босова. - М.: БИНОМ. Лаборатория знаний, 2013. с. 111

  27. Могилев, А. Информация и информационные процессы. Социальная информатика] / Л. Листрова, А. Могилев .— СПб. : БХВ-Петербург, 2006 с. 98

  28. Босова Л. Л., Босова А. Ю., Информатика: учебник для 6 класса. М. : БИНОМ. Лаборатория знаний, 114 с.

  29. Хиценко В.П. Основы программирования: учебное пособие /В.П. Хиценко. - Новосибирск: Изд-во НГТУ, 2015 с.19

  30. Потопахин В.В. Язык C. Освой на примерах. Спб.: БХВПетербург, 2006. с.77

  31. Сети и телекоммуникации : учебник и практикум для СПО / Под ред. К.Е. Самуйлова, И.А. Шалимова, Д.С. Кулябова. - М.: Издательство Юрайт, 2019. с.298

  32. Кернинган, Брайан У,, Ритчи, Деннис М. Язык программирования С, 2-е издание.: Пер с англ. - М.: Издательский дом «Вильямс», 2007. с. 71

  33. Шилдт, Герберт, Полный справочник по С, 4-е издание. : Пер. С англ. - М.: Издательский дом «Вильямс», 2007. с.83

  34. Кочан, Стефан. Программирование на языке С, 3-е издание.: Пер. с. англ. -М.: ООО «И.Д. Вильямс» 2006. с.81

  35. Прата,Ствиен. Язык программирования С++. Лекции и упражнения, 5-е изд.: Пер. С англ.-М.: ООО «И.Д. Вильямс», 2007. с.259

  36. Довбуш, Г.Ф. Visual C++ на примерах/ Г.Ф. Довбуш, А.Д. Хомоненко/ Под ред проф. А.Д.Хомоненко. - Спб.:БХВ-Петербург, 2007. с.39

  37. Орлов С. Теория и практика языков программирования: Учебник для вузов. 2-е изд. Стандарт 3-го поколения. -Спб.: Питер, 2017. с. 137

  38. Пахомов Б.И. и MS visual c++ 2010 для начинающих. СПБ.: БХВпетербург. 2011. c.38

  39. Большая школьная энциклопедия, Т.1. Естественные науки( автор-составитель С. Исмаилова).-М.:Русское энциклопедическое товарищество, 2003. с.693

  40. Дейл Н., Уима Ч., Хедингтон М. Программирование на С++: Пер. С англ. - М.: ДМК Пресс. с. 198

  41. Программирование на языке Си: учеб. Пособие / Р.Ю. Царев. - Красноярск: Сиб. Федер. Ун-т, 2014. с.11

  42. Прохоренок Н.А. Язык С. Самое необходимое. СПБ,: БХВПетербург, 2020. с. 212

  43. Герберт Шилдт C++: Руководство для начинающих, 2-е издание. : Пер.с англ. - М.: Издательский дом «Вильямс», 2005. с 46