Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-ОСНОВЫ ПРОГРАММИРОВАНИЯ.doc
Скачиваний:
88
Добавлен:
10.04.2015
Размер:
650.24 Кб
Скачать
    1. Операторы цикла

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

      1. Цикл for

В общем виде цикл for можно представить в виде:

for (выражение1; выражение2; выражение3) оператор;

где в круглых скобках пишутся параметры цикла:

выражение1инициализация (присвоение начального значения параметру цикла);

выражение2условие завершения цикла. Выполнение цикла происходит до тех пор, пока это условие истинно. Как только условие становится ложным, цикл заканчивается.

выражение3приращение (шаг цикла), т.е. изменение параметра цикла каждый раз при повторении оператора цикла (при очередной итерации).

ПРИМЕР 15: Напечатать в столбик цифры от 1 до 9. Цикл будет иметь вид:

for(i=1; i<10; i++) printf(“\n %d”, i);

ПРИМЕР 16: Напечатать те же цифры в обратном порядке. Цикл будет иметь вид:

for(i=9; i>0; i- -) printf(“\n %d”, i);

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

for(выражение1; выражение2; выражение3) {оператор1; оператор2; операторN;}

ПРИМЕР 17: Требуется ввести 5 произвольных целых чисел. Цикл ввода будет иметь вид:

for(i=1; i<6; i++) { printf(“\nВведите %d-е число: ”, i); scanf(“%d”, &i); }

Здесь составной оператор цикла состоит их 2-х простых операторов: оператора вывода printf , для того, чтобы на экране появлялась просьба о вводе очередного числа, и самого оператора ввода scanf.

В качестве параметра цикла необязательно использовать целочисленный счётчик.

ПРИМЕР 18: Напечатать через пробел буквы русского алфавита.

char bk; /*объявление символьной переменной bk */

for (bk=’A’; bk<=’Я’; bk++) printf(“ %c ”, bk); /* цикл печати букв */

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

for(; ; ) printf(“\nБесконечный цикл”);

for(i=1; 1; i++) printf(“\nБесконечный цикл”);

for(i=10; i>1; i++) printf(“\nБесконечный цикл”);

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

      1. Стандартные математические функции

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

# include <math.h>

В таблице 5 приведены некоторые стандартные математические функции.

Таблица 5

Математичес-кая запись

Запись в Си

Комментарий

1

2

3

|x|

abs(x)

Абсолютное значение аргумента х целого типа

|x|

fabs(x)

Абсолютное значение аргумента х действительного типа

sin x

sin(x)

Синус угла х, заданного в радианах

cos x

cos(x)

Косинус угла х, заданного в радианах

tg x

tan(x)

Тангенс угла х, заданного в радианах

arcsin x

asin(x)

Арксинус аргумента х, принадлежащего диапазону от –1 до 1. Возвращает угол

в радианах от – π/2 до π/2

arccos x

acos(x)

Арккосинус аргумента х, принадлежащего диапазону от –1 до 1. Возвращает угол

в радианах от 0 до π

arctg x

atan(x)

Арктангенс аргумента х. Возвращает угол

в радианах от –π/2 до π/2

e x

exp(x)

Аргумент х действительного типа

lg x

log10(x)

Десятичный логарифм действительного положительного аргумента х

ln x

log(x)

Натуральный логарифм действительного положительного аргумента х

xy

pow(x,y)

Вычисляет x в степени y. Аргументы х и y действительного типа

ПРИМЕР 19:

Задание

Вычислить и вывести на экран значение функции

для значения х, вводимого с клавиатуры.

Решение

Программа

Блок-схема

#include<stdio.h>

#include<math.h>

#include<conio.h>

void main()

{ float x, y1,y2; clrscr();

printf(“\n Введите х =”);

scanf(“%f”,&x);

y1= sqrt(sin(x)+log(fabs(x)+1));

y2=5 + asin(pow(x+0.12,1./3.));

printf(“\n При х = %f значение функции\

\ равно %f”, x, y1 / y2);

printf(“\n Нажмите любую клавишу”);

getch();

}

/*1*/ /*2*/ /*3*/ /*4*/ /*5*/ /*6*/ /*7*/ /*8*/ /*9*/ /*10*/

/*11*/

/*12*/

/*13*/

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]