скачать ПЕРМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра Информационных технологий и автоматизированных систем Викентьева О. Л. Информатика Лабораторные работы для студентов специальности АЭП заочного отделения (2 семестр) Пермь 2007 Методические указания к лабораторным работам по дисциплине "Информатика" Составители: Викентьева О. Л., к. т. н., доцент, Приведены методические указания по выполнению лабораторных работ по дисциплине "Информатика", изучаемой во 2 семестре. ОГЛАВЛЕНИЕОГЛАВЛЕНИЕ 4 Лабораторная работа №1 «Выполнение программы простой структуры. Вычисление выражений с использованием стандартных функций» 5 3. Постановка задачи 12 4. Варианты заданий 12 5. Методические указания 21 6. Содержание отчета 21 7. Пример выполнения работы и оформления отчета 21 Лабораторная работа №2 «Основные операторы языка Паскаль» 23 1. Цель работы: 23 2. Теоретические сведения 23 3. Варианты 24 4. Содержание отчета 25 5. Пример выполнения работы и оформления отчета 25 1. Цель работы: 27 2. Краткие теоретические сведения: 27 3. Постановка задачи: 30 4. Варианты заданий. 30 5. Содержание отчета: 32 Лабораторная работа №4 «Использование процедур и функций» 34 3. Постановка задачи 36 4. Варианты 36 5. Содержание отчета 38 6. Пример выполнения работы и оформления отчета 38 Лабораторная работа № 5 «Работа с типизированными и текстовыми файлами» 42 1. Цель работы: 42 2. Краткие теоретические сведения 42 3. Постановка задачи: 43 4. Варианты 43 5. Содержание отчета 47 6. Методические указания к выполнению работы 47 1. Цель задания:
^ Для того, чтобы овладеть азами программирования, в первую очередь, надо научиться строить и записывать алгоритмы решаемых задач. Алгоритм – это точное предписание, определяющее вычислительный процесс, идущий от изменяемых начальных данных к конечному результату, т. е. это рецепт достижения какой-либо цели. Совокупность средств и правил для представления алгоритма в виде пригодном для выполнения вычислительной машиной называется языком программирования, алгоритм, записанный на этом языке – программой. Для записи алгоритмов существуют разные формы:
Для того чтобы составить программу желательно выполнить по порядку следующие этапы:
Самыми опасными являются именно семантические ошибки, т. к. их достаточно сложно обнаружить. Программа будет работать, но неправильно, причем, ошибки в ее работе могут возникать не все время, а только при каких-то определенных наборах исходных данных. Для обнаружения таких ошибок выполняется тестирование программы. Набор исходных данных, для которых известен результат, называется тестом. Если результаты работы теста не совпадут с известным значением, значит, в программе имеется ошибка. Тест, выявивший ошибку, считается успешным. Отладка программы заканчивается, когда достаточное количество тестов будет выполнено неуспешно. Самым распространенным критерием для определения количества неуспешных тестов является тестирование ветвей: набор тестов в совокупности должен обеспечить прохождение каждой ветви не менее одного раза. Начинающие программисты должны обязательно выполнять все указанные этапы. В дальнейшем этапы 2-3 можно объединить в один и сразу записывать программу на требуемом языке программирования. В качестве изучаемого языка программирования выбран Паскаль, т. к. этот язык позволяет выработать алгоритмическое мышление, стоить короткую хорошо читаемую программу, демонстрировать основные приемы алгоритмизации. 2.1. Среда программирования Turbo Pascal Система программирования Turbo Pascal остается одной из самых популярных в мире. Одной из причин этого является простота лежащего в ее основе языка Паскаль. Текст программы на Паскале называется исходным модулем (рис. 1). Для перевода исходного модуля в последовательность команд вычислительной машины используется специальная программа, которая называется транслятором. Трансляторы могут быть двух видов: компиляторы и интерпретаторы. Компилятор транслирует текст исходного модуля в машинный код, который называется объектным модулем, за один непрерывный процесс. Объектный модуль выполняться не может, т. к. он может содержать ссылки на другие модули или программы. Поэтому перед выполнением программы объектный модуль должен быть обработан специальной программой – редактором связей, которая создает загрузочный модуль. Загрузочный модуль обрабатывается программой-загрузчиком, которая определяет абсолютные адреса в оперативной памяти. После этого создается выполняемый модуль, который может выполняться вычислительной машиной, он имеет расширение exe. Рис.3.1. Обработка программы системой программирования В ряде случаев функции редактора связей и загрузчика может выполнять одна программа – редактируемый загрузчик. Именно такой подход использован в системе Turbo Pascal. Разбиение процесса подготовки исходного модуля к выполнению на 2 этапа компиляция + редактирование и загрузка позволяет использовать для основной программы подпрограммы из библиотек стандартных программ, реализующих различные функции. На рис.3.2. показано окно среды Turbo Pascal. Верхняя строка среды представляет собой меню с командами. Рассмотрим основные из них. File – работа с файлом: New – создать новый файл с именем Noname0X.pas; Open – открыть существующий файл, после выбора этой команды появляется диалоговое окно, в котором надо указать имя открываемого файла; Save – записать файл с тем же именем; Save as – записать файл с новым именем, имя файла указывается в появляющемся диалоговом окне; Change dir – смена директории (можно изменить диск, папку, в которых располагается файл), название директории выбирается в появляющемся диалоговом окне; Exit – выход из среды. ![]() рис. 3.2. Окно среды Turbo Pascal. Edit – команды редактора: Undo – отмена предыдущего действия; Redo- восстановление предыдущего действия; Cut – вырезать выделенный фрагмент текста в буфер обмена (выделение фрагмента выполняется с помощью левой кнопки мышки – нажать и вести вдоль выделяемого фрагмента, не отпуская, либо с помощью клавиш Shift и клавиш со стрелками – удерживая Shift, выделять нужный фрагмент клавиами со стрелками); Copy - скопировать выделенный фрагмент текста в буфер обмена; Paste – извлечь фрагмент из буфера обмена; Clear – удалить выделенный фрагмент; Show clipboard – показать содержимое буфера обмена. Search – команды для поиска и замены фрагментов текста: Find – поиск (параметры для поиска вводятся в появляющемся диалоговом окне); Replace –поиск и замена (параметры для поиска и замены вводятся в появляющемся диалоговом окне); Search again – повторный поиск или замена. Run – выполнение программы в том числе и пошаговое: Run – выполнить программу; Step over – выполнить программу по шагам без захода в подпрограммы; Trace into – выполнить программу по шагам с заходом в подпрограммы; Goto cursor – выполнить программу по шагам, начиная с места положения курсора; Program Reset – прекращает отладку программы. Compile – компиляция программы: Compile – компиляция программы, которая находится в активном окне редактора; Make – компиляция программы и модулей, подключенных к этой программе, если в модули были внесены изменения; Build – компиляция программы и всех модулей, подключенных к этой программе. Debug – средства для отладки программы: Breakpoints - просмотр и редактирование диалогового окна, в котором выводится информация об установленных в программе контрольных точках (в контрольной точке выполнение программы приостанавливается и дальше ее можно отлаживать в пошаговом режиме); ^ – делает активным окно отладки программы, в котором можно просматривать текущие значения переменных программы; Output – делает активным окно просмотра результатов; ^ – распахивает окно просмотра результатов во весь экран; Evaluate/modify – дает возможность просмотреть значение переменной или вычислить значение выражения в специальном диалоговом окне; ^ – добавить переменную в окно отладки программы; Add breakpoint – добавить контрольную точку. Таким образом, для того, чтобы выполнить программу, используя систему программирования Turbo Pascal надо:
Для поиска семантических ошибок в программе можно использовать команды Run/Trace into или F7, Run/Step over или F8, Run/Go to cursor или F4 – для выполнения программы по шагам, Debug/Watch, Debug/Add watch – для просмотра значения переменных во время отладки программы. 2.2. Структура программы Программа на языке Турбо Паскаль состоит из заголовка и собственно программы, называемой блоком. Блок состоит из разделов. Максимальное количество разделов шесть. Разделы располагаются в следующем порядке: 1. Раздел меток; 2. Раздел констант; 3. Раздел типов; 4. Раздел переменных; 5. Раздел процедур и функций; 6. Раздел операторов. Раздел операторов заключается в операторные скобки begin ... end (составной оператор). В нем указывается последовательность действий, которые должны выполняться программой. Все остальные разделы носят описательный характер. Любой раздел, кроме последнего, может отсутствовать. Разделителем между разделами и операторами служит точка с запятой. В конце программы должна стоять точка. В любое место программы могут быть включены комментарии. При этом смысл программы не меняется. Комментарии заключаются в фигурные скобки. 2.3. Стандартные типы данных Программа, написанная на языке ТР, оперирует некоторыми объектами, называемыми данными. Каждый элемент данных в программе является либо константой, либо переменной. Для каждой переменной задается тип, определяющий возможное значение переменной и операции, которые могут над ней выполняться. Тип переменной задается в разделе переменных. Turbo Pascal характеризуется разветвленной системой данных (рис. 3.3.) ![]() Рис. 3.3. Типы данных в Паскале 2.3.1. Целый тип Обеспечивает задание целых чисел. Существует несколько целых типов.
Стандартные процедуры и функции, применимые к целым типам.
В таблице используются обозначения: х - выражение любого из типов, b, l, i, w - выражения соответствующих типов: byte, longint, integer, word, vx - переменная типа х. К данным целых типов применимы следующие арифметические операции : +(сложение), - (вычитание), * (умножение), / (деление), DIV (деление нацело), MOD (вычисление остатка от целочисленного деления), а также операции отношения: = (равно), <> (не равно), < (меньше), > (больше), <= (меньше или равно), >= (больше или равно). 2.3.2 Вещественный тип Обеспечивает задание вещественных чисел. Запись вещественного числа в возможна в двух формах: в виде числа с фиксированной точкой, например 12.3, 0.67; в виде числа с плавающей точкой: мантисса 10k, где k- порядок числа, например, 1.4 Е-8 , 9.7 Е3 . Существует несколько вещественных типов.
Над переменными этих типов определены арифметические операции: + (сложение), -(вычитание), * (умножение), / (деление), а также операции отношения (см. выше). Стандартные процедуры и функции.
2.3.3. Символьный тип Значениями символьного типа являются элементы конечного и упорядоченного набора знаков. Символ, заключенный в апострофы, обозначает константу символьного типа, например: ‘5’, ‘d’. Над переменными символьного типа определены следующие функции: 1) функции преобразования: ORD (s) - дает порядковый номер символа s в упорядоченном множестве символов, например, ORD(‘5’)=53. CHR (i) - дает символ, стоящий под номером i в упорядоченном множестве символов, например, CHR(66)=‘B’. 2) операции отношения (см. выше): если С1 и С2 - символьные переменные, то выражение С1>С2 истинно только тогда, когда ORD(C1)>ORD(C2). 3) порядковые функции: PRED (s) - возвращает предыдущий символ. SUCC (s) - возвращает следующий символ. 2.3.4. Булевский тип Переменные булевского типа могут принимать только два значения: TRUE и FALSE. Этот тип относится к порядковым, константы упорядочены: TRUE>FALSE. Над ними определены: 1) логические операции: AND(и или конъюнкция), OR(или или дизъюнкция), NOT(не или отрицание). Таблица истинности для логических операций:
2) операции отношения (см. выше) 2.3.5. Перечисляемый тип Задается перечислением тех значений, которые может получать переменная этого типа. Нумерация в списке значений начинается с 0, т.е. первое значение имеет номер - 0, а второе - 1 и т.д. Пример: type tree=(birch, oak, pine); или var tr=(birch, oak, pine); Переменные перечисляемого типа нельзя вводить и выводить с помощью процедур ввода-вывода. 2.3.6. Диапазонный тип Представляет собой подмножество базового типа. В качестве базового типа может выступать любой порядковый тип, кроме другого типа-диапазона. Тип-диапазон задается границами своих значений внутри базового типа. Левая граница не может быть больше правой. Примеры: Type Numbers=0..9; Letters=’A’..’Z’; Var num:Numbers; Russ_letter:’А’..’Я’; 2.4. Выражения Выражения представляют собой правила получения новых значений. В общем случае выражение состоит из нескольких элементов (операндов), а его тип определяется типом операндов и операциями, которые к ним применяются. Значения выражений вычисляются с учетом расставленных скобок и старшинства операций. Приоритет операций:
Операции одного и того же старшинства выполняются слева направо в порядке их появления в выражении. Выражения в круглых скобках вычисляются в первую очередь.
|