Справочная информация
При программировании вычислительных процессов используются математические функции библиотеки компилятора. Для обеспечения возможности обращения к ним в программе должна указываться директива препроцессора #include <math.h>. Все математические функции результатом своей работы имеют вещественные числа типа double. Описание некоторых функций дано в таблице.
функция | назначение функции | значения аргумента |
sin(x) | вычисляет синус угла x | вещественное число в диапазоне от –2p до 2p |
cos(x) | вычисляет косинус угла x | |
tan(x) | вычисляет тангенс угла x | |
asin(x) | вычисляет арксинус величины x | вещественное число в диапазоне от –1 до 1 |
acos(x) | вычисляет арккосинус величины x | |
atan(x) | вычисляет арктангенс величины x | |
sqrt(x) | вычисляет корень квадратный из x | любое вещественное число |
exp(x) | вычисляет значение e в степени x | |
log(x) | вычисляет натуральный логарифм от x | |
log10(x) | вычисляет десятичный логарифм от x | |
ceil(x) | округляет число х путем отбрасывания дробной части | |
floor(x) | округляет число х до наибольшего целого, не превышающего х | |
pow(x, y) | вычисляет значение x в степени y | любые вещественные числа |
fmod(x, y) | вычисляет остаток от деления x на y |
Для организации разветвляющихся процессов используются условный оператор if и оператор-переключатель switch.
Формат записи оператора if:
if(<условное выражение>) <оператор1>
[else <оператор2>]
Формат записи оператора switch:
switch(<выражение>)
{
case<константа1>: <оператор1>
[break;]
case<константа2>: <оператор2>
[break;]
........................................................
default: <оператор>
}
Пример программы
#include <stdio.h>
#include <math.h>
void main(void)
{ int war;
float x,y,z;
printf("\nПpогpамма счета зависимостей:"
"\n1. z=3.55-(sin(x)+4.5)*y "
"\n2. z=(3.4*ln(x)+8.6)/2.3*y (переменная y больше нуля) ");
printf("\nЗадайте вид зависимости\n");
ab: scanf("%d",&war);
switch(war)
{ case 1: printf("\nЗадайте значения пеpеменных х и y\n");
scanf("%g,%g",&x,&y);
z=3.55-(sin(x)+4.5)*y;
printf("\nz=%f",z);
break;
case 2: printf("\nЗадайте значения пеpеменных х и y\n");
scanf("%g,%g",&x,&y);
if(y>0)
{
z=(3.4*log(x)+8.6)/2.3*y;
printf("\nz=%f",z);
}
else
printf("\nHевеpно заданo значение пеpеменной z!!!");
“\nОно должно быть больше нуля”);
break;
default: printf("\nHевеpно задан вид зависимости!!!"
"\nЗадайте вид зависимости заново");
goto ab;
}
}
Задание
Разработать алгоритм и программу счета аналитических зависимостей, указанных преподавателем. Предусмотреть возможность осуществления многократных вычислений без выгрузки программы из оперативной памяти компьютера.
Лабораторная работа № 7
Программирование циклических
вычислительных процессов
Справочная информация
При усложнении решаемых задач ход выполнения программ становится более неопределенным. Чтобы иметь возможность управлять процессом выполнения программ, его организацией, используются такие структуры, как циклы. Циклы необходимы, когда надо повторить некоторые действия несколько раз, как правило, пока выполняется некоторое условие. В языке С известно три вида операторов цикла: for, while и do-while.
Цикл for
Основная форма цикла for имеет следующий вид:
For (инициализация; проверка условия; изменение) оператор,
где инициализация – это присвоение начального значения параметру цикла и счетчику;
проверка условия – условное выражение, которое определяет, когда цикл должен быть завершен;
изменение – это приращение параметра цикла каждый раз при повторении цикла.
Выполнение цикла происходит до тех пор, пока условное выражение истинно. Когда условие становится ложным, начинает выполняться следующий за циклом for оператор.
Цикл while
Основная форма оператора while имеет вид
While (условие) оператор,
где оператор может быть простым, составным или пустым оператором. «Условие», как и в других операторах, является просто выражением. Цикл выполняется до тех пор, пока условие принимает значение «истинно». Когда же условие «ложно», программа передает управление следующему оператору программы. В цикле while сначала проверяется условие, а затем выполняется оператор. Этот цикл называют циклом с предусловием.
Цикл do-while
В отличие от предыдущих циклов в цикле do-while условие проверяется в конце оператора цикла. Основная форма оператора do-while следующая:
Do {