Лабораторный практикум по программированию на языке Delphi Win32 Language
Методические указания к выполнению лабораторных работ
Покупка
Новинка
Тематика:
Программирование в среде Delphi
Автор:
Борисов Станислав Васильевич
Год издания: 2017
Кол-во страниц: 92
Дополнительно
Вид издания:
Учебно-методическая литература
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7038-4541-7
Артикул: 851476.01.99
Приведены краткие теоретические сведения, примеры компьютерных приложений по изучаемому материалу, а также задания для выполнения лабораторных работ по каждой из рассматриваемых в курсе тем. Издание ориентировано на студентов, изучающих среду программирования Turbo Delphi. Материал методических указаний используют при проведении практических занятий в МГТУ им. Н.Э. Баумана.
Для студентов 1-го курса машино- и приборостроительных специальностей. Возможно использование преподавателями в качестве сборника заданий при проведении лабораторных работ.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 12.03.01: Приборостроение
- 15.03.01: Машиностроение
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Московский государственный технический университет имени Н.Э. Баумана Лабораторный практикум по программированию на языке Delphi Win32 Language Методические указания к выполнению лабораторных работ
УДК 681.3.06 ББК 32.973 Л12 Издание доступно в электронном виде на портале ebooks.bmstu.ru по адресу: http://ebooks.bmstu.ru/catalog/199/book1546.html Факультет «Информатика и системы управления» Кафедра «Программное обеспечение ЭВМ и информационные технологии» Рекомендовано Редакционно-издательским советом МГТУ им. Н.Э. Баумана в качестве учебно-методического пособия Авторы: С.В. Борисов, О.Б. Пащенко, И.Л. Серебрякова, В.П. Степанов Лабораторный практикум по программированию на языке Л12 Delphi Win32 Language : методические указания к выполнению лабораторных работ / С. В. Борисов, О. Б. Пащенко, И. Л. Серебрякова, В. П. Степанов. — Москва : Издательство МГТУ им. Н. Э. Баумана, 2017. — 88, [4] с. : ил. ISBN 978-5-7038-4541-7 Приведены краткие теоретические сведения, примеры компьютерных приложений по изучаемому материалу, а также задания для выполнения лабораторных работ по каждой из рассматриваемых в курсе тем. Издание ориентировано на студентов, изучающих среду программирования Turbo Delphi. Материал методических указаний используют при проведении практических занятий в МГТУ им. Н.Э. Баумана. Для студентов 1-го курса машино- и приборостроительных специальностей. Возможно использование преподавателями в качестве сборника заданий при проведении лабораторных работ. УДК 681.3.06 ББК 32.973 © МГТУ им. Н. Э. Баумана, 2017 © Оформление. Издательство ISBN 978-5-7038-4541-7 МГТУ им. Н. Э. Баумана, 2017
ПРЕДИСЛОВИЕ Издание содержит краткое изложение основ программирования на языке Delphi Win32 Language с примерами и задания для выполнения лабораторных работ, проводимых в первом семестре изучения дисциплины «Информатика». В методических указаниях рассмотрены следующие темы: приложения линейной, разветвляющейся и циклической структур; подпрограммы и способы передачи параметров; одномерные и двумерные массивы; сортировка массивов; обработка символьных данных и строк; комбинированные структуры; текстовые и типизированные файлы. Вся изложенная информация и приведенные примеры ориентированы на использование студентами консольного приложения визуальной среды программирования Turbo Delphi. В завершение каждого раздела представлены комплекты заданий (25 вариантов), имеющие одинаковый уровень сложности. Методические указания предназначены для изучения фундаментальных основ программирования, не затрагивая вопросов создания интерфейса. Задания представлены в виде указаний на то, что студенты должны выполнить и какие результаты продемонстрировать. Сформулированы вопросы для самоконтроля усвоения проработанного материала и требования к оформлению отчета по выполненной работе. Цели и задачи лабораторного практикума соответствуют программе дисциплины «Информатика» и отражают вклад в формирование соответствующих компетенций основной образовательной программы. После практического освоения дисциплины студент должен приобрести определенные знания, умения и навыки. Студент должен знать: • методы представления информации в ЭВМ и выполнения арифметических и логических операций над двоичными числами; • принципы работы технических и программных средств в информационных системах; • типовые алгоритмы решения задач; • язык программирования Delphi Win32 Language; • среду программирования Turbo Delphi; 3
уметь: • разрабатывать алгоритмы и кодировать их на языке программирования; • использовать современные информационные технологии и инструментальные средства для решения различных задач; обладать навыками: • самостоятельной работы с учебной и справочной литературой; • использования программных комплексов и прикладных программ вычисления на компьютере; • разработки алгоритмов и кодирования приложений для решения профессиональных задач; • тестирования и отладки приложений; • представления результатов в удобном для пользователя виде, создания диалоговых и графических приложений; • оформления документации в соответствии с требованиями ЕСПД. Для студентов первого курса, изучающих в первом семестре дисциплину «Информатика».
ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ЛИНЕЙНОЙ СТРУКТУРЫ Цель работы: изучение стандартных типов данных; разработка алгоритмов и кодирование приложений линейной структуры. В языке Delphi Win32 Language применяют перечисленные ниже стандартные типы данных. Действительные типы данных имеют приведенные в табл. 1 диапазоны и форматы (в байтах) представления числовых значений. Таблица 1 Действительные типы данных Тип Диапазон Формат Real48 –2,9 · 1039 ... 1,7 · 1038 6 Single –1,5 · 1045 ... 3,4 · 1038 4 Double –5,0 · 10324 ... 1,7 · 10308 8 Extended –3,6 · 104951 ... 1,1 · 104932 10 Целочисленные типы данных имеют приведенные в табл. 2 диапазоны и форматы (в битах) представления числовых значений. Таблица 2 Целочисленные типы данных Тип Диапазон Формат Shortint –128 ... 127 8 Smallint –32768 ... 32767 16 Longint –2147483648 … 2147483647 32 Int64 –263 ... 263–1 64 Byte 0 ... 255 8 Word 0 ... 65535 16 Longword 0 ... 4294967295 32 5
Символьный тип данных (стандартное имя Char) представлен однобайтовым форматом и одиночным символом, заключенным в апострофы. Логический тип данных (стандартное имя Boolean) представлен однобайтовым форматом и характеризуется двумя значениями: False (ложь) и True (истина). Типы целочисленный, символьный и логический являются порядковыми, так как для каждого из них определены последующее и предыдущее значения. Все величины, с которыми работает приложение, должны быть объявлены в разделе констант (служебное слово Const), если их значения не меняются во время выполнения работы, или в разделе переменных (служебное слово Var) с указанием их типов, если их значения вычисляют в процессе работы. Основные операции для формирования арифметических и логических выражений и приоритеты их выполнения представлены в табл. 3. Таблица 3 Основные арифметические и логические операции Приоритет выполнения операции Операция Выполняемое действие +, – Присваивание знака 1 not Логическое отрицание *, / Умножение, деление 2 div, mod Целочисленное деление and Логическое умножение +, - Сложение, вычитание 3 or, xor Логическое суммирование 4 =, <> , <, >, <=, >= Отношения (сравнения) Операции выполняют с учетом их приоритетов. Для изменения естественного порядка выполнения операций используют круглые скобки. Результатом операции div является частное от деления двух чисел, а mod — остаток от деления, например: (9 - 2) div 2 = 3; 7 mod 2 = 1 Стандартные функции и процедуры (табл. 4, 5) описаны в файлах SysUtils и Math, которые должны быть включены в предложение uses. 6
Таблица 4 Стандартные функции Стандартная функция Тип аргумента Тип результата Математическая запись, комментарий abs(x) integer, real integer, real │x│ arctan(x) integer, real real arctg(x) cos(x) integer, real real cos(x) sin(x) integer, real real sin(x) exp(x) integer, real real ex ln(x) real, real real ln(x) sqrt(x) integer, real real x sqr(x) integer, real integer, real x2 ord(x) порядковый integer ASCCI-код символа succ(x) порядковый порядковый Возвращает следующее значение х pred(x) порядковый порядковый Возвращает предыдущее значение х round(x) real integer Округляет х до целого trunс(x) real integer Отсекает дробную часть х int(x) real real Выделяет целую часть х frac(x) real real Выделяет дробную часть х odd(x) integer boolean True (х-нечетное), False (х-четное) Г енерирует случайное random(range) integer integer число x в диапазоне 0<= х<range Г енерирует случайное random - real число x в диапазоне от 0<= x<1 uppercase(x) char char Заменяет строчную букву латиницы на прописную Заменяет прописную lowercase(x) char char букву латиницы на строчную 7
Таблица 5 Стандартные процедуры Стандартная процедура Тип аргумента Тип результата Математическая запись, комментарий inc(x,n) integer integer Увеличивает х на n inc(x) integer integer Увеличивает х на 1 dec(x,n) integer integer Уменьшает х на n dec(x) integer integer Уменьшает х на 1 randomize – – Устанавливает генератор случайного числа на следующее значение. Используется совместно с random Приложение линейной структуры содержит операторы присваивания, вызова процедур (будут рассмотрены ниже), команды ввода и вывода данных. Оператор присваивания записывают следующим образом: <имя переменной> := <выражение> Он вычисляет выражение (арифметическое или логическое) и присваивает полученное значение имени переменной. Например, в результате выполнения операторов присваивания s := sqrt(p*(p-a)*(p-b)*(p-c)) и f := (a>c) and (a<b), переменная s получит числовое значение, а переменная f – логическое. Ввод данных с клавиатуры осуществляется двумя стандартными командами (процедурами): read (<список ввода>) и readln (<список ввода>), где <список ввода> — последовательность имен переменных, разделенных запятыми, значения которых необходимо ввести. При выполнении этих команд происходит приостановка выполнения приложения, после чего необходимо набрать на клавиатуре значения перечисленных в списке переменных (числа через пробел, символы без пробела). Вводимые данные должны соответствовать по типу и порядку следования перечисленным в списке переменным. По окончании ввода следует нажать клавишу <Enter>. Команда readln 8
отличается от read только тем, что после считывания последнего в списке значения для одного оператора readln данные для следующего оператора будут считываться с начала новой строки. Вводить можно только переменные числового, символьного и строкового типов (строковый тип изложен в разделе «Программирование алгоритмов с использованием строк»). Вывод на экран сообщений и результатов работы приложения осуществляется двумя стандартными командами (процедурами): write (<список вывода>) и writeln (<список вывода>), где <список вывода> — последовательность имен переменных, разделенных запятыми, значения которых необходимо вывести. Список вывода может содержать константы, переменные или выражения. При использовании команды write после вывода последней переменной из списка курсор остается в той же строке экрана, и следующий вывод будет начинаться с этой же позиции курсора. Действие команды writeln отличается тем, что после вывода последнего в списке значения происходит перевод курсора к началу следующей строки. При выводе нескольких данных в строку они не отделяются друг от друга пробелами. Поэтому следует применять форматированный вывод данных, т. е. представлять результаты в нужном и удобном виде. Для этого в скобках команды вывода после идентификатора переменной или выражения размещаются символ «:» и число, обозначающее количество позиций в строке экрана, которое необходимо выделить для вывода значения переменной или выражения. Такое выделение применяют для вывода целого и строкового типов. При выводе действительного типа указывают общее количество позиций для вывода значения и количество позиций для дробной части. Например, для вывода целых a= 2, b= –13 и действительного с= –75,123456 можно записать writeln (‘ ‘:3,‘a=’,a:2,’ b=’,b:5,’ c=’c:10:5). В результате на экране появится следующая строка: a= 2 b= -13 c= -75.12346. Как видно из примера, форматировать можно не только данные, но и комментарии к ним. 9
Пример 1. Вычислить и вывести в таблицу длины сторон треугольника по заданным целочисленным координатам его вершин. Алгоритм представляет собой линейную структуру, поскольку предполагает задание исходных данных, последовательный расчет длин сторон и вывод полученных результатов. Код приложения Пример 1 (Example 1): program Example_1; {$APPTYPE CONSOLE} uses SysUtils; Var x1,y1,x2,y2,x3,y3:longint; // координаты вершин a12,a23,a31:real; // длины сторон // для преобразования в действительный тип r1,r2:real48; Begin writeln(‘Вычисление длин сторон треугольника’, ‘по координатам вершин’); writeln(‘Введите координаты 1 вершины’); readln(x1,y1); writeln(‘Введите координаты 2 вершины’); readln(x2,y2); writeln(‘Введите координаты 3 вершины’); readln(x3,y3); {Вычисление длин сторон треугольника} r1:=abs(x1-x2);r2:=abs(y1-y2); a12:=sqrt(sqr(r1)+sqr(r2)); r1:=abs(x2-x3);r2:=abs(y2-y3); a23:=sqrt(sqr(r1)+sqr(r2)); r1:=abs(x1-x3);r2:=abs(y1-y3); a31:=sqrt(sqr(r1)+sqr(r2)); (*Вывод таблицы с исходными данными и результатами*) writeln(‘========================================’); writeln(‘ Координаты вершин Длины сторон’); writeln(‘ x1 y1 x2 y2 x3 y3 1 - 2 2 - 3 3 - 1’); writeln(‘_________________________________________’); writeln; writeln(x1:5,y1:5,x2:5,y2:5,x3:5,y3:5,a12:8:2, a23:8:2,a31:8:2); writeln(‘_________________________________________’); writeln(‘=========================================’); readln; End. 10