- •Основы программирования
- •Средства создания программ
- •Работа в интегрированной среде разработки программ turbo c (Borland c)
- •Основные функциональные клавиши и сочетания клавиш в Turbo c
- •Контрольные вопросы
- •Основы языка Си
- •Составляющие языка Си
- •Понятия алгоритмических языков (На примере языка Си)
- •Структура программы на языке Си
- •Директивы препроцессора
- •Главная функция
- •Переменные и массивы
- •Объявления переменных и массивов
- •Комментарии
- •Основные операции в Си
- •Арифметические операции
- •Логические операции и операции отношения
- •Операции присваивания
- •Функции ввода и вывода
- •Функция форматированного вывода printf( )
- •Функция форматированного ввода scanf( )
- •Функция неформатированного ввода getch( )
- •Функция неформатированного ввода gets( )
- •Функция неформатированного вывода puts( )
- •Программа – диалог
- •Контрольные к лабораторной работе «Программа-диалог»
- •Программа–тест
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Конструкция switch/case/default
- •Операторы цикла
- •Цикл for
- •Стандартные математические функции
- •Пример выполнения лабораторной работы «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Вложенные циклы.
- •Использование оператора break в циклах
- •Оператор continue
- •Оператор безусловного перехода goto
- •Действия с одномерными массивами
- •Инициализация массива
- •Ввод значений элементов массива с клавиатуры
- •Заполнение массива случайными числами
- •Вычисление суммы и произведения элементов массива
- •Поиск максимального элемента массива и его номера
- •Вычисление среднего арифметического
- •Перестановка элементов в массиве
- •Сортировка массива
- •Заполнение массива элементами из другого массива.
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
- •Контрольные к лабораторной работе «Программа-диалог»
- •Контрольные вопросы к лабораторной работе «Программа-тест»
- •Контрольные вопросы к лабораторной работе «Вычисление значения функции»
- •Контрольные вопросы к лабораторной работе «Одномерный массив»
Операторы цикла
В языке Си существует 3 вида оператора цикла: for, while, do-while. Циклы необходимы, когда надо повторить некоторые действия несколько раз, пока выполняется условие цикла. Количество повторений цикла называется числом итераций. Операторы, выполняемые в цикле, составляют тело цикла.
Цикл 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.
Стандартные математические функции
Для того чтобы иметь возможность использовать в программе стандартные математические функции среди директив препроцессора должна быть директива включения в программу заголовочного файла 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*/ |