Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л_4_Операции_и_выражения.doc
Скачиваний:
10
Добавлен:
05.11.2018
Размер:
660.99 Кб
Скачать

Программирование вычисления алгебраических выражений

Ввод символов до некоторого ограничителя //(в данном случае х)

int main(){

char ch;

cout << "Input char (end - x)\n ";

do {

cout << ":"; //приглашение к вводу

cin >> ch; //ввод символа завершаем нажатием <enter>

} while (ch != 'x');

cout << " <x> -- end " << endl;

_getch();

return 0;

}

getchar() – ждет ввода символа и нажатия <enter> //функции С

getche() – вводит символ c эхо и не ждет <enter>

getch(), _getch() – ждет ввода символа и нажатия <enter>

while ((ch=getche()) !=’\r’) //пока не нажата клавиша <enter>

{ if ch==’ ‘ …..

else ……}

Определение первого символа вводимого значения

Функция (метод) peek( ) объекта cin класса istream возвращает из потока очередной символ (оставляя его в потоке), или EOF, если достигнут конец файла;

//1

char c[10], c2;

cout << "Type 'abcde': ";

//abcde, набранные на клавиатуре, попадают в буфер ввода;

//принимающий объект cin класса istream с помощью своего метода peek( ) извлекает // из буфера ввода очередной (первый, в данном случае) символ, т.е. а (оставляя его там)

c2 = cin.peek( ); //определяет первый вводимый символ

cin.getline( &c[0], 9 ); //с помощью метода getline() в символьный массив с //вводится строка abcde

cout << c2 << " " << c << endl; //вывод символа a и строки abcde

//2

double f;

char c2;

cout << "Type 123.456: ";

c2 = cin.peek();

cin >> f;

cout << c2 << " " << f << endl; //1 123.456

//3

char c, c2;

cout << "Type simvol a: ";

c2 = cin.peek( ); //определяет вводимый символ

cin >> c;

cout << c2 << " " << c << endl; //a a

Контроль правильности ввода значения переменной

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

Контроль правильности ввода значения некоторого типа можно реализовать, например, таким образом:

//проверка ввода значения из диапазона значений типа unsigned char

unsigned int uchar; //более широкий тип unsigned int

do {

cout << "input unsigned char:" << endl;

cin >> uchar;

} while(uchar < 0 || uchar > UCHAR_MAX); //диапазон значений типа unsigned char

//проверка ввода значения из диапазона значений типа int

float f; //более широкий тип float

int i;

do {

cout << "input int:" << endl;

cin >> f;

} while(f < INT_MIN || f > INT_MAX);

i=f;

cout <<"ok " << i << endl;

Если компилируем как C++:

#define _USE_MATH_DEFINES

#include <cmath>

Если компилируем как C:

#define _USE_MATH_DEFINES

#include <math.h>

Математические константы

Symbol

Expression

Value

M_E

e

2.71828182845904523536

M_LOG2E

log2(e)

1.44269504088896340736

M_LOG10E

log10(e)

0.434294481903251827651

M_LN2

ln(2)

0.693147180559945309417

M_LN10

ln(10)

2.30258509299404568402

M_PI

pi

3.14159265358979323846

M_PI_2

pi/2

1.57079632679489661923

M_PI_4

pi/4

0.785398163397448309616

M_1_PI

1/pi

0.318309886183790671538

M_2_PI

2/pi

0.636619772367581343076

M_2_SQRTPI

2/sqrt(pi)

1.12837916709551257390

M_SQRT2

sqrt(2)

1.41421356237309504880

M_SQRT1_2

1/sqrt(2)

0.707106781186547524401