Программирование
Покупка
Новинка
Тематика:
Программирование и алгоритмизация
Издательство:
Республиканский институт профессионального образования
Год издания: 2023
Кол-во страниц: 300
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
Среднее профессиональное образование
ISBN: 978-985-895-148-1
Артикул: 844899.01.99
В учебном пособии изложены основы построения алгоритмов, приведены стандартные алгоритмы. Рассмотрены основные понятия структурной методологии программирования на примере языка С. Представлены
практические и тестовые задания. Лабораторные работы содержат основные теоретические сведения, практические задания, методические указания к их выполнению. Для закрепления знаний предложены контрольные вопросы.
Предназначено для учреждений образования, реализующих образовательные программы среднего специального образования по специальностям «Техническая эксплуатация систем и сетей телекоммуникаций», «Техническая эксплуатация систем радиосвязи, радиовещания и телевидения», «Информационные кабельные сети», может быть использовано широким кругом читателей для самостоятельного изучения.
Тематика:
ББК:
УДК:
ОКСО:
- Среднее профессиональное образование
- 10.02.02: Информационная безопасность телекоммуникационных систем
- 10.02.04: Обеспечение информационной безопасности телекоммуникационных систем
- 11.02.03: Эксплуатация оборудования радиосвязи и электрорадионавигации судов
- 11.02.18: Системы радиосвязи, мобильной связи и телерадиовещания
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
ПРОГРАММИРОВАНИЕ Допущено Министерством образования Республики Беларусь в качестве учебного пособия для учащихся учреждений образования, реализующих образовательные программы среднего специального образования по специальностям «Техническая эксплуатация систем и сетей телекоммуникаций», «Техническая эксплуатация систем радиосвязи, радиовещания и телевидения», «Информационные кабельные сети» Минск РИПО 2023
УДК 004.42(075.32) ББК 32.973-018я723 П78 А в т о р ы: заведующий кафедрой программного обеспечения сетей телекоммуникаций УО «Белорусская государственная академия связи» кандидат технических наук, доцент О. Ю. Горбадей; заведующий кафедрой последипломного образования этого же учреждения образования кандидат технических наук, доцент О. П. Рябычина; преподаватели этого же учреждения образования А. Н. Балаш, Н. И. Янович Р е ц е н з е н т ы: цикловая комиссия УО «Брестский государственный колледж связи» (М. Н. Сыцевич); заведующий кафедрой дискретной математики и алгоритмики Белорусского государственного университета доктор физико-математических наук, профессор В. М. Котов; заведующий кафедрой программной инженерии УО «Белорусский государственный технологический университет» кандидат технических наук, доцент Н. В. Пацей Все права на данное издание защищены. Воспроизведение всей книги или любой ее части не может быть осуществлено без разрешения издательства. Выпуск издания осуществлен при финансовой поддержке Министерства образования Республики Беларусь. Программирование : учеб. пособие / О. Ю. Горбадей [и др.]. – П78 Минск : РИПО, 2023. – 298 с. ISBN 978-985-895-148-1. В учебном пособии изложены основы построения алгоритмов, приведены стандартные алгоритмы. Рассмотрены основные понятия структурной методологии программирования на примере языка С. Представлены практические и тестовые задания. Лабораторные работы содержат основные теоретические сведения, практические задания, методические указания к их выполнению. Для закрепления знаний предложены контрольные вопросы. Предназначено для учреждений образования, реализующих образовательные программы среднего специального образования по специальностям «Техническая эксплуатация систем и сетей телекоммуникаций», «Техническая эксплуатация систем радиосвязи, радиовещания и телевидения», «Информационные кабельные сети», может быть использовано широким кругом читателей для самостоятельного изучения. УДК 004.42(075.32) ББК 32.973-018я723 ISBN 978-985-895-148-1 © Оформление. Республиканский институт профессионального образования, 2023
ПРЕДИСЛОВИЕ Учебный предмет «Программирование» предусматривает изучение основ алгоритмизации и языка программирования С. Цель изучения: формирование профессиональной компетентности будущих специалистов в области структурного программирования, методов конструирования, оптимизации и разработки программ. Задачей изучения является развитие у учащихся алгоритмического мышления, формирование практических навыков конструирования программ и решения научно-технических задач с помощью электронных вычислительных машин (ЭВМ), разработки программ с использованием языка программирования С. Учебное пособие составлено в соответствии с программой учебного предмета «Программирование» для учащихся специальностей 5-04-0713-02 «Техническая эксплуатация систем и сетей телекоммуникаций», 5-04-0713-04 «Техническая эксплуатация систем радиосвязи, радиовещания и телевидения», 5-04-0713-03 «Информационные кабельные сети». В первом разделе «Основы алгоритмизации» рассмотрены основные понятия, типы алгоритмов и формы их записи. Во втором разделе «Структурное программирование» изложены основы программирования на языке С. Приведены примеры программного кода по изучаемым темам. Каждый из разделов содержит краткие теоретические сведения, необходимые для подготовки к лабораторным работам. Иллюстративный материал облегчает восприятие излагаемой информации. Материал рассчитан на учащихся, имеющих базовые знания основ физики и математики, а также базовые знания по отдельным разделам учебного предмета «Информатика». 3
Раздел 1. ОСНОВЫ АЛГОРИТМИЗАЦИИ 1.1. ПОНЯТИЕ АЛГОРИТМА Алгоритм – это конечная последовательность точно сформулированных правил, формальное исполнение которых позволяет получить искомый результат, основываясь на изменяющихся исходных данных. Термин «алгоритм» происходит от латинского написания имени Мухаммеда ибн Муса аль-Хорезми, жившего в 783–850 гг., под которым в средневековой Европе знали величайшего математика из Хорезма – города в современном Узбекистане. Алгоритм обладает следующими свойствами: • • массовость – это представление алгоритма решения задачи в общем виде, т. е. он должен быть применим для решения разного класса задач, различающихся только исходными данными, которые могут выбираться из некоторой области, называемой областью применимости алгоритма; • • определенность – это свойство алгоритма, указывающее на то, что каждый его шаг должен быть строго определен и не допускать различных толкований. Благодаря этому свойству процесс выполнения алгоритма носит механический характер; • • понятность – это использование в алгоритме только тех команд, которые понятны исполнителю; • • конечность – это ограничение последовательности элементарных действий. Алгоритм не является бесконечным, неограниченным, хотя и может содержать большое количество действий; • • дискретность – это представление процесса решения задачи как последовательного выполнения простых шагов. Каждое предусмотренное алгоритмом действие исполняется только после окончания предыдущего; 4
1.1. Понятие алгоритма • • результативность – это обязательное получение результата при выполнении алгоритма: либо решение поставленной задачи, либо сообщение о том, что при заданных исходных величинах задачу решить невозможно. Алгоритмический процесс не может обрываться безрезультатно. Алгоритмизация – это процесс создания алгоритма для описания функционирования системы. Для записи алгоритмов используются блок-схемы и алгоритмический язык. В качестве исполнителя алгоритма выступает компьютер. Он работает с различными информационными объектами – величинами. Совокупность величин – данные. Они делятся на исходные, промежуточные и результативные. Алгоритм для решения любой задачи может быть составлен из команд ввода, вывода, присваивания, обращения к вспомогательному алгоритму, ветвления, циклов. Всякая величина занимает место в памяти компьютера – ячейку. Каждая ячейка памяти имеет уникальный адрес. Данные хранятся в памяти компьютера, но для указания на конкретную информацию очень неудобно все время записывать физические адреса ячеек. Для решения этой проблемы в языках программирования введено понятие переменной – именованного участка памяти для хранения данных определенного типа. Значение переменной (информация в соответствующих ячейках памяти) в ходе выполнения программы может быть изменено. Константами называются величины, значение которых в ходе выполнения программы не может быть изменено. Переменная может получить значение путем ввода или с помощью операции присваивания, которая является одной из основных в алгоритмах и выполняет занесение значения переменной в ячейку памяти. Порядок выполнения операции присваивания следующий: • • вычислить выражение в правой части от знака; • • полученное значение занести в ячейку памяти, соответствующую переменной в левой части от знака. Основными свойствами переменной являются: • • переменная остается неопределенной, пока ей не присвое- но значение; • • значение, присвоенное переменной, сохраняется в ней вплоть до выполнения следующих команд присваивания этой переменной; 5
Раздел 1. Основы алгоритмизации • • новое значение, присвоенное переменной, заменяет предыдущее. В блок-схемах операция присваивания записывается в прямоугольнике, а команды ввода-вывода – в параллелограмме. Линейные алгоритмы – это алгоритмы, в которых команды выполняются строго друг за другом, каждая по одному разу. В качестве примера на рисунке 1 представлена запись алгоритма умножения двух чисел. алг Умножение чисел начало нач цел a,b,c,d,m,n; ввод a,b,c,d; ввод a, b, c, d m:= a * d; m:= a * d n:= b * c; n:= b * c вывод m,n; вывод m, n кон конец Рис. 1 В правом столбце блок-схема записана на учебном алгоритмическом языке, в котором используются следующие служебные слова: алг – алгоритм, нач – начало алгоритма, вывод – вывод данных, кон – конец алгоритма. Кроме того, для каждой переменной указывается ее тип: цел – целое число, вещ – вещественный тип данных, лит – строковое значение, пока – проверка условия, нц – начало цикла, кц – конец цикла. Команда формата присваивания записывается в формате переменная := выражение; 1.2. ТИПЫ АЛГОРИТМОВ И ФОРМЫ ИХ ЗАПИСИ Часто в ходе выполнения задачи необходимо выбрать один вариант решения из двух или более возможных. Пример Исходные данные – два числа a и b, не равные друг другу. Результат – наибольшее из этих двух чисел. 6
1.2. Типы алгоритмов и формы их записи Алгоритм решения задачи будет следующим: проверить условие a > b, если оно истинно, то выполнить операцию присваивания max := a; (в противном случае – max := b; ). Для решения задачи используется команда ветвления. На рисунке 2 представлены команды ветвления и их запись на алгоритмическом языке. если условие да нет условие то группа команд иначе группа команд группа команд группа команд кв Рис. 2 В начале проверяется условие (вычисляются отношения, логические выражения). Если оно истинно, то выполняется группа команд, на которую указывает стрелка с надписью да, в противном случае – по стрелке нет. В алгоритмическом языке условие записывается после служебного слова если, положительная ветвь – после слова то, отрицательная – после слова иначе. Буквы кв обозначают конец ветвления. Когда необходимо выполнить действие только при истинности проверяемого условия, можно использовать упрощенный вид команды ветвления. На рисунке 3 представлен пример замены значения переменной а его абсолютным значением. да a < 0 если a < 0 a:= a * (-1) то a:= a *(-1); кв Рис. 3 Часто встречаются задачи, в которых отдельные операторы или их группы повторяются многократно. Повторяемые группы 7
Раздел 1. Основы алгоритмизации операторов называются циклами. В программировании используется несколько вариантов организации циклических алгоритмов. Блок-схема команды цикл пока, или цикл с предусловием, и ее запись на алгоритмическом языке представлены на рисунке 4. нет условие пока условие повторять да нц группа команд группа команд кц Рис. 4 Данный цикл состоит из заголовка и тела цикла – группы команд, которая выполняется до тех пор, пока условие цикла истинно. Сначала проверяется условие, если оно ложно, то тело цикла выполняться не будет. На рисунке 5 рассмотрена следующая задача. Пользователь вводит целое число, а на экран выводится квадрат данного числа. Процесс повторяется, пока пользователь не введет 0. нач начало цел k; i:= 0; ввод k ввод k; нет пока k!= 0 повторять k!= 0 нц да k:= k * k; k:= k * k вывод k; вывод k ввод k; ввод k кц конец кон Рис. 5 8
1.2. Типы алгоритмов и формы их записи На рисунке 6 рассмотрена задача по суммированию целых чисел на отрезке от а до b. Алгоритм решения следующий. Объявляется переменная S, в которой будет накапливаться значение суммы, ей присваивается значение 0. Вводятся целые значения a и b. Если a < b, то к значению переменной S прибавляется число а, значение а увеличивается на 1. нач начало цел S, a, b; S := 0 S:= 0; ввод ввод a, b; a,b нет пока a <= b повторять a <= b нц да S = S + a; S:= S + a a:= a + 1; a:= a + 1 кц конец кон Рис. 6 Другим вариантом организации циклических алгоритмов является цикл с постусловием. В отличие от цикла с предусловием, здесь сначала выполняется действие, а затем проверяется условие выхода из цикла. Когда условие становится ложным, цикл завершается (рис. 7). группа повторять нц группа команд команд кц условие пока условие; нет да Рис. 7 9
Раздел 1. Основы алгоритмизации На рисунке 8 представлен цикл, в котором организована защита программы паролем. нач лит password, wrPassword; ввод password повторять ввод password; до password = wrPassword; password = wrPassword нет кон да Рис. 8 Вспомогательным называется алгоритм решения некоторой подзадачи из основной задачи. Например, требуется вычислить площадь квартиры, состоящей из прямоугольных комнат. Площадь квартиры есть сумма площадей комнат. Для решения задачи необходимо написать вспомогательный алгоритм вычисления площади комнаты и использовать его в основном алгоритме при подсчете суммы площадей комнат. На алгоритмическом языке решение задачи будет выглядеть следующим образом: вещ S, n; нач S:= 0; i:= 0; вычислить_площадь("кухня",вещ S); вычислить_площадь("коридор",вещ S); вывод "Введите количество комнат"; ввод n; повторять i:= i + 1; вычислить_площадь("комната"+ i,вещ S); пока i = n; вывод S; кон процедура вычислить_площадь(лит объект, вещ P) вещ a, b; нач вывод "Введите размеры"; вывод объект; 10