Visual Basic Potprogrami o Zadatak Napraviti program koji
Visual Basic - Potprogrami o Zadatak: Napraviti program koji će učitati rečenicu i napraviti sljedeće: n Izvrnuti je naopako n Ispisati rečenicu velikim slovima. n Prebrojiti pojavu svakog slova u rečenici. Znakove interpunkcije i ostale znakove koji nisu slova ne treba prebrojavati.
Visual Basic - Potprogrami o Svaki od zadataka razmatrat ćemo posebno i za svaki ćemo izgraditi posebni potprogram.
Visual Basic - Potprogrami o Potprogram je zasebni dio programskog koda koji se može pozivati s različitih mjesta u programu. o Svaki potprogram ima ime i argumente o Argumenti su vrijednosti koji se prosljeđuju potprogramu kao parametri, ulazne vrijednosti za izračun.
Visual Basic - Potprogrami o VB ima dvije vrste potprograma: n Funkcije (Function) – potprogrami koji iz parametara izračunavaju neku vrijednost i nju vraćaju kao rezultat n Subrutine (Sub)– potprogrami koji obrađuju proslijeđene parametre, ali ne vraćanu nikakvu vrijednost.
Visual Basic - Potprogrami o Potprogram za izvrtanje rečenice: o Pronaći duljinu niza o Čitati znak po znak od kraja prema početku i stavljati ga u novu varijablu tipa String. o Ispisati varijablu koju smo izračunali.
Visual Basic - Potprogrami o Potprogram za izvrtanje rečenice: Sub Izvrni (By. Val S As String) Kraj Ime niza potprograma o Pronaći duljinu o Čitati znak po znak od kraja prema Zaglavlje Argument(i) potprograma početku i stavljati ga u novu varijablu Tip Način prijenosa tipa String. potprograma Argumenta u o Ispisati varijablu koju smo izračunali. Potprogram: Argument nije End Sub Promjenjiv.
Visual Basic - Potprogrami o Potprogram za izvrtanje rečenice: Sub Izvrni (By. Val S As String) Dim St As String, Ln As Integer Lokalne varijable o Pronaći duljinu niza o Čitati znak po znak od kraja prema početku i stavljati ga u novu varijablu tipa String. o Ispisati varijablu koju smo izračunali. End Sub
Visual Basic - Potprogrami o Potprogram za izvrtanje rečenice: Sub Izvrni(By. Val S As String) Dim St As String, Ln, I As Integer Ln = Len(S) St = "" For I = Ln To 1 Step -1 St = St & Mid(S, I, 1) Next Msg. Box("Izvrnuta rečenica glasi: " & Chr(13) & St) End Sub
Visual Basic – Potprogrami o Potprogram za ispis velikim slovima o Čitati redom slovo po slovo ulazni string o Ako se radi o malom slovu, pretvoriti ga u veliko, a inače znak ne mijenjati. o Dodati dobijeni znak na kraj izlaznog stringa. o Ispisati izlazni string.
Visual Basic – Potprogrami o Potprogram za ispis velikim slovima Sub Velika(By. Val S As String) Dim I, Ln As Integer, Sl, St As String Ln = Len(S) St = "" For I = 1 To Ln Sl = Mid(S, I, 1) If (Asc(Sl) > 96) And (Asc(Sl) < 123) Then Sl = Chr(Asc(Sl) - 32) End If St = St & Sl Next Msg. Box(St) End Sub
Visual Basic – Potprogrami o Potprogram za prebrojavanje slova o Definirati polje tipa Short koje ima 26 elemenata (za svako slovo engleke abecede po jedan element. Pri tome nećemo razlikovati velika i mala slova) o Pronaći duljinu ulaznog stringa o Uzeti svaki pojedini znak iz ulaznog stringa o Ako je pročitani znak slovo, povećati vrijednost elementa polja za to slovo za 1 o Ispisati one elemente polja koji su različizi od 0.
Visual Basic – Potprogrami o Potprogram za prebrojavanje slova Sub Prebroji (By. Val S As String) Dim Slova(26) As Short, I As Integer o Pronaći duljinu ulaznog stringa o Uzeti svaki pojedini znak iz ulaznog stringa o Ako je pročitani znak slovo, povećati vrijednost elementa polja za to slovo za 1 o Ispisati one elemente polja koji su različizi od 0. End Sub
Visual Basic – Potprogrami o Potprogram za prebrojavanje slova Sub Prebroji(By. Val S As String) Dim Slova(26) As Short, Ln, I As Integer Dim Sl As String, St As String Ln = Len(S) For I = 1 To Ln Sl = Mid(S, I, 1) Select Case sl Case "A" To "Z" Slova(Asc(Sl) - 64) = Slova(Asc(Sl) - 64) + 1
Visual Basic – Potprogrami Case "a" To "z" Slova(Asc(Sl) - 96) = Slova(Asc(Sl) - 96) + 1 End Select Next St = "" For I = 1 To 26 If Slova(I) > 0 Then St = St & Chr(I + 64) & " " & Str(Slova(I)) & Chr(13) End If Next Msg. Box(St) End Sub
Visual Basic – Potprogrami Glavni program Učitaj rečenicu Pokreni potprogram za izvrtanje rečenice Pokreni potprogram za ispis rečenice velikim slovima o Pokreni potprogram za prebrojavanje slova. o o
Visual Basic – Potprogrami o Glavni program Dim S As String S = Input. Box("Upišite rečenicu: " & Chr(13)) Call Izvrni(S) Naredba za Call Velika(S) pozivanje potprograma Call Prebroji(S) tipa Sub
Visual Basic – Potprogrami o Zadatak Napraviti program koji će izračunavati broj načiuna na koji od N elemenata možemo izabrati njih K
Visual Basic – Potprogrami o Potprogram za izračunavanje faktorijela o Izračunti N! o Vratiti rezultat
Visual Basic – Potprogrami o Potprogram za izračunavanje faktorijela Function Fakt(By. Val N As Integer) As Long Dim I As Integer, F As Long F = 1 For I = 2 To N Tip F = F * i funkcije Next Fakt = F End Function Funkcijska varijabla
Visual Basic – Potprogrami o o Glavni program Učitati N i K Izračunati Komb = N!/(K! (N-K)!) Ispisati Komb
Visual Basic – Potprogrami o Glavni program Dim N, K As Integer, Komb As Long N = Input. Box("N = ") K = Input. Box("K = ") Komb = Fakt(N) / (Fakt(K) * Fakt(N-K)) Msg. Box(Str(Komb)) Potprogram tipa Function poziva se u izrazu
Visual Basic – završni primjer o Zadatak Unesite dvije matrice. Neka prva ima dimenzije Mx. N, a druga Px. Q. Provjerite mogu li se te dvije matrice zbrojiti i pomnožiti, te ako mogu izračunajte njihov zbroj, odnosno produkt.
Visual Basic – završni primjer o o o o o Unos matrica Provjera je li matrice moguće zbrojiti Ako jest onda Zbroji matrice Ispiši rezultat Provjera je li matrice moguće pomnožiti Ako jest onda Pomnoži matrice Ispiši rezultat
Visual Basic – završni primjer o o o o Glavni program Deklarirati dvodimenzionalna polja A, B, C dimenzija 100 x 100 Unijeti dimenzije matrice A Unijeti dimenzije matrice B Unijeti elemente matrice A Unijeti elemente matrice B Ako se matrice mogu zbrojiti Zbrojiti matrice A i B Ispisati zbroj matrica A i B Inače Ispisati "Matrice se ne mogu zbrajati" Ako se matrice mogu pomnožiti Pomnožiti matrice A i B Ispisati umnožak matrica A i B Inače Ispisati "Matrice se ne mogu množiti"
Visual Basic – završni primjer o Dim o o o o Glavni program A(100, 100), B(100, 100), C(100, 100) As Single Unijeti dimenzije matrice A Unijeti dimenzije matrice B Unijeti elemente matrice A Unijeti elemente matrice B Ako se matrice mogu zbrojiti Dvodimenzionalna Zbrojiti matrice A i B Ispisati zbroj matrica A i B polja Inače Ispisati "Matrice se ne mogu zbrajati" Ako se matrice mogu pomnožiti Pomnožiti matrice A i B Ispisati umnožak matrica A i B Inače Ispisati "Matrice se ne mogu množiti"
Visual Basic – završni primjer o Glavni program Dim A(100, 100), B(100, 100), C(100, 100) As Single Dim M, N, P, Q As Integer M = Input. Box("M=") N = Input. Box("N=") P = Input. Box("P=") Q = Input. Box("Q=") Msg. Box("Unesite matricu A") Unos(A, M, N) Msg. Box("Unesite matricu B") Unos(B, P, Q) o Ako se matrice mogu zbrojiti o Zbroji matrice A i B u matricu C o Ispiši matricu C o Inače Msg. Box("Matrice se ne mogu zbrajati") o Ako se matrice mogu pomnožiti o Pomnožiti matrice A i B u matricu C o Ispiši matricu C o Inače Msg. Box("Matrice se ne mogu množiti")
Visual Basic – završni primjer o Unos matrice Sub Unos(By. Ref A(, ) As Single, By. Val M As Integer, By. Val N As Integer) Pristup elemenatu Dim I, J As Integer dvodimenzionalnog polja For I = 1 To M For J = 1 To N A(I, J) = Input. Box("M(" & I & ", " & J & ")=") Next Dvodimenzionalna polja Next kao argumenti potprograma End Sub
Visual Basic – završni primjer o Ispis matrice Sub Ispis(By. Val A(, ) As Single, By. Val M As Integer, By. Val N As Integer) Dim I, J As Integer, St As String St = "" For I = 1 To M For J = 1 To N St = St & Chr(9) & A(I, J) Next St = St & Chr(13) Next Msg. Box(St) Tabulator End Sub
Visual Basic – završni primjer o Zbrajanje matrica o Uvjet da se matrice mogu zbrajati jest da je m=p i n=q o Rezultat zbrajanja matrica dimenzija mxn je akođre matrica dimenzija mxn
Visual Basic – završni primjer o Zbrajanje matrica Sub Zbroj(By. Val A(, ) As Single, By. Val B(, ) As Single, By. Ref C(, ) As Single, By. Val M As Integer, By. Val N As Integer) Dim I, J As Integer For I = 1 To M For J = 1 To N C(I, J) = A(I, J) + B(I, J) Next End Sub
Visual Basic – završni primjer o Glavni program Dim A(100, 100), B(100, 100), C(100, 100) As Single Dim M, N, P, Q As Integer M = Input. Box("M=") N = Input. Box("N=") P = Input. Box("P=") Q = Input. Box("Q=") Msg. Box("Unesite matricu A") Unos(A, M, N) Msg. Box("Unesite matricu B") Unos(B, P, Q) If M = P And N = Q Then Zbroj(A, B, C, M, N) Ispis(C, M, N) Else Msg. Box("Matrice se ne mogu zbrajati") End If o Ako se matrice mogu pomnožiti o Pomnožiti matrice A i B u matricu C o Ispiši matricu C o Inače Msg. Box("Matrice se ne mogu množiti")
Visual Basic – završni primjer o Množenje matrica o Matrice A i B se mogu množiti ako su ulančane o Matrice A dimenzija mxn i B dimenzija pxq su ulančane ako vrijedi da je n=p o Drugim rejičima matrice A i B se mogu množiti ako matrica A ima dimenzije mxn, a matrica B dimenzije nxp.
Visual Basic – završni primjer o Množenje matrica o Rezultat množenja matrice dimenzija mxn s matricom dimenzija nxp je matrica dimenzija mxp.
Visual Basic – završni primjer o Množenje matrica Sub Produkt(By. Val A(, ) As Single, By. Val B(, ) As Single, By. Ref C(, ) As Single, By. Val M As Integer, By. Val N As Integer, By. Val P As Integer) Dim I, J, K As Integer For I = 1 To M For J = 1 To P C(I, J) = 0 For K = 1 To N C(I, J) = C(I, J) + A(I, K) * B(K, J) Next End Sub
Visual Basic – završni primjer o Glavni program Dim A(100, 100), B(100, 100), C(100, 100) As Single Dim M, N, P, Q As Integer M = Input. Box("M=") N = Input. Box("N=") P = Input. Box("P=") Q = Input. Box("Q=") Msg. Box("Unesite matricu A") Unos(A, M, N) Msg. Box("Unesite matricu B") Unos(B, P, Q) If M = P And N = Q Then Zbroj(A, B, C, M, N) Ispis(C, M, N) Else Msg. Box("Matrice se ne mogu zbrajati") End If If N = P Then Produkt(A, B, C, M, N, Q) Ispis(C, M, Q) Else Msg. Box("Matrice se ne mogu množiti") End If
- Slides: 35