- •А.Ю. Быков
- •Быков Александр Юрьевич Решение задач на языке
- •Часть 1 84 Введение
- •1. Лабораторная работа № 1. Изучение операций языка Си. Программирование линейных и разветвляющихся алгоритмов
- •1.1. Цель и задачи работы, требования к результатам ее выполнения
- •1.2. Краткая характеристика объекта изучения
- •1.2.1. Понятие переменной и типа данных
- •1.2.2. Стандартные типы языка Си
- •1.2.3. Объявления переменных в языке Си
- •1.2.4. Константы в языке Си
- •1.2.5. Операторы – выражения и операции языка Си
- •1.2.6. Условный оператор
- •1.2.6. Оператор - переключатель
- •1.2.7. Некоторые функции ввода- вывода Функции для вывода в поток stdout
- •Функции для считывания из потока stdin
- •1.3. Задачи и порядок выполнения работы
- •Примеры выполнения работы Пример 1
- •Пример № 2
- •2.2. Краткая характеристика объекта изучения
- •2.3. Задачи и порядок выполнения работы
- •Примеры выполнения работы Пример 1
- •Пример 2
- •3.2. Краткая характеристика объекта изучения
- •3.2.1. Одномерные массивы
- •Int a[100]; // Объявление массива из 100 элементов типа int
- •Инициализация массива
- •3.2.2. Массивы и указатели
- •3.2.3. Строки
- •3.2.4. Динамические массивы
- •3.2.5. Многомерные массивы
- •Инициализация многомерных массивов
- •Динамические многомерные массивы
- •3.3. Задачи и порядок выполнения работы
- •Примеры выполнения работы Пример 1
- •Пример 2
- •4.2. Краткая характеристика объекта изучения
- •Int X; // Поле структуры
- •Int X; // Поле структуры
- •Int X; // Поле структуры
- •Инициализация структуры
- •Int year, page; // Год издания и число страниц
- •4.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •5.2. Краткая характеристика объекта изучения
- •Определение, описание и вызов функции
- •Тип возвращаемого значения и параметры функции main
- •5.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •6.2. Краткая характеристика объекта изучения
- •6.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •7.2. Краткая характеристика объекта изучения
- •7.2.1. Общие сведения о вводе-выводе
- •7.2.2. Ввод- вывод в файлы Открытие файла
- •Закрытие файла
- •Определение конца файла
- •Функции записи в файл
- •Функции чтения из файла
- •Функции позицирования в файлах
- •Функции для сброса буферов ввода- вывода
- •7.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •8.2. Краткая характеристика объекта изучения
- •8.2.1. Сообщения Windows
- •8.2.2. Структура приложения в Windows
- •8.2.3. Вывод графики в Windows Контексты устройств
- •Графические «перья» и «кисти»
- •Функции для вывода графики
- •8.3. Задачи и порядок выполнения работы
- •Пример выполнения работы
- •8.4. Форма отчета по лабораторной работе
- •8.5. Вопросы для самоконтроля
- •4. Сообщения Windows.
- •Заключение
- •Рекомендуемые источники
- •Приложение а. Варианты заданий для выполнения лабораторных работ Варианты заданий для лабораторной работы № 1 Часть 1
- •Часть 2
- •Варианты заданий для лабораторной работы № 2
- •Варианты заданий для лабораторной работы № 3
- •Часть 1. Одномерные массивы
- •Часть 2. Многомерные массивы (матрицы)
- •Варианты заданий для лабораторной работы № 4
- •Варианты заданий для лабораторной работы № 5
- •Варианты заданий для лабораторной работы № 6
- •Варианты заданий для лабораторной работы № 7
- •Варианты заданий для лабораторной работы № 8
1. Лабораторная работа № 1. Изучение операций языка Си. Программирование линейных и разветвляющихся алгоритмов
1.1. Цель и задачи работы, требования к результатам ее выполнения
Цель работы состоит в овладении навыками разработки программ на языке Си, имеющих линейную структуру, и программ, реализующих разветвляющиеся алгоритмы, т.е. использующих условный оператор и (или) оператор- переключатель. Для достижения цели необходимо выполнить следующие задачи:
- изучить необходимые учебные материалы, посвященные константам и переменным, а также условному оператору и переключателю языка Си [1, 3];
- разработать программы на языке Си для решения заданных вариантов заданий;
- отладить программы;
- выполнить решение контрольного примера с помощью программы и выполнить ручной расчет контрольного примера;
- подготовить отчет по лабораторной работе.
1.2. Краткая характеристика объекта изучения
1.2.1. Понятие переменной и типа данных
Одним из основных понятий, используемых в процедурных языках программирования, является понятие переменной. Переменная — поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным. Данные, находящиеся в переменной (то есть по данному адресу памяти), называются значением этой переменной. Переменная принадлежит определённому типу данных.
Тип данных определяет:
внутреннее представление данных в памяти компьютера;
множество значений, которые могут принимать величины этого типа;
операции и функции, которые можно применять к величинам этого тина.
Переменная используется для хранения данных в процессе выполнения программ. Значение переменной можно изменить с помощью операции- присваивания.
1.2.2. Стандартные типы языка Си
В языке Си существуют стандартные типы, которым могут принадлежать переменные.
В Си стандарта ANSI классификация типов имеет следующий вид, также указана размерность переменной типа в оперативной памяти:
целые:
беззнаковые:
unsigned char – переменная типа занимает в памяти 8 бит;
unsigned short – 16 бит;
unsigned int - 32 бита (в Win32);
unsigned long – 32 бита (в Win32);
знаковые:
char – 8 бит;
short – 16 бит;
int - 32 бита (в Win32);
long – 32 бита (в Win32);
вещественные:
float – 32 бита;
double – 64 бита;
long double – 80 бит.
Назначение и диапазоны стандартных типов представлено в таблице 1.
Следует отметить особенность типа char (unsigned char) в языке Си. Язык Си язык со слабой типизацией, поэтому символьный тип используется двояко. С одной стороны он может использоваться для хранения кодов символов в кодировке ASCII, а с другой стороны, для хранения целых чисел в заданном диапазоне.
Дополнительно компанией Microsoft введены, так называемые, платформенно- независимые целые типы, по сути это новые имена для уже существующих типов, но их размерность не будет меняться при переходе к другим платформам (размерность этих типов в битах явным образом присутствует в названии):
__int8 unsigned __int8
__int16 unsigned __int16
__int32 unsigned __int32
__int64 (long long) unsigned __int64 (unsigned long long)
Кроме того в последние версии продуктов Microsoft дополнительно введены следующие типы, имена которых являются ключевыми словами:
bool – 1 байт, возможные значения true (1) и false (0);
wchar_t – 2 байта (соответствует типу unsigned short), обычно используется для хранения кодов символов в кодировке Unicode (1 символ кодируется 2 байтами).
Таблица 1 – Назначение и диапазоны стандартных типов
Тип данных |
Размер, бит |
Диапазон значений |
Назначение типа |
unsigned char |
8 |
0...255 |
Небольшие целые числа без знака и коды символов |
char |
8 |
-128...127 |
Небольшие целые числа со знаком и ASCII-коды |
unsigned short |
16 |
0...65535 |
Целые числа без знака |
short |
16 |
-32768...32767 |
Целые числа со знаком |
unsigned int |
32 |
0...4294967295 |
Большие целые без знака |
int |
32 |
-2147483648... ...2147483647 |
Большие целые со знаком |
unsigned long |
32 |
0...4294967295 |
Большие целые без знака |
long |
32 |
-2147483648... ...2147483647 |
Большие целые со знаком |
float |
32 |
3.4Е-38…... 3.4Е+38 |
Научные расчеты (7 значащих цифр) |
double |
64 |
1.7Е-308... …..1.7Е+308 |
Научные расчеты (15 значащих цифр) |
long double |
80 |
3.4Е-4932... ...1.1Е+4932 |
Финансовые расчеты (19 значащих цифр) |
