Programiranje
4. predavanje
3. primjer petlje Do
Zadatak
Napišite program koji zahtijeva da upišete dva vektora (dvije liste) i zatim računa skalarni umnožak. Liste moraju biti iste duljine.
Uputa: ako je , i tada je skalarni umnožak jednak .
Napomena: Nećemo provesti većinu potrebnih kontrola pri upisu podataka.
Rješenje
Testiranje
3. primjer petlje Do, sa dodanom kontrolom (nije nužno)
Naredba FullForm i Head izraza
Mathematica svaki izraz koji korisnik napiše preformulira u funkcijski izraz tj. sve se prikazuje kao funkcija. Interni prikaz izraza možemo vidjeti pomoću funkcije FullForm.
Plus se zove Head izraza dok su a i b elementi izraza.
Times se zove Head izraza dok su x i y elementi izraza.
List se zove Head izraza dok su 1 , a, 6 i Sin[5] elementi izraza.
Kontrola da li je zadana lista zaista lista brojeva
Program kontrola ima kao argument listu i provjerava da li su elementi liste (realni) brojevi, ako jesu vraća kao vrijednost broj 0 a ako nisu vraća broj 1.
Rješenje s kontrolama
U programu ćemo koristiti naredbu oblika
izraz1 =!= izraz2
rezultat je True ako izraz1 nije identički jednak izrazu izraz2, i False ako su izraz1 i izraz2 identički jednaki.
Reci programa koji sadrže kontrole imaju naredbe napisanie o ovoj boji.
Dimenzija matrice (tip matrice)
Naredba ArrayDepth[a] daje kao rezultat broj indeksa potrebnih da se dobije "elementarni" element liste a. Kako su elementi matrice određeni s dva indeksa (npr ArrayDepth[a]==2; ako je ArrayDepth[a]!=2tada lista a nije matrica.
Nećemo provjeravati dali su elementi matrice brojevi ili objekti nekog drugog tipa.
Ako je lista a matrica tada se broj redaka i stupaca matrice a dobije naredbom Dimensions[a], pri čemu Dimensions vraća kao svoju vrijednost listu čiji prvi element je broj redaka a drugi element je broj stupaca.
1. primjer
2. primjer
1. primjer dvostruke petlje Do
Zadatak
Napišite program koji ima jedan argument - matricu i vraća najmanji element te matrice. U programu ćemo kontrolirati da li je argument zaista matrica, ali nećemo kontrolirati da li su elementi matrice brojevi ili neki drugi objekti.
Npr. ako matrica izgleda ovako tada program treba vratiti broj -7.
Izrada
testiranje
2. primjer dvostruke petlje Do
Zadatak
Napišite program koji ima jedan argument - matricu i vraća najveći negativan element te matrice. U programu ćemo kontrolirati da li je argument zaista matrica, ali nećemo kontrolirati da li su elementi matrice brojevi ili neki drugi objekti.
U dole navednom programu ovom bojom je istaknut jedini redak koji se mijenja.
Npr. ako matrica izgleda ovako tada program treba vratiti broj -2.
Izrada
testiranje
3. primjer dvostruke petlje Do
Zadatak
Napišite program koji će zbrojiti dvije matrice. Program neće kontrolirati ulazne podatke osim činjenice da li se matrice mogu zbrojiti.
Podsjećanje: ako je matrica , tipa (m, n) i matrica ] tipa (p, q) tada se zbroj a+b može formirati ako u a i b istog tipa tj. m=p i n=q, i rezultat ] je tipa (m,n) a elementi od c se računaju po formuli
Da bi kreirali matricu u koju ćemo upisati elemente od c koristiti ćemo se naredbom ConstantArray[konstata, {m, q}]; u našem slučaju će konstata biti jedanka nuli. Npr. nul matrica sa 3 retka i 4 stupca se dobije naredbom
Izrada
Testiranje
Primjer trostruke petlje Do (nije nužno)
Zadatak
Napišite program koji će pomnožiti dvije matrice. Program neće kontrolirati ulazne podatke osim činjenicu da li su matrice ulančane.
Podsjećanje: ako je matrica , tipa (m, n) i matrica ] tipa (p, q) tada se umnožak a·b može formirati ako u a i b ulančane, tj. n=p, i rezultat ] je tipa (m,q) a elementi od c se računaju po formuli
Izrada
Testiranje
Notebook izradili: Vladimir Benić i Sonja Gorjanc
Created by Wolfram Mathematica 6.0 (13 May 2008) |