Операции битовой арифметики

&, |, ^, ~, <<, >>.

В операциях битовой арифметики действия происходят над двоичным представлением целых чисел.

Логические операции

||, &&, !.

Логические операции выполняются над логическими значениями 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) Арктангенс x в диапазоне -p/2 до p/2
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=2pR, V=pR2h и 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;

}


Операторы управления

Решение любой задачи на ЭВМ разбивают на следующие этапы:

· разработка алгоритма;

· составление программы на алгоритмическом языке;

· ввод программы в ЭВМ;

· отладка программы;

· выполнение программы;

· анализ результатов.

Понятие алгоритма

Алгоритм – четкое описание последовательности действий, которые необходимо выполнить при решении задачи (иначе, алгоритм – описание процесса преобразования исходных данных в результаты).

Разработка алгоритма решения задачи – это разбиение задачи на последовательно выполняемые этапы.

Способы представления алгоритмов:

· на естественном языке;

· в виде блок-схемы;



ROOT"]."/cgi-bin/footer.php"; ?>