Алгоритмизация и программирование
Учебное пособие
Покупка
Основная коллекция
Тематика:
Программирование и алгоритмизация
Издательство:
Инфра-Инженерия
Год издания: 2025
Кол-во страниц: 216
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-9729-2228-4
Артикул: 852959.02.99
Даны алгоритмы построения компьютерных программ на языке Паскаль (Pascal). Пособие состоит из лекционного курса (11 тем), вопросов и заданий для самостоятельной подготовки обучающихся и цикла лабораторных работ (18 работ). Для студентов, обучающихся по направлению подготовки 38.03.05 «Бизнес-информатика».
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Н. В. Апатова, М. А. Бакуменко АЛГОРИТМИЗАЦИЯ И ПРОГРАММИРОВАНИЕ Учебное пособие Москва Вологда «Инфра-Инженерия» 2025
УДК 004.42 ББК 32.973 А76 Рецензенты: доктор педагогических наук, профессор, ФГАОУ ВО «Крымский федеральный университет имени В. И. Вернадского» Гончарова Оксана Николаевна; доктор педагогических наук, профессор, ГБОУ ВО РК «Крымский инженерно-педагогический университет имени Февзи Якубова» Гордиенко Татьяна Петровна Апатова, Н. В. А76 Алгоритмизация и программирование : учебное пособие / Н. В. Апатова, М. А. Бакуменко. – Москва ; Вологда : Инфра-Инженерия, 2025. – 216 с. : ил., табл. ISBN 978-5-9729-2228-4 Даны алгоритмы построения компьютерных программ на языке Паскаль (Pascal). Пособие состоит из лекционного курса (11 тем), вопросов и заданий для самостоятельной подготовки обучающихся и цикла лабораторных работ (18 работ). Для студентов, обучающихся по направлению подготовки 38.03.05 «Бизнесинформатика». УДК 004.42 ББК 32.973 ISBN 978-5-9729-2228-4 Апатова Н. В., Бакуменко М. А., 2025 Издательство «Инфра-Инженерия», 2025 Оформление. Издательство «Инфра-Инженерия», 2025
СОДЕРЖАНИЕ ВВЕДЕНИЕ .................................................................................................................. 5 ТЕМА 1. ОСНОВНЫЕ СРЕДСТВА ЯЗЫКА ПАСКАЛЬ И АЛГОРИТМЫ ОБРАБОТКИ СКАЛЯРНЫХ ДАННЫХ .................................... 6 1.1. Язык программирования Паскаль ...................................................................... 6 Вопросы и задания ...................................................................................................... 8 1.2. Структура программы на Паскале. Ввод и вывод данных ............................... 8 Вопросы и задания .................................................................................................... 11 Лабораторное задание 1. Линейные вычислительные процессы ......................... 13 1.3. Условный оператор ............................................................................................ 20 Вопросы и задания .................................................................................................... 24 Лабораторное задание 2. Разветвляющиеся вычислительные процессы. Сокращенная форма оператора IF ........................................................................... 26 Лабораторное задание 3. Разветвляющиеся вычислительные процессы. Использование вложенных инструкций IF THEN ELSE ...................................... 35 1.4. Организация циклов ........................................................................................... 42 Вопросы и задания .................................................................................................... 48 Лабораторное задание 4. Циклические вычислительные процессы. Оператор FOR ............................................................................................................ 50 Лабораторное задание 5. Циклические вычислительные процессы. Операторы WHILE И REPEAT UNTIL ................................................................... 57 ТЕМА 2. КОМПЬЮТЕРНАЯ ТОЧНОСТЬ ВЫЧИСЛЕНИЙ ............................... 61 Вопросы и задания .................................................................................................... 66 Лабораторное задание 6. Вычисления с заданной точностью .............................. 68 ТЕМА 3. ОДНОМЕРНЫЕ И ДВУМЕРНЫЕ МАССИВЫ .................................... 73 3.1. Массивы .............................................................................................................. 73 Вопросы и задания .................................................................................................... 78 Лабораторное задание 7. Обработка одномерных массивов ................................ 79 Лабораторное задание 8. Сортировка массивов ..................................................... 85 3.2. Алгоритмы обработки таблиц ........................................................................... 88 Вопросы и задания .................................................................................................... 93 Лабораторное задание 9. Обработка двумерных массивов .................................. 94 Лабораторное задание 10. Преобразование и построение матриц ..................... 100 ТЕМА 4. ОПЕРАТОР ВАРИАНТА ....................................................................... 107 Лабораторное задание 11. Оператор варианта ..................................................... 109 ТЕМА 5. ПОДПРОГРАММЫ ................................................................................ 114 5.1. Процедуры ......................................................................................................... 115 5.2. Подпрограммы-функции ................................................................................. 119 Вопросы и задания .................................................................................................. 121 Лабораторное задание 12. Подпрограммы. Функции .......................................... 122 Лабораторное задание 13. Процедуры и функции ............................................... 128 ТЕМА 6. ОБРАБОТКА СТРОК ............................................................................. 135
Вопросы и задания .................................................................................................. 142 Лабораторное задание 14. Символьный тип данных ........................................... 143 Лабораторное задание 15. Обработка строк ......................................................... 148 ТЕМА 7. ЗАПИСИ .................................................................................................. 153 Вопросы и задания .................................................................................................. 157 Лабораторное задание 16. Записи .......................................................................... 158 ТЕМА 8. ФАЙЛЫ .................................................................................................... 165 Вопросы и задания .................................................................................................. 169 Лабораторное задание 17. Работа с файлами ....................................................... 171 ТЕМА 9. ГРАФИКА ................................................................................................ 178 Вопросы и задания .................................................................................................. 187 Лабораторное задание 18. Компьютерная графика ............................................. 189 ТЕМА 10. РЕКУРСИЯ ............................................................................................ 197 Вопросы и задания .................................................................................................. 202 ТЕМА 11. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ ................................... 203 Вопросы и задания .................................................................................................. 210 ЛИТЕРАТУРА ......................................................................................................... 212
ВВЕДЕНИЕ Учебное пособие предназначено для обучающихся первого курса бакалавриата по направлению подготовки 38.03.05 «Бизнес-информатика» и подготовлено согласно требованиям образовательного стандарта, учебного плана, утвержденного Ученым советом ФГАОУ ВО «Крымский федеральный университет имени В. И. Вернадского», и учебной программы дисциплины «Алгоритмизация и программирование». Дисциплина «Алгоритмизация и программирование» входит в вариативную группу дисциплин для подготовки бакалавров по направлению подготовки 38.03.05 «Бизнес-информатика». Изучение языков программирования и алгоритмов построения компьютерных программ является необходимостью для будущих бакалавров по направлению подготовки «Бизнес-информатика». В учебном пособии в качестве языка программирования был выбран язык Паскаль (Pascal). Паскаль является одним из наиболее простых языков программирования для формирования базовых навыков и компетенций у обучающихся начальных курсов. Он позволяет записывать команды компьютеру для решения математических задач, обработки текстов, построения изображений на экране дисплея. Реализованный на IBM PC Паскаль позволяет использовать практически все возможности персонального компьютера. Структурно учебное пособие состоит из лекционного курса (одиннадцати тем), вопросов и заданий для самостоятельной подготовки обучающихся и цикла лабораторных работ (восемнадцати работ). В результате изучения дисциплины «Алгоритмизация и программирование» обучающиеся должны приобрести знания, умения и навыки, необходимые в будущей профессиональной деятельности для самостоятельного решения профессиональных задач с применением вычислительной техники и информационных технологий. Авторы выражают искреннюю благодарность рецензентам, профессорам Оксане Николаевне Гончаровой и Татьяне Петровне Гордиенко, за внимание к учебному пособию, ценные советы, замечания и рекомендации. Авторы надеются, что учебное пособие будет полезно обучающимся по направлению подготовки 38.03.05 «Бизнес-информатика».
Тема 1. ОСНОВНЫЕ СРЕДСТВА ЯЗЫКА ПАСКАЛЬ И АЛГОРИТМЫ ОБРАБОТКИ СКАЛЯРНЫХ ДАННЫХ 1.1. Язык программирования Паскаль Одним из наиболее популярных сегодня языков программирования является язык Паскаль. Он позволяет записывать команды компьютеру для решения математических задач, обработки текстов, построения изображений на экране дисплея. Первоначально такое разнообразие средств не входило в стандарт языка, принятый в 1973 году. Создатель Паскаля – Никлаус Вирт – предложил первую версию строгого по форме и простого для написания программ языка в 1968 году, когда не существовало персональных компьютеров. Реализованный на IBM PC Pascal (в дальнейшем – просто Паскаль) позволяет использовать практически все возможности персонального компьютера. Как каждый язык, Паскаль имеет свой алфавит. В него входят латинские буквы, цифры от 0 до 9, специальные знаки (, –, круглые, квадратные и фигурные скобки, точка, запятая и другие), а также служебные слова языка (begin, end, for, while и другие). В текстах программ служебные слова будут выделены жирным шрифтом. При создании информационной модели один из основных этапов – именование объектов. Имя в Паскале – это слово из букв, цифр и знаков подчеркивания, начинающееся с буквы. В качестве имени нельзя использовать служебные слова. Каждое имя соответствует некоторой ячейке памяти, куда записывается данное значение. Поскольку в ячейку можно записать одно за другим сколько угодно данных, то имя также называют переменной или именем переменной. Ячейка – понятие условное, это последовательность разного количества байтов памяти для разных данных. Для целых чисел в Паскале требуется два байта, для действительных – шесть. Каждый символ клавиатуры занимает один байт. Поэтому для каждой переменной надо указать ее тип, чтобы транслятор (программа, переводящая с языка программирования на язык машинных команд) знал, сколько места в памяти она будет занимать. Числа в Паскале различаются как целые и действительные (вещественные). Целое число по внешнему виду такое же, как обычно: знак «» можно не указывать. Вещественные числа, несмотря на одинаковое представление в памяти компьютера, могут иметь вид с фиксированной и с плавающей точкой. Числа с фиксированной точкой похожи на десятичные, только целая часть от дробной отделяется не запятой, а точкой: –7.23, 897.5, –0.11. Числа с плавающей точкой имеют громоздкий вид, они выводятся как результаты работы программы. Однако, как показано в описании операторов ввода-вывода, их можно
заменить на числа с фиксированной точкой. Если программа выдала вещественное число: – 4.9876543234Е-02 то это то же самое, что – 0,049876543234 , т. е. десятичную точку надо сдвинуть влево на две позиции. Сдвиг указан после буквы Е в записи числа: вправо, если после Е плюс, и влево, если минус. Для работы с числами используются шесть операций: «+» – сложение, «–» – вычитание, «/» – деление, «*» – умножение, «mod» – нахождение остатка от деления и «div» – деление нацело. Находить остаток от деления и делить нацело можно только целые числа. Из имен, чисел, знаков арифметических действий и математических функций конструируются арифметические выражения. Для указания порядка действий используются только круглые скобки, их может быть несколько, главное, чтобы количество открывающих скобок равнялось количеству закрывающих. Математические функции Паскаля во многом совпадают с общепринятыми: sin(x), cos(x), ln(x). Для возведения аргумента в квадрат используется sqr(x), для извлечения квадратного корня sqrt(x), а модуль обозначается abs(x). В качестве аргумента каждой функции может быть арифметическое выражение. Оператор присваивания. Алгоритм преобразования данных на Паскале состоит из операторов – укрупненных команд. Каждый оператор преобразуется транслятором в последовательность машинных команд. Основное преобразование данных, выполняемое компьютером, – присваивание переменной нового значения. Общий вид оператора присваивания: имя переменной := арифметическое выражение; В дальнейшем будет показано, что справа может стоять и выражение другого типа. Знак «:=» читается «присвоить». Точка с запятой в конце записи оператора является обязательной. При выполнении оператора присваивания рассматривается арифметическое выражение, из ячеек оперативной памяти, соответствующих стоящим там именам, считываются значения в процессор и выполняются указанные действия над данными. Полученный результат записывается в ячейку памяти, имя которой указано слева от знака присваивания. Примеры оператора присваивания: x := 3.14; ^переменной х присвоить значение 3.14` a := b c; ^из ячеек в и с считываются заранее помещенные туда данные, вычисляется сумма, результат записывается в ячейку а` i := i 1; ^значение переменной увеличивается на единицу` Для типов переменной слева и арифметического выражения справа от знака присваивания существуют ограничения: 1) если переменная слева – вещественного типа, то арифметическое выражение может быть как целого, так и вещественного типа, т. е. содержать либо целые переменные и допустимые для них операции, либо вещественные, либо и те, и другие (тогда выражение преобразуется к вещественному типу);
2) если переменная слева – целого типа, то арифметическое выражение –
только целочисленное.
Это означает, что можно, например, вещественной переменной присвоить
целое значение. В памяти компьютера оно будет преобразовано к вещественному типу. В фигурных скобках рядом с оператором помещается комментарий
его действий.
Вопросы и задания
1. Кто придумал язык программирования Паскаль"
2. Что входит в состав алфавита Паскаля"
3. Почему Паскаль различает целые и вещественные числа"
4. Что такое арифметическое выражение, из чего оно может состоять"
5. Как работает оператор присваивания"
6. Какие ограничения накладывает Паскаль на типы данных при присваивании"
7. Что такое транслятор"
8. Запишите в виде арифметического выражения квадратный трехчлен.
9. Запишите на Паскале tg x, lg x, x4.
1.2. Структура программы на Паскале.
Ввод и вывод данных
Программа на Паскале состоит из двух частей: описания используемых
данных и операторов по их преобразованию. Вторая часть также называется
программным блоком.
Общий вид программы:
program имя программы;
label {список меток};
const {список постоянных значений};
type {описания сложных типов данных};
var {описания данных программы};
begin {начало программного блока}
{алгоритм}
end. ^конец программы}
Имя программы содержит не более 8 знаков, начинается с буквы и содержит буквы, цифры и знаки подчеркивания. Программа начинается со слова
program и заканчивается словом end с точкой. Операторы, разделы и описания
разделов заканчиваются точкой с запятой.
Описательная часть программы состоит из четырех разделов. Раздел меток label, раздел констант const и раздел типов type. Их использование будет
рассмотрено в дальнейшем, по мере необходимости. Основным из этих разделов является раздел переменных var. В нем указываются имена переменных, используемых в программе, и их тип. Для числовых данных используются основные описатели типов integer (целый) и real (вещественный). Например, в программе используются две целочисленные переменные и одна вещественная. Раздел переменных может иметь вид: var i,j :integer; x: real; Имена переменных одного типа перечисляются через запятую, затем после двоеточия указывается их тип. Описание каждого типа заканчивается точкой с запятой. Когда при переводе на язык машинных кодов транслятор встречает описание переменной, он отводит для этой переменной ячейку памяти и ставит в соответствие имени переменной номер первого байта ячейки. Программный блок содержит операторы, описывающие алгоритм решения задачи. Для сообщения данных компьютеру используются операторы ввода и вывода. Оператор ввода помещает вводимое значение переменной в отведенную для нее ячейку. Оператор ввода: read (список имен); Оператор read (читать) останавливает работу программы и ждет, пока пользователь наберет на клавиатуре число и нажмет Enter. Введенное число помещается в оперативную память, в отведенную ячейку. Если список ввода содержит несколько имен, то для каждого надо ввести свое значение. Числа вводятся или через пробел, или через запятую, или для каждого нажимается Enter. Например: read (i,j); требует ввода двух целых чисел. После работы этого оператора курсор расположен после последнего числа, он не переводится на новую строку. Для перевода курсора на новую строку экрана дисплея после ввода данных надо использовать оператор readln (список имен); Для вывода результатов работы программы на экран дисплея служит оператор write (список вывода); Оператор write (писать) выводит данные на экран дисплея. Список вывода – перечисленные через запятую имена результатов или арифметические выражения, являющиеся результатом работы программы. Также в список вывода, для пояснения, входят заключенные в апострофы тексты.
Например:
write (µ x=µ , x);
Этот оператор напечатает на экране, начиная с той позиции, где находится число, текст, заключенный между апострофами и значение переменной х из
оперативной памяти. Значение будет выведено в форме вещественного числа с
плавающей точкой. Для того, чтобы число было выведено в форме с фиксированной точкой, после имени соответствующей переменной надо указать два целых числа, отделив каждое двоеточием. Первое из этих чисел показывает,
сколько позиций занимает число (включая десятичную точку и знак числа).
Второе – показывает количество цифр дробной части числа. Например, для печати числа -23.57 как значения переменной х, оператор печати примет вид:
write( µx=µ, x:6:2);
На экран будет выдано
х=–23.57
Для перевода курсора на новую строку используется оператор пустого
вывода
writeln;
Если надо перевести курсор после печати, используется
writeln (список вывода);
После вывода результатов работы программы на экран в Turbo Pascal система так быстро возвращается в редактор текстов программы, что пользователь не успевает увидеть эти результаты. Для того, чтобы задержать изображение, в конце программы ставят оператор пустого ввода
readln;
Рассмотрим пример программы. Пусть требуется найти сумму, произведение и разность двух данных чисел. Для каждого из чисел надо придумать имя
переменной и указать ее тип. Затем ввести эти числа в отведенные ячейки и,
используя возможность оператора вывода содержать арифметическое выражение, напечатать результаты.
program E1;
var a,b : real;
begin
write (µвведите два числа через пробел, затем нажмите Enter¶);
readln(a,b);