- •О.В. Курипта, о.В. Минакова, д.К. Проскурин Основы программирования и алгоритмизации
- •Оглавление
- •Введение
- •Лабораторная работа № 1 создание, отладка и запуск консольного приложения
- •1.1 Теоретические сведения
- •1.2 Приемы, используемые при отладке программ
- •1.3 Пример разработки консольного приложения – вывода текста
- •%[Флаг][ширина][.Точность][h|l|l]тип,
- •2.2 Приемы форматированного вывода информации
- •2.3 Примеры форматированного вывода информации
- •2.4 Практические задания
- •3.2 Приемы оформления кода
- •3.3 Пример конструирования программы
- •3.4 Практические задания
- •4.2 Приемы, используемые при вычислениях
- •4.3 Примеры выполнения заданий
- •4.4 Практические задания
- •4.5 Контрольные задания
- •Лабораторная работа № 5 Реализация разветвляющихся алгоритмов
- •5.1. Теоретические сведения
- •If (выражение) оператор 1;
- •5.2 Приемы оформления ветвлений
- •If (условие) оператор;
- •If (условие) оператор;
- •5.3 Примеры решения задач
- •5.4 Практические задания
- •5.5 Контрольные задания
- •Лабораторная работа №6 Многоальтернативная обработка данных
- •6.1 Теоретическая справка
- •6.2 Примеры использования управляющих конструкций
- •Int choice; /* Текущийвыборпунктаменю*/
- •6.3 Практические задания
- •6.4 Контрольные задания
- •Лабораторная работа №7 Циклический вычислительный процесс
- •7.1. Циклический вычислительный процесс
- •7.2. Приемы эффективного построения циклов
- •7.3. Примеры построения циклов
- •7.4. Практические задания
- •7.5 Контрольные задания
- •Лабораторная работа №8 Использование вложенных циклов
- •8.1. Практические аспекты использования циклов
- •8.2. Методы оптимизации циклов
- •8.3. Примеры использования вложенных циклов
- •8.4. Практические задания
- •8.5. Контрольные задания
- •Лабораторная работа №9 Структурирование программы с использованием функций
- •9.1. Теоретические сведения
- •9.2. Правила написания функций
- •9.3. Примеры написания и использования функций
- •Int fact(int k) //вычисление факториала
- •9.4. Практические задания
- •9.5. Контрольные задания
- •Лабораторная работа №10 Создание одномерных массивов
- •10. 1 Теоретические сведения
- •10.2 Приемы инициализации и заполнения массивов случайными числами
- •10.3 Примеры работы с массивами
- •10.4. Практические задания
- •10.5. Контрольные задания
- •Лабораторная работа №11 Адресная арифметика
- •11.1 Теоретические сведения
- •Int *p1, *p2;//объявление указателя
- •11.2 Способы инициализации указателей
- •11.3 Примеры работы с указателями
- •11.4 Практические задания
- •11.5 Контрольные задания
- •Лабораторная работа №12 Работа со строками через указатели
- •12. 1. Теоретические сведения
- •12. 2. Примеры работы со строками
- •12.3 Способы преобразования чисел в строки
- •12. 4 Практические задания
- •12.5 Контрольные задания
- •Лабораторная работа №13 Использование интегрированных типов данных для разработки программ и создания библиотек
- •13.1 Теоретические сведения
- •13.2 Примеры программ с использованием структур
- •13.3 Практические задания
- •13.4 Практические аспекты создания библиотек на языке Си
- •13.5 Контррольные задания для совместной разработки библиотеки
- •Int w, h; // размеры прямоугольника
- •Int x0, y0; // левая верхняя точка прорисовки
- •Лабораторная работа №14 Запись и чтение файлов
- •14.1 Теоретические сведения
- •Int fclose(указатель файла);
- •14.2 Примеры программ работы с файлами
- •14.3 Практические задания по записи файла
- •14.4 Практические задания на чтение файла
- •14.5 Контрольные задания
- •Лабораторная работа №15 поиск в статическом одномерном массиве
- •15.1 Теоретические сведения
- •15.2 Приемы реализации линейного поиска
- •15.3 Примеры реализации алгоритмов поиска
- •Inta[10]; // массив
- •Int min; // номер минимального элемента
- •Int I; // индекс массива
- •15.4 Практические задания
- •15.5 Контрольные задания
- •Лабораторная работа №16 статический многомерный массив
- •16.1 Теоретические сведения
- •16.2 Приемы работы со статическим многомерным массивом
- •16.3 Примеры работы со статическим многомерным массивом
- •16.4 Практические задания
- •16.5 Контрольные задания
- •Лабораторная работа № 17 динамическИе массиВы
- •17.1 Теоретические сведения
- •17.2 Примеры работы с динамическими массивами
- •Void input_arr_random (float *mas, int n);// прототип функции
- •Input_arr_random (mas,n);// вызов функции
- •17.3 Особенности работы с двумерными динамическими массивами
- •Int **a; /* указатель на двумерный массив */
- •Int ***b; /* указатель на трехмерный массив */
- •17.4 Практические задания
- •17.5 Контрольные задания
- •Лабораторная работа № 18 Передача параметров в функцию
- •18.1 Теоретические сведения
- •18.2 Передача параметров функции main
- •18.3 Примеры передачи структур данных по адресу
- •Int main(void) /* вывод строки в верхнем регистре */
- •Void arrprint (int*a, int n, int m);// прототип функции
- •Int *a; // указатель на массив
- •Int **a; // память под массив указателей на строку
- •18.4 Практические задания
- •18.5 Контрольные задания
- •Лабораторная работа № 19 алгоритмы сортировки
- •19.1 Теоретические сведения
- •19.2 Практические задания
- •Заключение
- •Библиографический список
- •Приложение
- •3 96006, Воронеж, ул. 20-летия Октября,84
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Воронежский государственный архитектурно-строительный университет»
О.В. Курипта, о.В. Минакова, д.К. Проскурин Основы программирования и алгоритмизации
Практикум
В оронеж 2015
УДК 004.4
ББК 32.973.3
К931
Рецензенты:
кафедра информационных технологий моделирования и управления
Воронежского государственного университета инженерных технологий;
Н.Б. Горбачева, канд. физ - матем. наук, доцент
Российского экономического университета им. Г.В. Плеханова
(Воронежский филиал)
К931 |
Курипта, О.В. Основы программирования и алгоритмизации : практикум / О.В. Курипта, О.В. Минакова, Д.К. Проскурин; Воронежский ГАСУ. – Воронеж, 2015. – 132 с. |
ISBN 978-5-89040-575-3
Приводятся основные теоретические сведения, примеры программ, описание выполнения лабораторных заданий, индивидуальные задания необходимые для получения навыков разработки алгоритмов и программ на языке Си, а также контрольные задания для самостоятельной работы.
Практикум предназначен для студентов, обучающихся по направлению подготовки 09.03.02. - «Информационные системы и технологии», а также для студентов вузов, магистрантов, интересующихся программированием.
Ил. 17. Табл. 8. Библиогр.: 15 назв.
УДК 004.4
ББК 32.973.3
Печатается по решению учебно - методического совета
Воронежского ГАСУ
ISBN 978-5-89040-575-3 © Курипта О.В., Минакова О.В.,
Проскурин Д.К., 2015
© Воронежский ГАСУ, 2015
Оглавление
Введение 6
Лабораторная работа № 1 8
создание, отладка и запуск консольного приложения 8
1.1 Теоретические сведения 8
1.2 Приемы, используемые при отладке программ 10
1.3 Пример разработки консольного приложения – вывода текста 10
1.4 Контрольные задания 11
Лабораторная работа № 2 11
Форматированный ввод/вывод чисел 11
2.1 Средства вывода и ввода в консоль 12
2.2 Приемы форматированного вывода информации 13
2.3 Примеры форматированного вывода информации 14
2.4 Практические задания 16
2.5 Контрольные задания 16
Лабораторная работа №3 17
Базовые типы данных 17
3.1 Теоретические сведения 17
3.2 Приемы оформления кода 18
3.3 Пример конструирования программы 20
3.4 Практические задания 21
3.5 Контрольные задания 22
Лабораторная работа №4 22
Линейный вычислительный процесс 22
4.1 Теоретические сведения 22
4.2 Приемы, используемые при вычислениях 24
4.3 Примеры выполнения заданий 26
4.4 Практические задания 27
4.5 Контрольные задания 28
Лабораторная работа № 5 29
Реализация разветвляющихся алгоритмов 29
5.1. Теоретические сведения 29
5.2 Приемы оформления ветвлений 30
5.3 Примеры решения задач 31
5.4 Практические задания 32
5.5 Контрольные задания 33
Лабораторная работа №6 34
Многоальтернативная обработка данных 34
6.1 Теоретическая справка 34
6.2 Примеры использования управляющих конструкций 36
6.3 Практические задания 37
6.4 Контрольные задания 38
Лабораторная работа №7 39
Циклический вычислительный процесс 39
7.1. Циклический вычислительный процесс 39
7.2. Приемы эффективного построения циклов 41
7.3. Примеры построения циклов 42
7.4. Практические задания 44
7.5 Контрольные задания 45
Лабораторная работа №8 45
Использование вложенных циклов 45
8.1. Практические аспекты использования циклов 46
8.2. Методы оптимизации циклов 46
8.3. Примеры использования вложенных циклов 47
8.4. Практические задания 49
8.5. Контрольные задания 50
Лабораторная работа №9 51
Структурирование программы с использованием функций 51
9.1. Теоретические сведения 51
9.2. Правила написания функций 53
9.3. Примеры написания и использования функций 54
9.4. Практические задания 55
9.5. Контрольные задания 57
Лабораторная работа №10 57
Создание одномерных массивов 57
10. 1 Теоретические сведения 58
10.2 Приемы инициализации и заполнения массивов случайными числами 59
10.3 Примеры работы с массивами 60
10.4. Практические задания 63
10.5. Контрольные задания 63
ЛАБОРАТОРНАЯ РАБОТА №11 64
Адресная арифметика 64
11.1 Теоретические сведения 64
11.2 Способы инициализации указателей 66
11.3 Примеры работы с указателями 67
11.4 Практические задания 69
11.5 Контрольные задания 70
Лабораторная работа №12 70
Работа со строками через указатели 70
12. 1. Теоретические сведения 70
12. 2. Примеры работы со строками 72
12.3 Способы преобразования чисел в строки 74
12. 4 Практические задания 75
12.5 Контрольные задания 76
Лабораторная работа №13 77
Использование интегрированных типов данных для разработки программ и создания библиотек 77
13.1 Теоретические сведения 77
13.2 Примеры программ с использованием структур 79
13.3 Практические задания 80
13.4 Практические аспекты создания библиотек на языке Си 82
13.5 Контррольные задания для совместной разработки библиотеки 83
Лабораторная работа №14 83
Запись и чтение файлов 83
14.1 Теоретические сведения 84
14.2 Примеры программ работы с файлами 85
14.3 Практические задания по записи файла 88
14.4 Практические задания на чтение файла 89
14.5 Контрольные задания 89
ЛАБОРАТОРНАЯ РАБОТА №15 90
ПОИСК В СТАТИЧЕСКОМ ОДНОМЕРНОМ МАССИВЕ 90
15.1 Теоретические сведения 90
15.2 Приемы реализации линейного поиска 92
15.3 Примеры реализации алгоритмов поиска 94
15.4 Практические задания 95
15.5 Контрольные задания 96
ЛАБОРАТОРНАЯ РАБОТА №16 97
СТАТИЧЕСКИЙ МНОГОМЕРНЫЙ МАССИВ 97
16.1 Теоретические сведения 97
16.2 Приемы работы со статическим многомерным массивом 99
16.3 Примеры работы со статическим многомерным массивом 101
16.4 Практические задания 103
16.5 Контрольные задания 104
ЛАБОРАТОРНАЯ РАБОТА № 17 104
ДИНАМИЧЕСКИе МАССИВы 104
17.1 Теоретические сведения 104
17.2 Примеры работы с динамическими массивами 105
17.3 Особенности работы с двумерными динамическими массивами 107
17.4 Практические задания 110
17.5 Контрольные задания 111
ЛАБОРАТОРНАЯ РАБОТА № 18 111
Передача параметров в функцию 111
18.1 Теоретические сведения 112
18.2 Передача параметров функции main 113
18.3 Примеры передачи структур данных по адресу 114
18.4 Практические задания 119
18.5 Контрольные задания 120
ЛАБОРАТОРНАЯ РАБОТА № 19 121
АЛГОРИТМЫ СОРТИРОВКИ 121
19.1 Теоретические сведения 121
19.2 Практические задания 123
ЗАКЛЮЧЕНИЕ 124
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 126
ПРИЛОЖЕНИЕ 127