powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Немного переделать программу
6 сообщений из 6, страница 1 из 1
Немного переделать программу
    #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
Немного переделать программу
    #36016025
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: SoAndSo
> Помогите, пожалуйста, переделать программу так, чтобы было не 3 function, а все в 1. Никак не получается. Я
> решила с 3, а преподаватель сказал поместить все в 1. Вот условие задачи, если нужно:

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

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


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Немного переделать программу
    #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
Немного переделать программу
    #36016614
SoAndSo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это не мой код, а подруга попросила спросить на форуме, может кто-нибудь поможет. Я у нее вообще ничего не понимаю, поэтому и хотела, чтобы кто-то помог заменить 3 на 1 и убрать все лишнее
...
Рейтинг: 0 / 0
Немного переделать программу
    #36016627
SoAndSo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все, спасибо, вроде работает :)
...
Рейтинг: 0 / 0
Немного переделать программу
    #36016632
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Немного переделать программу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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