- •Информатика
- •Введение
- •1. Особенности вычислительного процесса в компьютере
- •1.1. Двоичная система счисления
- •1.2. Кодирование информации
- •2. Основы построения алгоритмов
- •2.1. Принципы описания алгоритмов
- •2.2. Примеры построения алгоритмов типовых задач
- •3. Вывод значений X и y
- •Конец цикла 2
- •3. Алгоритмический язык Visual Basic – основные сведения
- •3.1. Историческая справка
- •3.2. Среда программирования Visual Basic 6.0
- •3.3. Основные конструкции языка
- •3.3.1. Алфавит
- •3.3.2. Переменные
- •3.3.3. Константы
- •3.4. Типы переменных
- •3.4.1. Характеристики переменных
- •3.4.2. Способы задания типа
- •3.5. Основные функциональные операторы
- •3.5.1. Оператор присваивания.
- •3.5.2. Оператор условного перехода.
- •3.5.3. Операторы цикла.
- •3.6. Операторы ввода и вывода информации
- •3.6.1. Операторы ввода значений переменных с клавиатуры.
- •3.6.2. Операторы вывода значений переменных на экран.
- •3.7. Примеры типовых программ
- •4. Алгоритмический язык Visual Basic – более сложные структуры
- •4.1. Файловый ввод и вывод - общие сведения
- •4.2. Организация работы с файлом.
- •4.3. Подпрограммы и их использование для написания сложных программ
- •4.3.1. Назначение подпрограмм
- •4.3.2. Типы подпрограмм
- •4.3.3. Локальные переменные формы
- •5. Операторы и функции, работающие с символьными данными
- •5.1. Ввод символов с целью управления действиями
- •5.2. Функции, работающие с таблицей ascii-кодов
- •5.3. Функции, работающие со строкой символов
- •6. Графика
- •6.1. Воспроизведение цвета
- •6.2. Операторы (Методы) изображения стандартных фигур
- •6.3. Программирование движения фигур на экране.
- •9. Математические вычисления и встроенные функции.
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
Next i
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
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 (этот оператор переводит действие на начало цикла, если im) Вывод значения k _____________________________________
Пример s.2. Вычислить функцию y=x2 для x от –1 до +1 с шагом 0.2. Цикл x=-1, +1 шаг 0.2 y=x•x Вывод значений x и y Конец цикла x
Ввиду особенностей представления чисел первый вариант программы выдает не очень удобную информацию. Введите эту программу и посмотрите на результат. Для исправления этого неудобства приведен второй вариант. Сравните его результат с первым.
Функция Cint округляет дробное число до ближайшего целого.
Пример s.3. Вычислить xk, не используя операцию возведения в степень. Ввод значений x и k z=1 Цикл i=1,k z=z•x Конец цикла i Вывод значения z ______________________________________ Пример s.4. Вычислить z = k! = 1•2•3•••k Ввод значения k z=1 Цикл i=1,k z=z•i Конец цикла 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 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.
Цикл ввода пар
Цикл 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
|
