Up:                                                                  

02312 Indledende programmering,  IMM DTU,  Ver. 2005-09-09

Løsningsforslag til opgaver til 2. semester-uge.

Opgave 5

 

import java.util.Scanner;

 

public class Opgave5

{

   public static void main(String[] args)

   {

        Scanner scan=new Scanner(System.in);

        double x;

 

       System.out.print("Tast et tal(kommatal med ','): ");

       x = scan.nextDouble();

 

       System.out.print("Indlæst værdi:");

       System.out.println(x);

   }

}

 

Opgave 6

//Math klassen er en del af "java.lang" pakken,

//som altid automatisk er med

//- den skal derfor ikke "importes"

 

 

import java.util.Scanner;

 

public class Opgave6 {

      

    public static void main(String[] args)

    { 

        //Ligningen tastes ind   

        Scanner scan = new Scanner(System.in);

        System.out.println("Angiv a og b for y = a*x+b");

        System.out.print("a = ");

        double a = scan.nextDouble();      

        System.out.print("b = ");

        double b = scan.nextDouble();      

             

        //Punktet tastes ind

        System.out.println("Angiv koordinaterne til punktet (x, y)");

        System.out.print("x = ");

        double x = scan.nextDouble();      

        System.out.print("y = ");

        double y = scan.nextDouble();      

             

        //Afstanden mellem linjen og punktet beregnes

        //og skrives ud på skaermen

        double dist = Math.abs(a*x-y+b)/Math.sqrt(1+Math.pow(a,2));

        System.out.println("Afstanden mellem linjen og punktet er: " +dist);            

    } 

}

Opgave 7

 

import java.util.Scanner;

 

public class Opgave7

{

    public static void main(String[] args)

    {        

        // Antal sekunder angives af brugeren

        Scanner scan= new Scanner(System.in);

        System.out.print("Indtast det totale antal sekunder: ");

        int totalSeconds, restSeconds;

        totalSeconds = restSeconds = scan.nextInt();     

                    

        //Først erklæres og instantieres nogle nyttige konstanter
        //('final' integers)

        final int SECONDS_IN_A_MINUTE = 60;                 

        final int SECONDS_IN_A_HOUR   = SECONDS_IN_A_MINUTE*60;

        final int SECONDS_IN_24HOURS  = SECONDS_IN_A_HOUR*24;

            

        //Bemærk at der i det følgende anvendes et nyttigt "pattern",
        //hvori den samme division laves to gange hvergang

        //- som division og som modulus (rest)

        //Dette pattern kan f.eks. også anvendes ved omregning fra

        //gamle pund, schillings og pence

             

        //Find hele antal døgn

        //- og de overskydende sekunder ift de hele døgn

        int days = restSeconds / SECONDS_IN_24HOURS;

        restSeconds %= SECONDS_IN_24HOURS;

        //Samme som restSeconds = restSeconds % SECONDS_IN_24HOURS;

             

        //Find hele antal timer - og overskydende sekunder ift dette

        int hours = restSeconds / SECONDS_IN_A_HOUR;

        restSeconds %= SECONDS_IN_A_HOUR;

             

        //Find hele antal minutter - og de overskydende sekunder

        int minutes = restSeconds / SECONDS_IN_A_MINUTE;

        restSeconds %= SECONDS_IN_A_MINUTE;

                          

        System.out.println(totalSeconds + " sekunder, svarer til " +

        days + " doegn, " + hours + " timer, " + minutes + " minutter og "

        + restSeconds + " sekunder.");         

      

    }

}

Opgave 8a

import java.util.Scanner;

public class Opgave8a
{
    public static void main(String[] args)
    {

        Scanner scan=new Scanner(System.in);

        final int MAX = 9;
        final int MIN = 4;
        //Password indlaeses
        System.out.print("Skriv et password: ");
        String password = scan.nextLine();

        //Password checkes og resultat udskrives
        int plength = password.length();
        if (plength > MIN && plength < MAX)
            System.out.println("Passwordets laengde er korrekt");
        else
        {
        System.out.println("Passwordets laengde - " + plength + " 'chars' er ikke korrekt!");
        System.out.println("-Skal vaere stoerre end " + MIN + " og mindre end " + MAX);
        }
    }
}
 

//alternativ til ovenstående if saetning
/*
if (plength <= MIN)
    System.out.println("Passwordets laengde er mindre eller lig " + MIN);
else
    if (plength >= MAX)
        System.out.println("Passwordets laengde er stoerre eller lig "+ MAX);
    else
        System.out.println("Passwordets laengde er korrekt");
*/
 

 

Opgave 8b

// Programmet finder de reelle rødder i andengradsligningen

//   a*x*x + b*x + c = 0)

//   Gunnar Johansen, 1995-09-28 og 2002-09-05

 

 

 

 

 

//Math klassen er en del af "java.lang" pakken, som altid automatisk er med

//- den skal derfor ikke "import'es"

//Udnyt Lewis & Loftus Keyboard pakken

 

import java.util.Scanner;

 

public class Opgave8b

{

   public static void main(String[] args)

   {

      double a,b,c,d,x1,x2;

      Scanner scan=new Scanner(System.in);

      System.out.println("Løsning af andengradsligningen a*x*x + b*x + c");

      System.out.print("a,b,c=");

      a = scan.nextDouble();

      b = scan.nextDouble();

      c = scan.nextDouble();

 

 // 2 løsninger

      if (a != 0)

      {

         d = b*b-4*a*c;

         if (d >= 0)

         {

               x1 = (-b + Math.sqrt(d))/2/a;

               x2 = (-b - Math.sqrt(d))/2/a;

               System.out.println("Løsning x1,x2= " + x1 + " og " + x2);

         }

         else // d < 0

            System.out.println("Der er komplekse rødder");

      }

      else  // a == 0

         if (b != 0)

         {

            x1 = -c/b;

            System.out.println("Løsning til B*x+C=0 er x=" + x1);

         }

         else // b == 0

            if (c == 0)

               System.out.println("Der er uendelig mange løsninger");

            else // c !=0

               System.out.println("Der er 0 løsninger");

   }

}