Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЯВУ - С-С++методичка и титул.doc
Скачиваний:
12
Добавлен:
08.11.2019
Размер:
789.5 Кб
Скачать

Переменные

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

тип имя [ =инициатор ], ... ; где

тип – ключевое слово, определяющее объём памяти (число байтов), выделенный для хранения значения переменной (как объекта программы), например: char – символьный (1 байт), int – целый (2 байта), float (4 байта), double (8 байт) – вещественный;

имя – уникальный идентификатор переменной, задающий символический адрес объекта программы в памяти ЭВМ;

инициатор – начальное значение переменной, которое может отсутствовать в описании.

Примеры описания переменных:

int k, max=0; float r2, p1=0.5; double z5_1;

unsigned int year=2000; char sim=’x’, bell=’\a’;

Ввод-вывод данных

Для того чтобы данные попали в память ЭВМ, пользователь должен их ввести, а для получения результатов работы программы должен уметь вывести их в приемлемом для человека виде. В языках С/С++ отсутствуют встроенные операторы ввода-вывода. Вместо них используются библиотечные функции, которые подключаются к программе с помощью файла заголовков. Поскольку язык С является подмножеством С++, то использование библиотек С будем рассматривать как "стиль С", а обращение к библиотекам С++ – как "стиль С++".

Ввод-вывод данных в стиле с

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

# include <stdio.h> // подключение функций стандартного ввода-вывода

#include<conio.h> // подключение функций консольного ввода-вывода

Под консолью пользователя понимается клавиатура как стандартное устройство ввода и экран дисплея (стандартное устройство вывода). На эти устройства можно ссылаться с помощью предопределённых в файле stdio.h указателей: stdin – стандартный ввод и stdout – стандартный вывод. Стандартный ввод-вывод может быть двух видов: форматированный и неформатированный.

Форматированный ввод

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

scanf (“форматная строка”, &аргумент, ... ) , где

форматная строка – это список спецификаций форматов вводимых данных, разделённых запятыми;

&аргумент – адрес переменной (аргумента) в оперативной памяти, по которому будет записано значение переменной при вводе с клавиатуры.

Спецификация формата аргумента начинается с символа % (процент) и в простом случае должна содержать символ типа аргумента по форме:

% тип.

Символ типа определяет, как интерпретируется компилятором вводимое значение аргумента:

тип переменной int (целый):

d, i – десятичное целое со знаком;

u – десятичное целое без знака (U – для типа long int – длинный целый);

o – восьмеричное число;

x – шестнадцатеричное число;

тип переменной float (вещественный) :

f, e, E – вещественное число с фиксированной или плавающей точкой;

тип переменной char (символьный):

c – ввод одного символа;

s – ввод строки символов, пока не встретится символ первого пробела

или '/n' (новая строка).

Пример 1.

Ввести значения (исходные данные) в описанные переменные:

int m; float p1; char sim, str[80]; // str символьный массив

Функция ввода данных может иметь вид:

scanf (“%d%f%c%s” ,&m, &p1, &sim, str);

Поскольку имя массива символов str задает адрес этого массива, постольку ему не предшествует символ адреса – &.

При вводе с клавиатуры числовые данные должны разделяться пробельным символом (путем нажатия клавиш <пробел> или <Enter>). Символьные данные не разделяются, поскольку пробельные символы прочитываются как вводимые символы. Например, с клавиатуры могут быть введены данные следующим образом:

25 37.08rHello // в конце ввода нажимается клавиша <Enter>

В памяти будут записаны значения переменных:

m=25, p1=37.08, sim=r, str=Hello\0 /* строка автоматически завершается управляющим символом конца строки ‘\0’ */ .

При вводе данные поступают вначале во входной буфер stdin, а затем в оперативную память после нажатия клавиши <Enter> (ввод).

Для очистки буфера ввода stdin от оставшихся от предыдущего ввода символов используется функция

fflush (stdin) .