Получены результаты выборов в городскую Думу: по каждому из К округов известно число...

0 голосов
81 просмотров

Получены результаты выборов в городскую Думу: по каждому из К округов известно число голосовавших за представителей каждой из М партий, а также известно число не участвовавших в голосовании. Выборы в округе считается состоявшимся, если в голосовании приянло участие не менее Р процентов избирателей. Определить, в каких округах был высший процент голосовавших избирателей и номера партий, получивших наибольшее число голосов в округах, где выборы считается состоявшимися. Исходная информация вводится с клавиатуры. (QBasic)


Информатика (14 баллов) | 81 просмотров
0

Sub Z()Dim k As IntegerDim m As IntegerDim p As SingleDim i As IntegerDim j As IntegerDim n As IntegerDim x As Integer

0

k = InputBox("Kolichestvo okrugov")m = InputBox("Kolichestvo partiy")p = InputBox("Porog yavki izbirateley (v %)")s = "Vibori sostoyalis v okrugakh: "For i = 1 To k For j = 1 To m x = InputBox("Okrug " & i & "Golosov za partiyou #" & j) n = n + x Next j x = InputBox("Округ " & i & ". Ne golosovalo") If (n / (n + x) * 100) > p Then s = s

0

или вот эту программу помогите перевести с VB на QB , если возможно....

0

все баллы отдам ау..

Дан 1 ответ
0 голосов

INPUT "Kolichestvo okrugov. K="; k
INPUT "Kolichestvo partiy. M="; m
INPUT "Porog yavki izbirateley (v %). P="; p
DIM g(k, m + 1)
DIM pr(k, 1)
FOR i = 1 TO k
    CLS
    PRINT "Okrug  "; i
    g(i, 0) = i
    FOR j = 1 TO m
        PRINT "Golosov za partiyou "; j;
        INPUT g(i, j)
        pr(i, 1) = pr(i, 1) + g(i, j)
    NEXT j
    INPUT "Ne golosovalo "; g(i, m + 1)
    pr(i, 0) = i
    pr(i, 1) = 100 * pr(i, 1) / (pr(i, 1) + g(i, m + 1))
NEXT i
CLS
FOR i = 1 TO k
    FOR j = 1 TO k
        IF pr(i, 1) > pr(j, 1) THEN
            x = pr(i, 1)
            y = pr(i, 0)
            pr(i, 1) = pr(j, 1)
            pr(i, 0) = pr(j, 0)
            pr(j, 1) = x
            pr(j, 0) = y
        END IF
    NEXT j
NEXT i
PRINT "Itogi po golosovavshim"
PRINT "Okrug #", "Golosovalo (%)", "Pobedila partia #"
FOR i = 1 TO k
    PRINT pr(i, 0), pr(i, 1),
    IF pr(i, 1) >= p THEN
        PRINT "Yes. Sostojlis",
        max = 0
        FOR j = 1 TO m
            IF g(pr(i, 0), j) > max THEN
                max = g(pr(i, 0), j)
                x = j
            END IF
        NEXT j
        PRINT x
    ELSE PRINT "No. Ne sostojlis"
    END IF
NEXT i

0

Alex, как я могу отправить баллы ? просто я новичок еще не знаю как отправлять

0

Никак не отправишь. Кол-во баллов ставится во время создания вопроса

0

нуу тогда , спасибо тебе большущее, помог в трудной ситуации

0

Проверяй быстрее. Некоторое время еще можно будет внести изменения в ответ, потом - нет.

0

думаю, все правильно...я не очень, честно говоря разбираюсь в программирования, пойдет! а еще Alex, если создам вопрос(ставлю все баллы) блок -схемы можешь нарисовать, если тебе не трудно?

0

Я имею ввиду запускай программу на компе, смотри как работает. Так ли, как тебе надо. Текст программы проверять не надо. Он правильный. Возможно, что просто не так понято задание.

0

Обещать ничего не могу. Будет время - сделаю.