">
Информатика Программирование
Информация о работе

Тема: Информационные системы и технологии

Описание: Вычислить сколько цифр в числе. Сколько раз во втором слове встречается первая буква первого слова. Какая из букв встречается в заданном слове чаще. Вставить по одному элементу перед всеми кратными элементами. Вывод программы в виде двухмерного массива.
Предмет: Информатика.
Дисциплина: Программирование.
Тип: Курсовая работа
Дата: 08.08.2012 г.
Язык: Русский
Скачиваний: 6
Поднять уникальность

Похожие работы:

РОССИЙСКАЯ ФЕДЕРАЦИЯ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

ФИЛИАЛ

ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

В Г. НОЯБРЬСКЕ

Курсовая работа

по дисциплине “Информационные системы и технологии”

г. Ноябрьск 2012

Содержание

Содержание2

Блок 1.3

Задача 1.3

Задача 2.4

Задача 3.6

Блок 2.8

Задача 1.8

Задача 2.9

Задача 3.11

Блок 3.12

Задача 1.12

Задача 2.15

Задача 3.17

Блок 4.20

Задача 1.20

Задача 2.24

Задача 3.27

Список литературы.34

Блок 1.

Задача 1. Вычислить сколько цифр в числе.



Рисунок 1. В окно вводится любое число

Способ 1:

Public Sub Massiv()

Dim hislo As String

Dim col As Integer

hislo = InputBox("Введителюбоечисло:")

col = Len(hislo)

MsgBox _

"Цифрвведенномчисле " &col&vbNewLine

End Sub

Способ 2:

Public Sub Massiv2()

Dim lNum As Long, iCol As Integer

lNum = CLng(InputBox("Введитечисло:"))

Do

iCol = iCol + 1

lNum = lNum * 0.1

Loop While lNum> 0

MsgBox _

"Цифрвведенномчисле " &iCol&vbNewLine

EndSub



Рисунок 2. Вывод программы

Задача 2. Сколько раз во втором слове встречается первая буква первого слова.



Рисунок 3. Вводится первое слово



Рисунок 4. Вводится второе слово

Sub Q()

Dim a, r, t, P, l As String

Dim n, Y, u As Integer

a = InputBox("Введите слово 1")

l = InputBox("Введите слово 2")

n = Len(l)

Y = 0

r = Left(a, 1)

For i = 1 To n

If r = Mid(l, i, 1) Then

Y = Y + 1

End If

Next i

MsgBox "Буква " & r & " повторяется " & Y & " раз"

EndSub



Рисунок 5. Вывод программы

Задача 3. Выясните, какая из букв (первая или последняя) встречается в заданном слове чаще.



Рисунок 6. Ввод слова

Sub Q()

Dim a, r, t, p As String

Dim n, y, u As Integer

Dim X()

a = InputBox("Введите слово")

n = Len(a)

ReDim Preserve X(1 To n)

r = Left(a, 1)

t = Right(a, 1)

For i = 1 To n

X(i) = Mid(a, i, 1)

Next i

y = 0

u = 0

For i = 1 To n

If X(i) = r Then

y = y + 1

End If

If X(i) = t Then

u = u + 1

End If

Next i

If y > u Then

MsgBox ("Первая буква встречается чаще")

End If

If y < u Then

MsgBox ("Вторая буква встречается чаще")

End If

If y = u Then

MsgBox ("Обе буквы встречаются одинаковое количество раз")

End If

End Sub



Рисунок 7. Вывод программы

Блок 2.

Задача 1. Вставить по одному элементу перед всеми элементами, кратными числу 3.



Рисунок 8. Вводится количество элементов

Sub Massiv()

Dim n As Integer

Dim A()

Dim B()

Dim j As Variant

Dim r As Integer

Dim v As Integer

n = InputBox("Количество элементов", , 10)

r = 50

v = 3

ReDim Preserve A(1 To n)

ReDim Preserve B(1 To n * 2)

For i = 1 To n

A(i) = Int(10 * Rnd()) - Int(5 * Rnd())

Next i

Set wsh = ActiveSheet

wsh.Cells.Clear

For i = 1 To n

wsh.Cells(1, i) = A(i)

Next i

j = 1

For i = 1 To n

If A(i) Mod v = 0 Then

B(j) = r

B(j + 1) = A(i)

j = j + 2

Else

B(j) = A(i)

j = j + 1

End If

Next i

For j = 1 To n * 2

wsh.Cells(2, j) = B(j)

Next j

EndSub



Рисунок 9. Вывод программы в виде двух массивов

Задача 2. Дан квадратный массив из n элементов. Найти сумму элементов главной диагонали.



Рисунок 10.Вводится n элементов

Sub tii()

Dim X()

Dim m, n As Integer

n = InputBox("Введите n")

ReDim Preserve X(1 To n, 1 To n)

For i = 1 To n

For j = 1 To n

X(i, j) = Int(10 * Rnd()) - Int(5 * Rnd())

Next j

Next i

Set wsh = ActiveSheet

wsh.Cells.Clear

For i = 1 To n

For j = 1 To n

wsh.Cells(i, j) = X(i, j)

Next j

Next i

m = 0

For i = 1 To n

For j = 1 To n

If i = j Then

m = m + X(i, j)

End If

Nextj

Nexti

wsh.Cells(n + 1, n + 1) = "Сумма главной диагонали равна " & m

EndSub



Рисунок 11. Вывод программы в виде двухмерного массива

Задача 3. Вставить по одному элементу перед всеми положительными элементами



Рисунок 12. Вводится любое количество элементов

Public Sub Da()

Dim n As Integer

Dim A()

Dim B()

Dim j As Variant

n = InputBox("Количествоэлементов", , 10)

ReDim Preserve A(1 To n)

ReDim Preserve B(1 To n)

For i = 1 To n

A(i) = Int(10 * Rnd()) - Int(5 * Rnd())

Next i

Set wsh = ActiveSheet

wsh.Cells.Clear

For i = 1 To n

wsh.Cells(1, i) = A(i)

Next i

j = 1

For i = 1 To n

If (A(i) Mod 2 <> 0) And (A(i) Mod 7 <> 0) Then

B(j) = A(i)

j = j + 1

End If

Next i

For j = 1 To n

wsh.Cells(2, j) = B(j)

Next j

EndSub



Рисунок 13. Вывод программы в виде двух массивов

Блок 3.

Задача 1. Заполнить квадратный массив В размером NxN следующим образом:

011110

201104

220044

220044

203304

033330



Рисунок 14. Вводится n элементов

Dim n, a, b As Integer

Dim MatricaB() As Integer

Public Sub Massiv()

n = InputBox("Введите n")

ReDimMatricaB(n, n)

For i = 1 To n

For j = 1 To n

MatricaB(i, j) = 1

ActiveSheet.Cells(i, j) = MatricaB(i, j)

Next j

Next i

a = 1

For i = 1 To n

For j = 1 To a

MatricaB(i, j) = 2

ActiveSheet.Cells(i, j) = MatricaB(i, j)

Next j

a = a + 1

Next i

a = n

For j = 1 To n

For i = a To n

MatricaB(i, j) = 3

ActiveSheet.Cells(i, j) = MatricaB(i, j)

Next i

a = a - 1

Next j

a = n

For j = 1 To n

For i = a To n

MatricaB(i, j) = 3

ActiveSheet.Cells(i, j) = MatricaB(i, j)

Next i

a = a - 1

Next j

a = n / 2

b = (n / 2) + 1

For j = (n / 2) + 1 To n

For i = a To b

MatricaB(i, j) = 4

ActiveSheet.Cells(i, j) = MatricaB(i, j)

Next i

a = a - 1

b = b + 1

Next j

j = 1

For i = 1 To n

MatricaB(i, j) = 0

ActiveSheet.Cells(i, j) = MatricaB(i, j)

j = j + 1

Next i

i = n

For j = 1 To n

MatricaB(i, j) = 0

ActiveSheet.Cells(i, j) = MatricaB(i, j)

i = i - 1

Next j

End Sub



Рисунок 15. Вывод программы в виде двухмерного массива

Задача 2. Заполнить массив А размером NxM следующим образом:

21201918171615

891011121314

7654321

Рисунок 16. Ввод N элементов массива



Рисунок 17. Ввод M элементов массива

Sub too()

Dim X()

Dim n, m, Q, w, e, r, t, Y, u As Integer

n = InputBox("N")

m = InputBox("M")

Q = n * m

ReDim Preserve X(1 To n, 1 To m)

For i = 1 To n

For j = 1 To m

X(i, j) = Q

Q = Q – 1

Next j

Next i

Set wsh = ActiveSheet

wsh.Cells.Clear

For i = 1 To n

For j = 1 To m

wsh.Cells(i, j) = X(i, j)

Next j

Next i

End Sub

 Рисунок 18. Вывод программы в виде двухмерного массива

Задача 3. Заполнить квадратный массив В размером NxN следующим образом:

611115

261154

226544

225644

253364

533336

Рисунок 19. Ввод N элементов массива

Dim N, a, b As Integer

Dim Mass() As Integer

Public Sub lala()

N = InputBox("Введите N - размер массива")

ReDimMass(N, N)

For i = 1 To N

For j = 1 To N

Mass(i, j) = 1

ActiveSheet.Cells(i, j) = Mass(i, j)

Next j

Next i

a = 1

For i = 1 To N

For j = 1 To a

Mass(i, j) = 2

ActiveSheet.Cells(i, j) = Mass(i, j)

Next j

a = a + 1

Next i

a = N

For j = 1 To N

For i = a To N

Mass(i, j) = 3

ActiveSheet.Cells(i, j) = Mass(i, j)

Next i

a = a - 1

Next j

a = N

For j = 1 To N

For i = a To N

Mass(i, j) = 3

ActiveSheet.Cells(i, j) = Mass(i, j)

Next i

a = a - 1

Next j

a = N / 2

b = (N / 2) + 1

For j = (N / 2) + 1 To N

For i = a To b

Mass(i, j) = 4

ActiveSheet.Cells(i, j) = Mass(i, j)

Next i

a = a - 1

b = b + 1

Next j

j = 1

For i = 1 To N

Mass(i, j) = 6

ActiveSheet.Cells(i, j) = Mass(i, j)

j = j + 1

Next i

i = N

For j = 1 To N

Mass(i, j) = 5

ActiveSheet.Cells(i, j) = Mass(i, j)

i = i - 1

Next j

End Sub



Рисунок 20. Вывод программы в виде двухмерного массива

Блок 4.

Задача 1. Пусть шесть населенных пунктов, обозначенные номерами от 1 до 6 (величина k), а пять кандидатов – номерами от 1 до 5 (величина n). Количество голосов, набранных кандидатами в каждом пункте, определяется формулой ak=random(10i+50), где i – номер Вашего варианта. В результате получается таблица результатов голосования, где значения в строках – данные из населенных пунктов, а в столбцах – данные по конкретным кандидатам. Создайте в подпрограмме одномерный массив с искомыми данными в соответствии со своим вариантом. В каких населенных пунктах первый кандидат набрал максимальное количество голосов? У кого из кандидатов наименьший рейтинг?



Рисунок 21.Просто включаем программу

Sub rii()

Dim X(1 To 5) As String

Dim C(1 To 6) As String

Dim V(1 To 5)

Dim b(1 To 5)

Dim n(1 To 5)

Dim a(1 To 5)

Dim S(1 To 5)

Dim D(1 To 5)

Dim P(1 To 6)

Dim Q(1 To 5)

Dim f, g, h, j, k, l As Long

Dim t, y, r, e, w, u As String

X(1) = "Иванов"

X(2) = "Петров"

X(3) = "Сидоров"

X(4) = "Карандашов"

X(5) = "Ручкин"

C(1) = "Иваново"

C(2) = "Петрово"

C(3) = "Сидорово"

C(4) = "Карандашово"

C(5) = "Ручкино"

C(6) = "Ноябрьск"

Set wsh = ActiveSheet

wsh.Cells.Clear

For i = 1 To 5

wsh.Cells(i + 1) = X(i)

Next i

For j = 1 To 6

wsh.Cells(j + 1, 1) = C(j)

Next j

For i = 1 To 5

V(i) = Int(200 * Rnd())

b(i) = Int(200 * Rnd())

n(i) = Int(200 * Rnd())

a(i) = Int(200 * Rnd())

S(i) = Int(200 * Rnd())

D(i) = Int(200 * Rnd())

Next i

For i = 1 To 5

wsh.Cells(2, i + 1) = V(i)

wsh.Cells(3, i + 1) = b(i)

wsh.Cells(4, i + 1) = n(i)

wsh.Cells(5, i + 1) = a(i)

wsh.Cells(6, i + 1) = S(i)

wsh.Cells(7, i + 1) = D(i)

Next i

f = 0

g = 0

h = 0

j = 0

k = 0

l = 0

f = V(1) + b(1) + n(1) + a(1) + S(1) + D(1)

g = V(2) + b(2) + n(2) + a(2) + S(2) + D(2)

h = V(3) + b(3) + n(3) + a(3) + S(3) + D(3)

k = V(4) + b(4) + n(4) + a(4) + S(4) + D(4)

l = V(5) + b(5) + n(5) + a(5) + S(5) + D(5)

If f < g And f < h And f < k And f < l Then

MsgBox "Наименьший ретинг у Иванова"

End If

If g < f And g < h And g < k And g < l Then

MsgBox "Наименьший ретинг у Петрова"

End If

If h < g And h < f And h < k And h < l Then

MsgBox "Наименьший ретинг у Сидорова"

End If

If k < g And k < h And k < f And k < l Then

MsgBox "Наименьший ретинг у Карандашова"

End If

If l < g And l < h And l < k And l < f Then

MsgBox "Наименьший ретинг у Ручкина"

End If

If V(1) > b(1) And V(1) > n(1) And V(1) > a(1) And V(1) > S(1) And V(1) > D(1) Then

MsgBox "У Иванова наибольший ретинг в Иваново"

End If

If b(1) > V(1) And b(1) > n(1) And b(1) > a(1) And b(1) > S(1) And b(1) > D(1) Then

MsgBox "У Иванова наибольший ретинг в Петрово"

End If

If n(1) > b(1) And n(1) > V(1) And n(1) > a(1) And n(1) > S(1) And n(1) > D(1) Then

MsgBox "У Иванова наибольший ретинг в Сидорово"

End If

If a(1) > b(1) And a(1) > n(1) And a(1) > V(1) And a(1) > S(1) And a(1) > D(1) Then

MsgBox "У Иванова наибольший ретинг в Карандашово"

End If

If S(1) > b(1) And S(1) > n(1) And S(1) > a(1) And S(1) > V(1) And S(1) > D(1) Then

MsgBox "У Иванова наибольший ретинг в Ручкино"

End If

If D(1) > b(1) And D(1) > n(1) And D(1) > a(1) And D(1) > S(1) And D(1) > V(1) Then

MsgBox "У Иванова наибольший ретинг в Ноябрьске"

End If

End Sub



Рисунок 22. Вывод программы в виде таблицы с вплывающим окном



Рисунок 23. Вывод программы в виде таблицы с вплывающим окном

Задача 2. Пусть шесть населенных пунктов, обозначенные номерами от 1 до 6 (величина k), а пять кандидатов – номерами от 1 до 5 (величина n). Количество голосов, набранных кандидатами в каждом пункте, определяется формулой ak=random(10i+50), где i – номер Вашего варианта. В результате получается таблица результатов голосования, где значения в строках – данные из населенных пунктов, а в столбцах – данные по конкретным кандидатам. Создайте в подпрограмме одномерный массив с искомыми данными в соответствии со своим вариантом. В каком населенном пункте проголосовало наибольшее количество людей?У кого из кандидатов рейтинг превысил некоторое заданное число р?

Рисунок 24. Ввод значения рейтинга

Sub rii()

Dim X(1 To 5) As String

Dim C(1 To 6) As String

Dim V(1 To 5)

Dim b(1 To 5)

Dim n(1 To 5)

Dim a(1 To 5)

Dim S(1 To 5)

Dim D(1 To 5)

Dim P(1 To 6)

Dim Q(1 To 5)

Dim f, g, h, j, k, l, o As Long

Dim t, Y, r, e, w, u As String

o = InputBox("Введите значение рейтинга")

X(1) = "Иванов"

X(2) = "Петров"

X(3) = "Сидоров"

X(4) = "Карандашов"

X(5) = "Ручкин"

C(1) = "Иваново"

C(2) = "Петрово"

C(3) = "Сидорово"

C(4) = "Карандашово"

C(5) = "Ручкино"

C(6) = "Ноябрьск"

Set wsh = ActiveSheet

wsh.Cells.Clear

For i = 1 To 5

wsh.Cells(i + 1) = X(i)

Next i

For j = 1 To 6

wsh.Cells(j + 1, 1) = C(j)

Next j

For i = 1 To 5

V(i) = Int(10000 * Rnd())

b(i) = Int(10000 * Rnd())

n(i) = Int(10000 * Rnd())

a(i) = Int(10000 * Rnd())

S(i) = Int(10000 * Rnd())

D(i) = Int(10000 * Rnd())

Next i

For i = 1 To 5

wsh.Cells(2, i + 1) = V(i)

wsh.Cells(3, i + 1) = b(i)

wsh.Cells(4, i + 1) = n(i)

wsh.Cells(5, i + 1) = a(i)

wsh.Cells(6, i + 1) = S(i)

wsh.Cells(7, i + 1) = D(i)

Next i

f = 0

g = 0

h = 0

j = 0

k = 0

l = 0

For i = 1 To 5

f = f + V(i)

g = g + b(i)

h = h + n(i)

j = j + a(i)

k = k + S(i)

l = l + D(i)

Next i

P(1) = f

P(2) = g

P(3) = h

P(4) = j

P(5) = k

P(6) = l

Max = P(1)

For i = 1 To 6

If P(i) > Max Then

Max = P(i)

u = C(i)

End If

Next i

wsh.Cells(9, 2) = "Наибольшее число проголосовавших в населенном пункте: " & u

For i = 1 To 5

Q(i) = V(i) + b(i) + n(i) + a(i) + S(i) + D(i)

Next i

If Q(1) > o Then

t = X(1)

End If

If Q(2) > o Then

Y = X(2)

End If

If Q(3) > o Then

r = X(3)

End If

If Q(4) > o Then

e = X(4)

End If

If Q(5) > o Then

w = X(5)

EndIf

MsgBox "Кандидаты, у которых рейтинг больше введенного: " & t & " " & Y & " " & r & " " & e & " " & w

EndSub



Рисунок 25. Вывод программы в виде таблицы с вплывающим окном

Задача 3. Пусть шесть населенных пунктов, обозначенные номерами от 1 до 6 (величина k), а пять кандидатов – номерами от 1 до 5 (величина n). Количество голосов, набранных кандидатами в каждом пункте, определяется формулой ak=random(10i+50), где i – номер Вашего варианта. В результате получается таблица результатов голосования, где значения в строках – данные из населенных пунктов, а в столбцах – данные по конкретным кандидатам. Создайте в подпрограмме одномерный массив с искомыми данными в соответствии со своим вариантом.

Сколько избирателей принли участие в голосовании в каждом из населенных пунктов?

В каких населенных пунктах первый и пятый кандидаты набрали более 100 голосов?



Рисунок 26. Просто включаем программу

Sub rii()

Dim X(1 To 5) As String

Dim C(1 To 6) As String

Dim V(1 To 5)

Dim b(1 To 5)

Dim n(1 To 5)

Dim a(1 To 5)

Dim S(1 To 5)

Dim D(1 To 5)

Dim P(1 To 6)

Dim Q(1 To 5)

Dim f, g, h, j, k, l As Long

Dim t, y, r, e, w, u As String

X(1) = "Иванов"

X(2) = "Петров"

X(3) = "Сидоров"

X(4) = "Ермаков"

X(5) = "Кренделев"

C(1) = "Иваново"

C(2) = "Петрово"

C(3) = "Сидорово"

C(4) = "Ермаково"

C(5) = "Кренделево"

C(6) = "Ермолаево"

Set wsh = ActiveSheet

wsh.Cells.Clear

For i = 1 To 5

wsh.Cells(i + 1) = X(i)

Next i

For j = 1 To 6

wsh.Cells(j + 1, 1) = C(j)

Next j

For i = 1 To 5

V(i) = Int(200 * Rnd())

b(i) = Int(200 * Rnd())

n(i) = Int(200 * Rnd())

a(i) = Int(200 * Rnd())

S(i) = Int(200 * Rnd())

D(i) = Int(200 * Rnd())

Next i

For i = 1 To 5

wsh.Cells(2, i + 1) = V(i)

wsh.Cells(3, i + 1) = b(i)

wsh.Cells(4, i + 1) = n(i)

wsh.Cells(5, i + 1) = a(i)

wsh.Cells(6, i + 1) = S(i)

wsh.Cells(7, i + 1) = D(i)

Next i

f = 0

g = 0

h = 0

j = 0

k = 0

l = 0

For i = 1 To 5

f = f + V(i)

g = g + b(i)

h = h + n(i)

j = j + a(i)

k = k + S(i)

l = l + D(i)

Next i

For i = 1 To 6

wsh.Cells(2, 8) = "Общее количество проголосовавших в Иваново равно: " & f

wsh.Cells(3, 8) = "Общее количество проголосовавших в Петрово равно: " & g

wsh.Cells(4, 8) = "Общее количество проголосовавших в Сидорово равно: " & h

wsh.Cells(5, 8) = "Общее количество проголосовавших в Ермаково равно: " & j

wsh.Cells(6, 8) = "Общее количество проголосовавших в Кренделево равно: " & k

wsh.Cells(7, 8) = "Общее количество проголосовавших в Ермолаево равно: " & l

Next i

MsgBox "Рейтин больше 100 у Иванова в следующих населенных пунктах:"

If V(1) > 100 Then

MsgBox "Иваново"

End If

If b(1) > 100 Then

MsgBox "Петрово"

End If

If n(1) > 100 Then

MsgBox "Сидорово"

End If

If a(1) > 100 Then

MsgBox "Ермаково"

End If

If S(1) > 100 Then

MsgBox "Кренделево"

End If

If D(1) > 100 Then

MsgBox "Ермолаево"

End If

MsgBox "Рейтин больше 100 у Ермолаева в следующих населенных пунктах:"

If V(5) > 100 Then

MsgBox "Иваново"

End If

If b(5) > 100 Then

MsgBox "Петрово"

End If

If n(5) > 100 Then

MsgBox "Сидорово"

End If

If a(5) > 100 Then

MsgBox "Ермаково"

End If

If S(5) > 100 Then

MsgBox "Кренделево"

End If

If D(5) > 100 Then

MsgBox "Ермолаево"

End If

End Sub



Рисунок 27. Вывод программы в виде таблицы с вплывающим окном



Рисунок 28. Вывод программы в виде таблицы с вплывающим окном



Рисунок 29. Вывод программы в виде таблицы с вплывающим окном



Рисунок 30. Вывод программы в виде таблицы с вплывающим окном



Рисунок 31. Вывод программы в виде таблицы с вплывающим окном



Рисунок 32. Вывод программы в виде таблицы с вплывающим окном



Рисунок 33. Вывод программы в виде таблицы с вплывающим окном



Рисунок 34. Вывод программы в виде таблицы с вплывающим окном

Список литературы.

Основы программирования на Visual Basic и VBA в Exel 2007 /Г. З. Гарбер , 2008

MATLAB. Программирование на Visual С#, Borland JBuilder, VBA /Н. К. Смоленцев, 2009

Visual Basic в задачах и примерах / И.К. Сафронов, 2008

Visual Basic 2010 на примерах / В. В. Зиборов, 2010

Программирование на VBA в Microsoft Office 2010 / Л. Д. Слепцова, 2010

Visual Basic 6. Учебный курс / С. Браун, 2007

VBA и макросы в Microsoft Office Exsel 2007 / Билл Джелен, Трейси Сирстад, 2008

Программирование на VBA в Microsoft Office 2007. Самоучитель / Л. Д. Спепцова, 2007

Exsel и VBA:Профессиональная разработка приложений / Стивет Буллен, Роб Боуви, Джон Грин, 2007

Приемы программирования в среде Visual Basic for Application MS Office / Ф.И. Воробьева, Е.С. Воробьев, 2010

Интернет-ресурсы:

http://эссе.рф - сборник не проиндексированных рефератов. Поиск по рубрикам и теме. Большинство текстов бесплатные. Магазин готовых работ.