Создание программы циклической структуры. Работа с массивами

Автор работы: Пользователь скрыл имя, 21 Декабря 2013 в 06:23, курсовая работа

Краткое описание

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

Содержание

Введение________________________________________3
Цели и задачи____________________________________3
Циклические алгоритмы ___________________________4
Цикл FOR_______________________________________5
Цикл WHILE____________________________________10
Цикл DO…WHILE _______________________________14
Специальные функции для циклов___________________18
Массивы________________________________________22
Двумерные массивы ______________________________27
Заключение _____________________________________33
Список литературы_______________________________34

Вложенные файлы: 1 файл

kursach.docx

— 683.06 Кб (Скачать файл)

 

Негосударственное образовательное  учреждение

высшего профессионального  образования 

Московский технологический  институт «ВТУ»


 

Факультет Техники и современных технологий

Кафедра Информатики и автоматизации

 

 

                                                         

 

 

 

КУРСОВАЯ  РАБОТА

по дисциплине Программирование на языке высокого уровня

 

на  тему:

«Создание программы циклической структуры. Работа с массивами»

 

 

 

 

 

 

Уровень образования бакалавриат

Направление Информатика и вычислительная техника

Профиль Сети ЭВМ и телекоммуникации

 

 

 

Выполнил студент:

Форма обучения экстернат

Койсин  Дмитрий Борисович

 

 

Караганда 2013

 

Оглавление

 

Введение________________________________________3

Цели и задачи____________________________________3

Циклические алгоритмы ___________________________4

Цикл FOR_______________________________________5

Цикл WHILE____________________________________10

Цикл DO…WHILE _______________________________14

Специальные функции для  циклов___________________18

Массивы________________________________________22

Двумерные массивы ______________________________27

Заключение _____________________________________33

Список литературы_______________________________34

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

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

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

 

Цель и  задачи

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

 

 

 

 

 

 

 

 

Циклические алгоритмы на языке  С++

Довольно часто встречаются  задачи требующие повторения определенных действий. Причем повторения происходят до достижения, какого либо условия, либо некоторое количество раз. Например, забивание гвоздя, бьем по гвоздю пока не будет забит – циклический  алгоритм с условием или прикручиваем колесо к машине, где операция «прикрутить  болт» встречается 6 раз – это  циклический алгоритм со счетчиком. Цикл — многократное прохождение по одному и тому же коду программы. Циклы необходимы программисту для многократного выполнения одного и того же кода, пока истинно какое-то условие. Если условие всегда истинно, то такой цикл называется бесконечным, у такого цикла нет точки выхода.

В языке  программирования С++ существуют такие  циклы:

    • цикл for
    • цикл while
    • цикл do…while

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Цикл for

Цикл со счетчиком позволяет  выполнить один или несколько  операторов определенное количество раз. Синтаксис данного цикла:

for (начальная_инструкция; условие;  выражение)

{

 инструкции;

}

Семантика (смысл) цикла for такова, что сначала выполняется начальная_инструкция - она инициализует переменную, используемую в цикле. Затем проверяется условие. Если оно истинно, то выполняются инструкции, вычисляется выражение, и управление передается обратно в начало цикла for с той разницей, что начальная_инструкция уже не выполняется. Это продолжается до тех пор, пока условие не станет ложно, после чего управление передается следующей_инструкции. Каждый проход цикла называется итерацией цикла.

Начальной_инструкцией  может быть просто объявление или  же сложное выражение либо инструкция.

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

rez=0;

for(int i=1; i<=10;++i)

rez+=i;

Когда инструкция for начинает выполняться, управляющей переменной i задается начальное значение 1. Затем  проверяется условие продолжения  цикла i <= 10. Поскольку начальное  значение i равно 1, это условие удовлетворяется, так что оператор тела инструкции суммирует к значению переменной rez, равному 0, значение счетчика i, равное 1. Затем управляющая переменная i увеличивается на единицу в выражении ++i и цикл опять начинается с проверки условия его продолжения. Поскольку значение i теперь 2, предельная величина не превышена, так что программа снова выполняет тело цикла. Этот процесс продолжается, пока управляющая переменная i не увеличится до 11 — это приведет к тому, что условие продолжения цикла нарушится и повторение прекратится. Выполнение программы продолжится с первого оператора, расположенного после цикла for.

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

for (j = 0,i = 1; i <= 10; ++i)

  j += i;

Основное назначение использования  оператора запятая — помочь программисту использовать несколько выражений  задания начальных значений и (или) несколько выражений приращения переменных. Например, в одной структуре for может быть несколько управляющих  переменных, которым надо задавать начальное значение и которые  надо изменять. Например:

for(i=0,j=0;i<3,j<`4;i++,j+=2)

cout<<i*j;

Данный цикл проведет две итерации, после которых  значение счетчика i станет равным 2, а  значение счетчика j = 4. При этом условие  для второго счетчик не выполняется (т.к. j строго должен быть меньше 4) и  цикл будет прерван. На экране будет  выведено 02.

В цикле for может присутствовать локальное объявление переменной управления циклом, как в следующем примере.

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

  rez+= i*i;

Целая переменная i теперь является объявленной в программе. Это  может вносить путаницу, поэтому  лучше объявлять все программные  переменные в начале блока.

Любое или все выражения в  инструкции for могут отсутствовать, но

две точки с  запятой должны быть обязательно. Если пропущена начальная_инструкция, то никакая инициализация в цикле for не выполняется. Если пропущено выражение, то не производится приращение, а в  случае отсутствия условия не производится проверка. Есть специальное правило  для тех случаев, когда пропущено  условие; в такой ситуации компилятор будет считать условие выполненным  всегда. Так, цикл for в следующем фрагменте  бесконечен.

for (i = 1, rez = 0 ; ; rez += i++ )

   cout << rez << endl;

Размещение  точки с запятой сразу после  правой закрывающей скобки заголовка for делает тело структуры пустым оператором. Обычно это логическая ошибка.

"Приращение” инструкции for может  быть отрицательным (в этом  случае в действительности происходит  не приращение, а уменьшение переменной, управляющей циклом).

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

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

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

Давайте рассмотрим несколько вариантов  применения цикла for:

a) Изменение управляющей переменной от 100 до 1 с шагом -1

(с уменьшением  на 1).

for (int i = 100; i >= 1; i--)

Распространенная  ошибка при программировании, это  использование несоответствующей  операции отношения в условии  продолжения цикла при счете  циклов сверху вниз (например, использование i <= 1 при счете циклов сверху до 1 не включая).

b) Изменение управляющей переменной от 7 до 77 с шагом 7.

for (int i = 0; i <= 77; i += 7)

c) Изменение управляющей переменной от 20 до 2 с шагом -2.

for (int i = 20; i >= 2; i -= 2)

d) Изменение управляющей переменной в следующей последовательности:

2, 5, 8, 11, 14.

for (int j = 2;j <= 14; j += 3)

e) Изменение управляющей переменной в следующей последовательности:

99, 88, 77, 66, 55, 44, 33, 22, 11, 0.

for (int j = 99; j >= 0; j -= 11)

 

Ниже на рисунке 1 отображен исходный код программы, считающей сумму всех целых чисел от 1 до 1000.


 

 

 

 

 

 

 

 

 

 

Рисунок 1- цикл for

 

Если мы скомпилируем этот код и  запустим программу, то она покажет  нам ответ: 500500. Это и есть сумма  всех целых чисел от 1 до 1000. Если считать это вручную, понадобится  очень много времени и сил. Цикл выполнил всю рутинную работу за нас.

Заметьте, что конечное значение счетчика я задал нестрогим неравенством ( <= — меньше либо равно), поскольку, если бы я поставил знак меньше, то цикл произвел бы 999 итераций, т.е. на одну меньше, чем требуется. Это довольно важный момент, т.к. здесь часто допускают ошибки, особенно при работе с массивами. Значение шага цикла я задал равное единице. i++ — это тоже самое, что и i = i + 1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Цикл while

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

Оператор цикла while или цикл while - цикл, повторяющий одно и то же действие, пока условие продолжения цикла while остаётся истинным. Синтаксис цикла while в C++ выглядит следующим образом.

 

// форма  записи цикла while

while (/*условие продолжения цикла while*/)

{

/*блок  операторов*/;

/*управление  условием*/;

}

Условие продолжения  цикла должно быть истинно - «true», как только условие стало ложным, выполняется выход из цикла. Вначале вычисляется выражение. Если результат отличен от нуля (true), тогда выполняется оператор и управление переходит обратно к началу цикла while. Это приводит к выполнению тела цикла while, а именно оператора, который будет выполняться до тех пор, пока выражение не станет равным нулю (false).

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

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

 

 

Рассмотрим  применение цикла while на примере движения автомобиля. На псевдокоде, то это будет так:

// Пока  скорость движения автомобиля  меньше 60 км/ч, 

      продолжать наращивать скорость.

Истинным условием цикла, в данном случае, является скорость автомобиля меньше 60 км/ч, а ложным —  скорость автомобиля больше или равно 60 км/ч. Повторение цикла будет продолжаться до тех пор пока скорость автомобиля не станет больше или равно 60 км/ч, после  наступления этого момента условие  цикла станет ложным, и программа  выйдет из цикла. Рассмотрим  фрагмент кода на C++ с циклом while решающим поставленную задачу.

 

1  int speed = 5; // начальная скорость автомобиля

2  while ( speed < 60 ) // заголовок цикла while

3  speed += 10; // тело цикла

 

   

Для начала в строке 1 была объявлена и инициализирована переменная speed. В строке 2 программа проверяет условие цикла while, 5 < 60 = true. Программа входит в цикл и выполняет оператор в строке 3. Теперь уже speed = 15. Опять выполняется проверка 15 < 60 = true. Условие истинно, значение в переменной изменяется, speed = 25. Таким образом, выполняются последовательные повторения цикла, переменная speed ещё принимает такие значения: 35, 45, 55, 65. Последнее изменение переменной speed приводит к тому, что условие в цикле while  становится ложным 65 < 60 = false, и производится выход из цикла while. Таким образом, выполнилось 6 повторений, при этом speed = 65; - с таким значением переменной закончилась работа цикла while. Давайте запрограммируем эту задачу, и убедимся в достоверности всего выше сказанного (Рисунок 2).

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 2 – цикл while

Итак, в конце операторов цикла добавил переменную-счётчик, для подсчёта прохождений цикла. Тело цикла увеличилось, поэтому пришлось поставить фигурные скобочки. Результат работы программы (см. Рисунок 3).

Рисунок 3 – результат работы

Как я и  говорил, всего 6 повторений цикла и  после выхода из цикла while переменная speed = 65.

Рассмотрим  еще один пример когда количество итераций нам не известно. Для этого  примера используем игру «Отгадай число». Число будет загадывать компьютер, а мы отгадывать. На псевдокоде это будет так:

// Пока загаданное число  не угадано, продолжать угадывать  его

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

Информация о работе Создание программы циклической структуры. Работа с массивами