Příklad:
Program Kalkulačka s větvením. Umí sčítat, odečítat, násobit a dělit. Na základě zadaného kódu provede operaci se dvěma čísly zadanými zvenčí.1
Využila jsem jednoduchý příklad z knihy Programování v pascalu od Jany Pšenčíkové. Trochu jsem si ho upravila a naprogramovala v Javě.
Řešení:
Zde je moje řešení daného cvičení naprogramovaného ve vizuálním vývojovém prostředí NetBeans:
- Jednoduchá kalkulacka s celočíselným výsledkem
- Jednoduchá kalkulačka s reálným výsledkem
- Jednoduchá kalkulačka s reálným výsledkem, vstup načten v jednom řádku
- Jednoduchá kalkulačka s využitím jedné statické funkce
- Jednoduchá kalkulačka s využitím více statických funkcí
- Jednoduchá kalkulačka s využitím instance objektu
Jednoduchá kalkulačka s celočíselným výsledkem
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplicationjednoduchakalkulacka; import java.util.Scanner; /** * * @author Jitka */ public class JednoduchaKalkulacka { /** * @param args the command line arguments */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Zadej celé číslo a: "); int a = scanner.nextInt(); System.out.print("Zadej operátor (+, -, *, /) "); scanner.nextLine(); // musime "pozrat" predchazejici bily znak enter char operator = scanner.nextLine().charAt(0); System.out.print("Zadej celé číslo b: "); int b = scanner.nextInt(); boolean chyba = false; int vysledek = 0; switch (operator) { case '+': vysledek = a + b; break; case '-': vysledek = a - b; break; case '*': vysledek = a * b; break; case '/': if (b == 0) { System.out.println("b nesmí být nula! Nulou nelze dělit."); chyba = true; } else { vysledek = a / b; // int / int dava vysledek int } break; default: System.out.println("Zadán špatný operátor!"); chyba = true; break; } if (!chyba) { System.out.println("Výsledek je: " + vysledek); } } }
Jednoduchá kalkulačka s reálným výsledkem
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplicationjednoduchakalkulacka; import java.util.Scanner; /** * * @author Jitka */ public class JednoduchaKalkulacka { /** * @param args the command line arguments */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Zadej celé číslo a: "); int a = scanner.nextInt(); System.out.print("Zadej operátor (+, -, *, /) "); scanner.nextLine(); // musime "pozrat" predchazejici bily znak enter char operator = scanner.nextLine().charAt(0); System.out.print("Zadej celé číslo b: "); int b = scanner.nextInt(); boolean chyba = false; float vysledek = 0; switch (operator) { case '+': vysledek = a + b; break; case '-': vysledek = a - b; break; case '*': vysledek = a * b; break; case '/': if (b == 0) { System.out.println("b nesmí být nula! Nulou nelze dělit."); chyba = true; } else { vysledek = (float) a / b; // float / int dava vysledek realny } break; default: System.out.println("Zadán špatný operátor!"); chyba = true; break; } if (!chyba) { System.out.format("Výsledek je: %.2f%n", vysledek); // tisk vysledku na 2 desetinna mista } } }
Jednoduchá kalkulačka s reálným výsledkem, vstup načten v jednom řádku
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplicationjednoduchakalkulacka; import java.util.Scanner; /** * * @author Jitka */ public class JednoduchaKalkulacka { /** * @param args the command line arguments */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Zadejte výraz (např. 5 + 3); číslice oddělujte mezerami; operátor může být (+, -, *, /): "); int a = Integer.valueOf(scanner.next()).intValue(); // nacte se 1. slovo a prevede se na int char operator = scanner.next().charAt(0); // nacte se 2. slovo a prevede se na char int b = Integer.valueOf(scanner.next()).intValue(); // nacte se 3. slovo a prevede se na int boolean chyba = false; float vysledek = 0; switch (operator) { case '+': vysledek = a + b; break; case '-': vysledek = a - b; break; case '*': vysledek = a * b; break; case '/': if (b == 0) { System.out.println("b nesmí být nula! Nulou nelze dělit."); chyba = true; } else { vysledek = (float) a / b; // float / int dava vysledek realny } break; default: System.out.println("Zadán špatný operátor!"); chyba = true; break; } if (!chyba) { System.out.format("Výsledek je: %.2f%n", vysledek); // tisk vysledku na 2 desetinna mista } } }
Jednoduchá kalkulačka s využitím jedné statické funkce
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplicationjednoduchakalkulacka; import java.util.Scanner; /** * * @author Jitka */ public class JednoduchaKalkulacka { static float spocitej(int a, int b, char operator) { switch (operator) { case '+': return a + b; case '-': return a - b; case '*': return a * b; case '/': if (b == 0) { System.out.println("b nesmí být nula! Nulou nelze dělit."); return 0; } else { return (float) a / b; // float / int dava vysledek realny } default: System.out.println("Zadán špatný operátor!"); return 0; } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Zadej celé číslo a: "); int a = scanner.nextInt(); System.out.print("Zadej operátor (+, -, *, /) "); scanner.nextLine(); // musime "pozrat" predchazejici bily znak enter char operator = scanner.nextLine().charAt(0); System.out.print("Zadej celé číslo b: "); int b = scanner.nextInt(); float vysledek = spocitej(a, b, operator); System.out.format("Výsledek je: %.2f%n", vysledek); // tisk vysledku na 2 desetinna mista } }
Jednoduchá kalkulačka s využitím více statických funkcí
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplicationjednoduchakalkulacka; import java.util.Scanner; /** * * @author Jitka */ public class JednoduchaKalkulacka { static float secti(int a, int b) { return a + b; } static float odecti(int a, int b) { return a - b; } static float vynasob(int a, int b) { return a * b; } static float vydel(int a, int b) { if (b == 0) { System.out.println("b nesmí být nula! Nulou nelze dělit."); return 0; } else { return (float) a / b; // float / int dava vysledek realny } } static float spocitej(int a, int b, char operator) { switch (operator) { case '+': return secti(a, b); case '-': return odecti(a, b); case '*': return vynasob(a, b); case '/': return vydel(a, b); default: System.out.println("Zadán špatný operátor!"); return 0; } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Zadej celé číslo a: "); int a = scanner.nextInt(); System.out.print("Zadej operátor (+, -, *, /) "); scanner.nextLine(); // musime "pozrat" predchazejici bily znak enter char operator = scanner.nextLine().charAt(0); System.out.print("Zadej celé číslo b: "); int b = scanner.nextInt(); float vysledek = spocitej(a, b, operator); System.out.format("Výsledek je: %.2f%n", vysledek); // tisk vysledku na 2 desetinna mista } }
Jednoduchá kalkulačka s využitím instance objektu
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplicationjednoduchakalkulacka; import java.util.Scanner; /** * * @author Jitka */ public class JednoduchaKalkulacka { float secti(int a, int b) { return a + b; } float odecti(int a, int b) { return a - b; } float vynasob(int a, int b) { return a * b; } float vydel(int a, int b) { if (b == 0) { System.out.println("b nesmí být nula! Nulou nelze dělit."); return 0; } else { return (float) a / b; // float / int dava vysledek realny } } float spocitej(int a, int b, char operator) { switch (operator) { case '+': return secti(a, b); case '-': return odecti(a, b); case '*': return vynasob(a, b); case '/': return vydel(a, b); default: System.out.println("Zadán špatný operátor!"); return 0; } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Zadej celé číslo a: "); int a = scanner.nextInt(); System.out.print("Zadej operátor (+, -, *, /) "); scanner.nextLine(); // musime "pozrat" predchazejici bily znak enter char operator = scanner.nextLine().charAt(0); System.out.print("Zadej celé číslo b: "); int b = scanner.nextInt(); JednoduchaKalkulacka kalkulacka = new JednoduchaKalkulacka(); float vysledek = kalkulacka.spocitej(a, b, operator); System.out.format("Výsledek je: %.2f%n", vysledek); // tisk vysledku na 2 desetinna mista } }
1. Jana Pšenčíková Programování v pascalu. 1. vyd. Kralice na Hané: Computer Media. 2008. ISBN 978-80-86686-96-7, str. 82