#include


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 соответствует F(i-1)


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

#include


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). Вычислить значение функции

, если х изменяется с шагом h одновременно с i.


#include

#include


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). Вычислить сумму членов ряда

, для заданных n и х.


#include

#include


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 заканчивается. Если выражение ложно с самого начала, оператор не выполняется ни разу.

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


Пример (EX11):


#include


int main() {

int i, s;

i = 1;

while (scanf("%d", &s)) {

printf("Введенное число %d\n", s);

i++;

};

}


Оператор цикла do-while: do { … } while (выражение);

Действие: В операторе do-while тело цикла выполняется по крайней мере один раз. Тело цикла будет выполняться до тех пор, пока выражение в скобках не примет ложное значение. Если оно ложно при входе в цикл, то его тело выполняется ровно один раз.

Комментарий: После слова while и выражения, заключенного в скобки, ставится точка с запятой. Если в теле цикла содержится более одной инструкции, то операторы цикла заключаются в фигурные скобки.


Например (EX12):


#include


int main() {

int i, s;

i = 1;

do {

printf("Введенное число %d\n", s);

i++;

} while (scanf("%d", &s));

}


ОПЕРАТОР BREAK


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


while (st > 0 && st < 25) {

if (st == 4||st == 8||st == 12) break;

}


Работа цикла полностью прекращается, как только условие в операторе if становится истинным.



ОПЕРАТОР CONTINUE


Действие. Этот оператор может использоваться во всех трех типах циклов. Как и в случае оператора break, он приводит к изменению характера выполнения программы. Однако вместо завершения работы цикла наличие оператора continue вызывает пропуск "оставшейся" части итерации и переход к началу следующей.