[Visual Basic] Problem z pętlą i zmienną tablicową

Odpowiedz Nowy wątek
2017-06-14 18:05
0

Hejka,
mam problem.

Otóż mam do wykonania dwa zadania:

  1. "po wprowadzeniu 20 liczb(inputbox) w textbox pojawią się wprowadzone liczby nieparzyste. zastosuj zmienną tablicową oraz pętlę do while... loop"
  2. "po wprowadzeniu 20 liczb(inputbox) pojawia się informacja: ile wprowadzono liczb ujemnych (msgbox). zmienna tablicowa i pętla for ... next"

Wyda się to głupie, ale pewnie dla większości z Was takie coś jest dziecinnie proste, ale nie dla mnie :(
Jak się do tego zabrać?
Odnośnie 1. Czy zastosować najpierw pętlę for, żeby można było wprowadzić te 20 liczb?
Czyli była by jedna pętla for do wprowadzenia 20 liczb, potem jakoś pętla do while, zęby zostały pokazane w textboxie nieparzyste( do nieparzystych chyba jest warunek mod 2 = 1) ?

Odnośnie 2.
Zastosujemy sobie pętle for z inputboxem, do wpisania 20 liczb, potem warunek, żeby były < 0, a jak na końcu ustawić warunek, żeby program policzył wszystkie ujemne?

Pozostało 580 znaków

2017-06-16 18:31
0

I z czym masz problem?
Pół zadania juz za ciebie zrobiłem..

Pozostało 580 znaków

2017-06-16 19:59
0

Noo właśnie słabo ogarniam to co napisałeś

Pozostało 580 znaków

2017-06-17 10:21
0

Regulamin §4, pkt 7

Pozostało 580 znaków

2017-06-20 13:53
0
 
 Dim a, b, c, tab(3, 4) As Integer
        Dim txt As String
        For a = 0 To 3
            For b = 0 To 4
                tab(a, b) = InputBox("Wprowadź liczbę", "Wprowadź liczbę nr " & a)
            Next
        Next
        For a = 0 To 3
            For b = 0 To 4
                TextBox1.Text = TextBox1.Text & tab(a, b) & vbTab
            Next
            TextBox1.Text = TextBox1.Text & vbNewLine
        Next
        Do
 
            txt = "W tablicy znajduje się " & "" & "" & " ujemnych"
 
            Next
 
        Loop
        MsgBox(txt, 4, )

doszedłem do tego, jeszcze nie wiem jak zawrzeć warunek, żeby brało ilośc liczb ujemnych i potem to wyświetliło w msg

Pozostało 580 znaków

2017-06-20 14:02
0
        Dim a, b, c, tab(3, 4) As Integer
 
        For a = 0 To 3
            For b = 0 To 4
                tab(a, b) = InputBox("Wprowadź liczbę", "Wprowadź liczbę nr " & a) ' jak zrobic, zeby tutaj jeszcze bralo liczby od 1 do 20, np.: liczba 1, liczba 1'
            Next
        Next
        Do While a Mod (2) = 1
            TextBox1.Text = TextBox1.Text & tab(a, b) & vbTab
        Loop
 

no i tutaj sie zawiesilłem i nie wiem jak ruszyc

Pozostało 580 znaków

2017-06-20 16:01
0

Czemu na tablicach dwuwymiarowych? To a ci wszystko psuje. Myśl jednowymiarowo.

Pozostało 580 znaków

2017-06-20 16:32
0
 Dim a, tab(19) As Integer
 
        For a = 1 To 20
            tab(a) = InputBox("Wprowadź liczbę", "Wprowadź liczbę nr " & a)
        Next
        For a = 0 To 19
            If a = 0 Then
                TextBox1.Text = tab(a)
            Else
                TextBox1.Text = TextBox1.Text & tab(a) & vbTab
            End If
        Next
        MsgBox("W tablicy znajduje się " & "" & "" & " ujemnych", 4, )

No to kod poprawiony do zadania 2, ale teraz pytanie, jak zapisać kod do liczb ujemnych? w którym miejscu napisać <0?

   Dim a, tab(19) As Integer
 
        For a = 1 To 20
            tab(a) = InputBox(" Wprowadź liczbę", "Wprowadź liczbę nr " & a)
        Next
 
        Do While a Mod (2) = 1
            TextBox1.Text = TextBox1.Text & tab(a) & vbTab
            If a = 1 Then
                TextBox1.Text = tab(a)
            Else
                TextBox1.Text = TextBox1.Text & vbTab & tab(a)
            End If
        Loop
 

i tutaj również się zawiesiłem i dalej nie wiem co poprawić, żeby nieparzyste pojawiły się w textboxie ;(

Pozostało 580 znaków

2017-06-20 20:53
0

Po kolei:
Dim a - deklaruje ci zmienną a jako Variant
tab(19) As Integer deklaruje ci tablicę Intów od 0 do 19. 20 elementów, ale od 0. VB domyslnie indeksuje tablice od 0. Mozna to zmienić przez deklarację na początku modulu:
Option Base 1
potem w pętli od 1 do 20 wpisujesz do tab elementy. Pytanie: gdzie wcisniesz dwudziesty element, skoro najwyzszy indeks tablicy, to 19?
Nie wspomnę (a wlasciwie wspomnę) o tym, że w ogole nie parsujesz, czy wpisany jest Int
Następnie w pętli od 0 do 19 wypisujesz do Texboxa elementy. od 0. Czyli zeriowy element zawsze bedzie 0, za to nigdy nie wyswietlisz 20-tego (o ile uda ci sie go wpisac do tablicy).
Warunek sprawdzajacy, czy jest ujemna mozesz umiescic np. w drugim For (zaraz jako pierwsza linia):
If tab(a)>0 then ujemnych=ujemnych+1
W drugim listingu Whila musisz jeszcze raz przemyslec - wpadasz w nieskonczona petle... :)

Pozostało 580 znaków

2017-06-20 21:52
0

Tak, tak wiem ;) nie zmieniłem od 0 do 19 na 1 do 20 ;)
Siądę i jeszcze trochę przyatakuje i zobaczymy z tego co wyjdzie ;)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0