Основы программирования для автоматизированного проектирования и решения творческих задач. Романенко А.В - 16 стр.

UptoLike

Составители: 

ссимвол;
s – строка.
int printf (char *format, ...); – форматированный вывод в стандартный поток вывода.
В строке format необходимо задать описание типов данных всех переменных, значение которых необходимо поместить
в стандартный поток вывода. Помимо этого в строке format можно располагать константные величины, предназначенные для
вывода. Список переменных размещается после строки format. Спецификации формата обозначаются символом % и могут
иметь следующий состав: %[flag][width][.precision][F|N|h|l]type. Здесь
flagуправление печатью знаков ('-' – выравнивание по правой границе, '+' – добавление знаков '+' или '-');
widthобщая длина поля;
precisionдлина поля после запятой.
В качестве описателей типов данных используются символы:
d, i – десятичное целое со знаком;
u – десятичное целое без знака;
o – восьмеричное целое без знака;
x – шестнадцатеричное целое без знака;
f – число с плавающей точкой;
e – экспоненциальная форма чисел с плавающей точкой;
g – компактная форма чисел с плавающей точкой;
c – символ;
s – строка.
П р и м е р 7
int i;
double f;
scanf("%d%lf", &i, &f);
printf("Значения переменных i= %d f= %g", i, f);
Следует обратить внимание на то, что функции scanf следует в качестве аргументов передавать адреса переменных, в
которых предполагается хранить полученные из потока ввода данные.
10 ПОНЯТИЕ АДРЕСАЦИИ. УКАЗАТЕЛИ В ЯЗЫКЕ С
Логическая основа функционирования современной вычислительной техники базируется на принципах, сформулиро-
ванных американским математиком Джоном фон Нейманом. Один из нихпринцип произвольного доступа к основной па-
мятигласит, что основная память ЭВМ разбивается на дискретные элементы, называемые ячейками памяти. В соответст-
вии с этим принципом процессору в любой момент времени должна быть доступна любая ячейка памяти. В программах
ячейкам памяти, в которых хранится обрабатываемая программой информация, присваиваются имена, посредством которых
осуществляется доступ к их содержимому. Другой принцип называется принципом хранимой программы. Он гласит о том,
что программа решения некоторой задачи должна храниться в основной памяти ЭВМ вместе с обрабатываемыми данными.
Поэтому подготовленная к исполнению компьютером программа должна быть переведена компилятором на язык, понятный
машине, т.е. в машинные коды.
Исполняемая программа в машинных кодах обычно состоит из трех частей:
1) сегмент кода хранит машинные коды команд, составляющих программу;
2) сегмент данных находятся ячейки памяти, хранящие обрабатываемые данные;
3) стек программы особая область памяти, используемая программой для специфических операций по временному
хранению информации.
От того, каким образом исполняемая команда получает доступ к информации, зависит универсальность программы.
Способ адресации определяет правила доступа команды к данным. Рассмотрим основные способы адресации.
Если обрабатываемая информация входит непосредственно в код исполняемой команды, то такой способ адресации на-
зывается непосредственной адресацией. Команде в данном случае не нужно затрачивать время на загрузку данных из ячеек
сегмента данных в регистры процессора, так как она попадает туда одновременно с кодом команды. Примером может слу-
жить оператор
а = 1;
здесь число 1 находится в режиме непосредственной адресации относительно операции присваивания. Недостатком данного
вида адресации является то, что в момент исполнения программы это число изменить практически невозможно. Каждый раз
при возникновении потребности менять данные придется изменять текст исходной программы.
Можно хранить данные в регистрах процессора. Такой способ адресации носит название прямой адресации. В языке С
при определении переменных можно использовать спецификатор register. Однако процессоры обладают недостаточно
большим количеством внутренней рабочей памяти (регистров), для того, чтобы помимо информации, обеспечивающей нор-
мальную работу самого процессора, еще и осуществлять длительное хранение промежуточных данных программы. Поэтому
этот способ адресации данных в целом является малоэффективным.