D0010E Övningsuppgifter i Eclipse Hello world! Skapa ett program som skriver ut "Hello world" på skärmen. package tutorial; public class HelloWorld public static void main(string[] args) System.out.println("Hello world!"); Nedräkning När man arbetar med raketer är det viktigt att kunna räkna ned från 10, skriv ett program som använder en for-slinga för att räkna ned från 10 til 0. package tutorial; public class Countdown public static void main(string[] args) for(int i = 10; i >= 0; i--) System.out.println(i); Sågtand Skriv en metod triangel(int a) som skriver ut en triangel i asteriskgrafik där a anger antalet rader. Anrop av triangel(4) ger alltså utskriften: * ** *** ****
Skriv en metod sawtooth(int a, int b) som skriver ut en sågtandskurva. Det första argumentet anger antalet rader i varje triangel och det andra argumentet anger hur många trianglar som ingår i sågtandskurvan. Det är rekommenderat att använda sig av metoden triangel(int a) för att lösa uppgiften. Anrop av sawtooth(3, 2) ska alltså ge följande resultat: * ** *** * ** *** static void triangel(int a) for(int i = 1; i <= a; i++) for(int j = 0; j < i; j++) System.out.print("*"); System.out.println(); static void sawtooth(int a, int b) for(int i = 0; i < b; i++) triangel(a); Största gemensamma delare För att beräkna största gemensamma delaren av två positiva heltal, a och b, kan man göra på följande sätt: Beräkna resten när man delar a med b, och kalla den för c. Om c är 0 är b den största gemensamma delaren. Om c inte är 0 så upprepas proceduren, men med b och c istället för med a och b. Skriv en metod som beräknar och skriver ut största gemensamma delaren av två positiva heltal enligt ovanstående metod.
static void gcd(int a, int b) int c; do c = a % b; // '%' means modulo a = b; b = c; while(c!= 0); System.out.println(a); Behandla argument Skriv ett program som skriver ut sina argument ihopslagna. Att anropa programmet Konkatinera med argumenten berg och dal b a n a ska alltså ge utskriften bergochdalbana package tutorial; public class Concatenate public static void main(string[] args) for(int i = 0; i < args.length; i++) System.out.print(args[i]); Hitta högsta talet Skriv ett program som tar ett godtyckligt antal heltal som argument och skriver ut det största talet. Tillägg: om programmet körs utan argument ska ett lämpligt felmeddelande skrivas ut.
package tutorial; public class HighestNumber public static void main(string[] args) if(args.length == 0) System.out.println("No arguments!"); int highest = Integer.MIN_VALUE; int temp; for(int i = 0; i < args.length; i++) temp = Integer.parseInt(args[i]); if(temp > highest) highest = temp; System.out.println("The highest number was "+highest); Triangelarea Skriv en metod som givet en triangels tre sidor räknar ut och returnerar dess area. Ett tips är att använda Herons formel. static double trianglearea(double a, double b, double c) /* * Heron's formula: * Area = sqrt(s(s-a)(s-b)(s-c), * where s = a+b+c/2 */ double s = (a + b + c) / 2; double area = Math.sqrt(s * (s-a) * (s-b) * (s-c)); return area; Primtal Skriv en metod som givet ett tal räknar ut om det är ett primtal eller inte, och returnerar true eller false.
static boolean isprime(int a) int i = 2; while(i <= Math.sqrt(a)) if(a % i == 0) return false; i++; return true; Relationer Skriv en metod som tar tre heltal som argument och returnerar true endast om alla tre är lika. Skriv en metod som tar två heltal som argument och returnerar true om och endast om de är lika... utan att använda operatorn "=="! static boolean isthreeequal(int a, int b, int c) if(a == b && b == c) return true; return false; eller static boolean isthreeequal(int a, int b, int c) boolean a = (a == b && b == c? true : false); return a; eller static boolean isthreeequal(int a, int b, int c) return(a == b && b == c);
static boolean istwoequal(int a, int b) if(!(a > b) &&!(a < b)) return true; return false; eller static boolean istwoequal(int a, int b) return(!(a!= b)); Skriv ut tal Skriv en metod som givet en siffra (0-9) skriver ut motsvarande siffra med bokstäver. Uppgiften ska lösas med en switch-sats. Skriv ett program som tar en godtyckligt lång sträng med siffror som argument, och skriver ut dem. Programmet ska använda sig av ovanstående metod. package tutorial; public class WriteNumber public static void main(string[] args) char c; for(int i = 0; i < args[0].length(); i++) c = args[0].charat(i); character at a certain position in the string int nr = Integer.parseInt(Character.toString(c)); way to convert the char to an int writenumber(nr); // Finds a // Messy static void writenumber(int a) switch (a) case 0: System.out.println("noll"); break; case 1: System.out.println("ett"); break; case 2: System.out.println("två"); break; case 3: System.out.println("tre"); break; case 4: System.out.println("fyra"); break; case 5: System.out.println("fem"); break;
case 6: System.out.println("sex"); break; case 7: System.out.println("sju"); break; case 8: System.out.println("åtta"); break; case 9: System.out.println("nio"); break; default: System.out.println("Invalid number!");break; Baklänges Skriv en rekursiv metod som tar en sträng som argument, samt returnerar den reverserade strängen. static String reversestring(string s) if(s.length() == 0) return ""; // Base case return(reversestring(s.substring(1,s.length()))+s.charat(0)); // Recursive case
Rövarspråket Skriv en metod som givet en sträng returnerar strängen översatt till rövarspråket. Rövarspråket fungerar så att alla konsonanter dubbleras med ett "o" emellan, medan vokalerna skrivs ut som de är. "pannkakor" blir således "popanonnonkokakokoror". static String robberlanguage(string s) if(s.length() == 0) return ""; if(isconsonant(s.charat(0))) return s.charat(0) + "o" + s.charat(0) + robberlanguage(s.substring(1, s.length())); return s.charat(0) + robberlanguage(s.substring(1, s.length())); static boolean isconsonant(char c) String s = "bcdfghjklmnpqrstvwxzbcdfghjklmnpqrstvwxz"; if(s.indexof(c) == -1) return false; return true;