powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / задание с массивом. нужна помощь
17 сообщений из 17, страница 1 из 1
задание с массивом. нужна помощь
    #37414810
Maximvlz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Друзья, необходима небольшая помощь. Есть задание, я его решил как смог, учитель говорит, что не правильно,. Пожалуйста помогите найти ошибку или возможно предложите свой вариант решения. Ниже собственно само задание и решение мое. Заранее спасибо!
Задание. Написать программу, которая сначала вводит n чисел в одномерный массив, а затем определяет каких чисел в массиве больше, положительных или отрицательных.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private x( 1  To  50 ) As Single
Private i As Integer
Private n, if As Single
Private Sub Command1_click()
n=Val(Text1.Text)
For i =  1  To n
x (i) = InputBox("x("&;&")=", x(i))
List1.Add Item x(i)
Next i
End Sub
Private Sub Command2.Click()
Dim pp, oo As Single
For i =  1  To n
if x (i) >  0  Then pp=pp +  1 
End if
Next i
if x (i) <  0  Then oo=oo +  1 
End If
If oo>pp Then Print "Отрицательных больше"
If pp=oo Then Print "Количество отрицат и полож равно"
If pp>oo Then Print "Положительных больше"
End Sub.
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414823
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут куча ошибок вот все исправлено

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private x( 1  To  50 ) As Single
Private i As Integer
Private n As Integer
Private Sub Command1_click()
    n = Val(Text1.Text)
    For i =  1  To n
        x(i) = InputBox("Введите x=")
        List1.AddItem x(i)
    Next i
End Sub

Private Sub Command2_Click()
    Dim pp, oo As Integer
    pp = oo =  0 
    For i =  1  To n
        If x(i) >  0  Then pp = pp +  1 
        If x(i) <  0  Then oo = oo +  1 
    Next i
    If oo>pp Then Print "Отрицательных больше"
    If pp=oo Then Print "Количество отрицат и полож равно"
    If pp>oo Then Print "Положительных больше"
End Sub

...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414824
Maximvlz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bac, спасибо!
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414896
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bacвсе исправленоАга, как винда новой версии, старые ошибки исправлены, новые внесены
проверять-то хотя бы правильность работы кто будет?
Код: plaintext
pp = oo =  0 
и чему будет равна переменная pp в результате этого выражения и правильно ли будет выведен результат?
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414964
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proпроверять-то хотя бы правильность работы кто будет?
Код: plaintext
pp = oo =  0 
и чему будет равна переменная pp в результате этого выражения и правильно ли будет выведен результат?

Конечно все проверил: pp равно 0. Могу прислать проект.
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414968
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bacКонечно все проверил: pp равно 0. Могу прислать проект
давай-давай, присылай

(ЗЫ: это тебе не C++)
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414971
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bacShocker.Proпроверять-то хотя бы правильность работы кто будет?
Код: plaintext
pp = oo =  0 
и чему будет равна переменная pp в результате этого выражения и правильно ли будет выведен результат?

Конечно все проверил: pp равно 0. Могу прислать проект.

Верно - прошу прощения. С++ дает себя знать! В выражении pp сначала true, потом в первом сложении 0, т.к. идет преобразование true в -1.


Код: 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.
Option Explicit
Private x( 1  To  50 ) As Single
Private i As Integer
Private n As Integer

Private Sub Command1_click()
    n = Val(Text1.Text)
    For i =  1  To n
        x(i) = InputBox("Введите x=")
        List1.AddItem x(i)
    Next i
End Sub

Private Sub Command2_Click()
    Dim oo As Integer
    Dim pp As Integer
    pp = oo =  0 
    For i =  1  To n
        If x(i) >  0  Then pp = pp +  1 
        If x(i) <  0  Then oo = oo +  1 
    Next i
    If oo>pp Then Print "Отрицательных больше"
    If pp=oo Then Print "Количество отрицат и полож равно"
    If pp>oo Then Print "Положительных больше"
End Sub


PS Shocker.Pro Как всегда точен!!!
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414973
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
    pp =  0 
    oo =  0 

Вот это надо исправить
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414975
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bac
Код: plaintext
1.
2.
    pp =  0 
    oo =  0 

Вот это надо исправитьЗачем? Лучше просто убрать.

ЗЫ: Раз пошла такая пьянка взялись исправлять, то и это исправьте:
Код: plaintext
1.
        x(i) = InputBox("Введите x=")
        List1.AddItem x(i)
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414978
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаЛучше просто убрать.скорее, не "лучше", а "можно". Я лично всегда инициализирую переменные, когда они далее используются в цикле или другим образом подразумевается их начальное значение. Это хорошо облегчает понимание программы, а иногда - конвертацию кода на другой язык :)
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414983
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища и это исправьте:
Код: plaintext
1.
2.
        
x(i) = InputBox("Введите x=")
List1.AddItem x(i)


Не понял тут что не так?
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414984
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Shocker.Pro: Со стилевой поправкой полностью согласен.
А вот фразаоблегчает конвертацию кода на другой язык
поставила в тупик. Разве не во всех ...современных(?) языках переменные целого типа по умолчанию инициализируются нулём ?
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414985
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bac,
нет контроля типов (или обработчика ошибок).
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414986
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаРазве не во всех ...современных(?) языках переменные целого типа по умолчанию инициализируются нулём ?
В TSQL (куда мне часто приходится переводить код) это NULL, в .NET (кажется) что-то типа nothing
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37414991
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотищаbac,
нет контроля типов (или обработчика ошибок).

Что нет контроля типов - понятно. Я как-то и не задавался этой проблемой. Думаю ученикам это не надо.
И вообще мне не нравится inputBox. А значения лучше вводить через таблицу. Тогда не потребуется вводить количество.
И про положительные и отрицательный можно сообщать непосредственно после ввода значения.
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37415020
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОФФ:
* скукотища посыпает голову пеплом и идёт похмеляться чтитаь мантры маны *
...
Рейтинг: 0 / 0
задание с массивом. нужна помощь
    #37419550
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFF> Автор: Shocker.Pro
> +


добавлю, в С++ при объявлении переменной, под неё где-то выделяется память и переменная получает значение, которое
находится в этой ячейке памяти. И это может быть совсем не ноль, а все что угодно, в том числе и ноль. Поэтому:

Задача:
Мальвина дала Буратино 3 яблока,потом забрала назад 1
Впорос:Сколько яблок осталось у Буратино?
Ответ:ХЗ.Никто не знает сколько у него яблок было до того
Мораль:ВСЕГДА инициализируйте переменные


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / задание с массивом. нужна помощь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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