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

UptoLike

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

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. Однако
процессоры обладают недостаточно большим количеством внутренней рабочей памяти (регистров), для
того, чтобы помимо информации, обеспечивающей нормальную работу самого процессора, еще и осу-