
- •Языки и системы программирования Алгоритмы
- •Языки программирования
- •Область применения языков программирования
- •Сложность и эффективность языков программирования
- •Трансляторы
- •Характеристика с/п Pascal abc
- •Используемые в с/п Pascal abc «горячие клавиши»
- •Структура программы на Паскале
- •Сообщения об ошибках. Отладка программы.
- •Система подсказок.
- •Команды вывода данных на экран
- •Константы
- •Переменные
- •Арифметические выражения. Приоритет арифметических операций
- •Стандартные арифметические функции
- •Процедуры инкремента и декремента
- •Примеры решения линейных задач
- •Ввод данных с клавиатуры
- •Примеры решения диалоговых задач
- •Линейные задачи для самостоятельной работы
- •Лаб. 1. Линеаризовать выражение:
- •Лаб. 2. Линейные диалоговые задачи (на одно действие)
- •Лаб. 3. Диалоговые задачи на несколько действий
- •Ветвление
- •Логические выражения
- •Вложенное ветвление
- •Лаб. 4. Задачи на ветвление:
- •Лаб. 5. Задачи на ветвление с вычислениями:
- •Выбор варианта
- •Лаб. 6. Задачи на выбор варианта:
- •Как выбрать цикл?
- •Экстренные события в теле цикла
- •Лаб. 7. Числовые задачи с циклом For
- •Лаб. 8. Сюжетные задачи с циклом For
- •Лаб. 9. Задачи с условными циклами
- •Библиотека crt
- •Библиотека sounds
- •Лаб. 10. Задачи с использованием циклов и библиотек crt и sounds
- •Порядковые типы данных
- •Перечислимый тип данных
- •Символьный тип данных
- •Ограниченный (интервальный) тип данных
- •Лаб. 11. Задачи со строками
- •Массивы
- •Решение задач с массивами
- •Поиск минимального (максимального) элемента массива
- •Сортировка массива.
- •Двумерные и многомерные массивы
- •Лаб. 12. Задачи с одномерными массивами
- •Лаб. 13. Задачи с двумерными массивами
- •Множества
- •Файлы данных
- •Записи и базы данных
- •Библиотека GraphAbc
- •Действия с графическим окном:
- •Точечная графика
- •Графические примитивы
- •Текст в графическом окне
- •Использование готовых точечных рисунков
- •Вспомогательные алгоритмы
- •Рекурсия
- •Событийное программирование
- •Использование таймеров
- •Использование сторонней библиотеки ukeyb
Библиотека sounds
Для использования в программе мелодий и звуков нужно подключить библиотеку sounds. Она содержит такие процедуры и функции для работы со звуками:
LoadSound(’имя файла’); Функция загружает звук из файла в оперативную память и возвращает описатель звука (звуковой файл должен иметь формат .wav). Для описателя звука заводят переменную типа integer, куда и присваивают возвращаемое значение. Например: muz:=LoadSound(’Hi_ho.wav’);
PlaySound(muz); Начинает проигрывание звука с описателем muz. При запуске новой мелодии с другим описателем прежняя не отключается. Таким образом, можно одновременно с фоновой музыкой озвучивать эффекты.
RewindSound(muz); "Перематывает" звук с описателем muz на начало.
StopSound(muz); Прекращает проигрывание звука с описателем muz.
DestroySound(muz); Удаляет звук с описателем muz из оперативной памяти, описатель звука при этом становится недействительным.
SoundIsPlaying(muz); Функция. Возвращает True если звук с описателем muz проигрывается и False в противном случае.
SoundTime(muz); Функция. Возвращает длительность звука с описателем muz в миллисекундах.
Лаб. 10. Задачи с использованием циклов и библиотек crt и sounds
В окне 40х20 на зелёном фоне сверху вниз одновременно спускаются (след не остаётся) 10 белых букв «А» (с интервалом в 3 знакоместа). Дойдя до низа окна, буквы отражаются и движутся вверх (при этом издаётся звук). От верхнего края тоже отражаются. Это продолжается до нажатия любой клавиши.
В окне слева направо движется колонка букв. Дойдя до края, колонка отражается. При движении слышна музыка, а цвет букв и сами буквы случайно меняются. При отражении от правого и левого края музыка меняется.
Буква движется вправо. Через случайное число шагов она меняет направление на случайное вверх или вниз. Затем снова влево или вправо и т.д. На границах окна буква отражается. При каждом изменении направления раздаётся один звук, а при отражении другой. При изменении направления меняется цвет, а при отражении меняется буква.
В окне по самому краю рисуется прямоугольник из одинаковых букв. После небольшой задержки – прямоугольник другого цвета из других букв, внутри первого и т.д. Всё это происходит со звуковыми эффектами.
Одинаковыми буквами медленно рисуется наклонная решётка: каждая следующая буква ниже и правее. Между «прутьями решётки» расстояние в 3 буквы. Когда все «прутья» дойдут до низа, начинается следующая серия прутьев другого цвета, на 1 букву правее первых прутьев. И т.д. Заканчивается это, когда всё окно заполнено буквами. Процесс рисования сопроводить музыкой, которая сменяется для каждой новой решётки.
Сверху в середине окна (30х20) появляется слово «влево» или «вправо» (порядок их появления случаен) крупными буквами (каждый раз другого цвета) и начинает падать вниз. Во время падения нужно клавишами «л» или «п» перемещать слово в нужную сторону. Если успел довести до нужного края, добавляются очки. Через 20 слов выдаётся сообщение о набранных очках.
Буква движется по кругу по часовой стрелке. При нажатии любой клавиши начинает двигаться против часовой стрелки (и т.д.). При этом по часовой стрелке звучит одна музыка, а против – другая.
Буква движется вдоль границ окна по часовой стрелке. При нажатии любой клавиши начинает двигаться против часовой стрелки и т.д. При этом по часовой стрелке звучит одна музыка, а против – другая. Буква при каждом нажатии меняется на случайную.
В центре окна буквами «Ш» заполнена квадратная область размером 5х5. По окну летает буква, отражаясь от краёв. Каждый раз, когда буква попадает в квадрат (но не всё время, пока она пролетает квадрат) раздаётся звук, и квадрат меняет цвет на случайный.
В окне буквами «Ш» нарисованы два квадрата. На левом краю окна стоит буква «о», которую нужно клавишами-стрелками (можно буквами или клавишами цифрового блока) перевести (при движении след остаётся) на правый край окна к стоящей там букве «П», при этом, не задев квадраты и не зайдя за границу экрана. При задевании всё начинается сначала.
В
окне рисуется таблица умножения. Левый и верхний заголовки одного цвета, а сами числа другого. Одно из чисел (место выбирается случайно) пропущено, там моргает курсор. Под таблицей указывается число правильных и неправильных ответов. При вводе правильного ответа увеличивается первый счётчик, и затирается число на новом месте. При вводе неправильного ответа увеличивается второй счётчик, и затирается число на прежнем месте.
Из центра окна наружу по часовой стрелке разворачивается спираль прямоугольной формы, составленная из букв «о». Расстояние между горизонтальными витками – 1 знакоместо, а между вертикальными – 2 знакоместа. Использовать цикл.
С
лева направо буквами рисуется волна, состоящая из горизонтальных и вертикальных участков. Использовать цикл.
Н
арисовать буквами ёлочку. Каждая ветка длиной 3 буквы «ш». Ствол состоит из букв «о». Использовать цикл.
В цикле нарисовать пилу, состоящую из букв «А».
Нарисовать «размножившуюся» букву «ш», состоящую из букв «Ш». Использовать цикл.
Буква находится в левом верхнем углу и начинает двигаться по диагонали (ширина окна равна его высоте). Дойдя до середины, буква случайным образом меняет направление и движется к какому-либо из углов. Оттуда - обратно к центру и т.д., до нажатия пробела. В центре при изменении направления раздаётся короткий звук. Если направление осталось прежним, звука нет.
Вдоль границ окна белыми буквами «Ш» нарисована рамка. По экрану летает красная «О», отражаясь от стенки (не заходя внутрь неё). В месте отражения буква «Ш» стенки меняет свой цвет на красный. При этом раздаётся звук удара.
Нарисовать в цикле буквами «П» лестницу из левого верхнего угла окна в правый нижний. Количество ступенек (не меньше 2) и размеры окна ввести с клавиатуры.
Программа ожидает нажатия буквы, и этой буквой рисует большое изображение этой же буквы. (Пусть программа понимает 5 самых простых для рисования букв, а нажатие других символов игнорирует.)