- • Контрольные вопросы
- • Цель работы Приобретение навыков организации подпрограмм различных типов и модулей на языке Pascal. Задание
- • Варианты задания
- • Контрольные вопросы
- • Контрольные вопросы
- • Цель работы Приобретение практических навыков работы с записями и файлами произвольного доступа и текстовыми файлами на языке Pascal. Задание
- • Варианты задания
- • Контрольные вопросы
- • Контрольные вопросы
МИНОБРНАУКИ РОССИИ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Тульский государственный университет»
Кафедра прикладной математики и информатики
Языки и методы программирования
Методические указания по выполнению лабораторных работ
(Часть 1)
для студентов
направления 010500 «Прикладная математика и информатика»
специальности 010501 «Прикладная математика и информатика»
очной формы обучения
Тула 2008
Комплекс работ № 1
Разработка программ
в среде «Borland Pascal 7.0»
Общие указания
Первый комплекс состоит из 6 лабораторных работ, посвященных изучению основ структурного программирования на языке Pascal, которые необходимо выполнить до первого текущего тестирования по дисциплине «Языки программирования и методы трансляции» (в течение первых 2-х месяцев семестра). Результатом выполнения работ являются файлы с текстами программ и выполняемые файлы программ, представленные преподавателю вместе с правильно оформленным отчетом.
Лабораторные работы можно выполнять в любой среде программирования (Turbo Pascal 5.5, 6.0, 7.0, Borland Pascal 7.0, Borland Delphi 6, 7) и на любой доступной вычислительной технике. Использование объектно-ориентированного языка Pascal необязательно.
Оформление отчета
Отчет оформляется на стандартных листа формата А4 сразу по всему комплексу работ (работа № 1.1 не оформляется). Для каждой из них необходимо привести:
-
Название работы.
-
Постановку задачи.
-
Описание алгоритма (метода) решения.
-
Описание баз данных программы.
-
Текст программы.
-
Результаты работы программы на 2–3 контрольных примерах.
Библиографический список
-
PASCAL 7.0. Практическое программирование: Решение типовых задач.
-
Turbo Pascal 7. Начальный курс.
-
Conner B., Niguidula D., Van Dam A., Higuidula D. Object Oriented Programming in Pascal : A Graphical Approach (на английском языке).
-
Аболрус С. Программирование на Pascal.
-
Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Pascal.
-
Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию.
-
Алкок Д. Язык Pascal в иллюстрациях.
-
Аляев Ю., Козлов О. Алгоритмизация и языки программирования Pascal, C++, Visual Basic.
-
Архангельский А. Object Pascal в Delphi.
-
Архангельский А. Object Pascal в Delphi 5.
-
Белецкий Я. Турбо Pascal с графикой для персональных компьютеров.
-
Боон К. Pascal для всех.
-
Боровский А. C++ и Pascal в Kylix 3. Разработка интернет-приложений и СУБД.
-
Бородич Ю.С., Вальвачев А.Н., Кузьмич А.И. Pascal для персональных компьютеров.
-
Вирт Н. Алгоритмы и структуры данных.
-
Глинский Я. Turbo Pascal 7.0 и Delphi. Учебное пособие.
-
Глушаков С.В. Программирование на Turbo Pascal 7.0.
-
Грогоно П. Программирование на языке Pascal.
-
Гусева А. Учимся программировать: Pascal 7.0. Задачи и методы их решения.
-
Епанешников А.М., Епанешников В.А. Программирование в среде Turbo Pascal 7.0.
-
Зеленяк О. Практикум программирования на Turbo Pascal. Задачи, алгоритмы и решения.
-
Зуев. Программирование на языке Turbo Pascal 6.0, 7.0.
-
Йенсен К., Вирт Н. Pascal: руководство для пользователя.
-
Клатте Р., Кулиш У., Неага М., Рац Д., Улльрих Х. Pascal-XSC. Язык численного программирования. Учебник.
-
Климов Ю.С., Касаткин А.И., Мороз С.М. Программирование в среде Turbo Pascal 6.0.
-
Климова Л. Pascal 7.0. Основы практического программирования. Решение типовых задач.
-
Климова Л. Pascal 7.0. Практическое программирование. Решение типовых задач.
-
Коффман Э. Turbo Pascal.
-
Культин Н. Turbo Pascal 7.0 весь процесс создания программы.
-
Культин Н. Turbo Pascal в задачах и примерах.
-
Культин Н. Программирование в Turbo Pascal 7.0 и Delphi.
-
Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal 7.0.
-
Меженный О. Turbo Pascal. Самоучитель.
-
Меженный О. Turbo Pascal: учитесь программировать.
-
Моргун А.Н. Решение задач средствами языка Turbo Pascal 7.0: Учебное пособие для средней школы и первых курсов ВУЗов.
-
Немнюгин С. Turbo Pascal.
-
Немнюгин С. Turbo Pascal: практикум.
-
Немнюгин С. Turbo Pascal: Учебник для вузов.
-
Немнюгин С., Перколаб Л. Изучаем Turbo Pascal.
-
Перминов О.Н. Программирование на языке Pascal.
-
Пестриков В.М., Маслобоев А.Н. Turbo Pascal 7.0. Изучаем на примерах.
-
Пильщиков В.Н. Сборник упражнений по языку Pascal: Учеб. пособие для вузов.
-
Поляков Д.Б., Круглов И.Ю. Программирование в среде Турбо Pascal (версия 5.5).
-
Попов В. Turbo Pascal для школьников: учебное пособие.
-
Прайс Д. Программирование на языке Pascal: практическое руководство.
-
Рапаков Г., Ржеуцкая С. Turbo Pascal для студентов и школьников.
-
Рудаков П., Федотов М. Основы языка Pascal.
-
Рудаков П., Федотов М. Основы языка Pascal. Учебный курс.
-
РюТен Т., Франкен Г. Турбо Pascal 6.0.
-
Семашко Г.Л., Салтыков А.И. Программирование на языке Pascal.
-
Сергиевский М.В., Шаланов А.В. Турбо Pascal 7.0: Язык, среда программирования.
-
Сухарев Turbo Pascal 7.0 теория и практика программирования.
-
Тагин М., Ильин В., Архангельский А. Русская справка (HELP) по Delphi 5 и Object Pascal.
-
Фаронов В.В. Turbo Pascal 7. Начальный курс.
-
Фаронов В.В. Turbo Pascal 7. Практика программирования.
-
Фаронов В.В. Turbo Pascal в подлиннике.
-
Фаронов В.В. Программирование на персональных ЭВМ в среде Турбо Pascal.
-
Федоренко Ю. Алгоритмы и программы на Turbo Pascal. Учебный курс.
-
Федоров А. Особенности программирования на Borland Pascal.
-
Эрбс Х.-Э., Штольц О. Введение в программирование на языке Pascal.
Лабораторная работа № 1.1
РАЗРАБОТКА ПРОСТЕЙШИХ ПРОГРАММ
Цель работы
Знакомство с интегрированной средой программирования программ Borland Pascal 7.0. Составление и отладка простейших программ с использованием основных операторов языка Pascal.
Задание
В интегрированной среде Borland Pascal подготовить приведенную ниже программу. Изучить возможности среды по отладке программ.
program Example;
uses Crt;
var i: Integer;
s1, s2: String;
begin
ClrScr;
Writeln('Введите строку символов');
Readln(s1);
s2:='';
for i:=Length(s1) downto 1 do s2:=s2+s1[i];
Writeln('Результирующая строка: ', s2);
end.
контрольные вопросы
Модель компилятора Borland Pascal 7.0
-
Какие блоки входят в состав компилятора?
-
Что представляет собой исходная программа на языке высокого уровня с точки зрения компилятора?
-
Что такое лексема?
-
Что такое символ-разделитель?
-
Какие функции выполняет синтаксический анализатор?
-
Какие существуют разновидности внутренних кодов компилятора?
-
Какие функции выполняет генератор кода?
-
Какова структура профессиональной среды разработки программ Borland Pascal 7.0?
-
Какие версии компилятора входят в состав пакета Borland Pascal with Objects 7.0?
Набор символов, лексем и разделителей языка
-
На какие группы можно разделить набор символов языка Turbo Pascal?
-
Что такое лексема?
-
Какие категории лексем вам известны?
-
Допустимо ли использование в качестве пользовательских идентификаторов зарезервированных слов Turbo Pascal?
-
Что представляет собой идентификатор?
-
Какая допустимая длина идентификатора?
-
В чем заключается разница между идентификатором и квалифицируемым (уточненным) идентификатором?
-
Какие из идентификаторов могут быть уточненными?
-
Какие существуют разновидности идентификаторов?
-
Какие идентификаторы являются стандартными?
-
Что представляет собой метка?
-
Какие формы записи чисел используются в языке Turbo Pascal?
-
Какой символ используется для обозначения шестнадцатеричных чисел?
-
Что представляет собой строка символов?
-
Что представляет собой комментарий?
-
Какие символы используются в качестве разделителей лексем?
-
Какое количество символов-разделителей допускается между любыми двумя лексемами?
Структура программы и ее разделов
-
Является ли обязательным заголовок программы в языке Turbo Pascal?
-
В каких случаях используется и где располагается в программе предложение uses?
-
На какие группы делится множество типов языка Turbo Pascal?
-
Перечислите стандартные типы языка Turbo Pascal?
-
Какими свойствами характеризуются порядковые типы?
-
С помощью каких директив компилятора осуществляется выбор модели генерации кода для чисел вещественных типов?
-
Какие новые булевские типы введены в языке Turbo Pascal версии 7.0?
-
Для каких целей были введены новые булевские типы?
-
Как получить значение кода требуемого символа?
-
Какая разновидность строк введена в язык Turbo Pascal версии 7.0?
-
Что представляют собой пользовательские типы?
-
Какие типы относятся к структурированным?
-
Каковы стандартные функции, допустимые в константных выражениях?
-
Что представляют собой типизированные константы?
-
Поля какого типа не допускаются в типизированных константах типа «запись»?
-
Что представляет собой типизированная константа процедурного типа?
-
Какие существуют формы описания абсолютных переменных?
-
Что описывается в предложении export?
-
Где допустимо использование предложения export?
Операции и выражения языка
-
Что представляет собой выражение?
-
Как делятся операции по количеству операндов?
-
Какими факторами определяется последовательность выполнения операций?
-
Как подразделяются операции Turbo Pascal по приоритету?
-
На какие группы можно разделить операции по характеру выполняемых действий?
-
Какое различие между операциями / и div?
-
Какой тип результата имеют операции отношения?
-
Какие модели генерации кода поддерживаются в Turbo Pascal при вычислении логических выражений?
-
К операндам каких типов могут быть применены поразрядные операции?
-
Какова максимальная длина результирующей строки при выполнении строковых операций?
-
Какие типы операндов допустимы при выполнении операций над множествами?
-
Какой тип результата имеет операция взятия адреса?
-
Что может быть использовано в качестве операнда операции @?
Операторы языка
-
Какие функции выполняют операторы в языке программирования?
-
Что является разделителем операторов в языке Turbo Pascal?
-
На какие группы делятся операторы языка Turbo Pascal?
-
Какие операторы называются простыми?
-
Как работает оператор присваивания?
-
Какие действия выполняет оператор процедуры?
-
Возможна ли передача управления внутрь процедуры (функции) посредством оператора перехода goto и почему?
-
Почему не рекомендуется использование в программах оператора goto?
-
Какие операторы языка Turbo Pascal являются структурными?
-
Что такое составной оператор и какие функции он выполняет?
-
Как происходит работа условного оператора if?
-
Может ли встречаться символ ; внутри любого структурного оператора и почему?
-
Какие особенности существуют при написании вложенных операторов if?
-
Какой оператор позволяет выполнить одно из нескольких действий в зависимости от результата вычисления выражения?
-
Какие управляющие конструкции повторения поддерживаются в языке Turbo Pascal?
-
Как работает оператор цикла while?
-
В чем заключается различие между операторами repeat и while?
-
Какие ограничения накладываются на использование оператора for?
-
Какие существуют отличия и особенности при работе с операторами while, repeat, for?
-
Для чего предназначен и как выполняется оператор присоединения?
Лабораторная работа № 1.2
РАБОТА СО СТАТИЧЕСКИМИ СТРУКТУРАМИ ДАННЫХ
Цель работы
Приобретение навыков работы со статическими данными перечисляемого, интервального, строкового типов, типами–множествами и массивами на языке Pascal.
Задание
Разработать алгоритм, написать и отладить программу решения задачи с использованием операций над множествами.
В программе обязательно использование типов–множеств там, где это наиболее подходит алгоритму. Желательно также использовать данные перечисляемого типа.
Варианты задания
-
Ввести два множества чисел. Сформировать и вывести множество чисел из первого множества, которые делятся на заданное число, и из второго множества, не делящихся на это же заданное число.
-
Ввести две строки символов. Вывести одинаковые символы этих строк.
-
Ввести строку символов, в которой задана последовательность идентификаторов (синтаксис языка Pascal), отделяемых друг от друга пробелами. Вывести номера ошибочных идентификаторов.
-
Ввести строку символов, в которой задана последовательность целых чисел (возможно со знаком), разделенных пробелами. Вывести номера некорректно записанных чисел.
-
Во введенной строке символов подсчитать количество букв (отдельно русского и английского алфавитов), цифр, слов, предложений. (Считать, что слова разделены пробелами, а предложения — точками).
-
Во введенной строке символов подсчитать количество разделителей (любые скобки, точка, запятая, точка с запятой, пробел).
-
Во введенной строке символов, содержащей прописные буквы русского алфавита, подсчитать количество различных (без повторений) букв.
-
Для трех веденных множеств сформировать и вывести множества, являющиеся их объединением и пересечением.
-
Из введенной строки, содержащей непустую последовательность слов из строчных букв английского алфавита, разделенных пробелами, сформировать и вывести в алфавитном порядке множество всех гласных букв, входящих хотя бы в одно слово.
-
Из двух введенных множеств чисел составить третье множество, элементами которого будут совпадающие числа заданного диапазона.
-
Из трех введенных множеств символов сформировать и вывести четвертое множество символов, входящих ровно в два любых их этих множеств.
-
Определить, в каком из трех введенных множеств символов больше встречается цифр.
-
По введенному множеству натуральных чисел заданного диапазона сформировать и вывести множество чисел, делящихся на заданное число.
-
По введенному множеству натуральных чисел заданного диапазона сформировать и вывести множество нечетных.
-
По введенному множеству символов сформировать и вывести множество, исключающее все цифры.
-
По введенному множеству символов сформировать множество символов русского алфавита (строчные и прописные) и вывести его упорядоченным по убыванию.
-
Подсчитать количество повторений элементов заданного множества символов во введенной строке.
-
Подсчитать процентное соотношение гласные/согласные во введенной строке, содержащей строчные буквы русского алфавита.
-
Получить объединение, пересечение, разность и симметрическую разность двух введенных множеств символов.
-
Сформировать и вывести множество простых чисел из заданного диапазона первых натуральных чисел.
Контрольные вопросы
Классификация структур данных
-
На какие группы можно разделить используемые в программировании данные?
-
В чем состоит основное отличие между данными статической и динамической структуры?
-
Какие данные относят к данным статической структуры?
-
Какие данные относят к однородным?
-
Какие данные относят к неоднородным?
-
По каким признакам могут быть классифицированы массивы?
-
Как реализованы строки в Turbo Pascal?
-
Какие неоднородные структуры данных реализованы в Turbo Pascal?
Управляющие конструкции алгоритмов
-
С помощью каких двух управляющих конструкций может быть реализован алгоритм произвольной сложности?
-
В чем состоит отличие между полной и неполной условными конструкциями?
-
Как реализована конструкция выбора?
-
Чем отличаются циклические конструкции с предусловием и с постусловием?
-
С какими ограничениями реализована конструкция цикла со счетчиком в Turbo Pascal?
-
Какое значение может принимать шаг цикла оператора for в Turbo Pascal?
-
С помощью каких операторов Turbo Pascal может быть смоделирован бесконечный цикл?
-
Почему не рекомендуется использование конструкции безусловного перехода?
-
С помощью какой процедуры в Turbo Pascal реализована одноуровневая конструкция выхода из цикла и в чем состоит ее отличие от многоуровневой конструкции выхода из цикла?
-
Как работает конструкция продолжения цикла?
-
Какая процедура Turbo Pascal соответствует конструкции выхода из блока?
Данные статической структуры
-
С помощью каких процедур осуществляется стандартный ввод в языке Turbo Pascal?
-
С помощью каких процедур осуществляется стандартный вывод в языке Turbo Pascal?
-
В чем заключается различие между процедурами Write и Writeln?
-
Каким образом необходимо выполнять ввод-вывод при работе с переменными структурированных типов и почему?
-
Значения каких типов могут быть прочитаны процедурами Read и Readln?
-
Значения каких типов могут быть записаны процедурами Write и Writeln?
-
Как выполняется процедура Read?
-
В чем особенности ввода значений строкового типа?
-
Какое существует различие между процедурами Read и Readln при чтении строковых переменных?
-
Как происходит выполнение процедуры Writeln?
-
Какие типы относятся к пользовательским простым типам?
-
Какие особенности использования переменных перечислимых типов?
-
Какие действия можно выполнять над переменными перечислимых типов?
-
Допустимо ли использование переменных перечислимых типов в качестве индексов массивов и границ оператора for?
-
Что представляет собой массив как структура данных?
-
Какие данные могут выступать в качестве индексов и элементов массива?
-
Каковы особенности работы со строками?
-
В чем различие между первым и вторым способом реализации строк?
-
Какие существуют особенности работы с множествами?
-
Что такое запись?
-
Для чего используются уточненные идентификаторы?
-
Какие преимущества дает использование оператора присоединения?
-
В каких случаях целесообразно использовать вариантные записи?
-
Какими правилами определяется совместимость типов в выражениях?
-
Какими правилами определяется совместимость типов по присваиванию?
Лабораторная работа № 1.3
МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ