Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)


 

 

 

 



Циклические и рекурсивные алгоритмы. Операторы циклов for, do, while



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

Простейший из циклов имеет вид:

while (условие)

{

операторы;

}

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

Имеется аналогичный вариант цикла, но с проверкой в конце

do

{

операторы;

} while (условие);

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

for( инициализация ; проверка_условия ; коррекция)
{
операторы;
}

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

В следующем примере складываются первые пять целых чисел:

int sum=0;

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

{

sum+=i;

}

Внутри циклов можно использовать оператор break; для принудительного завершения цикла и оператор continue; для пропуска оставшихся в цикле операторов и перехода к повторению цикла.

Практическое задание №2.

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

Вариант 1.

Напишите программу возведения целого числа a в целую степень n. Разработайте интерфейс, позволяющий пользователю вводить а и n с клавиатуры. Вычислите и распечатайте таблицу степеней числа 2: при n=0..20.

Вариант 2.

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

Даны два целых положительных числа x и y.

Шаг 1 : Из большего числа вычесть меньшее. Результат поместить в переменную c.

Шаг 2: Положить большее число равным c.

Шаг 3: Если , то повторить шаги 1 и 2.

Шаг 4: Если , то НОД=x=y.

Разработайте интерфейс, позволяющий ввести два числа с клавиатуры и получить их НОД.

Контрольные примеры:

НОД(30030, 2380) = 70, НОД(4200, 660) = 60,

НОД(462,819)=21, НОД(10465, 8778) = 7

Вариант 3.

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

Контрольные примеры:

;

;

;

; нет корней

 

Вариант 4.

Вычислите число e путем вычисления следующей суммы:

, где

Вычисления обрывайте по достижении условия . Для вычисления воспользуйтесь рекуррентными соотношениями. Разработайте интерфейс, позволяющий пользователю вводить параметр с клавиатуры. Сравните результат суммирования с точным значением числа e. Проанализируйте поведение суммы при различных .

Вариант 5.

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

Вариант 6.

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

Тема 3. Функции.

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

Определение функции.

В общем случае функция имеет следующий формат:

<возвращаемый тип> ИмяФункции ( параметры)
{

//Здесь следует тело функции,

//состоящее из операторов
}

Тип возвращаемого значения может быть одним из рассмотренных нами типов. Тип void означает, что функция не возвращает никакого значения. Кроме того, функция может возвращать и другие типы, например определенные пользователем. Если тип возвращаемого значения не указан, то по умолчанию он предполагается целочисленным (int).

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

Обратите внимание, что знак «точка с запятой» не ставится после списка параметров.

Прототипы функций.

Прежде, чем какая-либо функция будет использоваться в программе, она должна быть описана или определена. Описание (прототип функции) информирует компилятор о существовании функции, о типе параметров и типе возвращаемого значения. Оно имеет вид:

<возвращаемый тип> ИмяФункции ( параметры);

В конце списка параметров стоит знак «точка с запятой», это и указывает на то, что мы имеем дело не с описанием функции, а с ее прототипом.

Функции, которые не используют параметров, обычно описываются прототипом с ключевым словом void на месте списка параметров.



Просмотров 1319

Эта страница нарушает авторские права




allrefrs.su - 2025 год. Все права принадлежат их авторам!