 |
программирования на Турбо Си" рассказывается все о моделях памя-
ти, прерываниях, программировании на ассемблере и других трудно-
доступных вершинах.
Конечно, мы не сможем научить вас всему в программировании
на Си в одной или двух главах; написаны целые книги об этом.
(смотри библиографию в конце данного руководства).
Перед тем как будете читать эту главу, вам нужно прочитать
главу 5 "Интегрированное окружение Турбо Си для разработки прог-
рамм", и научиться использовать меню и текстовой редактор Турбо
Си. Необходимо также установить Турбо Си (сделать рабочие копии
ваших дисков Турбо Си или скопировать файлы на ваш жесткий диск),
как это описано в главе 1.
Когда вы сделаете это, сядьте, включите вашу ПЭВМ (если она
еще не включена) и приговьтесь к изучению программирования в Тур-
бо Си.
Семь основных элементов программирования.
-----------------------------------------------------------------
Целью большинства программ является решение задач. Программа
решает задачи, манипулируя информацией или данными. Вы должны на-
учиться:
* вводить данные в программу
* выделять место для хранения данных
* задавать команды по обработке информации
* выводить информацию обратно из программы пользователю
(обычно, вам)
Вы можете организовать ваши команды так, что:
* некоторые из них будут выполняться только тогда, когда
специальное условие (или набор условий) истинно
* другие будут повторяться несколько раз
- 403,404 -
* третьи разбиты на группы, которые могут выполняться в раз-
личных местах вашей программы.
Вот мы и описали семь основных элементов программирования:
ввод, тип данных, операции, вывод, условное выполнение, циклы и
подпрограммы. Этот список не полон, но он все же описывает те об-
щие элементы, которые обычно включают программы.
Большинство языков программирования содержат все эти элемен-
ты; многие из них, включая Си, имеют также и дополнительные воз-
можности. Однако, если вы хотите изучить новый язык быстро, то вы
можете определить как этот язык реализует эти семь элементов, а
затем двигаться дальше. Приведем обзорное описание каждого эле-
мента:
- вывод означает запись информации на экран, на диск или в
порт ввода-вывода;
- типы данных - это константы, переменные и структуры, кото-
рые содержат числа (целые и вещественные), текст (символы и
строки) или адреса (переменных и структур);
- операции присваивают одно значение другому, комбинируют
значения (складывают, делят и т.д.), и сравнивают значения
(равно, не равно и т.д.);
- ввод означает чтение данных с клавиатуры, с диска или из
порта ввода-вывода;
- условное выполнение относится к выполнению набора команд,
если заданное условие истинно (и пропуску их, если оно
ложно);
- циклы выполняют набор команд некоторое фиксированное коли-
чество раз или пока истинно некоторое условие;
- подпрограммы являются отдельно поименованными наборами ко-
манд, которые могут быть выполнены в любом месте программы
с помощью ссылки по имени;
Теперь мы рассмотрим, как использовать эти элементы в Турбо
Си.
- 405,406 -
Вывод
-----------------------------------------------------------------
Может показаться странным, что мы начинаем разговор именно с
вывода, однако программ которые ничего не выводят, почти нет. Под
выводом обычно понимают форму информации, записываемой на экран
(слова и картинки), на запоминающее устройство (гибкий или жест-
кий диск) или в порт ввода-вывода (последовательный порт, порт
принтера).
Функция printf
--------------
Мы уже использовали наиболее употребительную функцию вывода
в Си - подпрограмму printf. Ее целью является запись информации
на экран. Ее формат как прост, так и гибок:
printf(<строка формата>, <объект>, <объект>, ...);
Строка формата
--------------
Строка формата - это строка, которая начинается и заканчива-
ется двойными кавычками ("как эта"); цель printf - запись этой
строки на экран. Перед выводом printf заменяет все дополнительно
перечисленные объекты в строке в соответствии со спецификациями
формата, указанными в самой строке. Например, в последней прог-
рамме был следующий оператор printf:
printf("Сумма = %d \n",sum);
%d в строке формата - это спецификация формата. Все специфи-
кации формата начинаются с символа процента (%) и (обычно) сопро-
вождаются одной буквой, обозначающей тип данных и способ их пре-
образования.
Вы должны иметь для каждого объекта только одну соответству-
ющую ему спецификацию формата. Если объект имеет тип данных, не
соответствующий спецификации формата, то Турбо Си попытается вы-
полнить нужное преобразование.
Сами объекты могут быть переменными, константами, выражения-
- 407,408 -
ми, вызовами функций. Короче говоря, они могут быть чем угодно,
что дает соответствующее значение спецификации формата.
%d, используемое в спецификации, говорит о том, что ожидает-
ся некоторое целое число. Вот несколько других общеиспользуемых
спецификаций формата:
- %u целое число без знака
- %ld длинное целое число
- %p значение указателя
- %f число с плавающей точкой
- %e число с плавающей точкой в экспоненциальной форме
- %c cимвол
- %s строка
- %x или %X целое в шестнадцатиричном формате.
Вы можете задать ширину поля, помещая ее между % и буквой,
например, десятичное поле шириной 4 задается, как %4d. Значение
будет напечатано сдвинутым вправо (впереди пробелы), так что об-
щая ширина поля равна 4.
Если нужно напечатать знак %, то вставьте %%. \n в строке не
является спецификацией формата, а употребляется (по историческим
мотивам) как управляющая (escape) последовательность, и представ-
ляет специальный символ, вставляемый в строку. В этом случае \n
вставляет символ в начале новой строки, поэтому после вывода
строки курсор передвинется к началу новой строки.
Полный список всех управляющих последовательностей можно
найти в главе 11, из них наиболее часто используются:
- \f (перевод формата или очистка экрана)
- \t (табуляция)
- \b (забой <-)
- \xhhh (вставка символа c кодом ASCII hhh, где hhh
содержит от 1 до 3 16-ричных цифр)
Если вам нужно напечатать обратную косую черту, то вставьте
\\. При желании получить больше деталей о работе printf, обрати-
тесь к описанию printf в справочном руководстве Турбо Си.
Другие функции вывода: puts и putchar
-------------------------------------
- 409,410 -
Имеются две другие функции вывода, которые могут вас заинте-
ресовать: puts и putchar. Функция puts выводит строку на экран и
завершает вывод символом новой строки.
Например, можно переписать HELLO.C следующим образом:
#include
|