- •Содержание
- •1.Введение
- •Рекомендуемая литература
- •1.1Этапы решения инженерных задач с помощью эвм.
- •1.2Алгоритмы решения задач.
- •1.2.1Понятие алгоритма, его свойства.
- •Свойства алгоритма
- •1.2.2Обозначения элементов алгоритмов (блоки).
- •1.2.3Базовые управляющие конструкции.
- •Основные блочные символы.
- •Базовые алгоритмические структуры.
- •1.2.4Некоторые стандартные приемы алгоритмизации.
- •1. Поменять местами содержимое двух переменных (три ведра).
- •Определить, имеют ли две переменные один знак.
- •Проверить делимость числа на 3.
- •Алгоритм обработки массива.
- •Найти сумму элементов массива.
- •Найти максимальный элемент массива.
- •Использование флага наступления события.
- •Построить таблицу значений функции на отрезке и найти ее максимальное значение.
- •1.3Системы программирования.
- •1.3.1Состав.
- •1.3.2Язык программирования, алфавит, синтаксис, семантика.
- •1.3.3Реализация языка.
- •1.4Характеристики языков программирования.
- •1.5Целевое назначение систем программирования.
- •1.5.1Машинно-ориентированные.
- •1.5.1.1Системы символического кодирования.
- •1.5.1.2Ассемблеры.
- •1.5.2Машинно-независимые.
- •1.5.2.1Процедурно-ориентированные.
- •1.5.2.2Проблемно-ориентированные.
- •1.6Этапы обработки программы машиной.
- •2.1История создания.
- •2.3Алфавит, структура программы.
- •2.3.1Алфавит.
- •2.3.2Структура программы.
- •2.4Типы данных Си. Константы. Переменные. Описания переменных.
- •2.5Выражения в языке Си.
- •2.5.1Арифметические операции и выражения.
- •2.5.2Логические операции и выражения.
- •2.5.3Некоторые другие операции в языке Си.
- •2.5.3.1Операция присваивания.
- •2.5.3.2Условная операция.
- •2.5.3.3Операция последовательного вычисления (запятая).
- •2.5.3.4Специфические формы операции присваивания.
- •2.5.3.5Приоритет выполнения операций.
- •2.5.4Стандартные функции.
- •2.5.4.1Правила записи.
- •2.5.4.2Основные математические функции.
- •2.6.2.2Оператор бесформатного ввода с клавиатуры.
- •2.6.2.3Функция форматного вывода на экран.
- •2.6.2.4Функция ввода символа с клавиатуры.
- •2.6.3Составной оператор.
- •3.Операторы управления.
- •3.1Условные операторы.
- •3.1.1Оператор if-else.
- •3.1.2Оператор else-if.
- •3.2Оператор-переключатель. Оператор break.
- •3.3Операторы для организации цикла.
- •3.3.1Оператор цикла с предусловием (while).
- •3.3.2Оператор цикла с постусловием (do).
- •3.3.3Оператор цикла с параметром (for) или пошаговый.
- •3.3.4Вложенные циклы.
- •3.3.5Операторы break и continue.
- •3.3.6Оператор безусловного перехода.
- •4.Использование массивов. Указатели.
- •4.1Массивы.
- •4.1.1Понятие массива. Описание массива.
- •4.1.2Инициализация массивов.
- •4.1.2.1Инициализация массивов при их объявлении.
- •4.1.2.2Инициализация массивов вводом с клавиатуры.
- •4.1.3Вывод массивов.
- •4.1.4Работа с массивами.
- •4.2Указатели.
- •4.2.1Адреса и указатели.
- •4.2.2Массивы и указатели.
- •4.2.3Строки и указатели.
- •5.Функции пользователя в языке Си.
- •5.1Назначение функций. Описание функции.
- •5.2Обращение к функции. Прототип функции. Область видимости и время жизни переменных.
- •5.3Правила соответствия формальных параметров и фактических аргументов.
- •5.4Передача данных по значению и по адресу. Функция scanf().
- •5.5Использование массивов в качестве аргументов функции.
- •Int na, nb; // количества введенных элементов этих массивов
- •Vvod_mas1(&na,a) // Ввод количества элементов na и массива a
- •Vvod_mas1(&nb,b) // Ввод количества элементов nb и массива b
- •If password("Мой пароль")
- •6.Работа с внешними файлами в Си.
- •6.1Файловый указатель. Открытие файла.
- •6.2Чтение данных из текстового файла.
- •6.3Запись данных в текстовый файл. Закрытие файла.
2.4Типы данных Си. Константы. Переменные. Описания переменных.
Данные в Си могут быть одного из четырех базовых типов (они приведены в порядке возрастания старшинства):
символьные - char;
целые - int;
вещественные - float;
вещественные двойной точности - double.
Тип данного определяет:
сколько места в памяти ПК занимает это данное и в каком виде там хранится;
диапазон возможных значений;
операции, в которых это данное может использоваться.
Типы данных могут дополняться квалификаторами short и long (для типа int), а также unsigned и signed (для типов char и int). В частности, для работы с кириллицей в данных символьного типа необходимо использовать тип unsigned char.
Константа в Си - это область памяти, в которой хранится неизменяемое значение. Тип этого значения определяется написанием константы.
Тип константы |
Пример |
Область значений |
Целая |
-2, 48 |
-32768 - 32767 |
Вещественная |
2.5, 2.5е3, 5. |
От ~10-37 до ~1038 |
Символьная |
'A', 's' |
от -128 до +127 |
Строковая |
"Привет" |
|
Символ "е" в записи вещественной константы (экспоненциальный вид) означает: взять число слева от буквы "е" и умножить на 10 в степени, указанной справа от "е" (2.5е2 означает число 250).
Символьная константа - это число, представленное в виде буквы в апострофах. Значением константы является десятичный код буквы, например, значением константы 'A' является число 65.
Для написания символов, не имеющих графического представления, используются так называемые Esc-последовательности - комбинации из двух символов, первый из которых "\":
Символ |
Назначение |
'\n' |
переход на следующую строку (Enter) |
'\t' |
табуляция (tab) |
'\a' |
звонок |
'\0' |
специальный символ с кодом 0 (NULL) |
Строковая константа - это последовательность символов, окаймленная кавычками ", например, "Привет". Компилятор добавляет в конец строки символ '\0', чтобы по нему можно было в дальнейшем определить конец строки. Поэтому 'A' и "A" в Си отличаются: первое - это код символа А, а второе - последовательность двух символов: 'A' и '\0'.
Для удобства чтения и изменения текста программы константы можно именовать с помощью директивы препроцессора #define, помещаемой обычно в начало каждого программного модуля, например:
#define MAX_SIZE 120 - определение границ массива
#define ENTER 13 - код клавиши
При обработке программы препроцессор заменит строки с этими директивами пустыми строками (сохраняя нумерацию строк), а в тексте везде заменит имена таких констант на их значения.
Использование директивы #define удобно и в том случае, когда в программе приходится использовать одни и те же константы несколько раз. В этом случае при изменении их значений удобно сделать это только один раз в директиве #define, а не во многих местах программы.
Необходимо отметить, что препроцессор различает регистры символов в имени константы, и принято называть именованные константы заглавными буквами, в отличие от имен переменных, которые обычно пишут строчными буквами.
Переменная в Си - это поименованная область памяти, в которой хранится значение соответствующего ей типа. Это значение может изменяться в процессе выполнения программы. Переменные служат для хранения данных. Имена переменным (идентификаторы) дает программист по тем же правилам, что и именам функций.
Все переменные в программе должны быть описаны. Описание переменной имеет вид (синтаксис)
тип имя переменной[,имя переменной ...] , например
i
nt
i,n;
float a,b,c;
В синтаксисе "..." показывает, что содержимое скобок может повторяться несколько раз.
Описание указывает компилятору, сколько места отвести в памяти для этой переменной, а также какие действия с этой переменной можно производить, и ставится либо
перед описаниями всех функций в начале программы, тогда эти переменные будут доступны (т.е. их область видимости) во всех функциях программы с начала и до окончания работы программы (глобальное время жизни);
в начале блока, который начинается с "{" и заканчивается "}". В этом случае область видимости - только внутри блока, а время жизни - до выхода из блока (см. пример).
При описании переменной в нее можно поместить начальное значение (т.е. инициализировать):
int n=25;
char key='+',ch=ENTER; // именованная константа ENTER, равная 13.
