Оператор простого присваивания — КиберПедия 

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Оператор простого присваивания

2019-07-12 126
Оператор простого присваивания 0.00 из 5.00 0 оценок
Заказать работу

 

Оператор присваивания придает переменной конкретное значение, например:

x=2008; y=x+1; z=sin(M_PI/x);

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

Общая схема оператора присваивания:

<имя>=<выражение>;

Все приведенные примеры укладываются в эту схему, т.к. и постоянные величины, и переменные являются частным случаем выражения.

Операторы ввода и вывода данных

 

    Программы форматированного ввода и вывода содержатся в стандартной библиотеке и доступны после включения файла  <stdio.h>. Оператор

printf(format_string [,arguments…]);

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

Спецификация формата в общем виде

%[flags][width][.precision][F|N][h|l|L] type

Спецификации преобразования (type)

 

Символ Тип аргумента Выводной формат
d целое десятичное целое со знаком
i целое десятичное, восьмеричное, шестнадца-теричное целое со знаком
u целое десятичное целое без знака
o целое восьмеричное целое без знака
x целое шестнадцатеричное целое без знака, использующее a,b,c,b,d,e,f
X целое шестнадцатеричное целое без знака, использующее A,B,C,D,E,F
f с плавающей точкой значение со знаком в формате [-]dddd.dddd, d – десятичная цифра
e с плавающей точкой [-]d.dddde[+|-]ddd
E с плавающей точкой [-]d.ddddE[+|-]ddd
G с плавающей точкой e или f в зависимости от того, какой из них компактен для данного значения
G с плавающей точкой E или F
c символ одиночный символ
строка cимволы печатаются до первого символа ’\0’ или до тех пор пока не будет напечатано precision символов
p Значение вида xxxx:yyyy (сегмент:смещение) указатель на указатель far на void. x,y – прописные шестнадцатеричные цифры.

 

Флаг Действие флага По умолчанию
- выравнивание по левой границе выравнивание по правой границе
+ со знаком знак только для отрицательных
пробел добавляет префикс пробел пробел не добавляется
# если o,x,X добавляет префикс: 0, 0x, 0X если e,E,f выводное значение будет содержать десятичную точку во всех случаях нет префикса

Префиксы F и N должны использоваться только с символами типа ”s” и ”p”, поскольку они относятся к аргументам, которые передают указатели:

F –используется для печати значений, которые были объявлены как far в малой модели памяти;

N - используется для печати значений near в средней, большой и сверхбольшой моделях памяти.

Префиксы h и l используются для указания того, что тип аргумента s h ort  и l ong (или double), а L – long double.

Пример

#include <stdio.h>;

#include <math.h>; // подключаем математические функции

void main()

{ int a, b, s; float x,y, pi;

 printf("a b="); scanf("%i%i",&a,&b);

 s=a+b;

 printf("s=%i\n",s);

 printf("s=%6i\n",s); // длина поля вывода=6

 pi=M_PI;

 printf("pi=%e\n",pi);

 printf("pi=%E\n",pi);

 printf("pi=+%e\n",pi); // печать со знаком

 printf("pi=%8.3f\n",pi); // длина поля вывода=8, точность=3

 printf("pi=%.3f\n",pi); // точность=3

}

Если мы введем a=17 и b=5, то на экране получим

s=22

s=ᴗᴗᴗᴗ22 // печатается в 6 позициях выравнивая по правой границе

pi=3.141593e+00

pi=3.141593E+00

pi=+3.141593e+00  

pi=ᴗᴗᴗ3.142       

pi=3.142          

Здесь символы ᴗ означают пробел.

 

Аналогично функция

scanf (format _ string [, arguments …]);

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

Строка, управляющая форматом ввода, может состоять из следующих элементов:

· пробельных символов: пробела (‘ ‘), символа табуляции (‘\t’)  или новой строки (‘\n’). Пробельный символ указывает на то, что из входного потока надо читать, но не сохранять все последовательные символы вплоть до следующего непробельного символа. Один пробельный символ в строке управления форматом соответствует любому числу или комбинации пробельных символов во входном потоке;

· непробельных символов, за исключением процента (%). Непробельный символ указывает на то, что надо читать, но не сохранять соответствующий ему непробельный символ. Если следующий символ во входном потоке не сравнился, функция форматизованного ввода завершается и конфликтный символ остается во входном потоке;

· спецификации формата, которая имеет следующий вид:

%[*][width][F|N][h|l|L]type

Спецификации преобразования функции scanf практически полностью совпадают со спецификациями преобразования функции printf.

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

При выполнении оператора scanf программа останавливается и ждет, пока нужное количество чисел не будет введено с клавиатуры. Вводимые числа разделяют пробелами или нажатием клавиши Enter. Заканчивается ввод всегда нажатием клавиши Enter.

Например, после выполнения оператора scanf(”%i%f%f”,&a,&b,&c), если на клавиатуре набраны числа 3 4.0 -5.025, переменные a, b, c примут значения a=3, b=4, c=-5.025.

Если за символом процента (%) следует символ, который не является символом управления форматом, этот символ и все следующие символы рассматриваются как обычная последовательность символов, т.е. последовательность символов, которая должна совпадать с вводом.

       Звездочка (*), следующая за символом процент, подавляет присваивание следующего входного поля, которое интерпретируется как поле указанного типа. Поле читается, но не сохраняется.

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


Базовые стандартные типы

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

 

Целый тип данных

В алгоритмическом языке C++ существует четыре целых типов данных для представления целых чисел: int (целый), char (символьный), wchar_t (расширенный символьный), bool (логический). Существует четыре спецификатора, уточняющих внутреннее представление и диапазон значений: short (короткий), long (длинный), signed (знаковый), unsigned (беззнаковый).

Тип Диапазон значений Объем памяти
Bool true и false 1
Char -128..127 1
unsigned char 0..255 1
Int -32768..32767 2
unsigned short int 0..65535 2
long int -2147483..2147483647 4
unsigned long int 0..4294967295 4

Тип int тождественен типу short int.

Над величинами целого типа определены следующие операции: сложение (+), вычитание (-), умножение (*), деление нацело (/), получение остатка от деления (%).

Примеры.

N=123, a=N/6 (a=20), b=1/3 (b=0),

c=N%6 (c=3), d=N%2 (d=0).

Здесь надо отметить, что при делении нацело (/) на 10 отбрасывается последняя цифра (M=287, d=N/10, d=28), а при получении остатка от деления (%) на 10 мы получаем последнюю цифру (M=287, r=N%10, r=7).

    Тип char, как и другие целые типы, может быть со знаком или без знака. В величинах со знаком можно хранить значения в диапазоне от -127 до 127. При использовании спецификатора unsigned значения могут находиться в пределах от 0 до 255. Это достаточно для хранения любого символа из 256-символьного набора ASCII (American Standard Code For Information Interchange - американский стандартный код для обмена информацией). Этот набор символы заглавных и строчных букв, цифр и других различных символов, включая специальные управляющие символы.

    Традиционная запись символьного значения представляет собой символ, заключенный в одиночные кавычки: 'A', 'a', 'z', 'я', '(', ' '(пробел) и т. п.

 

Вещественный тип

Вещественные значения могут записываться несколькими способами:

195324 0 -41. +1951
-1.941 0.0011 -1812.000 .05
124E+2 -2.1E-15 9E4 0.1981e31

Как видно, они могут быть представлены: как целые, если дробная часть равна 0; обычным способом с десятичной точкой; в экспоненциальном формате. Экспоненциальный формат соответствует умножению на заданную степень 10. Например, -2.1E-15=-2.1×10-15. Написание буквы E может быть как прописным, так и строчным.

Стандарт C++ определяет три типа данных для хранения вещественных значений: float (вещественный), double (вещественный с двойной точностью) и long double.

Тип Диапазон значений Количество цифр Объем памяти
float 3.4e-38..3.4e+38 11-12 4
double 1.7e-308..1.7e+308 15-16 8
long double 3.4e-4932..3.4e+4932 19-20 10

 


Поделиться с друзьями:

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

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

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.017 с.