Файл: «Операторы циклов, их виды, особенности и области применения».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, 20, 50, 30, 40 }
Теперь мы можем игнорировать первые два элемента. Ищем следующий наименьший элемент, начиная с индекса 2:
{ 10, 20, 50, 30, 40 }
И меняем его местами с элементом под индексом 2:
{ 10, 20, 30, 50, 40 }
Ищем следующий наименьший элемент, начиная с индекса 3:
{ 10, 20, 30, 50, 40 }
И меняем его местами с элементом под индексом 3:
{ 10, 20, 30, 40, 50 }
Ищем следующий наименьший элемент, начиная с индекса 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, два из которых используются для сортировки, а еще один – для вывода отсортированного массива на экран.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
- Языки программирования // 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)
- Фаронов Валерий Васильевич. Delphi. Программирование на языке высокого уровня: Учебник для вузов / В. В. Фаронов. — СПб.: Питер, 2007. — 639 с.: ил. — (Учебник для вузов). — Библиогр.: с. 628 (7 назв.)
- Баррон, Дэвид Введение в языки программирования; М.: Мир - Москва, 2011. - 192 c.
- Григорьев, А.Б. О чем не пишут в книгах по Delphi; БХВ-Петербург - Москва, 2013. - 576 c.
- Гудман, Д. Java Script и DHTML. Сборник рецептов для профессионалов; СПб: Питер - Москва, 2013. - 523 c.
- Delphi 7 / А. Д. Хомоненко [и др.]; под ред. А. Д. Хомоненко. — СПб.: БХВ-Петербург, 2006. — 1200 с.: ил. — (В подлиннике). — Предм. указ.: с. 1196-1200
- Скворцова Л.А., Чудновская Н.Д. Лабораторный практикум по программированию в Delphi. Электронная версия
- Кристиансен, Том; Торкингтон, Натан Perl: библиотека программиста; СПб: Питер - Москва, 2013. - 736 c.
- Либерти, Джесс Освой самостоятельно C++ за 21 день; М.: Вильямс - Москва, 2012. - 816 c.
- Мугал, Халид А.; Расмуссен, Рольф В. Java. Руководство по подготовке к сдаче сертификационного экзамена CX-310-035 (+ CD-ROM); М.: Кудиц-образ - Москва, 2012. - 688 c.
- Муртаф, Б. Современное линейное программирование; Мир - Москва, 2010. - 224 c.
- Мюллер, Дж. Visual C++ 5; СПб: BHV - Москва, 2011. - 720 c.
- Нейгел, Кристиан С# 2005 для профессионалов (+CD-ROM); М.: Диалектика - Москва, 2010. - 582 c.
- Нотон, Патрик Java. Справочное руководство. Все, что необходимо для программирования на Java; М.: Бином - Москва, 2012. - 448 c.
- Петзолд, Ч. Программирование для Windows 95; СПб: BHV - Москва, 2013. - 279 c.
- Просиз, Дж. Программирование для Microsoft .NET (+ CD-ROM); М.: Microsoft Press. Русская Редакция - Москва, 2010. - 704 c.
- Робинсон, С.; Корнес, О.; Глинн, Д. и др. C# для профессионалов; М.: Лори - Москва, 2011. - 996 c.
- Холл, П. Вычислительные структуры: Введение в нечисленное программирование; М.: Мир - Москва, 2010. - 214 c.
- Чан, Теренс Системное программирование на C++ для Unix; БХВ - Москва, 2010. - 592 c.
- Абельсон, Х.; Сассман, Дж. Структура и интерпретация компьютерных программ; М.: Добросвет - Москва, 2012. - 608 c.