- •Московский государственный социальный университет академия информатики и информационных технологий
- •Введение
- •Часть. Основы программирования на Си
- •1.1. Структура простейшей Си-программы
- •1.2. Данные в Си и операции над ними
- •1.2.1. Свойства ячейки памяти. Переменные и константы
- •1.2.2. Типы данных в Си
- •1.2.3. Правила записи констант в Си
- •1.2.4. Описание переменных и именованных констант в Си.
- •1.2.5. Выражения в Си
- •1.3. Операторы преобразования данных
- •1.3.1. Общие положения
- •1.3.2. Функция форматного выводаprintf()
- •1.3.3. Функция форматного вводаscanf()
- •1.4. Разработка программ на Си
- •1.4.1. Понятие о качестве программы и основные технологические принципы разработки программ
- •1.4.2. Алгоритм и способы его записи.
- •1.4.3. Изображение алгоритмов в виде блок-схем
- •1.4.4. Базовые структуры алгоритмов и их кодирование на Си.
- •1. Следование
- •2. Разветвление (развилка)
- •If (условие)
- •If (условие)
- •3. Цикл
- •1.4.4. Примеры разработки программ
- •1.5. Массивы и указатели
- •1.5.1. Понятие массива. Основные правила работы с массивами в Си
- •1.5.2. Примеры программ с массивами.
- •1.5.3. Инициализация массивов
- •1.5.4. Указатели в Си10
- •1.5.5. Связь массивов с указателями в Си
- •Часть. Функции и многофайловые программы в Си
- •2.1. Общие сведения о подпрограммах и функциях
- •2.2. Функции си
- •2.2.1. Описание функции
- •2.2.2. Обращение к функции
- •2.2.3. Место описания функции в программе
- •2.2.4. Примеры программ, использующих функции
- •2.3. Краткие сведения о препроцессоре Си
- •2.3.2.Директива макроопределения #define
- •2.3.3. Директива #include включения файлов
- •2.3.4. Директивы условной компиляции
- •2.415. Многофайловые си-программы
- •2.4.1. Структура программы на Си. Область действия переменных
- •2.4.2. Время жизни и класс памяти переменных
- •Описатели класса памяти
- •2.4.3 Понятие о файле проекта
- •Часть. Обработка символьной информации и документов сложной структуры
- •3.1. Обработка символьной информации на Си
- •3.1.1. Символьный тип
- •3.1.2. Работа со строками символов в Си. Строковые литералы. .
- •3.1.3. Функции и макросы для работы с символьной информацией
- •3.1.4. Примеры программ
- •3.2. Тип "структура" в Си
- •Структура
- •3.3. Файлы в Си
- •3.3.1. Общие понятия.
- •3.2.Функции Си для работы с файлами
- •3.3.3. Примеры программ, использующих файлы
- •Литература
- •Содержание
1.3. Операторы преобразования данных
1.3.1. Общие положения
К операторам преобразования данных относятся: оператор присваивания, с помощью которого осуществляются все преобразования внутренних данных, операторы ввода и вывода.
Оператор присваиваниябыл рассмотрен в п.1.2.5, когда рассматривалиоперацию присваивания. В этой части пособия будут рассмотрены операторы вывода и ввода.
Под вводомпонимается процесс передачи данных с внешних устройств в память компьютера, подвыводом- передачи данных из памяти компьютера на внешние устройства. Ввод и вывод являются важнейшими операторами, так как с их помощью осуществляется общение пользователя с программой. Без операторов вывода программа вообще не имеет права на существование: если она ничего не сообщает пользователю, то зачем она нужна?
Вводу подлежат исходные данные. Это переменные, начальные значения которых меняются от одного выполнения алгоритма к другому. Выводятся, естественно, результаты программы. Соответствующие данные называютсявыходными данными.Все остальные данные называютсяпромежуточными. Разделение данных на исходные, выходные и промежуточные называетсяклассификацией данных по функциональному признаку. Определение, какие данные будут исходными, а какие выходными, является первым и важнейшим этапом разработки алгоритма и программы.
В стандарте языка Си отсутствуют средства ввода-вывода. Эти операции реализуются с помощью функций, находящихся в библиотеках языка Си, поставляемых в составе конкретной системы программирования. В примере рис. 1 инструкция #include <stdio.h> нужна для подключения одной из библиотек ввода-вывода системы программированияBorland C++ 3.1.
Последовательность значений на входном (или выходном) устройстве в Си принято называть потоком.
В этом разделе пособия мы рассмотрим только операторы ввода с клавиатуры и вывода на экран. Работа с внешней памятью (файлами на магнитных дисках) будет рассмотрена в третьей части пособия. Из всего множества операторов ввода-вывода языка Си рассмотрим операторы форматного ввода-вывода.
Начинающим с нуля, возможно, будет трудно воспринимать этот материал. Тогда стоит воспользоваться более простыми6операторами ввода-вывода, относящимися, однако, не к языку Си, а его расширению Си++. Чтобы использовать их, надо в начале программы поместить директиву препроцессора
#include <iostream.h>
Эти операторы в простейшем случае имеют вид:
cin >>имя_переменной;
cout <<выражение;
здесь cin - стандартный поток ввода (обычно ввод с клавиатуры компьютера),cout - стандартный поток вывода (обычно вывод на экран монитора),>>и<<- операции "взять из" и "передать в"; легко видеть, что направление стрелок указывает направление передачи данных.
Применяя эти операторы, простейшую программу рис. 1 можно переписать следующим образом:
#include <iostream.h>
void main()
{int a,b,c;/*описание трех целых переменных*/
cout << "Введитеaи b\n"; /*приглашение к вводуa иb*/
/* \n - переход к следующей строке экрана - см. п. 1.2.3 */
cin >> a>>b; /*вводa,b*/
c=a+b;/*вычисление с - суммыa,b*/
cout << "c="<<c<<"\n"; /*вывод с*/
}