- •Программирование на языке высокого уровня
- •Составитель: л.А. Прокушев
- •Подписано к печати Формат 60х84 1/16. Бумага тип. №3
- •Редакционно-издательский отдел
- •190000, Санкт-Петербург, ул. Б. Морская, 67
- •Алгоритмизация вычислительных процессов
- •Средства программирования вычислительных процессов
- •Данные и их типы
- •Константы
- •Переменные
- •Ввод-вывод данных
- •Ввод-вывод данных в стиле с
- •Форматированный ввод
- •Форматированный вывод
- •Консольный ввод-вывод
- •Функция ввода символа (без отображения):
- •Функция очистки экрана результатов:
- •Выражения и операции
- •Логические выражения и операции.
- •Работа с ветвящимися процессами Операторы
- •Оператор присваивания
- •Условный оператор (if)
- •Операторы передачи управления
- •Оператор break (прервать) используется для прерывания работы текущего сложного оператора, в теле которого находится оператор break, и передачи управления на следующий по порядку оператор.
- •Оператор выбора (switch)
- •Действие оператора выбора состоит в следующем:
- •Введите 2 числа х, y : 3 8
- •Работа с циклическими вычислительными процессами
- •Циклы с фиксированным числом повторений Оператор цикла с предусловием (while)
- •Прерывание цикла
- •Циклы с неизвестным числом повторений Вычисление рекуррентных последовательностей
- •Оператор цикла с постусловием (do)
- •Вложенные циклы и организация диалога в программе
- •Оператор цикла с параметром (for)
- •Программа:
- •Работа с массивами
- •Описание массива
- •Доступ к элементам массива
- •Указатель.
- •Занесение данных в массив
- •Многомерные массивы
- •Работа с функциями
- •Определение функции
- •Вызов функции
- •Передача параметров функции
- •Передача данных по значению
- •Передача данных по адресу
- •Прототип (шаблон) функции
- •Блочная структура программы
- •Внешние описания переменных
- •Многомодульные программы Проект программы
- •Внешние ссылки
- •Создание проекта программы
- •Работа с указателями Объявления объектов со сложными описателями
- •Массивы указателей
- •Указатель на указатель
- •Указатель на функцию
- •Использование указателя на функцию как аргумента
- •Массивы указателей на функции
Форматированный вывод
Для вывода данных из компьютера на экран дисплея используется функция вывода:
printf (“форматная строка” , аргумент1, …) , где
форматная строка может содержать компоненты трех типов:
обычные символы, которые можно использовать для пояснения при выводе;
спецификации форматов данных, задаваемых в списке выводимых переменных;
управляющие символьные константы, например, \n – новая строка;
аргумент1, … – список переменных или выражений, значения которых выводятся в соответствии с заданными спецификациями форматов.
Список аргументов может отсутствовать, и тогда выводится только содержимое форматной строки, например, в виде поясняющего текста или примечания.
При выводе вещественных чисел компилятор выводит все цифры дробной части числа. Для вывода числа с заданной точностью программист должен уточнить формат вывода в виде: %m.nf,
где m – количество всех символов (знак, все цифры, разделитель точка), а n – количество цифр в дроби. Например, нас интересует только вывод с инженерной точностью до двух цифр в дроби в форме: -С.СС, где С – цифра, тогда формат такого числа имеет вид: %5.2f.
Пример 2.
Вывести для контроля данные, введенные в прошлом примере:
printf ( '' Исходные данные:\n'' );
printf ( '' m=%d p1=%5.2f sim=%c str=%s'', m, p1, sim, str );
На экране появятся строки:
Исходные данные:
m=25 p1=37.08 sim=r str=Hello
Неформатированный ввод-вывод
Для ввода-вывода символов и строк можно использовать соответствующие функции стандартного ввода-вывода (stdio.h).
Функция ввода символов (без параметров):
getchar ( )
определяет ASCII-код нажатой клавиши, записывает его в буфер ввода stdin, а после нажатия клавиши <Enter> передает в оперативную память для ввода в переменную, описанную с типом int или char.
Функция вывода символа:
putchar (ch)
преобразует ASCII-код, записанный в переменной ch (тип int или char), в символ, выводимый на экран.
Пример 3. Ввести и вывести символ, а затем определить его коды (10-чный, 8-чный, 16-чный ).
char ch; /* переменная для символа */
printf ( ''Нажмите клавишу символа, а затем Enter: '');
ch = getchar( ); /* ввод кода символа */
printf (“\nВывод символа:”);
putchar (ch);
printf (“\nСимвол\t10-чный\t8-чный\t16-чный коды\n”);
printf (“%c\t%d\t%o\t%x”, ch, ch, ch, ch);
Функция ввода строки символов:
gets(string) , где
string – указатель (адрес) для ввода строки символов, например, имя массива символов.
В отличие от функции scanf(“%s”, string), которая вводит символы до первого пробела, функция gets(string) вводит все символы, включая пробелы.
Функция вывода строки символов:
(string), где
string – либо сама строка, либо указатель (адрес) области памяти, откуда выводится строка, например, имя массива символов.
Эта функция аналогична функции printf(“%s”, string), но при этом puts автоматически выполняет перевод курсора экрана на новую строку.
Пример 4.
Ввод-вывод строк символов.
char name[30]; // Описание символьного массива name
puts (“Введите Вашу фамилию и имя:”); // Вывод строки
gets (name); // Ввод фамилии и имени в массив
printf (“\nЗдравствуйте, “); // Вывод строки
puts (name); // Вывод строки из массива
При вводе с клавиатуры строки Петров Иван, в массив символов name будут введены оба слова, а при использовании функции scanf(“%s”, name) будет введено только первое слово.