SOS oko Basica

SOS oko Basica

offline
  • Max  Male
  • Super građanin
  • Marko Milic
  • MWEB - Project manager & Front-end developer /Saobracajni inzenjer
  • Pridružio: 02 Nov 2003
  • Poruke: 1363
  • Gde živiš: Beograd - Jagodina

Pozdrav....
Eto mene ali imam jedan problem. Treba da uradim jedan program u VB ali sam zardjao sto se tice programiranja. Need your help.
Zadatak je sledeci:napisati podprogramsku proceduru koja za date prirodne brojeve m i n i realnu matricu A(m,n) izracunava B(m,n) takvu da je b(i,j) jednak najmanjem elementu matrice A iz pravougaonikaodredjenog prvom i i-tom vrstom, j-tom i poslednjom kolonom matrice A.

Pokusavam da a resim, ali me nesto boli glava a treba do veceras ili sutra ujutru da resim problem,ako neko ima neku ideju pomoc bi mi dobro dosla. Bitan mi je algoritam a ne sintaksa...

Dopuna: 30 Sep 2006 14:29

Uspeo sam da resim problem ali me zeza nesto oko kompajliranja. Salje mi poruku type mismech. Evo kod:
Modul Option Base 1 Option Explicit Public Sub pravougaonik(ByVal m As Byte, ByVal n As Byte, ByRef A() As Single, ByRef B() As Single)        Dim i, j, k, l As Byte    Dim min As Single        min = 10000          For i = 1 To m       For j = 1 To n                For k = j To n            If A(1, k) < min Then min = A(1, k)            If A(i, k) < min Then min = A(i, k)          Next k                    For l = 1 To i            If A(l, j) < min Then min = A(l, j)            If A(l, n) < min Then min = A(l, n)          Next l          B(i, j) = min       Next j    Next i     End Sub

Evo procedure:
Private Sub Start_Click() Dim i, j, m, n As Byte Dim linija As String Dim A(), B() As Single Open "ulaz.txt" For Input As #1 Line Input #1, linija Line Input #1, linija Line Input #1, linija m = Val(Trim(Mid(linija, 1, 3))) n = Val(Trim(Mid(linija, 4, 3))) Close #1 If m > 0 And m <= 9 And n > 0 And n <= 9 Then    ReDim A(m, n), B(m, n)    For i = 1 To m     For j = 1 To n     If i Mod 2 <> 0 And j Mod 2 <> 0 Then         A(i, j) = i + (0.1) * j     Else         A(i, j) = (-1) * (i + (0.1) * j)     End If     Next j    Next i            pravougaonik m, n, A, B            Open "izlaz.txt" For Output As #2           Print #2, Tab(6); "Matrica A:"       Print #2,       For i = 1 To n                 For j = 1 To n                       Print #2, Tab(5 * j); A(i, j);                 Next j                 Print #2,       Next i                Print #2,      Print #2, Tab(6); "Matrica B:"      Print #2,         For i = 1 To n                For j = 1 To n                   Print #2, Tab(5 * j); B(i, j);                Next j           Print #2,         Next i        Close #2 Else        MsgBox "Pogresno uneti podaci", , "Greska"     End If End Sub

Prilikom compile javlja pomenutu gresku i markira matricu a u pozivu procedure. Kao sto ste primetili radi se o VB6.

[mod by bobby] stavio sam program pod tagove



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Nije da se razumem u VB, ali prvo deklarises A i B kao Single, a posle od njih pravis matrice.
Proceduru gore si definisao da prima Single, a ne matrice.



offline
  • Max  Male
  • Super građanin
  • Marko Milic
  • MWEB - Project manager & Front-end developer /Saobracajni inzenjer
  • Pridružio: 02 Nov 2003
  • Poruke: 1363
  • Gde živiš: Beograd - Jagodina

Ali deklarisao sam matrice A i B kao Single. U modulu one su po referenci a stvarni argumenti su def kao Single u proceduri dogadjaja Start_Click.
Nisam te bas najbolje razumeo bobby na sta si mislio da ponovo deklarisem. Mada mislim da je to problem samo jednostavno neznam sta da menjam. Na faxu su nas izgleda pogresno ucili ili sam ja nesto zeznuo.

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

pravougaonik m, n, A, B

Zar ne bi trebalo:

pravougaonik (m, n, A, B)

Ili sam ja samo pozaboravljao VB?

offline
  • Max  Male
  • Super građanin
  • Marko Milic
  • MWEB - Project manager & Front-end developer /Saobracajni inzenjer
  • Pridružio: 02 Nov 2003
  • Poruke: 1363
  • Gde živiš: Beograd - Jagodina

Ma to bez zagrda je ok. To su ubacili u .NET u VB6 nema potrebe za zagrdama sta vise kada stavim zagrde prijavljuje mi gresku.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Kazem ti, zadnji put sam cackao VB pre vise od 4 godine.

Mani se cini da je problem u pozivanju procedure (barem sa moje Pascal-tacke gledista).

Ako procedura prima Single, a ti pozivas funkciju slanjem array of single, to ne moze da radi (opet da napomenem da razmisljam po Pascal-logici, mozda je VB drugaciji).

Tu proceduru pravougaonik, ja bih u Pascalu morao da pozivam u petlji, i to za svaki clan matrice posebno:

Pseudo code
pocetak ugnjzdjene petlje u kojoj se iterira kroz i, j, x, y     pravougaonik m, n , A[i, j], B[x, y] kraj petlje
Samo na takav nacin funkciji prosledjujes Single za A i B. Ti si do sada pokusavao da u jednom koraku "gurnes" cele matrice u proceduru, ali proceduru nisi definisao da prima matrice vec pojedinacne clanove matrica.

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

Da, Bobby je upravu.

Ti si samo prosledio ceo collection matrice A i B, a trebas svaki clan matrice posebno, bas kako je Bobby rekao.

Nisam ni primetio to Embarassed

offline
  • Max  Male
  • Super građanin
  • Marko Milic
  • MWEB - Project manager & Front-end developer /Saobracajni inzenjer
  • Pridružio: 02 Nov 2003
  • Poruke: 1363
  • Gde živiš: Beograd - Jagodina

Da to je bilo u pitanju. Dobio sam 9

Ko je trenutno na forumu
 

Ukupno su 1071 korisnika na forumu :: 20 registrovanih, 6 sakrivenih i 1045 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 8u47, dankisha, Dogma21, doloress, Georgius, gomago, ILGromovnik, kybonacci, Lošmi, mercedesamg, Metanoja, Milija.00, Parker, raptorsi, sol, Srle993, vathra, W123, yrraf, zillbg