
- •220300 - Системы автоматизированного проектирования
- •Состав языка и принцип работы компилятора языка высокого уровня
- •Идентификаторы
- •Альтернативный ввод-вывод в стиле с
- •Константы
- •Манипуляторы
- •Преобразования типов
- •Арифметические операции
- •Функции стандартной библиотеки
- •Операции отношения и логические операции
- •Базовые конструкции структурного программирования
- •Цикл с параметром (for)
- •Цикл с предусловием (while)
- •Цикл с постусловием (do while)
- •Рекомендации по программированию циклов
- •Ветвления
- •Условный оператор if
- •Вложенные конструкции
- •Проблемы соответствия if и else во вложенных ветвлениях
- •Условная операция
- •Оператор switch
- •Операторы передачи управления
- •Контрольная работа
- •Массивы
- •Сортировка массива методом выбора
- •Сортировка массива методом пузырька
- •Многомерные массивы
- •Операции со строками
- •Функции
- •Void starline(); // объявление функции (прототип)
- •Передача аргументов в функцию по значению
- •Void charline(char sim, int n); // объявление функции (прототип)
- •Возвращение функцией значения
- •Передача аргументов по ссылке
- •Возвращение значения по ссылке
- •Перегруженные функции
- •Переменные и функции
- •Передача массивов в функции
- •Указатели
- •Указатели и массивы
- •Указатели и функции
- •Указатели и строки
- •Динамический массив и динамическое выделение памяти
- •Ввод/вывод
- •Форматированный ввод/вывод
- •Конструкторы и методы
- •Двоичный ввод/вывод. Бинарные файлы
- •Двунаправленный ввод/вывод
- •Функции стандартной библиотеки для работы с файлами или ввод/вывод в стиле с
Константы
Рассмотрим пример, характеризующий сказанное ранее о константах.
int main() {
float r, S; // переменная вещ. типа (радиус и площадь)
const float PI =3.14159; // вещественная константа (число Пи)
cout << "Vvedite radius okrugnosti: "; // запрос
cin >> r; // считывание введенного радиуса
S = PI * r * r; // вычисление площади круга
cout <<"Ploshad kruga ravna " << S << endl; // вывод результата на экран
return 0;
}
Здесь ключевое слово const, предшествующее описанию типа переменной означает, что во время выполнения программы запрещено изменять значение этой переменной.
Константы можно определять с помощью директивы препроцессора #define. Например: #define PI 3.14159. Однако отсутствие типа у подобных констант может привести к некорректной работе программы, и поэтому такой способ не рекомендуется употреблять в С++.
Манипуляторы
Манипуляторы – это особые операции, используемые для изменения формата вывода данных программы. Манипуляторы действуют только на те данные, которые следуют за ними в потоке (<<) . Рассмотрим пример форматированного ввода-вывода:
#include <iostream>
#include <iomanip> // для использования setw
#include <conio>
using namespace std;
//---------------------------------------------------------------------------
int main() {
int pop1 = 8425785, pop2 = 47567; // кол-во населения
cout << setw(8) << "Gorod" << setw(11) << "Naselenie" << endl
<< setw(8) << "Moskva" << setw(11) << pop1 << endl
<< setw(8) << "Kirov" << setw(11) << pop2 << endl;
getch(); return 0; }
В данной программе используется манипулятор setw(n), который печатает число или строку, следующую за ним в потоке, в поле фиксированной длины n. Значение переменной, помещаемой в поле, выравнивается справа.
setw(8) |
setw(11) |
|||||||||||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
|
|
Г |
о |
р |
о |
д |
|
|
Н |
а |
с |
е |
л |
е |
н |
и |
е |
|
|
М |
о |
с |
к |
в |
а |
|
|
|
|
8 |
4 |
2 |
5 |
7 |
8 |
5 |
|
|
|
К |
и |
р |
о |
в |
|
|
|
|
|
|
4 |
7 |
5 |
6 |
7 |
Манипуляторы бывают двух видов: с аргументами и без аргументов. Для работы с ними требуется заголовочный файл <iomanip.h>. Приведём наиболее распространённые манипуляторы.
Таблица "Манипуляторы с аргументами"
Манипулятор |
Аргумент |
Назначение |
setw() |
ширина поля (int) |
Устанавливает ширину поля для вывода данных |
setfill() |
символ заполнения (int) |
Устанавливает символ заполнения (по умолчанию, пробел) |
setprecision() |
точность (int) |
Устанавливает точность, т.е.число выводимых знаков после запятой |
setiosflags() |
флаги форматирования (long) |
Устанавливает указанные флаги форматирования |
resetiosflags() |
— « —- |
Сбрасывает указанные флаги форматирования |
Таблица "Манипуляторы без аргументов"
Манипулятор |
Назначение |
ws |
Включает пропуск пробелов при вводе |
dec |
Перевод в десятичную форму |
oct |
Перевод в восьмеричную форму |
hex |
Перевод в шестнадцатеричную форму |
endl |
Вставка разделителя строк, очистка потока и перевод на следующую строку |
ends |
Вставка символа отсутствия информации для окончания выходной строки |
… |
… |
Например, чтобы вывести переменную d в шестнадцатеричной форме, надо указать: cout << hex << d; .