Файл: «Операторы циклов, их виды, особенности и области применения».pdf

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

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

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

Добавлен: 22.04.2023

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

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

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

int two_dimensional_array[8][8];

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

2.7 Выводы по главе 2

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

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

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

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

3 РАЗРАБОТКА ПРОГРАММЫ С ИСПОЛЬЗОВАНИЕМ ЦИКЛОВ И МАССИВОВ

3.1 Программа сортировки массива

В данной курсовой работе была разработана программа, которая сортирует массив с помощью сортировки методом выбора. Программа написана на языке C++ и разработана в среде Microsoft Visual Studio 2017.

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


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

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

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

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

Для сортировки массива от наименьшего до наибольшего элемента методом выбора выполняются следующие шаги:

Начиная с элемента под индексом 0, ищем в массиве наименьшее значение.

Найденное значение меняем местами с нулевым элементом.

Повторяем шаги 1 и 2 уже для следующего индекса в массиве.

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

Вот пример работы этого алгоритма в массиве с 5-ью элементами:

{ 30, 50, 20, 10, 40 }

Сначала ищем наименьший элемент, начиная с индекса 0:

{ 30, 50, 20, 10, 40 }

Затем меняем местами наименьший элемент с элементом под индексом 0:

10, 50, 20, 30, 40 }

Теперь, когда первый элемент отсортирован, мы его игнорируем. Ищем следующий наименьший элемент, но уже начиная с индекса 1:

{ 10, 50, 20, 30, 40 }

И меняем его местами с элементом под индексом 1:

{ 10, 2050, 30, 40 }

Теперь мы можем игнорировать первые два элемента. Ищем следующий наименьший элемент, начиная с индекса 2:

{ 10, 20, 50, 30, 40 }

И меняем его местами с элементом под индексом 2:

{ 10, 20, 3050, 40 }


Ищем следующий наименьший элемент, начиная с индекса 3:

{ 10, 20, 30, 50, 40 }

И меняем его местами с элементом под индексом 3:

{ 10, 20, 30, 4050 }

Ищем следующий наименьший элемент, начиная с индекса 4:

{ 10, 20, 30, 40, 50 }

И меняем его местами с элементов под индексом 4 (самозамена — ничего не делаем):

{ 10, 20, 30, 40 50 }

На этом этапе массив отсортирован.

{ 10, 20, 30, 40, 50 }

Обратите внимание, последнее сравнение всегда будет одиночным, (т. е. сам с собой), что является излишним, поэтому фактически мы можем остановить выполнение сортировки перед последним элементом в массиве.

Исходный код программы представлен ниже:

int main()

{

const int len = 5;

int array[len] = { 30, 50, 20, 10, 40 };

for (int i = 0; i < len - 1; ++i)

{

int smallest = i;

for (int current = i + 1; current < len; ++current)

{

if (array[current] < array[smallest])

smallest = current;

}

std::swap(array[i], array[smallest]);

}

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

std::cout << array[i] << ' ';

getchar();

return 0;

}

Вначале работы программы массиву array присваиваются значения { 30, 50, 20, 10, 40 }.

Далее выполняются два цикла For один из которых вложен в другой.  Внешний цикл перебирает элементы один за другим (по очереди). В каждой итерации внешнего цикла внутренний цикл используется для поиска наименьшего элемента среди элементов, которые остались в массиве (начиная с i + 1). smallest отслеживает индекс наименьшего элемента, найденного внутренним циклом. Затем smallest меняется значением с i. И наконец, внешний цикл передает этот элемент, и процесс повторяется. Результат выполнения программы представлен на рисунке 3

Рисунок3 – Результат выполнения программы SortArray.exe

Как видно из рисунка, программа вывела на экран отсортированный массив. Следует отметить, что подобный метод сортировки не является быстрым или оптимальным. Так, для созданного в данной программе массива из 5 элементов, общее количество операций сравнения в циклах составило 52-1=24.

3.2 Выводы по главе 3

В данной главе была разработана программа по сортировке массива. Программа создана на языке С++ в среде Microsoft Visual Studio 2017. В данной программе выполняется сортировка массива методом выбора. В ней задается массив из пяти чисел и после ее запуска на экране отображается отсортированный массив.

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


ЗАКЛЮЧЕНИЕ

В данной курсовой работе было проведено исследование на тему «Операторы циклов, их виды, особенности и области применения.»

В главе 1 была обобщена информация о языках программирования взятая из литературных источников. Описано понятие языка программирования, его назначение и выполняемые функции.

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

Были рассмотрены наиболее популярные на сегодняшний день языки программирования высокого уровня. Язык С++ является наиболее универсальным из них, он позволяет как создавать кроссплатформенные программы с высоким уровнем абстракции от оборудования, так и системные решения вроде драйверов и низкоуровневых программ. Такие языки как Perl и PHP нашли свое широкое применение в создании сайтов сети Интернет. Популярный на сегодняшний день C# создавался на основе языка C для работы с платформой .NET компании Microsoft.

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

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

Рассмотрены три вида циклов: For, While и Do..While. В принципе, они являются взаимозаменяемыми и использование того или другого определяется исходя из предпочтений программиста. В то же время, существуют устоявшиеся решения, при которых цикл For используется совместно с массивами, а циклы While и Do..While при организации взаимодействия с пользователем.

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


В главе 3 изученные знания были применены на практике. В данной главе была разработана программа по сортировке массива. Программа создана на языке С++ в среде Microsoft Visual Studio 2017. В данной программе выполняется сортировка массива методом выбора. В ней задается массив из пяти чисел и после ее запуска на экране отображается отсортированный массив.

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

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

  1. Языки программирования // Wikipedia. [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F (дата обращения: 24.09.2017)
  2. Фаронов Валерий Васильевич. Delphi. Программирование на языке высокого уровня: Учебник для вузов / В. В. Фаронов. — СПб.: Питер, 2007. — 639 с.: ил. — (Учебник для вузов). — Библиогр.: с. 628 (7 назв.)
  3. Баррон, Дэвид Введение в языки программирования; М.: Мир - Москва, 2011. - 192 c.
  4. Григорьев, А.Б. О чем не пишут в книгах по Delphi; БХВ-Петербург - Москва, 2013. - 576 c.
  5. Гудман, Д. Java Script и DHTML. Сборник рецептов для профессионалов; СПб: Питер - Москва, 2013. - 523 c.
  6. Delphi 7 / А. Д. Хомоненко [и др.]; под ред. А. Д. Хомоненко. — СПб.: БХВ-Петербург, 2006. — 1200 с.: ил. — (В подлиннике). — Предм. указ.: с. 1196-1200
  7. Скворцова Л.А., Чудновская Н.Д. Лабораторный практикум по программированию в Delphi. Электронная версия
  8. Кристиансен, Том; Торкингтон, Натан Perl: библиотека программиста; СПб: Питер - Москва, 2013. - 736 c.
  9. Либерти, Джесс Освой самостоятельно C++ за 21 день; М.: Вильямс - Москва, 2012. - 816 c.
  10. Мугал, Халид А.; Расмуссен, Рольф В. Java. Руководство по подготовке к сдаче сертификационного экзамена CX-310-035 (+ CD-ROM); М.: Кудиц-образ - Москва, 2012. - 688 c.
  11. Муртаф, Б. Современное линейное программирование; Мир - Москва, 2010. - 224 c.
  12. Мюллер, Дж. Visual C++ 5; СПб: BHV - Москва, 2011. - 720 c.
  13. Нейгел, Кристиан С# 2005 для профессионалов (+CD-ROM); М.: Диалектика - Москва, 2010. - 582 c.
  14. Нотон, Патрик Java. Справочное руководство. Все, что необходимо для программирования на Java; М.: Бином - Москва, 2012. - 448 c.
  15. Петзолд, Ч. Программирование для Windows 95; СПб: BHV - Москва, 2013. - 279 c.
  16. Просиз, Дж. Программирование для Microsoft .NET (+ CD-ROM); М.: Microsoft Press. Русская Редакция - Москва, 2010. - 704 c.
  17. Робинсон, С.; Корнес, О.; Глинн, Д. и др. C# для профессионалов; М.: Лори - Москва, 2011. - 996 c.
  18. Холл, П. Вычислительные структуры: Введение в нечисленное программирование; М.: Мир - Москва, 2010. - 214 c.
  19. Чан, Теренс Системное программирование на C++ для Unix; БХВ - Москва, 2010. - 592 c.
  20. Абельсон, Х.; Сассман, Дж. Структура и интерпретация компьютерных программ; М.: Добросвет - Москва, 2012. - 608 c.