Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2375

.pdf
Скачиваний:
1
Добавлен:
08.01.2021
Размер:
381.19 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Воронежский государственный лесотехнический университет имени Г.Ф. Морозова»

ОСНОВЫ ПРОГРАММИРОВАНИЯ И АЛГОРИТМИЗАЦИИ

Методические указания для самостоятельной работы студентов по направлению подготовки

09.03.02 – Информационные системы и технологии

Воронеж 2016

УДК 681.3.06 (076)

Оксюта, О. В. Основы программирования и алгоритмизации Текст : методические указания для самостоятельной работы студентов по направлению подготовки 09.03.02 – Информационные системы и технологии / О. В. Оксюта ; М-во образования и науки РФ, ФГБОУ ВО «ВГЛТУ им. Г.Ф. Морозова». – Воронеж, 2016. – 32 с.

Печатается по решению учебно-методического совета ФГБОУ ВО «ВГЛТУ им. Г.Ф. Морозова» (протокол № __ от _______ 2016 г.)

Рецензент заведующий кафедрой электротехники и автоматики ФГБОУ ВПО ВГАУ д-р.техн.наук., проф. Д.Н. Афоничев

 

© Оксюта О.В., 2016

ISBN

© ФГБОУ ВО «Воронежский государствен-

ный

 

 

лесотехнический университет имени

 

Г.Ф. Морозова», 2016

ВВЕДЕНИЕ

Методические указания подготовлены в соответствии с рабочей программой дисциплины «Основы программирования и алгоритмизации» для студентов по направлениям подготовки 09.03.02 – Информационные системы и технологии. Целью изучения данной дисциплины является формирование у студентов знаний и умений по разработке программ с использованием языка программирования высокого уровня и интегрированной среды изучаемого языка программирования.

Врезультате освоения дисциплины студент должен:

уметь составлять алгоритмы решения задач; составлять программы на алгоритмическом языке высокого уровня; проводить отладку программ с использованием современных программных инструментов; грамотно разбивать решаемую задачу на подпрограммы, объединять подпрограммы в модули; работать в интегрированной среде изучаемого языка программирования;

владеть навыками построения алгоритмов и программ в интегрированной среде программирования на языке С++; навыками разработки программных средств в различных предметных областях; навыками документации программной и организационной разработки.

СОДЕРЖАНИЕ ДИСЦИПЛИНЫ

Раздел 1. Основные этапы решения задач на ЭВМ. Понятие алгоритма и языка программирования.

Основные этапы решения задач на ЭВМ. Понятие алгоритма. Свойства алгоритмов. Формы записей алгоритмов. Общие принципы построения алгоритмов. Основные алгоритмические конструкции: линейные, разветвляющиеся, циклические. Основные этапы решения задач на ЭВМ. Понятие и виды алгоритмов. Порядок составления алгоритмов. Способы записи алгоритмов. Условные обозначения на блок-схемах. Понятие и виды языков программирования. Трансляторы.

Раздел 2. Программа на языке высокого уровня.

Эволюция языков программирования. Классификация языков программирования. Элементы языков программирования. Понятие системы программирования. Исходный, объектный и загрузочный модули. Интегрированная среда программирования. Компилирование и выполнение программы. Структура программы.

Раздел 3. Пользовательские и стандартные типы данных.

Данные: понятие и типы. Основные базовые типы данных и их характеристика. Понятие переменных и констант. Целочисленный тип данных. Вещественные типы данных. Символьный тип данных. Пустой тип данных. Автоматическое преобразование типов и операция приведения типа. Функции ввода и вывода. Выражения, операции, приоритет операций. Основы алгебры логики. Логические операции с высказываниями: конъюнкция, дизъюнкция, инверсия. Законы логических операций. Таблицы истинности.

Раздел 4. Представление основных управляющих структур программирования.

Понятие оператора. Оператор присваивания, пустой оператор, составной оператор, оператор безусловного перехода. Оператор вызова функции. Условные операторы. Оператор множественного выбора. Вложенные условные операторы. Операторы циклов. Циклические конструкции. Циклы с предусловием и постусловием. Операторы передачи управления.

Раздел 5. Массивы.

Массивы как структурированный тип данных. Объявление массива. Одномерные и многомерные массивы. Размещение массива в памяти. Особенности индексации массивов в С. Ввод и вывод одномерных массивов. Ввод и вывод двухмерных массивов. Обработка массивов. Стандартные функции для массива целых и вещественных чисел. Сортировка массивов. Указатели и адреса. Адресная арифметика. Указатели и массивы. Символьные массивы. Объявление строковых типов данных. Поиск, удаление, замена и добавление символов в строке. Операции со строками. Строковые функции. Динамическое распределение памяти.

Раздел 6. Функции.

Понятие подпрограммы. Понятие функции, сущность, назначение, различие функций. Формат объявления функций. Аргументы функций. Возвращаемое значение. Вызов функций, рекурсия. Прототипы функций. Программирование рекурсивных алгоритмов. Классы памяти. Локальные и глобальные переменные. Область видимости. Передача массивов в функции. Перегрузка функций. Функции с переменным числом параметров. Указатель на функцию.

Раздел 7. Структуры и объединения.

Понятие структуры. Формат объявления структур. Объявление переменных типа структура. Доступ к элементам структур. Вложенные структуры. Массивы структур. Структуры как аргументы функций. Указатели на структуры. Битовые поля. Перечисления. Объявление перечислений, операции над переменными перечислимого типа. Объединения. Объявление объединений. Объявления с вариантными полями.

Раздел 8. Файлы. Модульные программы.

Файлы и потоки. Типы файлов. Режимы открытия файлов. Организация доступа к файлам. Текстовые файлы. Функции чтения и записи символов и строк. Бинарные файлы. Порядок работы с файлами произвольного доступа. Функции чтения и записи для бинарных файлов. Создание структуры записи. Использование файла произвольного доступа. Функции определения ошибок и позиционирования в файлах. Стандартные процедуры и функции для файлов разного типа.

СОДЕРЖАНИЕ ПРАКТИЧЕСКИХ ЗАНЯТИЙ

Дисциплина «Основы программирования и алгоритмизации» предусматривает лабораторные занятия, темы которых приведены в табл. 1. Студенты после выполнения каждой работы составляют письменный отчет, который устно защищается.

 

Таблица 1

 

 

№ п/п

Наименование практических работ

 

 

1

2

 

 

1

Знакомство и приемы работы в интегрированной среде Borland C++

 

 

2

Простые операторы. Выражения. Операции ввода-вывода

 

 

3

Условные операторы

 

 

4

Операторы повтора. Цикл с параметром for

 

 

5

Операторы повтора. Циклы с условием while и do-while

 

 

6

Одномерные массивы

 

 

7

Двумерные массивы

 

 

8

Символьные переменные и строки

 

 

9

Функции. Возврат по значению

 

 

10

Возвращение нескольких значений из функции

 

 

11

Динамическое распределение памяти

 

 

12

Структуры

 

 

13

Работа с файлами

 

 

Каждое задание выполняется студентом индивидуально в соответствии с вариантом задания. Вариант задания каждому студенту выдается преподавателем. Для выполнения задания студент должен определить необходимые переменные, разработать алгоритм решения задачи, определить типы данных для переменных, реализовать составленный алгоритм на языке программирования С++, протестировать программу с разными исходными значениями и выполнить анализ полученных результатов. Все этапы выполнения лабораторной работы студент должен отразить в отчете.

Отчет для каждой лабораторной работы должен содержать:

1.Алгоритм решения задачи (блок-схема).

2.Результаты выполнения лабораторной работы (текст программы).

3.Результат работы программы на нескольких примерах.

c (a b) / 2

Для каждой лабораторной работы составить алгоритм в виде блок-схемы и написать программу.

Примеры заданий к лабораторной работе № 1

1.Дана длина ребра куба. Найти объем куба и площадь его боковой поверхности. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление объема и площади поверхности куба.

Введите длину ребра (см) и нажмите клавишу <Enter> -> 9.5 Объем куба: 857.38 куб.см.

Площадь поверхности: 541.5 кв.см.

2.Даны катеты прямоугольного треугольника. Найти его гипотенузу. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление гипотенузы треугольника. Введите длину 1-го катета-> 3.6 Введите длину 2-го катета: -> 4.5 Гипотенуза: 5.76 см.

3.Даны катеты прямоугольного треугольника. Найти его периметр. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление периметра треугольника. Введите длину 1-го катета-> 3 Введите длину 2-го катета: -> 4 Периметр: 12 см.

4.Вычислить площадь трапеции со сторонами основания a и b и высо-

той h, по формулам: S c * h, где с – средняя линия трапеции . Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление площади трапеции. Введите исходные данные:

Меньшее снование трапеции (см) -> 4 Большее снование трапеции (см) -> 12 Высота трапеции (см) -> 6 Площадь: 48 см. кв.

5. Даны высота, ширина и длина прямоугольного параллелепипеда. Вычислить его объем и площадь поверхности. Ниже приведен рекомендуемый вид экрана во время выполнения программы (данные, введенные пользователем, выделены полужирным шрифтом).

Вычисление объема и площади поверхности параллелепипеда. Введите длину (см) -> 9 Введите ширину (см) -> 7.5 Введите высоту (см) -> 5 Объем: 337.50 куб.см.

Площадь поверхности: 90.00 кв.см.

Примеры заданий к лабораторной работе № 2

1.Дано двузначное число. Определить, равен ли квадрат этого числа учетверенной сумме кубов его цифр. Например, для числа 48 ответ положительный, для числа 52 – отрицательный.

2.Даны две точки А(х1, у1) и В(х2, у2). Составить программу, определяющую какая из точек находится ближе к началу координат.

3.Даны вещественные числа х и у, не равные друг другу. Меньшее из чисел заменить половиной их суммы, а большее – их удвоенным произведением.

4.Услуги телефонной сети оплачиваются по следующему правилу: за разговоры до А минут в месяц – В руб., а разговоры сверх установленной нормы оплачиваются из расчета С руб. за минуту. Написать программу, вычисляющую плату за пользование телефоном для введенного времени разговоров за месяц.

5.Написать программу, которая анализирует данные о возрасте и относит человека к одной из четырех групп: дошкольник, ученик, работник, пенсионер. Возраст вводится с клавиатуры.

Примеры заданий к лабораторной работе № 3

1.Написать программу, которая выводит на экран таблицу квадратов

икубов целых чисел а от 1 до 10. Столбцы таблицы должны иметь обозначения, например, а, а^2, a^3.

2.Составить программу печати таблицы температур по Цельсию от 0 до 10 градусов с шагом в один градус и их эквивалентов по шкале Фаренгейта, используя для перевода формулу tF=9tC/5+32.

3.Напишите программу, которая выводит в столбец произведения чисел а=143, b=777 и чисел 1, 2, 3, …, 9.

4.Умножение числа а=12 345 на числа 9, 18, 27, …, 81 дает интересные результаты. Напишите программу получения этих произведений.

5.Напечатать «столбиком» все целые числа от а до b (значения а и b вводятся с клавиатуры; b≥а).

Примеры заданий к лабораторной работе № 4

1.Гражданин открыл счет в банке, вложив 1000 руб. Каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Определить прирост суммы вклада за каждый месяц до тех пор, пока размер вклада не превысит 1200руб. Найти также число месяцев.

2.Гражданин открыл счет в банке, вложив 1000 руб. Каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Определить размер его вклада за каждый месяц до тех пор, пока величина ежемесячного увеличения вклада не превысит 30руб. Определить номер этого месяца.

3.Начав тренировки, лыжник в первый день пробежал 10 км. Каждый следующий день он увеличивал пробег на 10% от пробега предыдущего дня. Определить в какой день суммарный пробег за все дни превысит 100км; вывести пробег лыжника за каждый день тренировок.

4.Начав тренировки, лыжник в первый день пробежал 10 км. Каждый следующий день он увеличивал пробег на 10% от пробега предыдущего дня. Определить в какой день он пробежит больше 20 км; вывести суммарный путь лыжника за эти дни тренировок;

5.В некотором году (назовем его условно первым) на участке в 100 гектаров урожайность ячменя составила 20 центнеров с гектара. После этого каждый год площадь участка увеличивалась на 5%, а средняя урожайность на 2%. Определить в каком году урожайность превысит 22 центнера с гектара, вывести при этом урожай за каждый год и общий урожай за все годы.

Примеры заданий к лабораторной работе № 5

1.Дан одномерный массив. Определить сумму элементов массива с к1 по к2 (значения к1 и к2 вводятся с клавиатуры, к2 1).

2.Составить программу, которая формирует одномерный массив вводом с клавиатуры и находит среднее арифметическое элементов массива с p1 по p2 (значения p1 и p2 вводятся с клавиатуры; p2>p1).

3.Дан одномерный массив a. Определить сумму знакочередующейся последовательности a[0]-а[1]+a[2]-a[3]+… Условную инструкцию и операцию возведения в степень не использовать.

4.В массиве а[n] целых чисел найти сумму тех элементов, которые кратны данному значению к.

5.Дан массив целых чисел. Заменить все элементы, большие данного числа z, этим числом. Подсчитать количество замен.

Примеры заданий к лабораторной работе № 6

1.Заполнить двухмерный массив случайными числами и вывести на экран. Из всех нечетных элементов массива вычесть последний элемент соответствующего столбца. Вывести полученную матрицу на экран.

2.Заполнить двухмерный массив случайными числами и вывести на экран. Ко всем четным элементам массива прибавить последний элемент соответствующей строки, а ко всем остальным – первый элемент соответствующего столбца. Вывести полученную матрицу на экран.

3.Заполнить двухмерный массив случайными числами и вывести на экран. Ко всем четным элементам массива прибавить первый элемент соответствующей строки. Вывести полученную матрицу на экран.

4.Заполнить двухмерный массив случайными числами и вывести на экран. Все отрицательные элементы массива умножить на первый элемент соответствующей строки. Вывести полученную матрицу на экран.

5.Заполнить двухмерный массив случайными числами и вывести на экран. Ко всем положительным элементам массива прибавить элемент, стоящий на главной диагонали соответствующей строки. Вывести полученную матрицу на экран.

Примеры заданий к лабораторной работе № 7

1.Дана строка, заканчивающаяся точкой. Подсчитать, сколько слов

встроке.

2.Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы « b ».

3.Дана строка. Подсчитать, сколько в ней букв « r », « k », « t ».

4.Дана строка. Определить, сколько в ней символов «*», « ; », « : ».

5.Дана строка, содержащая текст. Найти длину самого короткого слова и самого длинного слова.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]