logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Zamiana pętli sortującej z C++ na pętle w Bascom(Basic)

FastProject 25 Lis 2004 16:27 1937 4
REKLAMA
  • #1 1012514
    FastProject
    Poziom 28  
    Musze zrobic sortowanie 4 zmiennych(liczb).Mam je posortowac w kolejności od najmniejszej do najwiekszej lub na odwrót i najlepiej zapisac to tych samych komórek (ale to tez nie konieczne).Musze to zrobic w Bascomie.Poprosilem klege ktory napisal mi to w C++.Jednak ja nie wiem jak to przenieść do Bascoma(opartego na Basicu).Oto źródło z C++:

    int l[4];
    l[0]=1;
    l[1]=7;
    l[2]=6;
    l[3]=5;
    int temp;
    for(int i=0; i<3; i++) //pierwsza petla
    for(int j=i+1; j<4; j++)
    {
    if(l[i]>l[j])
    {
    temp=l[j];
    l[j]=l[i];
    l[i]=temp;
    }
    }


    A to moja niedzialająca interpretacja z Bascoma:

    Dim Light(4) As Byte
    Dim Temp As Byte
    Dim I As Byte , J As Byte


    Light(1) = 10
    Light(2) = 70
    Light(3) = 40
    Light(4) = 30

    Do
    For I = 1 To 4
    For J = I + 1 To 5
    If Light(i) > Light(j) Then
    Temp = Light(j)
    Light(j) = Light(i)
    Light(i) = Temp
    End If
    Next I
    Next J
    Loop

    Prosze o pomoc i wskazówki jak to zrealizowac najprościej Bascomie.
  • REKLAMA
  • #2 1014361
    maxdutka
    Poziom 14  
    Czy w C działa to sortowanie? Po co jest Do - Loop, przecież program nigdy się nie zatrzyma. Poszukaj coś o sortowaniu bąbelkowym jest bardzo proste w implementacji.
  • REKLAMA
  • #3 1015157
    LordBlick
    VIP Zasłużony dla elektroda
    Tak, jak już wspomniał maxdutka :
    Dim Light(4) As Byte
    Dim Temp As Byte
    Dim i As Byte , j As Byte
    
    
    Light(1) = 10
    Light(2) = 70
    Light(3) = 40
    Light(4) = 30
    
    For i = 1 To 4
       For j = i + 1 To 5
          If Light(i) > Light(j) Then
             Temp = Light(j)  ' Zamiana Light(j) z Light(i)
             Light(j) = Light(i)
             Light(i) = Temp
          End If
       Next i
    Next j
    

    Pozdrawiam, LightHouser
  • REKLAMA
  • #4 1020458
    FastProject
    Poziom 28  
    Program w C działa na pewno.Ja chce go przerobic do Bascoma.

    Ogolnie to potrzebuje program do sortowania 4 liczb w Bascomie.A z ta petla Do....Loop to macie racje.

    Jesli ktos zna jeszcze inny sposób aby wkonac sorowanie w Bascomie to mile widziane propozycje.

    Ja bede sie staral przerobic ten z C bo wydaje mi sie prosty.Jak mi sie uda to zamieszcze go tu.Nara
  • #5 1021400
    Xitami
    Poziom 29  
    for i=1 to 3
    . for j=i+1 to 4
    . . if .......
    bo "i" i "j' indeksują tablicę od 1 do 4
REKLAMA