&, |, ^, ~, <<, >>.
В операциях битовой арифметики действия происходят над двоичным представлением целых чисел.
Логические операции
||, &&,!.
Логические операции выполняются над логическими значениями true (истина) и false (ложь). В языке С++ ложь – 0, истина – любое значение ¹ 0.
Операции отношения
Таких операций шесть:
>, >=, <, <=, ==,!=.
Результат операции отношения – логическое значение true (истина) или false (ложь).
Условная операция
Для организации разветвлений в простейшем случае можно использовать условную операцию
?:
Эта операция имеет три операнда и в общем виде может быть представлена так:
условие? выраж1: выраж2;
Работает операция следующим образом. Если условие истинно (не равно 0), то результатом будет выражение1, в противном случае выражение2.
Например, операция
y=x<0? x: x;
записывает в переменную y модуль числа х.
Операция преобразования типа
Для приведения выражения к другому типу данных в С++ существует операция преобразования типа:
(тип) выражение;
Например, в результате действий
x=5;
y=x/2;
z=(float) x/2;
переменная y примет значение равное 2 (результат целочисленного деления), а переменная z = 2.5.
Операция определения размера
Вычислить размер объекта или типа в байтах можно с помощью операции определения размера, которая имеет две формы записи:
sizeof (тип)
или
sizeof выражение
Стандартные функции
В C++ определены стандартные функции над арифметическими операндами:
Математические функции
Обозначение | Действие |
abs(x) | Модуль целого числа |
fabs(x) | Модуль вещественного числа |
sin(x) | Функция синус |
cos(x) | Функция косинус |
tan(x) | Функция тангенс |
atan(x) | Арктангенс |
exp(x) | Экспонента, ex |
log(x) | Натуральный логарифм (x>0) |
log10(x) | Десятичный логарифм (x>0) |
sqrt(x) | Корень квадратный (x≥0) |
pow(x,y) | x в степени y |
Определенную проблему представляет применение функции pow(x,y), которая возводит х в степень y. В некоторых случаях возведение в степень невыполнимо.
Ошибка возникает, если х – отрицательное число, а y – дробь. Предположим, что y – правильная дробь вида k/m. Если знаменатель m четный, это означает вычисление корня четной степени из отрицательного числа, а значит, операция не может быть выполнена. В противном случае, если знаменатель m нечетный, можно воспользоваться выражением
z=–pow(fabs(x),y).
Структура программы
Программа на языке С++ состоит из функций, описаний и директив процессора.
Одна из функций должна обязательно носить имя main.
Элементарное описание функции:
тип_результата имя_функции (параметры)
{
оператор1;
оператор2;
…
операторN;
}
Здесь,
тип_результата – это тип того значения, которое функция должна вычислить (если функция не должна возвращать значение, указывается тип void),
имя_функции – имя, с которым можно обращаться к этой функции,
параметры – список аргументов функции (может отсутствовать),
оператор1, оператор2,…, операторN – операторы, представляющие тело функции, они обязательно заключаются в фигурные скобки и каждый оператор заканчивается точкой с запятой.
Как правило программа на С++ состоит из одной или нескольких, не вложенных друг в друга функций.
Основному тексту программы предшествуют директивы процессора, которые в общем виде выглядят так:
#include <имя_файла>
Каждая такая строка дает компилятору команду присоединить программный код, который хранится в отдельном файле с расширением.h. Такие файлы называют файлами заголовков.
С их помощью можно выполнять ввод-вывод данных, работать с математическими функциями, преобразовывать данные, распределять память и многое другое.
Например, описание стандартных математических функций находится в заголовочном файле math.h.
Общую структуру программы на языке С++ можно записать так:
директивы процессора
описание глоб. переем.
тип_результата main(параметры)
{
операторы главной функции
}
тип_результата имя1(параметры1)
{
операторы1;
}
тип_результата имя2(параметры2)
{
операторы2;
}
..................
тип_результата имяN(параметрыN)
{
операторыN;
}
Ввод и вывод данных
Ввод-вывод данных в языке С++ осуществляется либо с помощью функций ввода-вывода в стиле С, либо с использованием библиотеки классов С++. Преимущество объектов С++ в том, что они легче в использовании. Функции ввода-вывода унаследованные от С более громоздкие, но подходят для задач с форматированным выводом данных.
Функции ввода- вывода
Функция
printf(строка форматов,
список выводимых
переменных)
выполняет форматированный вывод переменных, указанных в списке, в соответствии со строкой форматов.
Функция
scanf(строка форматов,
список адресов вводимых
переменных)
выполняет ввод переменных, адреса которых указанны в списке, в соответствии со строкой форматов.
Строка форматов содержит символы, которые будут выводиться на экран или запрашиваться с клавиатуры и так называемые спецификации.
Спецификации это строки, которые начинаются символом % и выполняют управление форматированием:
% флаг ширина.точность
модификатор тип
Параметры флаг, ширина, точность и модификатор в спецификациях могут отсутствовать.
Первой строкой программы, в которой будут применяться функции ввода-вывода языка С, должна быть директива
#include <stdio.h>
Заголовочный файл stdio.h содержит описание функций ввода-вывода.
ЗАДАЧА 1. Зная a, b, c – длины сторон треугольника, вычислить площадь S и периметр P этого треугольника.
Входные данные: a, b, c.
Выходные данные: S, P.
Для вычисления площади применим формулу Герона: ,
где r – полупериметр.
//ЗАДАЧА 2.1.
//Вариант первый
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,S,r;
printf("a=");
scanf("%f",&a);
printf("b=");
scanf("%f",&b);
printf("c=");
scanf("%f",&c);
r=(a+b+c)/2;
S=sqrt(r*(r-a)*(r-b)*(r-c));
printf("S=%5.2f \t",S);
printf("p=%5.2f \n", 2*r);
return 0;
}
//ЗАДАЧА 2.1.
//Вариант второй
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c,S,r;
printf("Vvedite a,b,c \n");
scanf("%f%f%f",&a,&b,&c);
r=(a+b+c)/2;
S=sqrt(r*(r-a)*(r-b)*(r-c));
printf("S=%5.2f \t
p=%5.2f \n",
S,2*r);
return 0;
}
Объектно-ориентированные
Средства ввода-вывода.
Описание объектов для управления вводом-выводом содержится в заголовочном файле iostream.h.
При подключении этого файла с помощью директивы
#include <iostream.h>
в программе автоматически создаются объекты-потоки[3]
· cin для ввода с клавиатуры,
· cout для вывода на экран,
а так же операции
· помещения в поток <<,
· чтения из потока >>.
С помощью объекта cin и операции >> можно присвоить значение любой переменной.
Например, если переменная i описана как целочисленная, то команда
cin>>i;
означает, что в переменную i будет записано некое целое число, введенное с клавиатуры.
Если нужно ввести несколько переменных, следует написать
cin>>x>>y>>z;.
Объект cout и операция << позволяют вывести на экран значение любой переменной или текст.
Текст необходимо заключать в двойные кавычки.
Допустимо применение специальных символов
· \t - табуляция
· \n – перевод на новую строку.
Запись cout<<i; означает вывод на экран значения переменной i.
Команда
cout<<x<<”\t”<<y;
выведет на экран значения переменных x и y разделенные символом табуляции.
ЗАДАЧА 2.Известны плотность r, высота h и радиус основания R цилиндрического слитка, полученного в металлургической лаборатории. Найти объем V, массу m и площадь S основания слитка.
Входные данные: r, h, R.
Выходные данные: S, V, m.
Учитывая, что S =2 pR, V =p R 2 h и m = rV составим текст программы:
#include "stdafx.h"
#include <iostream.h>
//Опред. константы
#define pi 3.14159
int main()
{
double R,h,r,S,V,m;
cout<<"R=";
cin>>R;
cout<<"h=";
cin>>h;
cout<<"r=";
cin>>r;
S=2*pi*R;
V=pi*R*R*h;
m=r*V;
cout<<"S="<<S;
cout<<"\n V="<<V;
cout<<"\n m="<<m;
}
Операторы управления
Решение любой задачи на ЭВМ разбивают на следующие этапы:
· разработка алгоритма;
· составление программы на алгоритмическом языке;
· ввод программы в ЭВМ;
· отладка программы;
· выполнение программы;
· анализ результатов.
Понятие алгоритма
Алгоритм – четкое описание последовательности действий, которые необходимо выполнить при решении задачи (иначе, алгоритм – описание процесса преобразования исходных данных в результаты).
Разработка алгоритма решения задачи – это разбиение задачи на последовательно выполняемые этапы.
Способы представления алгоритмов:
· на естественном языке;
· в виде блок-схемы;