Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ввести 2-х мерный массив, в котором главная диагональ менялась на 0.




Ввести номер начальной и конечной строки, номер столбца, с которым вы хотите провести операцию. Решите: хотите Вы пронумеровать выделенный столбец, либо разукрасить (цвета идут соответственно своему номеру).

Решение.

Для начала нужно определиться сколько у нас будет переменных и за что каждая будет отвечать. Нам нужны переменные X (за начальную строку), У (за конечную строку), S (за букву столбца), kind (определяющая «тип» рас краски), k (за цвет раскраски), i (как диапазон между Х и У) и наконец N (объединяющая в себе и диапазон и «тип» раскраски). Также используем функцию InputBox, чтобы Вы могли ввести свои собственные данные:

 

Private Sub CommandButton4_Click()

 

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

 

Задача решена. СмотримJ

4.1. Выбираем конечную строку столбца

 

4.2. Выбираем действие для выделенного участка столбца.

 

 

4.2. Ответ

 

 

Задача №5

Решение.

Как в начале каждой задачи надо решить, сколько будет переменных и какая за что будет отвечать. Во-первых надо ввести массив (mass(100,100)), далее m – номер столбцов массива, потом n – номер строк массива, I – количество столбцов, j – количество строк, и str – через что мы делаем изменение массива.

 

Private Sub CommandButton_Click()

 

Dim mass(100, 100) As Integer

Dim m As Integer

Dim j As Integer

Dim n As Integer

Dim i As Integer

Dim str As String

 

str = " "

Введя необходимые нам данные, мы задаём нули для главной диагонали матрицы. Все оставшиеся числа матрицы мы оставляем нетронутым полем (vbCrLf – полем).

И в конце выводим ответ через MsgBox, которым и является str.

Задача в целом выглядит вот так:

 

Private Sub CommandButton11_Click()

Dim mass(100, 100) As Integer

Dim m As Integer

Dim j As Integer

Dim n As Integer

Dim i As Integer

Dim str As String

 

str = " "

n = CInt(InputBox("Введите количество столбцов n"))

m = CInt(InputBox("Введите количество строк m"))

For i = 1 To m

For j = 1 To n

mass(i, j) = CInt(InputBox("Введите элемент mass(" & i & "," & j & ")"))

If i = j Then mass(i, j) = 0

str = str & mass(i, j) & " "

Next j

str = str & vbCrLf

Next i

MsgBox (str)

End Sub

 

Задача решена. Смотрим J

5.1. Вводим определённый элемент массива

 

5.2. Ответ

 

Задача №6

Есть определённое количество товара и машина, которая должна его перевезти за один раз. (Количество, вес груза и грузоподъёмность машины задаём сами!)

Решение.

Для этой задачи нам понадобиться массив (mass (100)), а также такие переменные как n (количество товара в кг.), gruz (грузоподъёмность машины), sum (сумма всего груза) и I (вспомогательная переменная, которая поможет обозначить номера грузов). Чтобы не было осложнений mass, gruz u summ лучше описать, как тип Double (грузоподъёмность может быть и 90 кг, так же как и сумма груза).

 

Private Sub CommandButton5_Click()

Dim mass(100) As Double

Dim gruz As Double

Dim n As Integer

Dim summ As Double

Dim i As Integer

 

Далее вводим данные:

 

n = CInt(InputBox(" Введите число N"))

gruz = CInt(InputBox(" Введите грузоподъёмность машины"))

summ = 0

For i = 1 To n

mass(i) = CDbl(InputBox(" Введите вес " & i & "-го элемента"))

summ = summ + mass(i)

Next i

 

Далее задаём условие, которое выведет ответ нам на экран:

 

If summ < gruz Then MsgBox ("Эта машина сможет перенести предметы") Else MsgBox ("Эта машина не сможет перенести предметы")

End Sub

Задача решена. СмотримJ

6.1. Вводим грузоподъёмность 6.2. Смотрим ответ

 

 

Задача №7

Даны 2 целых числа: Д (день) и М (месяц), определяющие правильную дату невысокосного года. Вывести значение Д и М для даты, предшествующей указанной. (Case)

Решение

 

Задаём себе вопрос: Что конкретно мы хотим от программы?

Во-первых, нам необходимо ввести четыре переменные

 

Private Sub CommandButton1_Click()

Dim d, m, D_pred, M_pred As Integer

 

Далее, нам надо ввести дату, предыдущую от которой мы хотим узнать.

 

d = CDbl(InputBox("Введите число D "))

m = CDbl(InputBox("Введите число M "))

D_pred = d – 1 (Предыдущий День равен введённый день -1)

 

* Функция CDbl преобразует выражение в тип данных двойной точности Double.

Далее вводим условие задания через функцию If:

 

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

СмотримJ

7.1. Вводим число месяца.

7.2. Смотрим предыдущую дату (ответ)

Задача №8




Поделиться с друзьями:


Дата добавления: 2017-02-01; Просмотров: 47; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopediasu.com - Студопедия (2013 - 2026) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.013 сек.