Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Практикум по программированию на языке СС++. Учебно-методическое пособие
.pdf
Федеральное агентство связи
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Сибирский государственный университет телекоммуникаций и информатики»
(СибГУТИ)
О.И. Моренкова
Т.И. Парначева
Практикум по программированию
на языке С/С++
Учебно-методическое пособие
Новосибирск
2019

УДК 681.3.06
Доцент к.т.н., О.И. Моренкова, ст. преподаватель Парначева Т.И.
Практикум по программированию на языке С/С++: Учебно-методическое
пособие. СибГУТИ. – Новосибирск. 2019. - 103 с.
Данное учебно-методическое пособие предназначено для студентов всех
специальностей и форм обучения, изучающих курс информатики. Оно
включает в себя описание основ алгоритмизации и программирования на языке
С/С++. Пособие содержит много примеров программ с многочисленными
комментариями, что облегчает самостоятельное изучение материала.
Кафедра телекоммуникационных сетей и вычислительных средств
Рецензент: доцент Кафедры систем мобильной связи ФГОУ ВО
«СибГУТИ», Елена Викторовна Кокорева.
Для студентов, обучающихся по направлению 11.05.01 Радиоэлектронные
системы и комплексы, 11.05.02 Специальные радиотехнические системы
Утверждено редакционно-издательским советом СибГУТИ в качестве
учебно-методического пособия
© О.И. Моренкова, Т.И. Парначева, 2019
© Сибирский государственный университет
телекоммуникаций и информатики», 2019

Оглавление
ВВЕДЕНИЕ ................................................................................................................................... 4
Лабораторная работа №1 .............................................................................................................. 5
ЭТАПЫ СОЗДАНИЯ ПРОГРАММЫ В ИНТЕГРИРОВАННОЙ СРЕДЕ Visual Studio ....... 5
Лабораторная работа № 2 ............................................................................................................. 8
ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ ..........................................................
Лабораторная работа № 3 ........................................................................................................... 23
ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ ...................................................
Лабораторная работа № 4 ........................................................................................................... 31
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ ПРОЦЕССОВ ..........................................
Лабораторная работа №5. ........................................................................................................... 38
РАСЧЕТ ЗНАЧЕНИЙ ФУНКЦИИ ДВУХ ПЕРЕМЕННЫХ. .....................................................
Лабораторная работа №6. ........................................................................................................... 42
ФОРМИРОВАНИЕ И ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ .......................................
Лабораторная работа №7. ........................................................................................................... 54
ОБРАБОТКА СИМВОЛЬНОЙ ИНФОРМАЦИИ ........................................................................
Лабораторная работа № 8. .......................................................................................................... 60
ОБРАБОТКА СТРУКТУР ..............................................................................................................
Лабораторная работа № 9. .......................................................................................................... 66
СОЗДАНИЕ И ОБРАБОТКА БИНАРНЫХ ФАЙЛОВ ..............................................................
Лабораторная работа № 10. ........................................................................................................ 88
ТИПОВЫЕ ПОДПРОГРАММЫ – ФУНКЦИИ. ..........................................................................
Лабораторная работа № 11 ......................................................................................................... 91
БЕСТИПОВЫЕ ПОДПРОГРАММЫ – ФУНКЦИИ ....................................................................
Лабораторная работа № 12 ......................................................................................................... 96
Технология сборки библиотеки .....................................................................................................
ЛИТЕРАТУРА ........................................................................................................................... 102
3

ВВЕДЕНИЕ
Настоящее учебно-методическое пособие предназначены для
использования в процессе лабораторного практикума по дисциплине
«Информатика» студентами специальностей 11.05.01 Радиоэлектронные
системы и комплексы, 11.05.02 Специальные радиотехнические системы.
В ходе выполнения лабораторных работ студенты должны приобрести
теоретические знания в области программирования и навыки разработки
несложного программного обеспечения на конкретном алгоритмическом языке.
В процессе решения задач студенты должны правильно выбирать и описывать
типы данных, изучить синтаксис и правильно использовать операторы
алгоритмического языка, освоить работу с такими структурами данных, как
массивы, разрабатывать программы с использованием базовых
вычислительных структур.
В данном руководстве предлагается 12 лабораторных работ,
посвященных изучению базовых конструкций языка С/С++ (условия, циклы и
функции) и способов хранения и обработки данных (массивы, структуры,
файлы).
4

Лабораторная работа №1
ЭТАПЫ СОЗДАНИЯ ПРОГРАММЫ В ИНТЕГРИРОВАННОЙ СРЕДЕ Visual Studio
Методические указания к лабораторной работе:
Процесс обработки программы включает в себя следующие основные этапы:
редактирование текста, компиляцию текста в машинный код, компоновку
программы и ее выполнение.
Программа на языке Си – это текст. С помощью произвольного текстового
редактора программист записывает инструкцию, в соответствии с которой
компьютер будет работать, выполняя данную программу.
Для того чтобы компьютер мог выполнить программу, написанную на языке
Си, ее нужно перевести на язык машинных инструкций. Эту задачу решает
компилятор. Компилятор читает файл с текстом программы, анализирует ее,
проверяет на предмет возможных ошибок и, если таковых не обнаружено,
создает исполняемый файл, т.е. файл с машинными инструкциями, который
можно выполнять.
Откомпилировав программу один раз, ее можно выполнять многократно, с
различными исходными данными.
Компилирование и выполнение программ в среде VisualStudio
VisualStudio представляет собой интегрированную среду программирования,
т.е. объединяет текстовый редактор, компилятор, отладчик и еще ряд
дополнительных программ.
1. В среде VisualStudio прежде всего необходимо создать новый проект.
1.1 Для этого нужно выбрать в меню Файл атрибут Создать/Проект.
Появится новое диалоговое окно.
1.2 Из списка Типы проектов для VisualC++ выберите Win32, а из шаблонов
Консольное приложение Win32.
1.3 Затем следует набрать имя проекта в поле Имя (например, test) , в котором
будут храниться все файлы, относящиеся к данному проекту. После этого
нажмите кнопку "ОК".
1.4 На экране появится пустой файл.
5

В окне редактирования наберите текст программы, выделенный тоном.
#include"stdafx.h"
int _tmain(intargc, _TCHAR* argv[])
{
printf("Privet!\n");
return 0;
}
2. Для компиляции выберите в меню Построение команду Построить
решение.
В нижней части экрана появятся сообщения компиляции. Если Вы получили
сообщение компилятора об ошибках, двойной щелчок мышью по строкесообщении об ошибке переведет курсор в окне текстового редактора на
соответствующую строку кода.
После исправления всех ошибок и повторной компиляции система выдаст
сообщение об успешной компиляции и компоновке (пока мы не будем
уточнять, просто вы увидите сообщение Linking).
6

3. В главном меню выбрать пункт Отладка -Запустить без отладки
На экране монитора появится консольное окно, и в нем будет выведены
результаты работы программы.
Программа выполнена и лишь ожидает нажатия произвольной клавиши, чтобы
закрыть консольное окно.
Проанализируйте полученные в результате выполнения программы результаты
и сделайте вывод о том, что рассчитывает данная программа.
4. В среде VisualStudio создайте еще новый проект:
#include"stdafx.h"
#include"math.h"
int _tmain(intargc, _TCHAR* argv[])
{
float х, у, z; // описание переменных
printf(“Расчет значений функции двух переменных\n”);
/*вывод заголовка */
printf(“***************\n”);
x= -l;//начальное значение x- параметра внешнего цикла
while (х<=1) // запуск внешнего цикла, пока х≤ 1
{
printf(“x=%6.1f \n”, x); //вывод значения x
for( y=0; y<=1; y=y+0.1) /*запуск внутреннего цикл,
управляемого параметром y */
{
z=sin(x) + cos(y); // вычисление функции
printf(“y= %6.1fz=%6.1f\n”, y, z); // вывод результатов
}
printf(“***************\n”);
x=x + 0.5; // изменение параметра х на шаг 0.5
}
return 0;
}
Получите результаты расчетов по данной программе.
7

5. Учимся редактировать текст
1. Замените в команде вывода результатов printf форматы %6.1f на
%6.4f.
2. Повторите расчеты и проанализируйте новое окно вывода.
3. Замените в команде вывода результатов printf форматы %6.1f на
%6.4d.
4. Повторите расчеты и проанализируйте новое окно вывода.
5. Измените у параметра x шаг 0.5 на 1.
6. Повторите расчеты и проанализируйте новое окно вывода.
7. Составьте отчет о проделанной работе.
Содержание отчета
1. Номер и тема лабораторной работы.
2. Текст программы и этапы обработки ее в среде VisualStudio.
3. Результаты расчетов программы.
4. Показать отчет преподавателю.
Контрольные вопросы:
1. Что такое компиляция?
2. Как провести компиляцию?
3. Для чего предназначен текстовый редактор?
4. Как запустить программу на выполнение?
Лабораторная работа № 2
ПРОГРАММИРОВАНИЕ ЛИНЕЙНЫХ АЛГОРИТМОВ
Цель работы: Получить навыки программирования линейных алгоритмов на
языке Cи.
Подготовка к лабораторной работе:
При подготовке к лабораторной работе следует повторить назначения
основных этапов обработки программы в интегрированной среде VisualStudio, а
также изучить структуру программы на языке Си, запись основных
стандартных функций, правила записи выражений на языке Си, назначение и
формат оператора присваивания, операторы ввода/вывода.
8

Линейные вычислительные процессы.
Линейный вычислительный процесс представляет собой последовательность
действий, выполняемых одно за другим. Основу программы линейного
вычислительного процесса составляют оператор присваивания и операторы
ввода-вывода данных.
Оператор присваивания
Оператор присваивания служит для вычисления выражения и записи результата
в память компьютера.
Общий вид записи оператора
переменная=выражение;
Знак = читается как «присвоить». Конец любого оператора на языке Си
фиксируется точкой с запятой.
Работа оператора присваивания
При выполнении оператора присваивания происходит замена текущего
значения переменной, стоящей слева от знака присваивания, новым значением,
полученным в результате вычисления выражения, стоящего справа от знака
равенства, например
c = a + b; // вычислит сумму a и b и запишет результат в c.
Тип результата выполнения оператора
При записи оператора присваивания необходимо строго следить за типом
переменной, стоящей в левой части оператора, и типом выражения:
• если переменная слева - вещественного типа, то арифметическое
выражение может быть как целым, так и вещественным.
В случае целого арифметического выражения происходит преобразование его
результата к вещественному типу. Например, при выполнении оператора
m=20+15/4.0;
вещественной переменной m будет присвоено значение 23.0;
• если переменная слева - целого типа, то арифметическое
выражение будет приведено к целому типу. Например, задано
следующее описание переменных.
float a, b, c;int n;
Тогда записать оператор присваивания в виде: n=а*b/с; приведет к
усечению результата до целого типа.
В операторе присваивания конечный результат вычисления выражения в
правой части приводится к типу переменной, которой должно быть присвоено
это значение. Данный процесс может привести к понижению типа, как описано
выше, или к повышению, при котором величина приводится к типу данных,
имеющему более высокий приоритет. Последовательность имен типов,
упорядоченных от высшего типа к низшему типу, выглядит так: double,
9

float, long, int, short, char. Применение ключевого слова
unsigned повышает ранг соответствующего типа данных со знаком.
Повышение типа обычно происходит гладко, в то время как понижение может
привести к затруднениям (скрытым ошибкам). Запомним, что тип значения
выражения в правой части оператора присваивания всегда преобразуется к типу
переменной, которой присваивается это значение.
Примеры использования оператора присваивания
1. Записать оператор присваивания, который позволяет вычислить
расстояние между двумя точками на плоскости с координатами (х1,у1)и (х2,
у2).
Ответ: d=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
2. Записать последовательность операторов присваивания,
обеспечивающих обмен значениями переменных х и ув памяти
компьютера.
Ответ:
с=х;
х=у;
у=с;
Странные операторы присваивания
В программировании часто используются несколько странные операторы
присваивания, например:
i = i + 1;
Если считать это уравнением, то оно бессмысленно с точки зрения математики.
Однако с точки зрения информатики этот оператор служит для увеличения
значения переменной i на единицу.
Буквально это означает: взять старое значение переменной i, прибавить к
нему единицу и записать результат в ту же переменную i.
Инкремент и декремент
В языке Си определены специальные операторы быстрого увеличения на
единицу
(инкремента)
i ++; (постфиксная форма) или ++ i; (префиксная форма)
что равносильно оператору присваивания
i = i + 1;
и быстрого уменьшения на единицу (декремента)
i--; или --i;
что равносильно оператору присваивания
i=i-1;
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
