Академический Документы
Профессиональный Документы
Культура Документы
Теперь тут уже создаём кнопку, вставляем в неё текст или же просто меняем её
название в Caption (Заглавие).
Виконати всі приклади нижче та індивідуальне завдання:
Задача №1
Добавить на лист личные данные, имя файла, дату и отобразить их на экране
Решение
Для этой программы нам понадобится столько переменных, сколько пожелаете. Нам
главное просто суметь ввести данные, а потом правильно вставить все данные в ответ
(MsgBox). (Т.о. весь текст должен бать в “”, а все переменные должны быть соединены
символом & . Не забываем о пробелах.) Собственно вот и вся программа:
MsgBox ("Привет, " & name & surname & " . Ты являешься почётным членом группы "
& group & ",факультета " & fac & " в " & uni & " . Тебе " & age & " лет. Делай что-то для
своей группы!! ")
End Sub
Смотрим:)
Задача №2
Выделить зону (Ввести начальную и конечную координаты НЕ через Excel, а через
VBA)
Решение.
Опять-таки начнём с того, что создадим кнопку, которая будет решать всю нашу
задачу, и подумаем, что мы конкретно хотим от задачи.
Здесь нам поможет оператор String (на любой символ - От 0 до 65535 символов), через
который мы и вводим переменные, которые впоследствии будем использовать. Также
создаём InputBox через который вводим уже нужные нам данные.
Через Range(s). Select мы показываем, что заданную зону нам нужно выделить. И
завершаем программу:
Range(s).Select
End Sub
Смотрим:
2.3. Ответ
Задача №3
Разукрасить выделенную зону (выполняется после задачи №2)
Решение.
Эта задача очень простая и выполняется буквально в 1 действие.
Нам нужно ввести номер цвета, которым будем раскрашиваться выделенная зона. Для
этого нам надо ввести переменную, которая будет отвечать номеру цвета ( Переменная
«с»).
Нам надо задать компьютеру эту раскраску через оператор With – то есть полному
выделению мы задам цвет «с». Вот как такая программа будет выглядеть:
Dim c As String
c = InputBox(" Введите код цвета")
With Selection.Interior
.ColorIndex = c
End With
End Sub
Смотрим
Задача №4
Ввести номер начальной и конечной строки, номер столбца, с которым вы хотите
провести операцию. Решите: хотите Вы пронумеровать выделенный столбец, либо
разукрасить ( цвета идут соответственно своему номеру).
Решение.
Для начала нужно определиться сколько у нас будет переменных и за что каждая будет
отвечать. Нам нужны переменные X (за начальную строку), У (за конечную строку), S (за
букву столбца), kind (определяющая «тип» рас краски), k (за цвет раскраски), i (как
диапазон между Х и У) и наконец N (объединяющая в себе и диапазон и «тип»
раскраски). Также используем функцию InputBox, чтобы Вы могли ввести свои
собственные данные:
Dim x As Integer
Dim y As String
Dim n As String
Dim i As Integer
Dim k As Integer
Dim s As String
Dim kind As String
x = InputBox(" Введите начальную строку диапазона")
y = InputBox("Введите конечную строку диапазона ")
s = InputBox(" Введите букву столбца")
kind = InputBox(" Введите d-символы или c-цвет")
k=1
Далее нам нужно задать выбор ( символы или цвета) через оператор If:
If kind = "c" Then
For i = x To y
n=s&i
Range(n).Select
With Selection.Interior
.ColorIndex = k
End With
k=k+1
Next i
End If
If kind = "d" Then
For i = x To y
n=s&i
Range(n).Value = k
k=k+1
Next i
End If
End Sub
4.2. Ответ
Задача №5
Ввести 2-х мерный массив, в котором главная диагональ менялась на 0.
Решение.
Как в начале каждой задачи надо решить, сколько будет переменных и какая за что
будет отвечать. Во-первых надо ввести массив ( mass(100,100)), далее m – номер столбцов
массива, потом n – номер строк массива, I – количество столбцов, j – количество строк , и
str – через что мы делаем изменение массива.
5.2. Ответ
Задача №6
Есть определённое количество товара и машина, которая должна его перевезти
за один раз. (Количество, вес груза и грузоподъёмность машины задаём сами!)
Решение.
Для этой задачи нам понадобиться массив (mass (100)), а также такие переменные как n
(количество товара в кг.), gruz (грузоподъёмность машины), sum (сумма всего груза) и I
(вспомогательная переменная, которая поможет обозначить номера грузов). Чтобы не
было осложнений mass, gruz u summ лучше описать, как тип Double (грузоподъёмность
может быть и 90 кг, так же как и сумма груза).
If summ < gruz Then MsgBox ("Эта машина сможет перенести предметы") Else MsgBox
("Эта машина не сможет перенести предметы")
End Sub
Задача решена. Смотрим
6.1. Вводим грузоподъёмность 6.2. Смотрим ответ
Задача №7
Даны 2 целых числа: Д (день) и М (месяц), определяющие правильную дату
невысокосного года. Вывести значение Д и М для даты, предшествующей указанной.
(Case)
Решение
If D_pred = 0 Then
M_pred = m - 1
If M_pred = 0 Then M_pred = 12
Что означает, что если число предыдущего дня будет равняться 0, то нам просто нужно
поставить предыдущий месяц, а вот если число искомого месяца будет равняться 0, то
вместо 0 ставим 12.
Далее надо рассмотреть Случай (Case) для каждого месяца отдельно (так как
количество дней в месяцах разное), а функцию мы Выбираем ( оператор Select).
Select Case M_pred
Case 1
D_pred = 31
Case 2
D_pred = 28
Case 3
D_pred = 31
Case 4
D_pred = 30
Case 5
D_pred = 31
Case 6
D_pred = 30
Case 7
D_pred = 31
Case 8
D_pred = 31
Case 9
D_pred = 30
Case 10
D_pred = 31
Case 11
D_pred = 30
Case 12
D_pred = 31
End Select
И также введём данные, которые мы ввели ранее (под. функцией Else) и закрываем
оператор If:
Else
M_pred = m
End If
MsgBox ("Предыдущая дата " & D_pred & "." & M_pred)
End Sub
Смотрим
Задача №8
Ввести дату цифрами, вывести её на экран словами.
Решение.
По сути, эта задача очень простая, но при написании потребуется много механической
работы.
Понадобится нам всего лишь 4 переменные: m (ввести номер месяца), n (ввести номер
дня), Month (вывести название месяца словами) и Day (вывести номер дня словами).
Month и Day будут выведены через функцию String:
Select Case m
Case 1
Month = "Января"
Case 2
Month = "Февраля"
Case 3
Month = "Марта"
Case 4
Month = "Апреля"
Case 5
Month = "Мая"
Case 6
Month = "Июня"
Case 7
Month = "Июля"
Case 8
Month = "Августа"
Case 9
Month = "Сентября"
Case 10
Month = "Октября"
Case 11
Month = "Ноября"
Case 12
Month = "Декабря"
End Select
Select Case n
Case 1
Day = "Первое"
Case 2
Day = "Второе"
Case 3
Day = "Третье"
Case 4
… и так до 31. =)
End Select
MsgBox ("Этот день " & Day & " " & Month)
End Sub
Смотрим
8.1. Вводим номер месяца
Задача №9
Элементы равнобедренного прямоугольного треугольника пронумерованы
следующим образом: 1 – катет a; 2 – гипотенуза c=a⋅√ 2
3 – высота h, опущенная на гипотенузу (h=c/2); 4 – площадь S=c*h/2.
Дан номер одного из этих элементов и его значение. Вывести значения остальных
элементов данного треугольника. (В том же порядке)
Решение
Для решения этой задачи нам понадобится оператор Case и 6 переменных:
n (номер параметра, который будем вводить), a (катет), с (гипотенуза), H (высота
треугольника), s (площадь треугольника) и вспомогательная переменная x (через которую
мы будем считать). Начинаем вводить данные:
Dim n As Integer
Dim x, a, c, H, s As Double
Далее нам надо выбрать, то над чем мы хотим проводить действие и задать условие – в
нашем случае задать формулы:
Select Case n
Case 1
a=x
Case 2
a = x / Sqr(2)
Case 3
a = 2 * x / Sqr(2)
Case 4
a = Sqr(2 * x)
End Select
c = a * Sqr(2)
H=c/2
s=c*H/2
End Sub
Задача решена.
Смотрим
Задача №10
Даны 3 числа. Найти среднее из них (т.е. число, расположенное между min и max).
Решение.
Для этой задачи нам понадобится 4 переменных, a,b,c – числа, которые мы вводим и
число x – как искомое число. Дальше нам надо ввести данные, что мы и делаем с
помощью InputBox:
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim x As Integer
Далее нам потребуется задать условие, то есть показать, каное число нам надо вывести
в ответе. Делаем это через оператор IF.
Задача №11
Дано вещественное число А и целое число N (>0). Найти А в степени N.
Решение.
В данной задаче нам понадобится 4 переменных : a (Число А), n (Число N), и 2
вспомогательные переменные: f и i (f – переменная над которой будут производится
действия, I – количество чисел, которое нам понадобится). Вводим данные:
Private Sub CommandButton1_Click()
Dim f, a, n, i As Integer
Далее надо использовать оператор For (Для), чтобы ввести наше условие. Итак:
For i = 1 To n
f=f*a
Next i
Задача №12
Вывести факториал заданного числа.
Решение.
Для решения этой задачи нам понадобится 3 переменные: a (отвечающая за то число,
факториал которого мы хотим найти), b (вспомогательная переменная, над которой будут
производиться действия) и f (отвечающая за факториал – какие числа должны
перемножаться). Также мы должны задать нашим переменным b и f их первоначальные
данные, чтобы они не были равны 0, и ввести данные числа A:
Dim a As Integer
Dim b As Double
Dim f As Integer
f=1
b=1
For f = 1 To a
b=b*f
Next f (переходим к следующему условию)
Задача № 13
Дано целое число N (>1), являющееся числом Фибоначчи: N = Fk (число Фибоначчи:
F1=1, F2=1, Fk=(Fk-2+Fk-1), k=3,4,...). Найти целые числа Fk-1 и Fk+1 – предыдущее и
последующее числа Фибоначчи. Для примера: первые 23 числа ряда
Фибоначчи:0,1,1,2,3,5,8,13,21,34,55,89,144,233,…..
Решение.
Для решения этой задачи понадобится 4 переменных: F0 (первое число Фибоначчи), F1
(второе число Фибоначчи), f (формула числа Фибоначчи) и n (наше число, перед и после
которого мы хотим найти число Фибоначчи). Поскольку все наши 4 переменные цифры,
поставим Integer. И введём наше собственное число:
f=0
F0 = 0
F1 = 1
Далее вводим наш оператор. То есть нам надо, чтобы первое число Фибонначи было
меньше нашего числа, а последующее было больше нашего числа. Одновременно должно
выполняться два условия и повторялся цикл.
Do While f < n
f = F1 + F0
F0 = F1
F1 = f
Loop
Остаётся вывести ответ на экран:
MsgBox ("Предыдущее число Фибоначчи = " & F0 & ", а последующее = " & F0 + F1)
End Sub
Задача решена. Смотрим
13.1. Введём наше число, для которого надо найти пред. и послед. число Фибоначчи.
Задача №14
Дан целочисленный массив размера N. Удалить из массива все одинаковые
элементы, оставив их первые вхождения. (Array).
Решение.
Для этой задачи нам не обходимо будет 3 переменных и один массив: i
(вспомогательная переменная, с помощью которой можно будет менять размерность
массива), n (для размерности массива), j (ещё одна вспомогательная переменная, при
помощи которой мы сможем заменять i, корда это будет необходимо) и а (отвечающая за
массив в целом).
Итак, введём переменные и введём наши данные:
Dim i, j, n, k As Integer
Dim a(50) As Integer
n = CDbl(InputBox("Введите размерность массива N "))
For i = 1 To n
a(i) = CDbl(InputBox("Введите " & i & "-й элемент массива"))
Next i
For i = 1 To n - 1
For j = i + 1 To n
If a(i) = a(j) Then a(j) = 0 (Здесь программа начнёт заменять одинаковые элементы)
Next j
Next i
For i = 1 To n
После того, как все условия выполнены – надо вывести ответ на экран:
MsgBox ("Элемент А (" & i & ") равен " & a(i))
Next i (переходим к следующему числу, цикл повторяется)
End Sub