Лекции по C++ для начинающих
Шрифт:
По оператору break произойдет выход из переключателя switch и программа завершит свою работу. Если ввести символы 2 или 3 то на экран будет выведена строка: "Ветвь 2 или 3".
При вводе любого другого символа управление перейдет к ключевому слову default и на экране появится строка: "Ветви 1, 2, 3 не работают".
2) ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ
Цикл – повторное выполнение операторов, завершаемое при выполнении некоторых
Различают 3 вида оператора цикла: for, while и do-while.
ЦИКЛЫ С ПАРАМЕТРОМ
Описание: for (выражение 1; выражение 2; выражение 3) { … };
Действие: в круглых скобках содержится три выражения. Первое из них служит для инициализации счетчика. Она осуществляется только один раз – когда цикл for начинает выполняться. Второе выражение необходимо для проверки условия, которая осуществляется перед каждым возможным выполнением тела цикла. Когда выражение становится ложным, цикл завершается. Третье выражение вычисляется в конце каждого выполнения тела цикла, происходит приращение числа на шаг.
Комментарий: в операторе цикла for точка с запятой после закрывающейся круглой скобки не ставится. Любое из трех или все три выражения в операторе могут отсутствовать, однако разделяющие их точки с запятыми опускать нельзя. Если отсутствует выражение 2, имеем бесконечный цикл.
Если отсутствуют выражения 1 и 3, цикл становится эквивалентным while.
Например:
for (;а<20;) { … };
Каждое из выражений может состоять из нескольких выражений, объединенных операцией «запятая».
Например:
for (i=0, j=l; i<100; i++, j++) a[i] = b[j];
Пример (EX6):
#include <stdio.h>
int main {
int i, j = 1, k;
for (i = 1; i <= 3; i++) {
printf("Acтана \t");
}
printf("\nУкажите число повторений цикла\n");
scanf("%d", &k);
for (i = 1; i <= k; i++) {
printf("%d", j);
}
j = i;
printf("\n");
for (i = 1; i <= k; i++) {
printf("%d ", j *= i);
}
}
Вывод:
Астана Астана Астана
Укажите число повторений цикла
5
11111
6 12 36 144 720
ПРИМЕР ЗАДАЧИ (EX7). Вычислить n-e число Фибоначчи. Числа Фибоначчи строятся следующим образом: F(0) = F(1) = 1; F(i + 1) = F(i) + F(i – 1) для i >= 1. Это пример вычислений по рекуррентным формулам.
#include<stdio.h>
int main {
int a, b, c, i, n;
printf("Введите номер числа Фибоначчи ");
scanf("\n %d", &n);
a = 1; // a=F(0), а соответствует F(i-2)
b = 1; // b=F(1), b
for (i = 2; i <= n; i++) {
c = a + b; // с соответствует F(i)
// в качестве а и b берется следующая пара чисел
a = b;
b = c;
}
printf("%d-е число Фиббоначчи = %d", n, b);
}
ПРИМЕР ЗАДАЧИ (EX8). Вычислить 50 значений функции у = arctg(x2), где X изменяется от начального значения а с шагом h. Результаты вывести в виде таблицы значений X и У.
#include<stdio.h>
#include<math.h>
int main {
float x, y, a, h;
int i;
printf("Введите исходные данные a, h \n");
scanf("%f %f", &a, &h);
x = a;
for (i = 1; i <= 5; i++) {
y = atan(pow(x, 2));
printf("x = %7.3f у = %7.3f \n", x, y);
x = x + h;
}
}
ПРИМЕР ЗАДАЧИ (EX9). Вычислить значение функции
#include<stdio.h>
#include<math.h>
int main {
float x, y, z, h;
int i, n;
printf("Введитe исходные данные h, n \n");
scanf("%f %n", &h, &n);
x = 0;
z = 0;
for (i = 1; i <= n; i++) {
y = sin(x) / sqrt(1 + x);
z = z + y;
x = x + h;
}
printf("x = %7.3f z = %7.3f", x, z);
}
ПРИМЕР ЗАДАЧИ (EX10). Вычислить сумму членов ряда
#include<stdio.h>
#include<math.h>
int main {
float x, s, p;
int k, n;
printf("Введите исходные данные х, n \n");
scanf("%f %d", &x, &n);
p = 1;
s = 0;
for (k = 1; k <= n; k++) {
p = p*x;
s = s + (p + k) / pow(k, 2);
}
printf("s = %7.3f", s);
}
ЦИКЛЫ С УСЛОВИЕМ
Оператор цикла while: while (выражение) { … };
Действие: Выполняется оператор до тех пор, пока значение выражения в скобках истинно. Проверка значения выражения происходит перед каждым выполнением оператора. Когда значение выражения ложно, цикл while заканчивается. Если выражение ложно с самого начала, оператор не выполняется ни разу.