
- •Глава I. Основные сведения.
- •Глава II .Решение задач.
- •Глава III . Дополнительные сведения о tb.
- •Предисловие
- •Глава I. Основные сведения
- •1. Введение
- •Понятие об алгоритмах.
- •Понятие о программировании.
- •Этапы решения задач с помощью компьютера.
- •2. Основы языка turbo basic
- •2.1 Алфавит языка.
- •2.2 Типы данных.
- •2.3 Выражения в Бейсике. Стандартные функции.
- •2.4 Среда программирования TurboBasic
- •2.5 Работа в непосредственном режиме
- •2.6 Структура программ. Оператор присваивания.
- •2.7 Операторы ввода/вывода.
- •2.8 Работа с блоком данных
- •Организация графического экрана. Операторы графики.
- •2.10 Функции обработки символьных (литерных) величин.
- •3.Управляющие конструкции.
- •3.1 Операторы цикла.
- •3.2 Условный оператор.
- •3.3 Подпрограммы.
- •3.4 Функции пользователя.
- •Глава II. Решение задач.
- •4. Работа с функциями.
- •4.2 Функции обработки числовых данных.
- •4.3 Генерация случайных чисел.
- •5. Массивы
- •5.1 Понятие массива.
- •5.2 Задачи на обработку одномерных массивов.
- •5.3 Сортировка массивов
- •5.4 Двумерные массивы
- •6. Практика программирования.
- •Задачи обработки целых чисел.
- •6.2 Построение графика функции.
- •Простейший графический редактор.
- •Моделирование хода часов.
- •Программирование справочных систем.
- •1 Закон ньютона
- •2 Закон ньютона
- •3 Закон ньютона
- •Программирование игр.
- •Глава 3. Дополнительные сведения о тв.
- •Звук и музыка.
- •Графический оператор draw.
- •9. Операторы get и put
- •10. Файлы. Работа с файлами.
- •10.1 Файлы последовательного доступа
- •10.2. Файлы прямого доступа
- •Сообщения об ошибках
- •Список команд, операторов, функций.
- •Ascii – коды
- •Список рекомендуемой литературы
Моделирование хода часов.
Применение знаний из геометрии требует задача моделирования хода часов. Ниже будет рассмотрена модель движения секундной стрелки часов.
О
дин
конец секундной стрелки неподвижен и
находится в центре часов, а другой
обращается вокруг него. Его координаты
изменяются следующим образом:
X=R*COS(I)+320
Y=R*SIN(I)+175
Значение переменной I меняется с шагом 1/60 окружности от верхнего положения –PI/2 до полного оборота 44*PI/30. Для регулировки хода часов вводим цикл задержки.
Программа: "ход секундной стрелки".
CLS: PI=3.142
FOR I=-PI/2 TO 44*PI/30 STEP PI/30
LINE(320,175)-(X,Y),0
X=80*COS(I)+320
Y=80*SIN(I)+175
LINE(320,175)-(X,Y),1
FOR T=1 TO 2000: NEXT T
NEXT I
Несложно дополнить программу минутной и часовой стрелкой.
Программа: механические часы.
CLS: PI=3.142
FOR I2=-PI/2 TO 8*PI/6 STEP PI/6
LINE(320,175)-(X2,Y2),0
X2=50*COS(I2)*320
Y2=50*SIN(I2)+175
FOR I1=-PI/2 TO 44*PI/30 STEP PI/30
LINE(320,175)-(X1,Y1),0
X1=50*COS(I1)*320
Y1=50*SIN(I1)+175
FOR I=-PI/2 TO 44*PI/30 STEP PI/30
LINE(320,175)-(X,Y),0
LINE(320,175)-(X1,Y1),2
LINE(320,175)-(X2,Y2),3
X=80*COS(I)+320
Y=80*SIN(I)+175
LINE(320,175)-(X,Y),1
FOR T=1 TO 2000: NEXT T
NEXT I
NEXT I1
NEXT I2
Задания для самостоятельной работы.
Расставить метки и цифры (12, 3, 6, 9) на циферблате.
Изобразить контуры часов.
Снабдить часы функциями установки времени.
Смоделировать будильник.
Программирование справочных систем.
Ряд задач требует организации вывода каких-либо справочных данных. Например: математические формулы, физические законы, исторические даты и т.п. При этом содержание справочного материала определяется меню – на экран выводится несколько пунктов в которых можно производить выбор. Выбор пункта производится перемещением курсора с последующим нажатием клавиши {Enter}. Возврат в меню производится по нажатию пробела.
Рассмотрим программу, которая позволяет получить информацию о законах Ньютона. Она состоит из меню и трех блоков, содержащих формулировки законов Ньютона. Выбрав соответствующий пункт меню пользователь получает справку об одном из законов. Для окончания работы предусмотрен пункт меню "Выход".
При составлении программы полезно использовать следующую схему:
МЕНЮ
ВЫБОР ИНФОРМАЦИИ: УСТАНОВИТЬ КУРСОР
НА НОМЕР БЛОКА И НАЖАТЬ КЛАВИШУ {Enter}
1 Закон ньютона
2 Закон ньютона
3 Закон ньютона
ВЫХОД
ВОЗВРАТ В МЕНЮ – КЛАВИША {ПРОБЕЛ}
Рассмотрим основные элементы программы.
"Заставка"
CLS
?"ЗАКОНЫ НЬЮТОНА"
?"СПРАВОЧНАЯ СИСТЕМА"
?"НАЖМИТЕ ПРОБЕЛ"
10 A$= INKEY$
IF A$<>" " THEN 10
"Меню"
CLS
?"МЕНЮ"
……………
Программирование игр.
Диалоговый режим работы позволяет реализовывать игровые программы, где компьютер генерирует случайные числа, необходимы практически в любой игре, а также может выступать в роли партнера. В качестве вариантов игр, легко поддающихся программированию, такие как "Морской бой", "Быки и коровы", "Бросание костей". Чтобы избежать громоздких программ, условия некоторых игр упрощаются по сравнению с существующими правилами.
В качестве примера рассмотрим реализацию игры "Морской бой". Игра происходит между двумя участниками, один из которых компьютер, на игровом поле 5х5 клеток. Каждый из участников расставляет на поле 5 одноклеточных катеров (катера могут касаться друг друга). При попадании в катер при очередном ходе он считается уничтоженным. Побеждает уничтоживший первым катера противника. Если участник во время очередного хода уничтожил катер противника, то он ходит еще раз. Компьютер расставляет катера случайным образом. Партнер вводит координаты катеров с клавиатуры.
Программа состоит из трех блоков:
заставка: название игры, авторы, краткая информация о правилах игры;
Игровое поле
ВВЕДИТЕ
КООРДИНАТЫ ДЛЯ БОМБОМЕТАНИЯ: Х: У:
БРАВО
АДМИРАЛ! ВЫ ПОПАЛИ!
ПРОДОЛЖИТЬ
БАТАЛИЮ (Д/Н)?
Вводятся координаты 5 катеров и они выставляются на игровое поле. Первый ход делает компьютер. В месте выстрела на игровом поле ставится кружок. По нажатию клавиши {Enter} игровое поле очищается для Вашего выстрела, а в правом верхнем углу запрос о вводимых координатах. В случае попадания на экране появляется надпись "Попал!", в случае промаха "Мимо". Игра заканчивается после того как выявляется победитель.
Итоги игры: попадание с 10 выстрелов –присуждается орден; с 15 – медаль; с 20 –похвала. Предлагается повторная игра.
Рассмотрим основные элементы программы.
"Координатная сетка"
FOR I=1 TO 6
LINE(20*I,20)-(20*I,120),2
LINE(20,20*I)-(120,20*I),2
NEXT I
"Установка катеров компьютером"
RANDOMIZE TIMER
DIM A(4,4)
FOR I=0 TO 4
FOR J=0 TO 4
A(I,J)=INT(RND+0.5)
NEXT J,I
"Ввод координат катеров играющего и проверка попадания"
INPUT "X=";X
INPUT "Y=";Y
IF A(X,Y)=1 THEN 10
?"Мимо"
CIRCLE(20*X+10,20*Y+10),3,3
10 ?"Попал"
LINE(20*X,20*Y)-(20*X+20,20*Y+20),2
Задания для самостоятельной работы.
Создать поле 10х10, выставлять 10 кораблей.
Создать второе поле, где будет отражаться расположение катеров противника.
Расставлять один четырехклеточный, два трехклеточных, три двухклеточных и четыре одноклеточных катера. Добиться того чтобы корабли при расстановке не касались друг друга.