- •Алгоритмитизация и программирование Лекция 1
- •Общие сведения
- •Модель osi. Понятие об интерфейсах и протоколах. Рекомендация itu-t X.200
- •1.3. Системы счисления
- •Лекция 2
- •2.1. Способы описания алгоритмов функционирования узла коммутации
- •2.2. Описание алгоритмов с помощью диаграммы состояний
- •Variable
- •Input port
- •Input signal
- •2.3. Описание алгоритмов с помощью временной диаграммы
- •Описание алгоритмов с помощью текстового описания
- •Лекция 3
- •3.2. Типы данных
- •3.3. Арифметические операторы
- •3.4. Операторы сравнения
- •3.5. Побитовые операторы
- •3.6. Кодовые таблицы
- •Int main()
- •Лекция 4
- •4.2. Переменные
- •4.3. Ввод/вывод
- •4.4. Арифметические операции
- •4.5. Взаимосвязь чисел и литер
- •Лекция 5
- •5.1. Базовые конструкции
- •5.2. Операторы базовых конструкций
- •If (условие) {операторы 1}
- •Лекция 6
- •6.1. Указатели
- •6.2. Функции
- •6.3. Массивы
- •Лекция 7
- •7.1. Создание и инициализация строк
- •7.2. Функции для работы со строками
- •Лекция 8
- •8.1. Структуры
- •8.2. Формирование контрольной суммы
- •Лекция 9
- •9.1. Операции с файлами
- •9.2. Открытие текстового файла для записи
- •9.3. Открытие текстового файла для чтения
4.4. Арифметические операции
Простые арифметические действия заложены в заголовочный файл #include <iostream>. Для выполнения сложных арифметических операций (извлечения корня, возведения в степень, …) следует подключить заголовочный файл #include <cmath>.
Библиотека <cmath> содержит следующие основные математические функции:
sin(x) – вычисление синуса (х – в радианах)
cos(x) – вычисление косинуса (х – в радианах)
exp (x) – экспоненциальная функция ex
log(x) – натуральный логарифм (х>0)
log10(x) – логарифм по основанию 10 (х>0)
pow(x,y) – возведение в степень (xy)
sqrt(x) – квадратный корень (х>0)
Пример: вычисление 5.3 в степени -4.7.
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float a=5.3, b=-4.7, c;
c=pow(a,b); cout <<"Result c = "<<c<<endl;
return 0;
}
4.5. Взаимосвязь чисел и литер
Каждая клавиша клавиатуры имеет свой код. Этот код отображается либо как число (переменная int), либо как строковая литера (переменная char). Служебные литеры не выводятся (ожидание ввода !!!).
Прмеры:
#include <iostream>
using namespace std;
int main()
{
char a; cout <<"char="; cin>>a; //ввод литеры
int b; b=a; //код литеры
cout << "char=" << a << " number="<<b<<endl;
return 0;
}
При вводе кириллицы выводится код в соответствии с кодовой таблицей MS DOS. Например, литера “Ц” отображается кодом -106, что эквивалентно 256-106=150.
#include <iostream>
using namespace std;
int main()
{
int c;
cout <<"number="; cin>>c; //ввод числа
cout <<"number="<< c << " char="<<char(c)<<endl;
return 0;
}
Сложение литер приводит к ее изменению (не к склеиванию !!!!).
#include <iostream>
using namespace std;
int main()
{
char e, f, g;
cout << "char="; cin>>e; //вводим литеру '3' с клавиатуры (код =51)
cout << "char="; cin>>f; //вводим литеру '6' с клавиатуры (код =54)
g=e+f; // код 51+54=105 соответствует литере 'i'
cout << e << "+" << f << "=" <<g<<endl;
return 0;
}
При переполнении разрядной сетки сhar (256 бит) старшие разряды отсекаются.
Пример.
#include <iostream>
using namespace std;
int main()
{
char e, f, g, h;
cout << "char="; cin>>e; //вводим литеру 'О' с клавиатуры (код =142)
cout << "char="; cin>>f; //вводим литеру 'л' с клавиатуры (код =203)
cout << "char="; cin>>g; //вводим литеру 'я' с клавиатуры (код =239)
h=e+f+g; //код 142+203+239=584 соответствует литере '('
cout << h <<endl;
return 0;
Код 584=1001001000 усекается до 1001000 72, что соответствует литере “(”.
Простейшее шифрование текста может производиться с помощью изменения литеры ключом шифрования.
Пример.
#include <iostream>
using namespace std;
int main()
{
int key=-116;
int a=143, b=224, c=168, d=162, e=165, f=226, g=33;
//Исходный текст
cout<<"Open text: ";
cout<<char(a)<<char(b)<<char(c)<<char(d)<<char(e)<<char(f)<<char(g)<<endl;
cout<<endl;
a=a+key; b=b+key; c=c+key; d=d+key; e=e+key; f=f+key; g=g+key;
//Шифрованный текст
cout<<"Encrypted text: ";
cout<<char(a)<<char(b)<<char(c)<<char(d)<<char(e)<<char(f)<<char(g)<<endl;
//cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<" "<<g<<" "<<endl;
cout<<endl;
a=a-key; b=b-key; c=c-key; d=d-key; e=e-key; f=f-key; g=g-key;
//Дешифрованный текст
cout<<"Decrypted text: ";
cout<<char(a)<<char(b)<<char(c)<<char(d)<<char(e)<<char(f)<<char(g)<<endl;
cout<<endl;
return 0;
}
Следует иметь в виду, что при запуске исполняемой программы main.ехе после ее исполнения она моментально закрывается. Чтобы удержать данные на экране следует воспользоваться инструкцией OS system("pause"); с подключением заголовочного файла #include <windows.h>.
Пример:
#include <iostream>
#include <windows.h> //установка команд операционной системы
using namespace std;
int main()
{
int a;
cout<<"Input a: "; cin>>a;
cout <<"Result a= "<<a<<endl;
system("pause"); //команда операционной системе о приостановке
return 0;
}
Задание. Выполнить лабораторную работу 4 (Базовые средства языка С++).