Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TurboBasic.doc
Скачиваний:
7
Добавлен:
21.11.2019
Размер:
493.57 Кб
Скачать

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

Задания для самостоятельной работы

  1. Составьте программу заполнения экрана точками расположенными случайным образом (звездное небо).

  2. Составьте программу выбирающую случайным образом 6 целых чисел из интервала от 1 до 49. (Спортлото)

5. Массивы

5.1 Понятие массива.

Переменные ранее использовавшиеся при составлении программ называются простыми переменными. Каждая простая переменная имеет имя, и под каждую такую переменную выделяется ячейка памяти, обращение к которой осуществляется по этому имени. Использование только простых переменных затрудняет или делает вообще невозможным решение многих задач. Например: поиск максимального, минимального числа из последовательности, сортировка по признаку, заполнение о обработка таблиц, словарей. Выход предоставляет использование массивов.

Массив – упорядоченная последовательность однородных величин, имеющих одно общее имя. Упорядоченность заключается в том, что элементы массива располагаются в последовательных ячейках памяти, положение элемента в массиве определяется его номером (индексом).

А – имя массива

А(0) А(1) А(2) А(3) А(4) А(5) А(6) А(0) – первый элемент массива с номером 0

5

3

0

5

-1

2

1

(отсчет ведется с 0)

Значение первого элемента 5

Типы массивов определяются значениями: вещественные, целочисленные, символьные.

Массивы в Бейсике описываются с помощью специального оператора DIM – оператора описания размерности, который объявляет массив и выделяет для него необходимый объем памяти (DIM сокращение от слова DIMENSION – размерность). Например:

DIM B(4) вещественный массив с именем В из 5 элементов;

DIM F%(9) целочисленный массив с именем F из 10 элементов;

DIM N$(14) символьный массив с именем N из 15 элементов.

Оператор DIM обнуляет все элементы числовых массивов, а символьным - присваивает значение пустой строки (""). Если попытаться второй раз определить массив, то вы получите ошибку "Array already dimensioned" (массив уже определен). Для повторного описания массива используется оператор ERASE (уничтожить).

Существует несколько способов заполнения массивов:

  1. Программный - с помощью оператора LET

LET A(0)=5

LET A(1)=3

……………

  1. Ручной - с помощью оператора INPUT в цикле

FOR I=0 TO 6

INPUT"Введите";I;"элемент массива";A(I)

NEXT I

  1. С помощью конструкции READ-DATA

DATA 5,3,0,5,-2,-2.4,1

FOR K=0 TO 6

READ A(K)

NEXT K

  1. Случайным образом

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]