Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Немного переделать программу / 6 сообщений из 6, страница 1 из 1
29.05.2009, 15:10
    #36015982
SoAndSo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Немного переделать программу
Помогите, пожалуйста, переделать программу так, чтобы было не 3 function, а все в 1. Никак не получается. Я решила с 3, а преподаватель сказал поместить все в 1. Вот условие задачи, если нужно:
В избирательный комитет поступили сведения о результатах голосования в избирательных округах, такие как: номер округа, название округа, списочный состав голосующих, число проголосовавших избирателей. Соз-дайте приложение, которое бы выдавало сообщение по каждому избирательному округу и в целом по краю о том, состоялось голосование или нет. Голосование считается состоявшимся, если количество проголосовавших избирателей больше или равно 25 % от списочного состава.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
Private Type stisok
nom As Integer
nameok As String
fam1 As String
fam2 As String
fam3 As String
chisl1 As Integer
chisl2 As Integer
chisl3 As Integer
   End Type
Dim nameok( 1  To  3 ) As String
Dim nom( 1  To  3 ) As Integer
Dim fam1( 1  To  20 ) As String
Dim fam2( 1  To  15 ) As String
Dim fam3( 1  To  20 ) As String
Dim chisl1( 1 ) As Integer
Dim chisl2( 1 ) As Integer
Dim chisl3( 1 ) As Integer
Dim s As Integer
Dim i As Integer
Dim k As Integer
Dim t As Integer
Dim u As Integer

Private Sub Command1_Click()
Show ' метод показать

Dim a(1 To 3)  As stisok
Dim nameok As String, nom As Integer
b = InputBox("Введите номер округа", "номер округа") ' Ввод номера округа
Picture1.Print b

For i =  1  To  3 
' если округ то название округа
 If b = 1 Then
                a(1).nameok = "лицей":
                Picture2.Print a(i).nameok;
       ElseIf b = 2 Then
                a(2).nameok = "администрация":
                Picture2.Print a(i).nameok;
       ElseIf b = 3 Then
                a(3).nameok = "школа ":
                Picture2.Print a(i).nameok;
       Else
       i = 3
       MsgBox "Нет такого округа", 64, "Вывод по голосованию"
       s = 0
       End If
Next i

' если округ то список
Dim f( 1  To  20 )  As stisok
Dim fam1 As String, fam2 As String, fam3 As String, chisl1 As Integer, chisl2 As Integer, chisl3 As Integer

For i =  1  To  20 
        If a( 1 ).nameok = "лицей" Then
        'список один
f(1).fam1 = "Амирханян": f(2).fam1 = "Бакулина":
f(3).fam1 = "Бирюлина": f(4).fam1 = "Божко":
f(5).fam1 = "Бродецкая": f(6).fam1 = "Вайдурова":
f(7).fam1 = "Гребнев": f(8).fam1 = "Гусева":
f(9).fam1 = "Гусейнова": f(10).fam1 = "Жеребцова":
f(11).fam1 = "Колбасникова": f(12).fam1 = "Калинина":
f(13).fam1 = "Кобанова": f(14).fam1 = "Ковалева":
f(15).fam1 = "Коцюба": f(16).fam1 = "Крыкливая":
f(17).fam1 = "Лапенков": f(18).fam1 = "Матушкин":
f(19).fam1 = "Новикова": f(20).fam1 = "Резанова":
Picture3.Print f(i).fam1
       ElseIf a(2).nameok = "администрация" Then
       'список два
f( 1 ).fam2 = "Ахметова": f( 2 ).fam2 = "Агнейко":
f( 3 ).fam2 = "Бойчик": f( 4 ).fam2 = "Бочкин":
f( 5 ).fam2 = "Вайзер": f( 6 ).fam2 = "Гумелев":
f( 7 ).fam2 = "Дибичь": f( 8 ).fam2 = "Емельянова":
f( 9 ).fam2 = "Жибенков": f( 10 ).fam2 = "Занозина":
f( 11 ).fam2 = "Икоников": f( 12 ).fam2 = "Кастылькина":
f( 13 ).fam2 = "Лукъянов": f( 14 ).fam2 = "Лукожкина":
f( 15 ).fam2 = "Чапаев":
Picture3.Print f(i).fam2
       ElseIf a( 3 ).nameok = "школа " Then
       'список три
f(1).fam3 = "Аньтькина": f(2).fam3 = "Мехальчиков":
f(3).fam3 = "Михайлов": f(4).fam3 = "Михайлова":
f(5).fam3 = "Мусохранова": f(6).fam3 = "Муражкa":
f(7).fam3 = "Нуров": f(8).fam3 = "Непомнящий":
f(9).fam3 = "Некрасов": f(10).fam3 = "Незнайка":
f(11).fam3 = "Обельский": f(12).fam3 = "Окишев":
f(13).fam3 = "Пимашков": f(14).fam3 = "Рейкина":
f(15).fam3 = "Старикова": f(16).fam3 = "Таркова":
f(17).fam3 = "Турчак": f(18).fam3 = "Чернявская":
Picture3.Print f(i).fam3
       Else
       End If
Next i
'число проголосовавших избирателей
Dim chl( 1 )  As stisok
Dim n As String
For i =  1  To  1 
        If a( 1 ).nameok = "лицей" Then
             s = summa(n)
             Picture5.Print s; "%"
             Picture4.Print k
        ElseIf a( 2 ).nameok = "администрация" Then
            s = summ(w)
             Picture5.Print s; "%"
             Picture4.Print t
        ElseIf a( 3 ).nameok = "школа " Then
             s = sum(v)
             Picture5.Print s; "%"
             Picture4.Print u
       Else
       End If
Next i
'вывод окна сообщени о совершении или не совершении голосования
If s < "25" Then
MsgBox "Голосование не состоялось", 64, "Вывод по голосованию"
Else
MsgBox "Голосование состоялось", 64, "Вывод по голосованию"
MsgBox "Голосование по краю состоялось", 64, "Вывод по голосованию"
End If

End Sub
'очистка окна
Private Sub Command2_Click()
Cls
Picture1.Cls
Picture2.Cls
Picture3.Cls
Picture4.Cls
Picture5.Cls
End Sub
'сумма первого округа
Public Function summa(n)
summa = 0
summa = summa + (k * 100 \ 53)
End Function
'сумма второго округа
Public Function summ(w)
summ =  0 
summ = summ + (t *  100  \  53 )
End Function
'сумма третьего округа
Public Function sum(v)
sum = 0
sum = sum + (u * 100 \ 53)
End Function
'кол-во голосующих
Private Sub Form_Load()
k = "12"
t = "14"
u = "16"
End Sub
...
Рейтинг: 0 / 0
29.05.2009, 15:21
    #36016025
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Немного переделать программу
> Автор: SoAndSo
> Помогите, пожалуйста, переделать программу так, чтобы было не 3 function, а все в 1. Никак не получается. Я
> решила с 3, а преподаватель сказал поместить все в 1. Вот условие задачи, если нужно:

Условие не нужно. И я позволю себе процитировать
себя, любимого

А по твоему коду нужно было не выпендриватся, а делать нормальные функции без непонятных аргументов, которые
не используются. А если, уж используешь аргументы, так вполне можно обойтись и одной функцией, как правильно, указал
преподаватель


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
29.05.2009, 15:56
    #36016171
VladConn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Немного переделать программу
SoAndSo,

Посмотрите на Ваши три функции:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Function summa(n)
    summa =  0 
    summa = summa + (k *  100  \  53 )
End Function

Public Function summ(w)
    summ =  0 
    summ = summ + (t *  100  \  53 )
End Function

Public Function sum(v)
    sum =  0 
    sum = sum + (u *  100  \  53 )
End Function

На самом деле, это как бы одна и таже ф-я под разными названиями. Их недостаток состоит в том, что они получают аргументы соответственно n, w и v, но НЕ ИСПОЛЬЗУЮТ их. Понимаете? Вместо этого они используют переменные k, t и u, которые и следует передавать как аргументы. И использовать одну из этих функций, все равно какую. Можно еще заменить две константы 100 \ 53 на соответствующую ОДНУ константу.

И вот это можно убрать:

Код: plaintext
1.
2.
    summa =  0 
    summ =  0 
    sum =  0 

И тогда оставить, например, так:

Код: plaintext
1.
2.
Public Function sum(Byval v as Integer)
    sum = v  *  100  \  53 
End Function

Кстати, это у Вас не простое деление, Вы в курсе?

Но вообще-то кошмар там у Вас, ночной ...

:0)

Успехов!
...
Рейтинг: 0 / 0
29.05.2009, 19:06
    #36016614
SoAndSo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Немного переделать программу
Это не мой код, а подруга попросила спросить на форуме, может кто-нибудь поможет. Я у нее вообще ничего не понимаю, поэтому и хотела, чтобы кто-то помог заменить 3 на 1 и убрать все лишнее
...
Рейтинг: 0 / 0
29.05.2009, 19:13
    #36016627
SoAndSo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Немного переделать программу
Все, спасибо, вроде работает :)
...
Рейтинг: 0 / 0
29.05.2009, 19:14
    #36016632
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Немного переделать программу
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Немного переделать программу / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]