- •Глава 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 – коды
- •Список рекомендуемой литературы
4.2 Функции обработки числовых данных.
В ряде случаев приходится применять функции округления FIX и INT.
FIX – математическая функция, возвращающая целую часть числового выражения
FIX(числовое выражение)
Функция отбрасывает дробную часть аргумента. Для положительных аргументов функции INT и FIX являются тождественными, но для отрицательных значений FIX выдает первое отрицательное целое больше аргумента, тогда как INT выдает первое отрицательное целое меньше аргумента. Еще одна функция - CINT преобразует числовое выражение в целое число путем округления дробной части.
Пример: сравнение функций INT, CINT и FIX
CLS
?"N","INT(N)","CINT(N)","FIX(N)": ?
FOR I=1 NJ 6
READ N
? N, INT(N), CINT(N),FIX(N)
NEXT I
READ 9.3, 99.5, 99.7, -99.3, -99.5, -99.7
Результат на экране:
N INT(N) CINT(N) FIX(N)
99.3 99 99 99
99.5 99 100 99
99.7 99 100 99
-99.3 -100 -99 -99
-99.5 -100 -100 -99
-99.7 -100 -100 -99
4.3 Генерация случайных чисел.
В ряде задач требуется использовать числа выбранные случайным образом. Например: программирование игр, цветной калейдоскоп или звездное небо на экране, исследование сложных вероятностных систем. Для генерации случайных чисел предназначена функция RND, которая выбирает число из диапазона от 0 до 1.
RND(n) , где n – определяет как генерируется следующее число (n можно опустить).
Часто потребуется диапазон чисел не от 0 до 1. Общая формула для выбора диапазона имеет вид:
Х=INT((MAX-MIN)*RND(n))+MIN
Х – случайное число; MAX –правая граница, MIN – левая граница диапазона. Например:
Диапазон от 0 до 250: X=INT(250*RND)
Если не принять мер, то при каждом запуске программы RND генерирует одну и ту же последовательность случайных чисел. Чтобы избежать этого, вы можете предварительно "инициализировать" генератор случайных чисел, - с помощью оператора RANDOMIZE TIMER
Пример: узор
СLS
RANDOMIZE TIMER
SCREEN 9
FOR I=1 TO 1000
FOR J=0 TO 15
LINE(I,INT(RND*750)-(INT(RND*750)))-(RND*200,RND*I),J
NEXT J
NEXT I
Пример: игра "бросание костей"
CLS
RANDOMIZE TIMER
10 D1=INT(RND-6)+1
D2=INT(RND-6)+1
?"Выпало";D1;"и";D2;" сумма";D1+D2
INPUT"Еще Y/N";F$
IF F$="N" OR F$="n" THEN 10
END
Задания для самостоятельной работы
Составьте программу заполнения экрана точками расположенными случайным образом (звездное небо).
Составьте программу выбирающую случайным образом 6 целых чисел из интервала от 1 до 49. (Спортлото)
5. Массивы
5.1 Понятие массива.
Переменные ранее использовавшиеся при составлении программ называются простыми переменными. Каждая простая переменная имеет имя, и под каждую такую переменную выделяется ячейка памяти, обращение к которой осуществляется по этому имени. Использование только простых переменных затрудняет или делает вообще невозможным решение многих задач. Например: поиск максимального, минимального числа из последовательности, сортировка по признаку, заполнение о обработка таблиц, словарей. Выход предоставляет использование массивов.
Массив – упорядоченная последовательность однородных величин, имеющих одно общее имя. Упорядоченность заключается в том, что элементы массива располагаются в последовательных ячейках памяти, положение элемента в массиве определяется его номером (индексом).
А – имя массива
А(0) А(1) А(2) А(3) А(4) А(5) А(6) А(0) – первый элемент массива с номером 0
5
3
0
5
-1
2
1
Значение первого элемента 5
Типы массивов определяются значениями: вещественные, целочисленные, символьные.
Массивы в Бейсике описываются с помощью специального оператора DIM – оператора описания размерности, который объявляет массив и выделяет для него необходимый объем памяти (DIM сокращение от слова DIMENSION – размерность). Например:
DIM B(4) вещественный массив с именем В из 5 элементов;
DIM F%(9) целочисленный массив с именем F из 10 элементов;
DIM N$(14) символьный массив с именем N из 15 элементов.
Оператор DIM обнуляет все элементы числовых массивов, а символьным - присваивает значение пустой строки (""). Если попытаться второй раз определить массив, то вы получите ошибку "Array already dimensioned" (массив уже определен). Для повторного описания массива используется оператор ERASE (уничтожить).
Существует несколько способов заполнения массивов:
Программный - с помощью оператора LET
LET A(0)=5
LET A(1)=3
……………
Ручной - с помощью оператора INPUT в цикле
FOR I=0 TO 6
INPUT"Введите";I;"элемент массива";A(I)
NEXT I
С помощью конструкции READ-DATA
DATA 5,3,0,5,-2,-2.4,1
FOR K=0 TO 6
READ A(K)
NEXT K
Случайным образом
FOR N=0 TO 9
A(N)=INT(RND*100)
NEXT N
На экран элементы массива выводятся так же с помощью конструкции цикла.
Пример: ввод и печать массива
CLS:DIM A(9)
FOR I=0 TO 9
A(I)=INT(RND*200)-100
NEXT I
FOR K=0 TO 9
? "A(";K;")=";A(K)
NEXT K