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

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

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

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

Добавлен: 23.05.2023

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

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

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

2.2.Базовые алгоритмы обработки двумерных массивов с помощью операторов цикла

Приведем сначала перечень базовых операций над матрицами и их элементами. К таким операциям относятся:

– ввод и вывод матриц – рассматривался в разделе 2;

– создание новой матрицы по заданному алгоритму;

– поиск элементов матрицы по определенному критерию;

– выполнение определенных операций над компонентами матриц (перестановка строк и столбцов, умножение матриц и т.д.).

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

Пример 4. Вычислить количество положительных элементов квадратной матрицы, расположенных по периметру и на ее диагоналям.

int k, i, j, N, a [20] [20];

cout << "N ="; //ввод размерности квадратной матрицы

cin >> N;

cout << "Input Matrix A" << endl; //ввод элементов матрицы А

for (i = 0; i <N; i ++)

for (j = 0; j <N; j ++)

cin >> a [i] [j];

// цикл прохода по главной и боковой диагоналям

for (i = k = 0; i <N; i ++)

{

if (a [i] [i]> 0)

k ++;

if (a [i] [N-i-1]> 0)

k ++;

}

// цикл прохода по периметру матрицы

for (i = 1; i <N-1; i ++)

{

if (a [0] [i]> 0)

k ++;

if (a [N-1] [i]> 0)

k ++;

if (a [i] [0]> 0)

k ++;

if (a [i] [N-1]> 0)

k ++;

}

// проверка, пересекаются ли диагонали, если размерность матрицы – нечетное число

if ((N% 2! = 0) && (a [N / 2] [N / 2]> 0))

k--;

cout << "k =" << k << endl; //вывод результат

Пример 5. Найти все элементы матрицы, значения которых больше нуля.

int k, i, j, N, a [20] [20];

cout << "N ="; //ввод размерности квадратной матрицы

cin >> N;

cout << "Input Matrix A" << endl; //ввод элементов матрицы А

for (i = 0; i <N; i ++)

for (j = 0; j <N; j ++)

cin >> a [i] [j];

// циклы прохода по элементах матрицы

for (i = 0; i <N; i ++)

for (j = 0; j <N; j ++)

if (a [i] [i]> 0)

cout<<a[i][j];

Пример 6. Вывести на экран транспонированную квадратную матрицу.

int i, j, N, a [20] [20];

cout << "N ="; //ввод размерности квадратной матрицы

cin >> N;

cout << "Input Matrix A" << endl; //ввод элементов матрицы А

for (i = 0; i <N; i ++)

for (j = 0; j <N; j ++)

cin >> a [i] [j];

// транспонирование матрицы

for (i = 0; i <N; i ++)

{

for (j = 0; j <N; j ++)

cout<<a[j][i];

cout<<endl;

}

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

Заключение

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


– цикл for (цикл со счетчиком);

– цикл while (цикл с предусловием будет выполняться до тех пор пока выражение принимает истинное значение, но стоит выражению принять ложное значение, то осуществляется переход к следующему оператору);

– цикл do … while (цикл с постусловием ведет себя противоположно циклу с предусловие, то есть, пока выражение ложное тело цикла продолжает повторяться, как только логическое выражение станет истинным, цикл прекратится).

Также были рассмотрены примеры использования циклов, а так же выяснили, что тело цикла с постусловием всегда выполняется хотя бы один раз, а тело цикла с предусловием может быть так и не выполнено[18], этот факт необходимо учитывать при написании программы.

Код любой программы должен быть читаемым. Для того чтобы код был читаемым, он должен удовлетворять некоторым требованиям по форматированию кода и стилю его написания.

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

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

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

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

Список использованных источников

  1. Джесс Либерти. Освой самостоятельно С++ за 21 день. Издательский дом «Вильямс». – 2009. – 230 с.
  2. Борис Пахомов. С/С++ и MS Visual C++ 2010 для начинающих. БХВ-Петербург. – 2011. – 436 с.
  3. Бьерн Страуструп. Программирование. Принципы и практика использования С++. Издательский дом «Вильямс». – 2011. – 258 с.
  4. Айвор Хортон. Visual C++ 2010. Полный курс. Издательский дом «Вильямс». – 2011. – 300 с.
  5. Дэвид Гриффитс, Дон Гриффитс. Изучаем программирование на С. Издательство «Эксмо». – 2013. – 400 с.
  6. Прата С. Язык программирования С++. Издание 6. Издательский дом «Вильямс» – 2011. – 304 с.
  7. Брайан Керниган, Деннис Ритчи. Язык программирования С++. Издательство «Невский диалект». – 2001. – 320 с.
  8. Р. Лафоре. Объектно-ориентированное программирование в С++. Издательство «Питер». Издание 4. – 2004. – 628 с.
  9. Хусаинов Б.С. Структуры и алгоритмы обработки данных. Примеры на языке Си. Учеб. пособие. – Финансы и статистика, 2004. – 464с.
  10. Кубенский А.А. Структуры и алгоритмы обработки данных: объектно-ориентированный подход и реализация на С++. – СПб.: БХВ-Петербург, 2004. – 464с.
  11. Седжвик Роберт. Фундаментальные алгоритмы на С++. Анализ/Структуры данных/Сортировка/Поиск: Пер. с англ./ Седжвик Роберт. К.: Издательство «ДиаСофт», – 2001. – 500 с.
  12. Язык С++: Учеб. Пособие /И.Ф. Астахова, С.В. Власов, В.В. Фертиков, А.В. Ларин.–Мн.: Новое знание, 2003. – 203 с.
  13. Лаптев В.В., Морозов А.В., Бокова А.В. С++. Объектно-ориентированное программирование. Задачи и упражнения. – СПб.: Питер. 2007. – 288 с.
  14. Кнут, Дональд, Эрвин. Искусство программирования. Том 1. Основные алгоритмы. 3-е изд. Пер. с англ. – : Уч. пос. М.: Издательский дом. «Вильямс», 2009.– 720с.
  15. С++ Стандартная библиотека. Для профессионалов./Н. Джосьютис. – СП Питер, 2012. – 350 с.
  16. Динман М.И. С++. Освой на примерах. – СПб.: БХВ-Петербург, 2006.– 260 с.
  17. Харви Дейтел, Пол Дейтел. Как программировать на С++. Пер. с англ. – М.: ЗАО «Издательство БИНОМ», 2012. – 430 с.
  18. Майерс С. Эффективное использование С++. 50 рекомендаций по улучшению ваших программ и проектов. Пер. с англ. – М.: ДМК Пресс; – СПб.: Питер. 2006.–240с.
  19. Штерн Виктор. Основы С++: Методы программной инженерии.– Издательство «Лори», 2003. – 860с.
  20. Скляров В.А. Язык С++ и объектно-ориентированное программирование. Справочное пособие. – Минск. «Вышейшая школа». – 1997г. – 478с.