Приведения типов в выражениях и при присваивании
// неявное преобразование типа
inta = 5;
float b = a + 0.5; // int -> float
intk = 234.567; // float ->int
// явное преобразование типа
intk = 10;
doubley = ((double)k/3);
Правила преобразования типов:
-в любом случае величины типов char, signedchar, unsignedchar, shortint, unsignedshortint преобразуются в тип int, если он может представить все значения, или в unsignedint в противном случае.
-После этого операнды преобразуются к типу наиболее длинного из них, и он используется как тип результата.
В выражение могут входить операнды различных типов. Если операнды имеют одинаковый тип, то результат операции будет иметь тот же тип. Если операнды разного типа, перед вычислениями выполняются преобразования типов по определенным правилам, обеспечивающим преобразование более коротких типов в более длинные для сохранения значимости и точности.
Преобразования бывают двух типов:
-Изменяющие внутреннее представление величин (с потерей точности или без потери точности);
-Изменяющие только интерпретацию внутреннего представления.
К первому типу относятся, например, преобразование целого в вещественное (без потери точности) и наоборот (возможно, с потерей точности), ко второму – преобразование знакового целого в беззнаковое.
9. Как организуется ввод/вывод данных в стиле языка C и С++? Примеры
Ввод-вывод данных в языке С++ осуществляется либо с помощью функций ввода-вывода в стиле С, либо с использованием библиотеки классов С++. Преимущество объектов С++ в том, что они легче в использовании, особенно если ввод-вывод достаточно простой. Функции ввода-вывода унаследованные от С более громоздкие, но подходят для задач с форматированным выводом данных.
Система ввода-вывода языка С++ обеспечивает единообразный интерфейс, не зависящий от физических устройств. Иначе говоря, система ввода-вывода создает между программистом и устройством ввода-вывода абстрактное (логическое) средство связи.
сin | Поток для ввода с клавиатуры |
сout | Поток для вывода на экран монитора |
сerr | Поток для вывода стандартных ошибок |
#include <conio.h>
#include <iostream>
using namespace std;
Int main()
{ int a; cout<< "\n a = ";cin>> a;
cout<< "\n a + a = " << a + a; getch(); return 0;
}
Для ввода/вывода данных в стиле C часто используются функции printf и scanf, которые описываются в библиотечном файле stdio.h.Функция printf() возвращает количество записанных ею символов , а в случае ошибки – отрицательное число.
Форматная строка – это строка символов, заключенных в кавычки, которая показывает, как должны быть напечатаны аргументы. Может содержать:Символы печатаемого текста.Спецификации формата.Управляющие символы (\n – новая строка; \t – табуляция; \a – звуковой сигнал и др.).
stdin | Поток для ввода с клавиатуры |
stdout | Поток для вывода на экран монитора |
stderr | Поток для вывода стандартных ошибок |
#include <conio.h>
#include <stdio.h>
int main() { float a; printf("\n a : "); scanf("%f", &a);
printf("\n a = %10.5f",a); getch(); return 0 }
Опишите чем отличается ввод символа с помощью функций getchar(), getch()и getche().Пример.
Функция getchar() возвращает целое число. В его младшем байте содержится код символа, соответствующего нажатой клавише (старший байт обычно содержит нулевое значение). Это позволяет присвоить полученное целочисленное значение какой-нибудь символьной переменной. Если при вводе произошла ошибка, функция getchar() возвращает константу EOF
После нажатия клавиши функция getch() немедленно возвращает результат, введенный символ на экране не отображается.
Функция getche () аналогична функции getch(), за одним исключением: введенный символ отображается на экране
#include <conio.h>
#include <stdio.h>
Void main()
{ charch;
printf("Vvodchи Enter: "); ch = getchar();
printf("\nВынажали %c\n",ch);
printf("Нажмителюбуюклавишу: "); ch = getch();
printf("\nВынажали %c\n",ch);
printf("Нажмителюбуюклавишу: ");ch = getche();
printf("\nВынажали %c\n",ch);}
11. Оператор if: назначение, синтаксис записи, выполнение, примеры использования
Работает условный оператор следующим образом. Сначала вычисляется значение выражения-условия. Если оно не равно нулю, то есть имеет значение истина (true), выполняется оператор_1. В противном случае, когда значение выражения равно нулю, то есть имеет значение ложь (false), то оператор_2.
if (условие) оператор_1; else оператор_2;
Если в задаче требуется, чтобы в зависимости от значения условия выполнялся не один оператор, а несколько, их необходимо заключать в фигурные скобки, как составной оператор. В этом случае компилятор воспримет группу операторов как один.
В примере применения условного оператора без альтернативной ветки else значение переменной с изменяется только при условии, что а не равно b. Вывод на экран значения переменной с выполняется в любом случае
Условные операторы могут быть вложены друг в друга. При вложениях условных операторов всегда действует правило: ветка else считается принадлежащей ближайшемуif.
Не стоит увлекаться сложными вложенными условными операторами. Проверки условий занимают сравнительно много времени. По возможности лучше использовать логические операции.
12. Оператор switch : назначение, синтаксис записи, выполнение, примеры использования
Оператор переключатель определяет множественный выбор.
При выполнении оператора switch, вычисляется выражение, записанное после switch, оно должно быть целочисленным. Полученное значение последовательно сравнивается с константами, которые записаны следом за case. При первом же совпадении выполняются операторы, помеченные данной меткой.
Если выполненные операторы не содержат оператора перехода, то далее выполняются операторы всех следующих вариантов, пока не появится оператор перехода (break) или не закончится переключатель.
Если значение выражения, записанного после switch, не совпало ни с одной константой, то выполняются операторы, которые следуют за меткой default
13. Понятие цикла. Оператор while: назначение, синтаксис записи, выполнение, примеры
Использования
Цикл – это повторение одних и тех же действий. Последовательность действий, которые повторяются в цикле, называют телом цикла.
Один проход цикла называется итерацией. Переменные, изменяющиеся внутри цикла и влияющие на его окончание, называются параметрами цикла.
При написании циклических программ следует помнить следующее. Во-первых, чтобы цикл имел шанс когда-нибудь закончиться, содержимое его тела должно обязательно влиять на условие продолжения цикла. Во-вторых, условие должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла.
Для удобства в С++ есть три разных оператора цикла – while, dowhile, for.
Цикл с предусловием работает следующим образом. Вычисляется значение выражения (условия продолжения цикла). Если оно истинно (не равно нулю), выполняется оператор (операторы) тела цикла. Если тело цикла состоит более чем из одного оператора, необходимо использовать составной оператор. Если условие продолжения цикла ложно (равно нулю) – цикл заканчивается и управление передается оператору, следующему за телом цикла. Условие продолжения цикла вычисляется перед каждой итерацией цикла. Если при первой проверке оно равно нулю, цикл не выполнится ни разу.
Далее представлен оператор while, который реализует этот алгоритм.
#include <iostream>
#include <conio.h>
#include <math.h>
#define PI 3.14159