
- •Основные понятия программирования
- •Понятие алгоритма. Алгоритмизация
- •Свойства алгоритма
- •Запись алгоритма на естественном языке
- •Изображение алгоритма в виде схемы
- •Понятие о языках программирования
- •Понятие о структурном подходе к разработке алгоритмов
- •4 Идти к 8
- •6 Идти к 8
- •8 Останов
- •Первая программа на Си
- •Процесс создания программы
- •Комментарии
- •Директива #include
- •Макросы
- •Переменные и типы данных
- •Правила именования идентификаторов
- •Типы данных
- •Int двухбайтовое целое число
- •Оператор printf: вывод на экран
- •Последовательности для вывода специальных символов
- •Спецификация вывода
- •X тип int в шестнадцатеричном виде
- •Оператор scanf: ввод с клавиатуры
- •Логическая организация программы на Си
- •Функция main
- •Глобальные и локальные переменные
- •Операторы и операции
- •Арифметические операции
- •Битовые операции
- •Операции отношения
- •Логические операции
- •Операции присваивания
- •Другие операции
- •Математические функции
- •Управляющие структуры
- •Операторы ветвления
- •Операторы цикла
- •Массивы
- •Функции
- •Интегрированная среда разработки turbo c
- •Общие сведения и принципы работы
- •Стандартные органы управления
- •Главное меню
- •Запуск иср и выход
- •Работа с окнами и файлами
- •Система помощи
- •Редактор
- •Компиляция и выполнение программ
- •Технология создания с-программы
- •Лабораторные работы
- •Лабораторная работа №1
- •Создание нового файла
- •Ввод и редактирование исходного текста
- •Сохранение
- •Выполнение программы
- •Исправление ошибок
- •Просмотр результатов выполнения
- •Закрытие файла
- •Открытие и выполнение ранее сохраненного файла
- •Вызов справки
- •Лабораторная работа №2
- •Лабораторная работа №3
- •Лабораторная работа №4
- •Лабораторная работа №5
- •Лабораторная работа №6
- •Лабораторная работа №7
- •Лабораторная работа №8
- •Список вопросов
- •Литература
- •Приложение Пример оформления отчета по лабораторной работе
- •Блок-схема алгоритма
- •Текст программы
- •Результат выполнения программы
- •Теория и технология программирования
4 Идти к 8
5 S = 0
6 Идти к 8
7 S = -1
8 Останов
Рисунок 15 — Блок-схема алгоритма примера 2
Здесь команды 4 и 6 «идти к N» позволяют обойти одну из ветвей разветвления, если уже выполнена другая.
Пример 3. Выбрать максимальное из двух чисел x, y и присвоить его значение переменной u.
Решение. Просматривая числа по очереди, мы «видим» сначала только первое число x. Будем считать его максимальным и присвоим u значение x, т.е. u = x. Затем u сравним со вторым числом y, и если окажется, что старое значение u меньше y, то u присвоим новое значение, иначе u оставим без изменения.
Ниже приводится блок-схема алгоритма и программа на естественном языке.
Исходные данные: x, y — любые числа.
Результат: u — максимальное из x и y.
1 u = x 2 Если u ≥ y идти к 4 3 u = y 4 Останов
|
Рисунок 16 – Блок-схема алгоритма примера 3 |
Идея, лежащая в основе этого алгоритма, позволяет единообразными действиями найти максимальное значение из трех и более чисел.
-
Первая программа на Си
Стало традицией, что в книгах, посвященных различным языкам программирования, в качестве самой первой приводится программа, выводящая на экран фразу: «Hello world!» («Привет, Мир!»). Ниже приведен текст такой программы на языке Си (Листинг 1).
Листинг 1 — Первая программа на Си
/* hello.c - первая программа на Си. */
#include <stdio.h> #include <conio.h>
void main() { clrscr(); printf(“\n\nHello world!\n”); } |
Первая строка программы
/* hello.c - первая программа на Си. */ |
является комментарием и игнорируется компилятором языка Си. Комментарии начинаются с пары символов /* и заканчиваются парой символов */ и могут быть многострочными.
Две директивы #include (include — включать в себя) в начале программы являются указанием компилятору подставить на их место текст из файлов stdio.h и conio.h (standard input-output — стандартный ввод-вывод, console input-output — консольный ввод‑вывод). Эти подставляемые файлы содержат описания функций, включенных в две важные и широко используемые библиотеки. В эти библиотеки включены функции и макросы, обеспечивающие выполнение стандартных действий по вводу-выводу. Как видно из приведенной программы, функции управления вводом‑выводом вынесены из языка Си. Для осуществления операций ввода‑вывода программист может использовать библиотеки, поставляемые фирмами-изготовителями программного обеспечения, либо создавать такие библиотеки самостоятельно и пользоваться ими.
Строка исходного текста
void main() |
описывает функцию main (main — главный), возвращающую пустое значение (void — пустой), или, иными словами, не возвращающую никакого значения, т.е., по аналогии с другими языками программирования, являющуюся процедурой. По требованиям Си функция main должна присутствовать в каждой программе, и она всегда предваряет исполнительную часть первого блока текста программы. Код, задающий тело функции main, заключается в фигурные скобки { и } — аналог ключевых слов begin и end в других языках программирования, например Паскале (begin — начало, end – конец).
Оператор clrscr() производит вызов функции, осуществляющей очистку экрана (clear screen — очистить экран). Курсор после очистки экрана переводится в первую позицию первой (верхней) строки экрана.
Оператор printf(“\n\nHello world!\n”) выводит строку «Hello world!» на экран (print — печатать). Последовательность управляющих символов в начале \n\n переводит курсор на экране дисплея на две строки вниз перед выводом строки символов, а заключительная \n на одну строку вниз после вывода.
Рисунок 17 — Результат выполнения программы hello.c
Внимание! В отличие от Паскаля все ключевые слова языка Си, а также имена переменных, функций и т.д. чувствительны к регистру символов. Например, слова: include, void, main, clrscr, printf записаны правильно; Include, VOID, Main, ClrScr, printF записаны неправильно и приведут к ошибкам в программе. При оформлении блок-схем также рекомендуется придерживаться этих правил. Кроме этого, наиболее типичными ошибками при наборе текста программ являются пропуск или запись лишних:
|
Поскольку программы на языке Си можно писать в свободном формате, то для обозначения конца каждого оператора требуется ставить специальный разделитель — точку с запятой. Компилятор языка Си не разбирается в стилях написания программ. Способы оформления программы служат для облегчения понимания программы человеком, поскольку программы в большей степени ориентированы на человека, чем на компилятор. Хорошее оформление программы способствует ее легкому чтению и понимания. Ниже (Листинг 2) представлена та же самая программа, но при ее наборе не применялось форматирование. Компилятор легко понимает эту программу и результат ее выполнения такой же, как у исходного варианта, а вот чтение и понимание ее программистом вызывает значительные трудности. Программист должен чувствовать удовлетворение от вида хорошо оформленной программы и стремиться создавать именно такие программы.
Листинг 2 — Пример текста программы на Си без форматирования
/* hello.c - первая программа на Си. */ #include <stdio.h> #include <conio.h> void main(){clrscr();printf(“\n\nHello world!\n”);} |