Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекций по Программированию на С++.doc
Скачиваний:
0
Добавлен:
19.01.2020
Размер:
795.65 Кб
Скачать

Альтернативный ввод-вывод в стиле с

Рассмотренную выше программу можно написать и вторым способом, с использованием функций ввода-вывода, унаследованных из языка С.

#include <stdio.h> // 0) директива препроцессора

#include <conio.h>

using namespace std;

//---------------------------------------------------------------------------

int main() { // 1) заголовок главной функции

float ce, fa; // 2) описание переменных

printf("Vvedite temp. po Fahrengeitu:"); // 3) оператор вывода на экран

scanf("%f", &fa); // 4) оператор ввода и присвоения значения переменной fa

ce = 5. * (fa - 32) / 9 ; // 5) оператор-выражение

printf("Temp. po Celsiu ravna %6.2f\n", ce); // 6)

printf("\nPress any key to exit:");

getch();

return 0; // 7)

}

В данной версии программы спецификация %f соответствует типу float. Существуют следующие наиболее употребительные спецификации: %d – для величин целого типа в десятичной системе счисления; %i – для вывода целых со знаком; %u – для вывода беззнаковых целых; %n.mf – для вывода дробных в формате с фиксированной точкой, где n – количество цифр целой части, m – дробной; %lf – для величин типа double; %s – для строк; %с – для символов.

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

cout.setf(ios::fixed); //округление вещ. числа до 2-ух знаков после запятой:

cout.precision(2);

Д/З

Напишите программу вычисления площади прямоугольника. Ниже приведён рекомендуемый вид экрана во время выполнения программы.

* Вычисление площади прямоугольника *

Введите длину (см): 9

Введите ширину (см): 7.5

Площадь прямоугольника равна: 67.5 (кв.см)

Ответ

int main() {

float l, w, s;

cout << "* Vychislenie S prjamougolnika *";

cout << "\n Vedite dlinu (cm): "; cin >> l;

cout << " Vedite shirinu (cm): "; cin >> w;

s = l * w;

cout << "\n S = " << s << " (kv.cm)";

cout << "\nPress any key to exit: "; getch();

return 0;

}

Лекция 2 (8,5 стр.)

Переменные в С++

Переменная – это именованная область памяти, в которой хранятся данные определённого типа. Во время выполнения программы значение переменной можно изменять. Переменные хранятся в определённых участках памяти компьютера. Когда переменной присваивается значение, оно записывается в ячейку памяти, связанную с данной переменной. Перед использованием любая переменная должна быть описана. Приведём общий вид описания переменных:

[класс памяти] [const] тип имя [= значение];

Здесь, квадратными скобками обозначены необязательные составные части.

Рассмотрим правила задания составных частей:

  • Класс памяти может принимать одно из значений auto, extern, static и register.

  • Модификатор const показывает, что значение переменной изменять нельзя. Такую переменную называют константой. Константа должна быть инициализирована при объявлении.

  • При описании можно присвоить переменной начальное значение, это называется инициализацией. Инициализатор можно записывать в двух формах: = значение или (значение).

Примеры:

int a=1, b;

const char Kl = 'C';

float d = 0.22, x(3.0), summa;

Описание переменной, кроме типа и класса памяти, явно или по умолчанию задаёт её область действия. Область действия идентификатора - это часть программы, в которой его можно использовать для доступа к связанной с ним области памяти. В зависимости от области действия переменная может быть локальной или глобальной.

Если переменная определена внутри блока, т.е. части программы, ограниченной фигурными скобками, она называется локальной. Область действия локальной переменной – от точки описания до конца блока, включая все вложенные блоки. Если переменная определена вне любого блока, она называется глобальной и областью её действия считается файл, в котором она определена, от точки описания до его конца.

Областью видимости идентификатора называется часть текста программы, из которой допустим обычный доступ к связанной с идентификатором областью памяти. Чаще всего область видимости совпадает с областью действия. Исключением является ситуация, когда во вложенном блоке описана переменная с таким же именем. В этом случае внешняя переменная во вложенном блоке невидима.

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

auto – автоматическая переменная. Память под неё выделяется в стеке и при необходимости инициализируется каждый раз при выполнении оператора, содержащего её определение. Время жизни автоматической переменной – с момента описания и до конца блока. Этот спецификатор применяется компилятором по умолчанию, поэтому задавать его явным образом не имеет смысла.

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

static – статическая переменная. Время жизни – постоянное. Инициализируется один раз при первом выполнении оператора, содержащего определение переменной. В зависимости от расположения оператора описания статические переменные могут быть глобальными и локальными. Глобальные статические переменные видны только в том модуле, в котором они описаны.

register – аналогично auto, но память выделяется по возможности в регистрах процессора. Если такой возможности у компилятора нет, переменные обрабатываются как auto. Пример:

int a; // 1: глобальная пер. а -> область действия – вся прогр.; область видимости – вся прогр., кроме строк 6 и 7.

void main (void) {

int b; // 2: локальная пер. b, память под кот. выделяется при входе в блок и освобождается при выходе из него

extern int x; // 3: переменная х определена в другом месте

static int c; // 4: локальная статическая пер. с располагается в сегменте данных и существует всё время

a=1; // 5: присваивание значения глобальной переменной

int a; // 6: локальная переменная а

a=2; // 7: присваивание значения локальной переменной а

}

int x=4; // 8: определение и инициализация х