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

3.6.2. Операторы вывода значений переменных на экран.

Простейший вывод значений переменных на экран (нашем случае – на форму) осуществляется с помощью оператора print, который имеет следующий формат:

print “(Комментарий 1)“;a,”(Комментар. 2)”;b$,”(Коммент. 3)”;t&,”(Ком. 4)

Параметрами строки оператора print являются комментарии (они не обязательны) и имена переменных, разделенные запятой или точкой с запятой. Эти разделители дают различное число пробелов между параметрами на экране (соответственно шесть и один), что сделано для удобства чтения строки. Если нужно расположить объекты вывода на экране в другом формате, чем это позволяют стандартные разделители, применяются специальные операторы размещения информации.

Пример 3.5. Стандартные разделители

Private Sub Command1_Click()

'Ex 3_5.

subj$ = "Компьютер"

country$ = "США"

firm$ = "IBM"

price = 974.45

Print " Изделие:"; subj$; " Фирмы "; firm$; " из "; country$; " по цене $"; price

End Sub

Сообщение на экране:

Изделие: компьютер IBMиз США по цене $ 974.45

Следующий пример представляет форматный вывод элементов матрицы, элементами которой являются числа различной длины. Вывод по заданному формату делается с помощью операторов:

Form1.CurrentX = Координата по оси x,

Form1.CurrentY = Координата по оси y.

Значения координат измеряются в твипах. Популярный размер окна вывода (это вывод на форму): 8000x7000. Точка начала отсчета координат – левый верхний угол формы.

Пример 3.6

Private Sub Command1_Click()

'Ex 3_6

Cls

Dim matr(4, 4) As Long

Dim i As Integer: Dim j As Integer

'Data 113, 2, 2341, 564328, -2, 9, -5, 11, 4333, 77, 432, 78, 4, 4, 4, 4

MsgBox ("Введите матрицу")

For i = 1 To 4

For j = 1 To 4

Print i; j,

matr(i, j) = Val(InputBox(“ Матрица”))

Next j

Print

Next i

Print "__________________________________"

Print

Y1 = 800

For i = 1 To 4

For j = 1 To 4

Form1.CurrentX = 500 * j

Form1.CurrentY = Y1 + 200 * i

Print matr(i, j);

Next j

Print

Next i

End Sub

На экране появится следующая информация:

113 2 2341 564328

-2 9 -5 11

4333 77 432 78

4 4 4 4

Отметим, что в этой программе оператор matr(i, j) = Val(InputBox(“ Матрица”)) можно записать без функции Val. В данном случае эта функция подчеркивает, что число, которое вводится в окно, имеет текстовую форму, а переменная matr(i, j) определена оператором Dim как число. Но если функцию Val удалить, то изменение типа будет сделано автоматически.

3.7. Примеры типовых программ

Мы уже знаем основные операторы языка Quick Basic 4.5. Посмотрим теперь, как будут выглядеть программы, соответствующие простым типовым алгоритмам. Во многих случаях это будет прямой перевод русского текста на английский язык, хотя и будут некоторые особенности, связанные, например, с наименованием конца цикла или форматом операторов условного перехода, а также с описанием типа переменных.

Пример s.1. Вычислить произведение чисел n и m, не используя операцию умножения.

Ввод значений n и m

k=0

i=0

4. k=k+n

i=i+1

если i<m, идти к 4, иначе идти к 7

7. Вывод значения k

______________________________________

Пример s.1 в модифицированном виде

Ввод значений n и m

k=0

Цикл i=1,m (в этом операторе содержится счетчик i=i+1 и цикл будет закончен, когда i=m+1)

k=k+n

Конец цикла i (этот оператор переводит действие на начало цикла, если im)

Вывод значения k

_____________________________________

Пример s.2. Вычислить функцию y=x2 для x от –1 до +1 с шагом 0.2.

Цикл x=-1, +1 шаг 0.2

y=xx

Вывод значений x и y

Конец цикла x

Ввиду особенностей представления чисел первый вариант программы выдает не очень удобную информацию. Введите эту программу и посмотрите на результат.

Для исправления этого неудобства приведен второй вариант. Сравните его результат с первым.

Функция Cint округляет дробное число до ближайшего целого.

Пример s.3. Вычислить xk, не используя операцию возведения в степень.

Ввод значений x и k

z=1

Цикл i=1,k

z=zx

Конец цикла i

Вывод значения z

______________________________________

Пример s.4. Вычислить z = k! = 1•2•3•••k

Ввод значения k

z=1

Цикл i=1,k

z=zi

Конец цикла i

Вывод значения z

______________________________________

Пример s.5. Составить алгоритм для решения следующей задачи. Ввести n чисел ai (i=1,n). Определить, сколько из них положительных, отрицательных и равных нулю.

Ввод значения n

k=0, l=0, m=0

Цикл i=1,n

Ввод значения ai

Если ai > 0, то k=k+1

Если ai<0, то l=l+1

Если ai=0, то m=m+1

Конец цикла i

Вывод значений k,l,m

______________________________________

Пример s.5. в модифицированном виде.

Ввод значения n

k=0, l=0, m=0

Цикл i=1,n (цикл будет закончен, когда i=n+1)

Ввод значения ai

Если ai > 0, то идти к 9

Если ai<0, то идти к 11

m=m+1 (это случай,

когда ai = 0)

Идти к 12

9. k=k+1

Идти к 12

11. l=l+1

12. Конец цикла i

Вывод значений k,l,m

_____________________________________

Пример s.6.

Вычислить сумму для фиксированного значения x>1, определив значение последнего элемента суммы по условию:. Вывести на печать число элементов суммы n.

Ввод значения x

a=1: s=0: n=0: =0.001

3. Цикл

s=s+a

n=n+1

a=a/x

Если a, то идти к 3 (метка 3 - это начало цикла)

Вывод значений s, n

______________________________________

Пример s.7. Вводится пара чисел: a - делимое и b - делитель. Число a делится на число b с точностью до целых последовательным вычитанием a-b. Остаток записывается в переменную d, результат деления – в переменную n. Цикл вычитания продолжается, пока d>b. Затем вводится другая пара a,b. Цикл ввода пар продолжается, покаa>b.

Цикл 1

Ввод чисел a и b

Если a < b, то выйти из цикла 1 (это означает - закончить задачу)

n=0

d=a

Цикл 2

если d<b, выйти из цикла 2 (это означает - вывести результат и перейти к циклу 1)

d=d - b

n=n+1

Конец цикла 2

Вывод a,b,n,d

Конец цикла 1

Конец программы

Private Sub Command1_Click()

Dim n As Integer: Dim i As Integer

'PrS_1 Произведение k=n*m

MsgBox " Введите n и m"

n = InputBox("n=")

m = InputBox("m=")

k = 0

m4: k = k + n

i = i + 1

If i < m Then GoTo m4 Else GoTo m7

m7: Print "final k="; k

End Sub

_____________________________________

Private Sub Command1_Click()

'PrS_1_mod

Dim n As Integer: Dim i As Integer

Dim m As Integer: Dim k As Integer

n = InputBox("n=")

m = InputBox("m=")

k = 0

For i = 1 To m

k = k + n

Next i

Print " k="; k

End Sub

_____________________________________

Private Sub Command1_Click()

'PrS_2

Dim x As Single

Dim y As Single

For x = -1 To 1 Step 0.2

y = x * x

Print " x="; x, " y="; y

Next x

End Sub

Private Sub Command1_Click()

'PrS_2_mod

Dim x As Single

Dim y As Single

For x = -1 To 1.1 Step 0.2

y = x * x

x = CInt(1000 * x) / 1000

y = CInt(1000 * y) / 1000

Print " x="; x, " y="; y

Next x

End Sub

______________________________________

Private Sub Command1_Click()

'PrS_3 z=x^k

MsgBox (" x в степени k. Ввод x и k ")

x = InputBox("x=")

k = InputBox("Степень k=")

z = 1

For i = 1 To k

z = z * x

Next i

Print " z="; z

End Sub

_____________________________________

Private Sub Command1_Click()

'PrS_4 Вычисление факториала z=k!

k = InputBox(" k=")

z = 1

For i = 1 To k

z = z * i

Next i

Print " z="; z

End Sub

______________________________________

Private Sub Command1_Click()

'Pr2_5

n = InputBox(" Ввод значения n ")

k = 0: l = 0: m = 0

For i = 1 To n

ai = InputBox(" Ввод значения ai ")

If ai > 0 Then k=k+1

If ai < 0 Then l=l+1

If ai=0 Then m = m + 1

Next i

Print " Вывод k,l,m "; k, l, m

End Sub

_____________________________________

Private Sub Command1_Click()

'Pr2_5_mod

n = InputBox(" Ввод значения n ")

k = 0: l = 0: m = 0

For i = 1 To n

ai = InputBox(" Ввод значения ai ")

If ai > 0 Then GoTo 9

If ai < 0 Then GoTo 11

m = m + 1

GoTo 12

9: k = k + 1

GoTo 12

11: l = l + 1

12: Next i

Print " Вывод k,l,m "; k, l, m

End Sub

______________________________________

Private Sub Command1_Click()

'Pr2_6 Сумма ряда 1/x^n

x = InputBox(" x=")

a = 1: s = 0: n = 0: eps = 0.001

3: s = s + a

n = n + 1

a = a / x

If a >= eps Then GoTo 3

Print " s="; s, " n="; n

End Sub

Эта же программа может быть записана без употребления метки 3 с помощью цикла Do.

Private Sub Command2_Click()

x = InputBox(" x=")

a = 1: s = 0: n = 0: eps = 0.001

Do

s = s + a: n = n + 1: a = a / x

Loop While a >= eps

Print " s="; s, " n="; n

End Sub

______________________________________

Private Sub Command1_Click()

'Pr2_7_ Целое деление a\b

Do

a = InputBox("a=")

b = InputBox("b=")

if a<b Then Exit Do

n=0

d = a

Do

If d < b Then Exit Do

d = d - b

n = n + 1

Loop

Print "a="; a, "b="; b

Print "n="; n, "d="; d

Loop

End Sub

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