Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Решение задач (Линейные алгоритмы. Стандартные функции.)


Информационный Канал Subscribe.Ru


Basic/visual basic. Основы программирования.

Выпуск 4
В этом выпуске:
Решение задач (Линейные алгоритмы. Стандартные функции.)
Три базовые конструкции программирования Ветвление
Условный оператор
Оператор выбора
Оператор перехода
Задачи

Решение задач.

3.1 Заданы уравнения двух пересекающихся прямых на плоскости: y=k1*x+b1, y=k2*x+b2. Найти угол между ними, используя формулу tg = (k2-k1)/(1+k1*k2).

INPUT "Input k1"; k1
INPUT "Input k2"; k2
f = ATN((k1 - k2) / (1 + k1 * k2))
PRINT f
END

Для красоты можно перевести значение угла в градусы (задача 2.1).

3.2 Найти угол между векторами А(x1,y1,z1) и В(x2,y2,z2).

INPUT "Input A(x1, y1, z1)"; x1, y1, z1
INPUT "Input B(x2, y2, z2)"; x2, y2, z2
f = (x1 * x2 + y1 * y2 + z1 * z2) / (SQR(x1 ^ 2 + y1 ^ 2 + z1 ^ 2) * SQR(x2 ^ 2 + y2 ^ 2 + z3 ^ 2))
PRINT f
END

3.3 Ввести с клавиатуры числа a, b. Вычислить логарифм b по a.

INPUT "input a,b"; a, b
l = LOG(b) / LOG(a)
PRINT l
END

3.4 Решить задачу 2.5 из предыдущего выпуска с использованием логических функций.

a=2
b=3
a = a xor b
b = a xor b
a = a xor b
? a,b
end

3.5 Сравнить две переменные без использования условного оператора (Мы его еще не проходили).

INPUT a, b
c = (a + b + ABS(a - b)) / 2
d = (a + b - ABS(a - b)) / 2
a=c
b=d
PRINT a; ">"; b
end


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

Ветвление, то есть изменение порядка выполнения операторов, доступно в qbasic в трех формах. Условный оператор разделяет программу на две "ветви" первая выполняется в случае истинности условия, вторая - ложности. Оператор выбора разделяет программу на произвольное количество "ветвей". Также в состав языка бейсик включен оператор перехода (безусловный переход), он предназначен для передачи управления в другое место программы без проверки какого либо условия. Использование этого оператора не очень удобно для программиста, так как затрудняет чтение программы.

Условный оператор может быть записан следующими способами.

1. Полная форма:

IF условие THEN
операторы, выполняемые когда условие истинно
ELSE
операторы, выполняемые когда условие ложно
END IF

2. Запись в одну строку:

IF условие THEN операторы ELSE операторы

Здесь операторы после ключевого слова THEN выполняются когда условие истинно, после ELSE - когда ложно.
Для того чтобы записать в одной строке несколько операторов, необходимо отделять их друг от друга с помощью двоеточия.

3. Сокращенная форма.

Иногда бывает необходимо выполнить какие-либо действия в случае истинности условия, в случае ложности ничего выполнять не требуется. Для таких ситуаций следует использовать сокращенную форму записи условного оператора. Она содержит только одну ветвь - THEN.

IF условие THEN операторы, выполняемые когда условие истинно

Эту конструкцию можно записать также в несколько строк, тогда необходимо использовать ключевое слово END IF.

4. Расширенная форма.

Если для определения порядка выполнения операторов используется сложное условие, можно применить расширенную форму условного оператора. Ее смысл заключается в том, что первым оператором ветви ELSE является условный оператор. Таких вложений может быть бесконечное число.

IF условие1 THEN
операторы, выполняемые когда условие1 истинно
ELSEIF THEN
операторы, выполняемые когда условие1 ложно, а условие2 истинно
ELSE
операторы, выполняемые когда условие1 ложно и условие2 ложно
END IF

Сложное условие можно реализовать с помощью оператора выбора.

SELECT CASE выражение
CASE значение 1
операторы 1
CASE значение 2
операторы 2
...
CASE значение n
операторы n
CASE ELSE
операторы
END SELECT

Последняя ветвь CASE ELSE выполняется, когда выражение не соответствует ни одному из значений предыдущих ветвей.
Значения могут быть записаны следующими способами CASE 201 - конкретное значение; CASE 10 to 20 - диапазон значений; CASE IS < 5 - условие, здесь ключевым словом IS обозначается выражение, стоящее в заголовке конструкции.

Для безусловного перехода в бейсике служит оператор GOTO. Он имеет следующий формат:

GOTO метка

Для использования этого оператора необходимо, чтобы в программе была определена метка. В качестве имени метки может использоваться последовательность латинских букв и цифр. После имени метки должно стоять двоеточие.
Например:
begin: ? "Странная программа?!"
goto begin

Задачи.
4.1 Заданы три числа. Определить, могут ли они быть сторонами треугольника.
4.2 Даны три числа. Сравнить их.
4.3 Для заданного трехзначного числа проверить, делится ли оно на 3.
4.4 Пользователь вводит с клавиатуры свой возраст. Необходимо вывести фразу вида "Вам 15 лет", "Вам 21 год" итд.
4.5 Вам предлагается написать небольшой самостоятельный проект. Программу для решения квадратных уравнений. Ознакомиться с работой подобной программы можно здесь:
http://services.subwwway.net/kvur.php
Архив рассылки доступен по адресу http://tutor.subwwway.net/
Выпуск завершен. Желаю успехов!

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.basicandvb
Отписаться

В избранное