Стандартный ввод/вывод данных через потоки




ЗНАЕТЕ ЛИ ВЫ?

Стандартный ввод/вывод данных через потоки



#include<iostream>

using namespace std;

 

Используем следующие средства:

1) cin – поток ввода (объект класса istream) (этот поток по умолчанию связан с клавиатурой)

2) cout – поток вывода (объект класса ostream) (по умолчанию связан с монитором)

3) cerr – поток вывода сообщений об ошибках (объект класса ostream) (по умолчанию связан с клавиатурой)

4) операция >> - операция извлечения из потока (ввод данных)

5) операция << - операция помещения в поток (вывод данных)

6) методы ввода-вывода

7) манипуляторы

Ввод-вывод данных производится в соответствии с типом данных

Ввод данных

Синтаксис:

cin>>ИмяПеременной;

В одном операторе можно ввести несколько данных, разделяя имена переменных операцией >>

При выполнении программы необходимо вводить данное соответствующего типа, разделяя их только пробельными символами.

 

Пример 1:

int a, b; cin>>a>>b;

При выполнении:

13 163<ввод> ИЛИ 13<ввод>163<ввод>

 

Пример 2:

char simv; cin>>simv;

При выполнении:

а<ввод>

 

Ввод строки без пробелов внутри:

char str[20];

cin>>str;

При выполнении:

Привет!<ввод>

 

Ввод строки с пробелом внутри

char str[80];

cin.getline(str,80);//контроль количества вводимых символов

При выполнении:

Люблю грозу в начале мая!<ввод>

 

НО: операция >> и getline конфликтуют. Операция >> считывает данное и оставляет на входном потоке клавишу ввода. Метод getline считывает клавишу ввода – получается пустая строка (“проскакивает” ввод строки).

cin.ignore(); - игнорирует один символ с входного потока (при переходе от cin к выполнению)

 

Вывод данных

Синтаксис:

cout<<Выражение;

 

В одном операторе можно вывести несколько выражений, разделяя их операцией <<.

Беспокоиться о разделении данных на экране.

При выводе данного отводится столько позиций, сколько значащих символов в данном.

int a=3, b=5;

cout<<”a=”<<a<<”, b=”<<b<<endl;

При выполнении:

a=3, b=5

 

endl – манипулятор, переводящий строку на следующую.

 

+

8.Операции языка С++: арифметические операции; операция определения остатка от деления; увеличения и уменьшения на единицу.

Операции применяются для представления каких-либо действий над данными.

Операции могут быть:

1) Арифметические

2) Логические

3) Побитовые

4) Отношения и т.д.

Операнды – участники операции. В зависимости от количества операндов, операции делятся на:

1. Унарные

2. Бинарные

3. Тернарные

 

Арифметические операции:

1. Сложение

2. Вычитание

3. Умножение

4. Деление (1/3=0) (1.0/3.0=0.3333)

Операции выполняются с учетом типа: операнды должны быть одинакового типа и результат получается этого же типа. Если типы разные, то происходит автоматическое выравнивание (по высшему) : char->int->long->float->double.

Определение остатка при делении a%b результат – сколько минимально надо отнять от a, чтобы a поделилось на b нацело. (17%4=1)

9.Операции языка С++: операция присваивания, арифметические операции с присваиванием.

 

Операции присваивания – изменяют значение любой переменной, слева пишется имя переменной, справа её новое значение (a=5; a=b+c; a+=2).

Арифметические операции с присваиванием: +=, -=, *=, /=.

+

10.Операции языка С++: операция sizeof, операция приведения к типу, операция определения адреса по имени переменной.

Некоторые нетрадиционные (унарные) операции

Операция sizeof – дает размер операнда в байтах.

sizeof(int) sizeof(summa)

 

Операция (тип) – приводит величину к указанному типу: (int)8.75→8

int a=3, b=7;

double c;

c=(double)a/b;

 

& - амперсант

&a – адрес переменной a.

+

11.Операции языка С++: операции отношения, логические операции. Условная операция.

Условные выражения

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

1 (true) 0 (false)

> >= < <= != ==

Замечание: избегать сравнения на равенства вещественных чисел или сравнивать с определенной долей точности.

(double a, b;

if (fabs(a-b)<1E-8)

cout<<”pochti ravnie”;

else

cout<<”ne ravnie”;)

 

Условные выражения, состоящие из нескольких операций отношения, соединяются логическими операциями:

а) && - логическая операция И– результат истина т.е. 1, если оба операнда истины, или ложь в противном случае;

б) || - логическая операция ИЛИ – результат операции истина или 1 если хотя бы один операнд истинен, или ложь в противном случае;

в) ! – логическая операция НЕ (пишется перед операндом) если операнд – истина, то результат операции – ложь, и наоборот.

 

Анализ символьной информации.

‘0’ ‘9’ ‘A’ ‘Z’ ‘a’ ‘z’ ‘А’ ‘Я’ ‘а’ ‘п’ ‘р’ ‘я’

 

 

char sim;

1. Убедиться, что в переменной записана цифра sim>=’0’&& sim<=’9’

2. В переменной sim содержится большая латинская буква. sim>=’A’&&sim<=’Z’

Операция условия ?:

(тернарная операция)

Альтернатива оператору if.

Используется, когда есть некоторая переменная, которой можно присвоить одно из двух возможных значений.

Синтаксис: выражение 1 ? выражение 2 : выражение 3;

Выполняется: если выражение 1 истина, то результатом операции является выражение 2, иначе - выражение 3.

Примеры:

y=|x|

y=(x>0)?x:-x; вычисляется модуль числа.

 

max=a,b? вычислить max из двух чисел

double a, b, max;

cin>>a>>b;

max=(a>b)?a:b;

 

Задача: определить, кратно ли одно число другому.

 

int main(void)

{

int a, b;

cout<<"Vvedite bolshee chislo";

cin>>a;

cout<<"Vvedite menshee chislo";

cin>>b;

if (a%b==0)

cout<<"kratno";

else

cout<<"ne kratno";

return 0;

}+

Выражения (в том числе и условные). Порядок выполнения операций в выражении. Таблица приоритетов.

Выражение – это объединение операций и операндов. Значение выражения определяется выполнением операций по уровню старшинства (приоритету).

 

Операции от высшего приоритета Порядок выполнения
(), {}, → слева - направо
унарные !, ~, ++, --, &, sizeof * (тип) справа - налево
*, /, % слева - направо
+, - слева - направо
<< >> слева - направо
<, <=, >, >=. слева - направо
==, != слева - направо
& слева - направо
^ слева - направо
| слева - направо
(лог)&& слева - направо
|| слева - направо
?: слева - направо
=, +=, -=, *=, /=, % справа - налево
, слева - направо

Операции выполняются в основном слева-направо (справа-налево выполняются только унарные и присваивания). Расставляем круглые скобки для повышения приоритета. Если операции идут в нужном нам приоритете – скобок не ставим.+

13.Виды операторов в языке С++.

Операторы служат строительными блоками программы и являются командой компьютеру.

Операторы делятся на:

а) оператор выражения,

б) пустой оператор,

в) составной оператор (блок),

г) оператор вызова функции,

д) оператор, начинающийся с ключевого слова.

 

а) Оператор выражение – если в конце, какого либо выражения поставим ; получим оператор выражения.

Синтаксис: выражение; a1=a2=a3; <-=<-=<-

б) Пустой оператор – не вызывает никакого действия. Используется там, где по синтаксису необходимо написать оператор, но никакого действия не должно быть.

Синтаксис: ;

в) Составной оператор – (блок) – любая последовательность операторов заключенная в {}. Блок позволяет написать несколько операторов там, где по синтаксису необходимо написать один оператор.

Синтаксис: { = }

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

· название,

· количество, тип и порядок следования аргументов (исходных данных для функции),

· тип результата функции, передаваемого через оператор return,

· в каком заголовочном файле находится объявление (прототип) функции. Прототип необходим для контроля правильности вызова функции.

 

Синтаксис: result=name(arg1, arg2, …, argN);

где result – переменная под результат функции,

name – название функции,

arg1, arg2, …, argN – аргументы функции, разделенные запятой(исходные данные).

В качестве аргумента можно писать константу, переменную, выражение, вызов другой функции. Если аргументов нет – пишутся пустые круглые скобки. Если результата нет или он не важен – пишется просто name(arg1, arg2, …, argn).

Например:

Y=sin(x);

F=pow(2., y+a);

Simv=getchar();

 

д) if switch while do while for return +





Последнее изменение этой страницы: 2016-06-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.237.205.144 (0.011 с.)