110 likes | 325 Views
Tingimusdirektiiv. Loogilised avaldised. 3. tahvlipraktikum. Tingimusdirektiiv ( if ... ). if ( loogiline avaldis ){ … “kui-siis” osa }. false. loog. av. true. … “kui-siis” osa. loogiline avaldis ? … “kui-siis” osa. Suurenda paarisarve ühe võrra. Algus. Lahenda ül. 1.
E N D
Tingimusdirektiiv. Loogilised avaldised 3. tahvlipraktikum
Tingimusdirektiiv (if ... ) if (loogiline avaldis){ … “kui-siis” osa } false loog. av. true … “kui-siis” osa loogiline avaldis ? … “kui-siis” osa
Suurenda paarisarve ühe võrra Algus Lahenda ül. 1 Lahenda ül. 2 Kas aega jäi üle? Kas paaris- arv? Jah Lahenda ül. 3 Suurenda arvu ühe võrra Lõpp … int arv=6; if (arv % 2 == 0) arv=arv+1; … Sisend ja väljund?! … int x = Integer.parseInt(JOptionPane.showInputDialog(null, "Sisesta arv ", "Andmete sisestamine", JOptionPane.QUESTION_MESSAGE)); if (x % 2 == 0) x=x+1; System.out.println(“Arv = “+x); … import javax.swing.JOptionPane; (programmi algusesse, lausa enne klassi kirjelduse algust)
Tingimusdirektiiv (if ... else) if (loogiline avaldis){ … “kui-siis” osa } else{ … “muidu” osa } false loog. av. true … “kui-siis” osa loogiline avaldis ? … “kui-siis” osa … “muidu” osa … “muidu” osa
Kas arv on paaris või paaritu? Algus Sisesta x Jah Ei Kas paaris? Väljasta “Paaris” Väljasta “Paaritu” Lõpp import javax.swing.JOptionPane; class Paarsus { public static void main(String[] args) { int x = Integer.parseInt(JOptionPane.showInputDialog(null, "Sisesta arv ", "Andmete sisestamine", JOptionPane.QUESTION_MESSAGE)); if (x%2==0) System.out.println("Paaris"); else System.out.println("Paaritu"); } }
Loogilised tehted ja avaldised && ja true && true true true && false false false && true false false && false false || või true || true true true || false true false || true true false || false false ! eitus !false true !true false Võrdlus: < väiksem <= väiksem võrdne > suurem >= suurem võrdne == võrdne != mittevõrdne • Loogilisi avaldisi: • true • false • x <= 1 • (a – 1) == b • c != (a + 2) • !((x < 0) || (x > 1))
Heroni valem • Tingimuste a < p, b < p, c < p täidetus tagab ka a > 0, b > 0 ja c > 0 kehtivuse. • Seega pole vaja positiivsust eraldi kontrollida. Kui tahetakse anda täpsemat reaktsiooni, siis võib seda muidugi teha.
Eelmises tahvlipraktikumis esitatud ülesande Sisesta: a, b, c Algus p=(a+b+c)/2 a<p && b<p && c<p? Jah Ei Väljasta: “a, b, c ei sobi kolmnurga küljepikkusteks” Väljasta: Lõpp Kolmnurga pindala. Kolmnurga pindala S saab küljepikkuste a, b ja c kaudu arvutada Heroni valemiga, kus p tähistab poolt ümbermõõtu.Koostada plokkskeem, kus kontrollitakse ka, kas a, b, c üldse kolmnurga küljepikkusteks sobivad lahenduse saab esitada:
Lahendus Java-programmina: import javax.swing.JOptionPane; class Pindala { public static void main(String[] args) { int a = Integer.parseInt(JOptionPane.showInputDialog(null, "Sisesta a ", "Andmete sisestamine", JOptionPane.QUESTION_MESSAGE)); int b = Integer.parseInt(JOptionPane.showInputDialog(null, "Sisesta b ", "Andmete sisestamine", JOptionPane.QUESTION_MESSAGE)); int c = Integer.parseInt(JOptionPane.showInputDialog(null, "Sisesta c ", "Andmete sisestamine", JOptionPane.QUESTION_MESSAGE)); int p = (a + b + c)/2; if (a<p && b<p && c<p) System.out.println("S = "+ Math.sqrt(p*(p-a)*(p-b)*(p-c))); else System.out.println("Arvud a, b ja c ei sobi kolmnurga küljepikkusteks"); } }
Ülesandeid Programmeeri Kniffli mängija käik. Käigul viskab ta nelja täringut. Väljasta viske tulemus, kombinatsiooni nimi ja sellel käigul saadud punktide arv. Kombinatsioonid: kõik ühesugused – „kniffel“ – 50p 3 ühesugust – „kolmik“ – ühesuguste summa + 7p (võimalik 10 kuni 25) 2 ühesugust – „paar“ - ühesuguste summa + 3p (võimalik 5 kuni 15) kõik erinevad – „erinevad“ – 20p Täringuviske sooritamiseks kasuta juhuslike arvude generaatorit
Veel ülesandeid • Ruutvõrrand • plokkskeem ja programm • Selle kursuse läbimise nõuded • plokkskeem