Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2-ОСНОВЫ ПРОГРАММИРОВАНИЯ.doc
Скачиваний:
105
Добавлен:
10.04.2015
Размер:
650 Кб
Скачать
☆
    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*/