- •Тема 1. 7
- •Тема 2. 22
- •Тема 3. 41
- •Тема 4. 83
- •Основные временные параметры микропроцессора кр580ик80а
- •Программное обеспечение микропроцессора
- •Команды перемещения данных
- •Представлением операнда
- •Команды переходов ( альтернативные команды )
- •Специальные команды
- •Кодирование программы
- •Архитектура последовательного интерфейса кр580ик51
- •Управления от мп
- •Архитектура программируемого таймера кр580ви53
- •И микропроцессором
- •Архитектура бис параллельного интерфейса кр580вв55
- •Сигналами ппи
- •Архитектура контроллера прямого доступа к памяти кр580вт57
- •Архитектура бис программируемого контроллера прерываний кр580вн59
- •Генератор тактовыхимпульсов кр580гф24
- •Системный контроллер и шинный формирователь кр580вк28
- •Буферные регистры кр580ир82 и кр580ир83
- •Шинные формирователи кр580ва86 и кр580ва87
- •Пример подключения микросхемы кр580ви53 к микропроцессорной системе через контроллер прерываний кр580вн59
- •Пример подключения аналого-цифрового преобразователя.
- •Пример совместного использования микросхем комплекта для управления технологическим процессом.
- •Декларирование объектов
- •Структура программы
- •Константы
- •Арифметические операции
- •Преобразование типов операндов арифметических операций
- •Побитовые логические операции, операции над битами
- •Функции вывода информации
- •Стандартные математические функции
- •Условные операторы
- •If (условие ) оператор1;
- •If (условие1) оператор1;
- •Пример использования оператора if
- •Циклические операторы while и do–while
- •Пример использования оператора for
- •Строки, как одномерные массивы символов
- •Указатели и операции над адресами
- •Операция sizeof
- •Указатели на указатели
- •Пример динамического размещения одномерного массива в с
Стандартные математические функции
Пример
Ввод - вывод потоками
Функции ввода информации
Функция getch () используется для ввода одиночных символов.
Функия gets () обеспечивает ввод строки символов до нажатия клавиши ENTER.
Функция scanf предназначена для форматированного ввода информации любого вида. Общий вид функции:
scanf(<управляющая строка>, < список адресов>);
Для нее, как и для функции printf (), указывается управляющая строка. Однако функция scanf(), в отличие от функции printf (), использует в списке адресов указатели на переменные, т.е. их адреса. Для обозначения указателя перед именем переменной записывается символ &, обозначающий адрес переменной. Для ввода значений строковых переменных символ & не используется. При использовании формата %s строка вводится до первого пробела. Вводить данные можно как в одной строке через пробел, так и в разных строках.
Данную особенность иллюстрирует следующий участок программы:
int course;
float grant;
char name[20];
printf ( "Укажите ваш курс, стипендию, имя \n");
scanf ( "%d%f", &course, &grant);
scanf ( "%s", name); /* & отсутствует при указании массива символов */
Поток - это абстрактное понятие расширенной версии языка Си, которое относится к любому переносу данных от источника к приемнику. Для ввода-вывода используются две переопределенные операции побитового сдвига <<, >>.
Формат записи:
cout << идентификатор переменной;
cin >> идентификатор переменной;
Стандартный поток вывода cout - по умолчанию подключен к монитору, ввода cin - к клавиатуре.
Для их работы необходимо подключить файл iostream.h.
Пример программы демонстрирующий работу потоков ввода-вывода:
#include<iostream.h>
#include<conio.h>
void main (void)
{
int i, j, k;
cout«" Hello!"« endl; // end line - переход на новую строку
cout«" Input i, j";
cin >> i >>j;
k = i+j;
cout << " Sum i, j = " << k << endl;
}
Манипуляторы потоков:
setprecision(n) // установка числа разрядов справа от десятичной точки выводимого значения,
// где n число разрядов.
setw(k) // установка числа позиций в которое выводится значение, где к число позиций.
Для их работы необходимо подключить файл iomanip.h.
#include <iostream.h>
#include <iomanip.h>
void main()
{
float e=56.4;
float g=1.456789;
int f=215;
cout<<setprecision(10)<<"e="<<e<<endl;
cout<<setprecision(10)<<"e="<<setw(20)<<e<<endl;
cout<<setprecision(0)<<"g="<<setw(20)<<g<<endl;
cout<<setprecision(4)<<"g="<<g<<endl;
cout<<setprecision(8)<<"g="<<setw(20)<<g<<endl;
cout<<"f="<<setw(20)<<f<<endl;
cout<<setw(20)<<"f="<<f<<endl;
}
результат выполнения программы:
e=56.4000015259
e=_ _ _ _ _ _ _ 56.4000015259
g=_ _ _ _ _ _ _ _ _ _ _ _ 1.456789
g=1.4568
g=_ _ _ _ _ _ _ _ _ _ 1.45678902
f=_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 215
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ f=215
Декларации математических функций языка С содержатся в файле <math.h>. В последующих записях аргументы x иy имеют тип double, параметр n имеет тип int. Аргументы тригонометрических функций задаются в радианах (2π радиан = 360°). Все приведенные математические функции возвращают значение (результат) типа double.
Таблица 3
Математическая функция |
Имя функции в языке С |
Математическая функция |
Имя функции в языке С |
|
sqrt(x) |
arcsin(x) |
asin(x) |
|x| (для целых) |
abs(x) |
arccos(x) |
acos(x) |
|x| (для вещественных) |
fabs(x) |
arctg(x) |
atan(x) |
ex |
exp(x) |
arctg(x/y) |
atan2(x,y) |
xy |
pow(x,y) |
sh(x)=1/2 (ex-e-x) |
sinh(x) |
ln(x) |
log(x) |
ch(x)=1/2 (ex+e-x) |
cosh(x) |
lg10(x) |
log10(x) |
tgh(x) |
tanh(x) |
sin(x) |
sin(x) |
Остаток от деления x на y |
fmod(x,y) |
cos(x) |
cos(x) |
Наименьшее целое >=x |
ceil(x) |
tg(x) |
tan(x) |
Наибольшее целое <=x |
floor(x) |
