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

17. Задания

1. Сделать функцию пользователя JUUR(a,b), которая вычисляет корень степени В из А. Использовать функции FUNCTION и END FUNCTION.

Основная программа может иметь вид:

INPUT "Введи число А"; A

INPUT "Введи степень В"; B

PRINT "Ответ:" ; JUUR(A,B)

2. Создать функцию пользователя LOGARITM(A,B), которая вычисляла бы logab.

  1. Создать функцию пользователя ALGARV(x), которая выясняет, что число простое. Значение функции равно –1 (верное), если х является простым числом и 0- (неверное), если х – составное число. Подсказка: Проверить, сколько раз х делится на числа из промежутка от 1 до х. Если два раза, то число простое, иначе –нет. Деление можно проверить с помощью условия A/B=INT(A/B).

Основная программа может иметь вид:

INPUT "Введи число:"; X

IF ALGARV(X) THEN

PRINT "Это простое число!"

ELSE

PRINT "Это не простое число!"

END IF

  1. Создать программу, которая печатала бы все простые числа от 1 до N. Использовать функцию пользователя ALGARV(x). Значение N задаёт пользователь.

  1. Создать функцию пользователя RISTSUMMA(x) для вычисления суммы цифр числа.

  1. Используя операторы SUB и END SUB, создать процедуру TELJESTIK, которая рисовала бы систему координат (единица деления равна 20 писклям). Создать другую процедуру SIRGE(a,b), которая рисовала бы внутри неё прямую y=ax+b. Основная программа могла бы иметь вид:

INPUT "Введи значение а"; a

INPUT "Введи значение в"; b

CALL TELJESTIK

CALL SIRGE(a, b)

  1. Создать процедуру PARABOOL(a,b,c). Основная программа может иметь вид:

INPUT "Введи значение а"; a

INPUT "Введи значение в"; b

INPUT "Введи значение с"; c

CALL TELJESTIK

CALL PARABOOL(a, b, с)

  1. Создать программу нахождения наибольшего общего делителя, отличную от функции пользователя SYT, которая работала бы быстрее, например используя остаток от деления A MOD B. Для измерения скорости работы можно использовать следующую программу:

START=TIMER

PRINT SYT(2,100000)

PRINT "Потребовалось времени: ";TIMER-START;"секунды."

18. Массивы

Массивы используются для хранения большого количества однотипных данных. Массивы могут быть числовыми и символьными.

Пример:

Создадим программу , которая вводит имена 5 детей и их возраст и затем печатает их. Сделаем программу без использования массива, а затем с использованием массива.

'Вводим имена

INPUT "Ввести 1. имя"; A$

INPUT " Ввести 2. имя "; B$

INPUT " Ввести 3. имя "; C$

INPUT " Ввести 4. имя "; D$

INPUT " Ввести 5. имя "; E$

'Введём возраст

INPUT "Введи возраст 1. ребёнка"; K

INPUT " Введи возраст 2. ребёнка"; L

INPUT " Введи возраст 3. ребёнка "; M

INPUT " Введи возраст 4. ребёнка "; N

INPUT " Введи возраст 5. ребёнка "; O

'Печать данных

PRINT A$; K; " лет."

PRINT B$; L; " лет."

PRINT C$; M; " лет."

PRINT D$; N; " лет."

PRINT E$; O; " лет."

Для 5 детей программа ещё не очень длинная. А если детей много?

В этом случае используется массив.

Пример:

'Задаём массивы

DIM Nimed$(5) 'символьный массив для имён

DIM Vanused(5) 'числовой массив для возраста

'Вводим имена

FOR I = 1 TO 5

PRINT "Введи имя "; I; ". -го ребёнка";

INPUT Nimed$(I)

NEXT I

'Вводим возраст

FOR I = 1 TO 5

PRINT "Введи возраст "; I; ". –го ребёнка";

INPUT Vanused(I)

NEXT I

'Печатаем имена и возраст

FOR I = 1 TO 5

PRINT Nimed$(I);Vanused(I); " лет."

NEXT I

При создании массива надо его сначала объявить с помощью оператора DIM.

DIM Nimed$(5) – объявляет символьный массив имён из 5 элементов.

DIM Vanused(5) - объявляет числовой массив возрастов из 5 элементов.

Чтобы прочесть из массива конкретный элемент, надо его указать, например

Nimed$(3) –3-е имя из массива имён.