- •Долинер л.И., Данилина и.И., Пашкова р.Р., Емельянов д.А. Языки и системы программирования
- •Содержание
- •Теоретическая работа а. Что такое «программирование»
- •1. Что такое «программа» и как ее исполняет компьютер
- •2. Что такое “Среда программирования Turbo Pascal”
- •Вопросы для контроля
- •Лабораторная работа 1. Знакомство со средой turbo pascal
- •1. Как начать работу со средой Turbo Pascal
- •1.1. Структура каталогов среды Turbo Pascal
- •1.2. Запуск среды программирования Turbo Pascal
- •1.3. Структура экрана после запуска среды
- •1.4. Вход в меню
- •1.5. Среда Turbo Pascal как рабочий стол программиста
- •1.6. Работа со страницами
- •1.7. Компиляция и исполнение программ
- •2. Резюме
- •Вопросы для контроля
- •Лабораторная работа 2. Простейшие программы на языке pascal, или как это делается...
- •1. Структура программы на языке Pascal
- •2. Простейшие операторы
- •2.1. Резервирование памяти для работы
- •2.2. Запись данных в память, или оператор присваивания
- •2.3. Вывод данных на экран дисплея
- •2.4. Форматированный вывод информации
- •Теоретическая работа б. Введеhие в язык пpогpаммиpоваhия pascal
- •1. Алфавит языка
- •1.1. Символы, используемые в идентификаторах
- •1.2. Разделители
- •1.3. Специальные символы
- •1.4. Неиспользуемые символы
- •2. Структура программы
- •3. Типы данных
- •3.1. Целый тип
- •3.2. Вещественный тип
- •3.3. Символьный тип
- •3.4. Логический тип
- •3.5. Строковый тип данных
- •3.5. Пример описания данных
- •4. Команда присваивания
- •4.1. Операции
- •4.2. Стандартные функции
- •4.3. Запись выражений
- •5. Простейшие команды ввода и вывода информации
- •5.1. Вывод информации
- •5.2. Ввод информации
- •Вопросы для контроля
- •Лабораторная работа 3. Как организовать диалог
- •1. Команда ввода данных
- •2. Библиотека Crt
- •2.1. Определение цвета символов
- •2.2. Определение цвета фона
- •2.3. Очистка экрана
- •Вопросы для контроля
- •Лабораторная работа 4. Графика в языке pascal (первое знакомство)
- •1. Включение графического режима
- •2. Библиотека Graph
- •Задачи для самостоятельной работы. Линейные алгоритмы
- •Лабораторная работа 5. Операции с целыми и вещественными числами
- •Теоретическая работа в. Алгоритмические конструкции: условный оператор
- •4.1. Составной оператор
- •4.2. Условные операторы
- •4.2.1. Команда ветвления
- •5. Сложные условия
- •5.1. Что такое True и False
- •5.2. Логический тип данных
- •5.3. Сложные условия
- •6. Оператор выбора case
- •Лабораторная работа 6. Операторы ветвления и выбора
- •1. Что такое ветвление и как оно организуется в языке Pascal?
- •2. Условный оператор if
- •2.1. Теория
- •2.2. Практика
- •Контрольное задание
- •3. Оператор выбора case
- •3.1. Теория
- •3.2. Практика
- •Теоретическая работа г. Введение в систему типов языка pascal
- •1. Стандартные типы данных
- •2. Перечислимый тип
- •3. Ограниченный тип данных
- •4. Множества
- •5. Вопросы для самоконтроля
- •Теоретическая работа д. Циклы с параметром: быстрое начало
- •1. Когда используется цикл с параметром
- •2. Форма записи цикла с параметром
- •3. Вычисление сумм
- •4. Выборки
- •5. Максимумы и минимумы
- •Лабораторная работа 7. Циклы с параметром
- •Лабораторная работа 8. Как нарисовать забор
- •Лабораторная работа 9. Звездное небо и прочие странности
- •1. Получение случайного числа
- •2. Рисование точек в графическом режиме
- •Лабораторная работа 10. Проектирование программ и процедуры
- •1. Зачем нужна технология программирования
- •2. Знакомство с технологией проектирования “сверху вниз”
- •Решение Часть 1. Уточнение постановки задачи (эскиз)
- •Часть 2. Первый вариант решения
- •Часть 3. Уточнение решения
- •Часть 4. Уточнение решения
- •Часть 5. Уточнение решения
- •Часть 6. Уточнение решения
- •Это вам пригодится
- •Теоретическая работа е. Конструкции цикла в языке pascal
- •Оператор цикла с параметром
- •2. Цикл с предусловием while
- •3. Цикл с постусловием repeat
- •4. Вопросы для самоконтроля
- •Лабораторная работа 11. Разные конструкции цикла
- •1. Теория
- •1.1. Цикл со счетчиком (for)
- •1.2. Цикл с предусловием (while)
- •1.3. Цикл с постусловием (repeat)
- •2. Практика
- •Вопросы для контроля
- •Лабораторная работа 12. Как управлять движением на экране дисплея, или след слона
- •Теоретическая работа ж. Построение графиков функций
- •Лабораторная работа 13. Построение графиков функций
- •Лабораторная работа 14. Дополнительные возможности при работе с графикой
- •Теоретическая работа г. Динамические объекты: считывание картинок в память и вывод их на экран
- •Лабораторная работа 15. Как делается движущееся изображение
- •Теоретическая работа д. Использование страниц памяти для организации движения объектов по экрану
- •Как рисовать сложные картинки
- •Лабораторная работа 16. Мультипликация с использованием страниц видеопамяти
- •Лабораторная работа 17. Технология представления картинок в виде числового массива
- •Лабораторная работа 18. Движение объектов по многоцветному фону
- •1. Как вывести на экран картинку формата pcx
- •2. Технология движения объектов по многоцветному фону
- •Лабораторная работа 19. Мыши и модули
- •I. Как работать с мышью
- •1.1. Как работает манипулятор "мышь"
- •1.2. Начинаем программировать управление мышью
- •2. Модули
- •Implementation {начало раздела реализации}
- •Лабораторная работа 20. Работа со строковыми переменными
- •1. Теория
- •1.1. Описание строковых переменных
- •1.2. Сравнение строк
- •1.3. Операции со строками
- •2. Практика
- •Вопросы для контроля
- •Лабораторная работа 21. Работа с символьными переменными -1
- •Лабораторная работа 22. Работа с символьными переменными - 2
- •Лабораторная работа 23. Процедуры - 1
- •1. Теория
- •2. Практика
- •Лабораторная работа 24. Процедуры - 2
- •Лабораторная работа 25. Строковый редактор
- •1. Что такое «строковый редактор»
- •2. Зачем писать строковый редактор
- •3. Несколько вспомогательных задач
- •4. Постановка задачи на разработку
- •5. Необходимая информация для написания процедуры
- •6. Подсказка: алгоритм работы строкового редактора
- •Лабораторная работа 26. Поиск среднего и другие неожиданности
- •Лабораторная работа 27. Как работать с массивами: первые шаги
- •1. Теория
- •2. Практика
- •Вопросы для контроля
- •Лабораторная работа 28. Массивы и деловая графика
- •Теоретическая работа е. Строковые массивы. Алгоритмы поиска
- •Лабораторная работа 29. Строковые массивы. Алгоритмы поиска
- •Лабораторная работа 30. Нечисловые индексы в массиве
- •Теоретическая работа ж. Сортировка массивов
- •Лабораторная работа 31. Сортировка массивов
- •Лабораторная работа 32. Программа обслуживания конькобежных соревнований
- •Теоретическая работа з. Двумерные и многомерные массивы
- •Вопросы для контроля
- •Лабораторная работа 33. Шахматный турнир
- •Лабораторная работа 34. Подпрограммы - функции
- •1. Теория
- •2. Практика
- •Лабораторная работа 35. Работа с текстовыми файлами -1
- •1. Теория
- •1.1. Что такое текстовый файл
- •1.2. Принцип работы с текстовыми файлами
- •2. Практика
- •Лабораторная работа 36. Работа с текстовыми файлами - 2
- •Вопросы для контроля
- •Лабораторная работа 37. Работа с типизированными файлами - 1
- •1. Теория
- •2. Практика
- •Лабораторная работа 38. Работа с типизированными файлами - 2
- •1. Теория : тип данных «запись»
- •2. Практика
- •Лабораторная работа 39. Работа с типизированными файлами как с файлами прямого доступа
- •1. Теория
- •2. Практика
- •Лабораторная работа 40. Дополнительные возможности, или что можно еще натворить...
- •1. Что можно делать с файлами и каталогами
- •2. Процедуры и функции библиотеки dos
- •2.1. Работа с часами и календарем
- •2.2. Работа с каталогами и файлами
- •2.3. Типы и константы модуля dos для работы с файлами
- •3. Практика
- •Приложение 1 Зарезервированные слова Turbo Pascal
- •Приложение 2 Знаки пунктуации в языке Pascal
- •Приложение 3 Операции в языке Pascal
- •3.1. Арифметические операции
- •3.2. Логические операции
- •3.3. Операции отношения
- •Приложение 4 Стандартные функции языка Pascal
- •4.1. Арифметические функции
- •4.2.Функции преобразования типов
- •4.3. Функции для величин порядкового типа
- •Приложение 5 Команды pедактоpа сpеды Turbo Pascal 7.0
- •5.1. Команды перемещения курсора
- •5.2. Команды поиска фрагментов
- •5.3. Команды вставки и удаления информации
- •5.4. Команды работы с блоками информации
- •5.5. Клавиши быстрого управления средой Turbo Pascal 7.0
- •Список рекомендуемой литературы
Лабораторная работа 21. Работа с символьными переменными -1
Задание 1
Скопируйте в Ваш каталог файл obrstr5.pas из каталога PAS_TXT. Запустите среду Turbo Pascal.
Задание 2
Составьте программу замены одного фрагмента строки другим.
Модифицируйте программу так, чтобы происходила замена только слова на слово (так, чтобы, заменяя, например, слово "полковник" на "генерал", не получить нового звания "подгенерал"). Считайте, что слова разделяются пробелами.
При проверке работы программы обратите особое внимание на слова, стоящие в начале и в конце строки.
Задание 3
Напишите программу, подсчитывающую количество слов во введенной фразе, если:
а) между словами стоит один пробел;
б) между словами может стоять произвольное число пробелов;
в) между словами стоит один произвольный разделитель (пробел, ",", ".", "!", "?", ";", "-");
г) между словами стоит произвольный разделитель и произвольное число пробелов.
Задание 4
В файле obrstr5.pas хранится программа, которая обеспечивает проверку того, является ли заданная строка целым числом. Разберитесь, как она работает. Проверьте, как работает программа, если на вход подается:
а) целое число;
б) строка, содержащая цифры и буквы (например, 123абв);
в) дробное число (например, 12.34).
Что изменится, если изменить описание переменной i (указать, например, Real вместо Integer)?
Используя эту идею, напишите программу, вычисляющую сумму всех целых чисел, находящихся во введенной строке. Если задача кажется вам поставленной не вполне четко, уточните для себя ее постановку так, как сочтете целесообразным.
Задание 5*
Составьте программу, обеспечивающую ввод строки с простейшим арифметическим выражением вида
а1 <оп> а2 <оп> а3 ... <оп> аN,
где а1...aN - целые числа,
<оп> - знак операции сложения (+) или вычитания (-).
Продемонстрируйте преподавателю выполненные задания.
Задание 6
Выйдите из среды Turbo Pascal. Удалите из Вашего каталога файл obrstr5.pas.
Лабораторная работа 22. Работа с символьными переменными - 2
Задание 1
В файле slova.pas хранится программа выделения и печати всех слов из введенной фразы, разделенных произвольным разделителем. Сравните ее с той, которую вы написали для решения этой задачи на предыдущей лабораторной работе. Не содержится ли здесь новая для вас идея?
Задание 2
Модифицируйте программу так, чтобы печатались только:
а) слова, начинающиеся на букву "л";
б) слова, заканчивающиеся на букву "ь";
в) слова, содержащие букву "а";
г) слова длиной не менее пяти букв;
д) самое длинное слово.
Задание 3*
Подсчитайте, сколько пятерок потребуется, чтобы записать все числа от 1 до 999.
Лабораторная работа 23. Процедуры - 1
1. Теория
Часто некоторую последовательность действий требуется повторить в нескольких местах программы. Чтобы не тратить время и усилия на копирование, в языке программирования Pascal предусмотрено средство для организации подпрограмм, которое заключается в следующем. Программист имеет возможность присвоить последовательности операторов некоторое имя и использовать это имя в качестве сокращенной записи в тех местах, где встречается соответствующая последовательность действий. Таким образом, процедура - это именованная последовательность операторов.
Любая процедура начинается с заголовка, который, в отличие от заголовка основной программы, в процедуре является обязательным. Заголовок состоит из зарезервированного слова Procedure, за которым следует имя процедуры, а далее в круглых скобках - список формальных параметров:
Procedure <имя>(<список формальных параметров>);
За заголовком могут идти такие же разделы, что и в основной программе (описание констант, типов, переменных, процедур и т.д.). В отличие от основной программы процедура завершается не точкой, а точкой с запятой.
Параметры, описанные в заголовке процедуры, называются формальными. Они указывают, с какими параметрами можно обращаться к этой процедуре, их количество, последовательность, типы и назначение. В заголовке процедуры они задаются в виде списка. Каждый из параметров может принадлежать к одной из следующих категорий:
параметры-значения. Эти параметры позволяют передавать какие-либо значения в процедуру и при возвращении из подпрограммы своих значений не изменяют, поэтому их называют входными параметрами. В заголовке процедуры они описываются следующим образом:
<имя> : <тип>;
параметры-переменные. Эти параметры могут быть использованы внутри процедуры как обычные переменные15 и, главное, возвращают эти новые значения в вызывающую программу. Поэтому их используют для получения результатов работы процедуры и называют выходными. В заголовке процедуры такие параметры описываются с помощью слова Var:
Var <имя> : <тип>;
Для вызова процедуры из основной программы следует записать оператор, состоящий из имени процедуры и списка фактических параметров, которые должны совпадать по количеству, последовательности и типам со списком формальных параметров.
Например, пусть мы имеем процедуру, которая вычисляет значение заданного числа в заданной степени и имеет заголовок:
Procedure ST(A:real; N:integer; Var Rez:real);
здесь A - заданное число; N - степень числа; REZ - значение N-й степени числа А, тогда ее вызов может выглядеть следующим образом:
ST(25.56, 7, Result);
Значение параметра Result будет передано в основную программу.