- •Программирование
- •На языке высокого уровня
- •Часть 1. Основы языка Си
- •Методические указания
- •К выполнению лабораторных работ
- •Составитель: л.А. Прокушев
- •Подписано к печати Формат 60х84 1/16. Бумага тип. №3
- •Редакционно-издательский отдел
- •190000, Санкт-Петербург, ул. Б. Морская, 67 Общие методические указания
- •Алгоритмизация вычислительных процессов
- •Средства программирования вычислительных процессов Базовые элементы языка Си
- •Данные и их типы
- •Константы
- •Переменные
- •Ввод-вывод данных
- •Форматированный ввод
- •Форматированный вывод
- •Консольный ввод-вывод
- •Функция ввода символа (без отображения)
- •Функция очистки экрана результатов
- •Структура Си-программы
- •Директивы препроцессора
- •Выражения и операции
- •Логические выражения и операции
- •Работа с ветвящимися процессами Операторы
- •Оператор присваивания
- •Условный оператор (if)
- •Операторы передачи управления Пустой оператор
- •Оператор break (прервать) используется для прерывания работы текущего сложного оператора, в теле которого находится оператор break, и передачи управления на следующий по порядку оператор.
- •Оператор выбора (switch)
- •Действие оператора выбора состоит в следующем:
- •Введите 2 числа х, y : 3 8
- •Работа с циклическими вычислительными процессами
- •Циклы с фиксированным числом повторений Оператор цикла с предусловием (while)
- •Прерывание цикла
- •Циклы с неизвестным числом повторений Вычисление рекуррентных последовательностей
- •Оператор цикла с постусловием (do)
- •Вложенные циклы и организация диалога в программе
- •Оператор цикла с параметром (for)
- •Программа:
- •Программа:
- •Программа:
- •Работа с массивами
- •Описание массива
- •Доступ к элементам массива
- •Указатель
- •Занесение данных в массив
- •Многомерные массивы
- •Работа с функциями
- •Определение функции
- •Вызов функции
- •Передача параметров функции
- •Передача данных по значению
- •Передача данных по адресу
- •Пример. Составить функцию обмена значениями между переменными X и y. Верным решением является применение передачи данных по адресу.
- •Прототип (шаблон) функции
- •Блочная структура программы
- •Внешние описания переменных
- •Многомодульные программы Проект программы
- •Внешние ссылки
- •Создание проекта программы
- •Работа с указателями Объявления объектов со сложными описателями
- •Массивы указателей
- •Указатель на указатель
- •Указатель на функцию
- •Использование указателя на функцию как аргумента
- •Массивы указателей на функции
- •Часть 1. Основы языка Си 1
Консольный ввод-вывод
Функции консольного ввода-вывода не используют входной буфер stdin для ввода данных. Все символы, вводимые с клавиатуры, доступны программе немедленно, что предоставляет дополнительные возможности при обработке данных в программе, при подключении директивы препроцессора
#include<conio.h>
Функция ввода символа (без отображения)
getch ()
прочитывает код символа нажатой клавиши и не отображает символ на экране.
Это свойство можно использовать в двух случаях:
Для ввода невидимых символов в память и использования их для проверки пароля программы:
char ch; /* описание символьной переменной */
puts (“Нажмите любую символьную клавишу.”);
ch = getch(); /* ввод кода символа без его отображения */
/* Символ и его код могут быть выведены на экран */
printf («\nСимвол: %c (код: %d)», ch, ch);
Для останова выполнения программы и просмотра текущих результатов на экране данных:
puts (“После просмотра данных нажмите любую клавишу.”);
getch (); /* появляется экран данных */
Функция ввода символа (с отображением)
getche ()
выполняет небуферизуемый ввод символа в отличие от функции getchar() и его отображение в отличие от функции getch().
Функция очистки экрана результатов
clrscr ()
очищает экран данных от предыдущих сообщений и результатов. Эту функцию следует использовать в начале своей программы после описания переменных, а также в тех случаях, когда экрана данных не достаточно для вывода всех результатов и их приходится «листать».
Структура Си-программы
Программа на языке высокого уровня представляет собой формализованный текст, включающий описательные предложения для представления объектов программы и исполняемые предложения (операторы), реализующие алгоритм задачи.
Си-программа оформляется в виде одной или нескольких подпрограмм (вспомогательных программных единиц), называемых функциями. При этом только одна функция является обязательной и за ней закреплено имя main (главная, основная), поскольку с нее начинается выполнение программы. Простая Си-программа является описанием главной функции, которое включает заголовок функции и тело функции, заключенное в операторные скобки {} и называемое блоком:
тип main (параметры) /* заголовок функции */
{ /* блок - тело функции: */
описательная часть; /* описания данных */
исполняемая часть; /* операторы */
} , где
тип – ключевое слово типа, для возвращаемого функцией значения, либо void (отсутствие типа), если значение не возвращается;
параметры – необязательный список формальных параметров с их типами, но даже если он пустой, наличие круглых скобок для функции обязательно.
Тело функции (блок) включает описания данных (объектов программы) и последовательность исполняемых операторов, определяющих действия функции. Описания данных и операторы должны заканчиваться разделителем точка с запятой ( ; ). Блоки могут быть вложенными, однако сами функции вложенными быть не могут.
Исходная Си-программа набирается и редактируется в программной среде как текстовый файл, который может содержать дополнительные части и должен сохраняться во внешней памяти с собственным именем и расширением “.c” в студенческом каталоге группы по правилам файловой системы компьютера, например, C:\$STUDENT\GR_1006\myprog.c.