Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на языке Си.doc
Скачиваний:
38
Добавлен:
27.03.2016
Размер:
2.8 Mб
Скачать

Примеры записи операторов присваивания:

1.

int a=1;

int b=2;

int c=3;

float x=2.0;

a+= ++a / b++ % (c-= ceil(sqrt(x))); a=2 b=3 c=1

b+= (a | c++) - ++a % (int) floor(sqrt(x)); a=3 b=6 c=2

c|= --b % a--; a=2 b=5 c=2

2.

int a=3;

int b=2;

int c=1;

c+= --a / b++ + a % b; a=2 b=3 c=2

b|= ++a / (c+= b++, b+= a % c); a=3 b=7 c=5

a%= --a - ++b; a=2 b=5 c=8

3.

int a=0;

int b=0;

int c=0;

c+= b++; a=0 b=1 c=0

b+= ++c % ('A' / '1' + 'A' % '1' % 5);a=0 b=2 c=1

a-= ++b - c++; a=-2 b=3 c=2

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

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

Под вводомданных понимаются операции передачи данных с внешних устройств ввода в оперативную память компьютера, а подвыводом– из оперативной памяти на внешние устройства хранения информации.

Операции ввода и вывода данных в Сивыполняются функциями стандартной библиотеки ввода-вывода, вызываемой директивой препроцессора:

#include <stdio.h>

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

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

Стандартный ввод-вывод

Функции ввода-вывода стандартного уровня считывают данные со стандартного устройства ввода – клавиатурыи выводят данные на стандартное устройство вывода –экрантерминала.

Стандартный ввод-вывод может быть посимвольным, строковым и форматированным.

Посимвольный ввод-вывод

Стандартный посимвольный вводпредназначен для чтения очередного введенного с клавиатуры символа и осуществляется функциейgetch()(get character– получить символ). Эта функция не имеет аргументов, однако скобки обязательны:

char d;

d=getch();

Этот оператор присваивает переменной символьного типа dзначение очередного символа, введенного с клавиатуры. При выполнении функцииgetch()компьютер приостанавливает выполнение программы и ожидает ввода символа. После ввода символа (нажатия на одну изсимвольныхклавиш) его значение присваивается в данном случае переменнойd,и программа продолжает работу, при этом сам символ на экранене появляется.

Таким образом, функция getch()вСиполностью соответствует функцииreadkeyвПаскале.

Стандартный посимвольный выводпредназначен для вывода на экран терминалаодногосимвола и осуществляется функциейputch(аргумент)(put character– выдать символ). Эта функция имеет только один аргумент – переменную символьного типа или символьную константу, которую необходимо вывести на экран:

char d;

d=’*’;

putch(d);

putch(‘*’);

На экран будут выведены два символа подряд:

**