1
|
class Opgave_1 {
static void skrivAdresse() {
System.out.println( "Ikast Handelsskole" );
System.out.println( "Bøgildvej 12" );
System.out.println( "7430 Ikast" );
}
public static void main( String[] argv ) {
skrivAdresse();
}
} |
|
|
|
2
|
class Opgave_2 {
static void meddelFejl_v1() {
System.out.println( "Der er en fejl" );
}
static void meddelFejl_v2( int fejlNr ) {
System.out.println( "Fejl nr. " + fejlNr );
}
static void meddelFejl_v3( int fejlNr, int linieNr ) {
System.out.println( "Fejl nr. " + fejlNr + " i linie " + linieNr );
}
public static void main( String[] argv ) {
meddelFejl_v1();
meddelFejl_v2( 5 );
meddelFejl_v3( 5, 14 );
}
} |
|
|
|
3
|
class Opgave_3 {
static int midterst( int tal1, int tal2, int tal3 ) {
int midt=0;
if ( tal1 <= tal2 && tal2 <= tal3 || tal3 <= tal2 && tal2 <= tal1 )
midt = tal2;
else if ( tal2 <= tal1 && tal1 <= tal3 || tal3 <= tal1 && tal1 <= tal2 )
midt = tal1;
else
midt = tal3;
return midt;
}
public static void main( String[] argv ) {
System.out.println( midterst( 6, 10, 8 ) );
}
} |
|
|
|
4
|
class Opgave_4 {
static void stjerneLinie() {
int antalStjerner=20;
for ( int i=0; i<antalStjerner; i++ )
System.out.print( "*" );
System.out.println();
}
public static void main( String[] argv ) {
stjerneLinie();
}
} |
|
|
|
5
|
class Opgave_5 {
static void stjerneLinie( int antalStjerner ) {
for ( int i=0; i<antalStjerner; i++ )
System.out.print( "*" );
System.out.println();
}
public static void main( String[] argv ) {
stjerneLinie( 20 );
}
} |
|
|
|
6
|
class Opgave_6 {
static void tegnLinie( int antalTegn, char tegn ) {
for ( int i=0; i<antalTegn; i++ )
System.out.print( tegn );
System.out.println();
}
public static void main( String[] argv ) {
tegnLinie( 20, '#' );
}
} |
|
|
|
7
| a: Det er ikke noget problem at placere de to metoder i samme program,
selvom de har samme navn, da de overloader hinanden.
|
| b: Man kan lave opgave 4 ved at lade metoden kalde løsningen
af opgave 5, og metoden i opgave 5 ved at kalde metoden i opgave 6:
|
|
class Opgave_7 {
static void stjerneLinie() {
stjerneLinie( 20 );
}
static void stjerneLinie( int antalStjerner ) {
tegnLinie( antalStjerner, '*' );
}
static void tegnLinie( int antalTegn, char tegn ) {
for ( int i=0; i<antalTegn; i++ )
System.out.print( tegn );
System.out.println();
}
}
|
|
|
|
8
|
class Opgave_8 {
static void udskrivArray( int[] array ) {
for ( int i=0; i<array.length; i++ )
System.out.print( array[i] + " " );
System.out.println();
}
static void inc( int[] tabel ) {
for ( int i=0; i<tabel.length; i++ )
tabel[i] ++;
}
public static void main( String[] argv ) {
int[] tal = { 5, 3, 1, 6, 2, 4, 8, 2 };
inc( tal );
udskrivArray( tal );
}
} |
|
|
|
9
|
class Opgave_9 {
static void udskrivArray( int[] array ) {
for ( int i=0; i<array.length; i++ )
System.out.print( array[i] + " " );
System.out.println();
}
static void add( int tabel1[], int tabel2[] ) {
// PRE: tabel1.length == tabel2.length
for ( int i=0; i<tabel1.length; i++ )
tabel1[i] += tabel2[i];
}
public static void main( String[] argv ) {
int første[] = { 5, 42, 9, 53, 3, 10 };
int andet[] = { 3, 9, 19, 33, 10, 1 };
add( første, andet );
udskrivArray( første );
udskrivArray( andet );
}
} |
|
|
|
10
|
class Opgave_10 {
static void udskrivArray( int[] array ) {
for ( int i=0; i<array.length; i++ )
System.out.print( array[i] + " " );
System.out.println();
}
static void max( int tabel1[], int tabel2[] ) {
// PRE: tabel1.length == tabel2.length
for ( int i=0; i<tabel1.length; i++ )
if ( tabel1[i] < tabel2[i] )
tabel1[i] = tabel2[i];
}
public static void main( String[] argv ) {
int første[] = { 5, 42, 9, 53, 3, 10 };
int andet[] = { 3, 9, 19, 33, 10, 1 };
max( første, andet );
udskrivArray( første );
udskrivArray( andet );
}
} |
|
|
|
11
|
class Opgave_11 {
static void udskrivArray( int[] array ) {
for ( int i=0; i<array.length; i++ )
System.out.print( array[i] + " " );
System.out.println();
}
static void swap( int tabel1[], int tabel2[] ) {
// PRE: tabel1.length == tabel2.length
for ( int i=0; i<tabel1.length; i++ ) {
int temp = tabel1[i];
tabel1[i] = tabel2[i];
tabel2[i] = temp;
}
}
public static void main( String[] argv ) {
int første[] = { 5, 42, 9, 53, 3, 10 };
int andet[] = { 3, 9, 19, 33, 10, 1 };
swap( første, andet );
udskrivArray( første );
udskrivArray( andet );
}
} |
|
|
|
12
|
class Opgave_12 {
static void printArray( int[] t ) {
for( int i=0; i<t.length; i++ )
System.out.print( t[i] + " " );
System.out.println();
}
static void theSmallOneOut_1( int[] t ) {
int smallestIndex = 0;
int secondSmallestIndex;
// find den mindste (indirekte angivet ved smallestIndex)
for ( int i=smallestIndex+1; i<t.length; i++ )
if ( t[i] < t[smallestIndex] )
smallestIndex = i;
// Indstil secondSmallestIndex til en start der ikke er det mindste element
if ( smallestIndex == 0 )
secondSmallestIndex = 1;
else
secondSmallestIndex = 0;
// find det mindste element der ikke er selve t[smallestIndex]
for ( int i=secondSmallestIndex+1; i<t.length; i++ )
if ( t[i] < t[secondSmallestIndex] && i != smallestIndex)
secondSmallestIndex = i;
t[smallestIndex] = t[secondSmallestIndex];
}
static boolean theSmallOneOut_2( int[] t ) {
int smallestIndex = 0;
int secondSmallestIndex=0;
// find den mindste (indirekte angivet ved smallestIndex)
for ( int i=smallestIndex+1; i<t.length; i++ )
if ( t[i] < t[smallestIndex] )
smallestIndex = i;
// Indstil secondSmallestIndex til en start der ikke er
// det mindste element og har en større værdi
for ( int i=0; i<t.length; i++ )
if ( t[i] != t[smallestIndex] ) {
secondSmallestIndex = i;
break;
}
// find det mindste element der ikke er t[smallestIndex]
for ( int i=secondSmallestIndex+1; i<t.length; i++ )
if ( t[i] < t[secondSmallestIndex] && t[i] != t[smallestIndex] )
secondSmallestIndex = i;
if ( t[smallestIndex] != t[secondSmallestIndex] ) {
t[smallestIndex] = t[secondSmallestIndex];
return true;
} else
return false;
}
static void allSmallOnesOut( int[] t ) {
int counter=0;
while ( theSmallOneOut_2( t ) )
counter++;
System.out.println( "Antal iterationer: " + counter );
}
public static void main( String[] argv ) {
int test[] = { 5, 2, 8, 4, 0, 3, 1, 4 };
System.out.println( "test[]" );
printArray( test );
System.out.print( "theSmallOneOut_1( test ): " );
theSmallOneOut_1( test );
printArray( test );
System.out.print( "theSmallOneOut_1( test ): " );
theSmallOneOut_1( test );
printArray( test );
System.out.print( "theSmallOneOut_2( test ): " );
theSmallOneOut_2( test );
printArray( test );
System.out.println( "allSmallOnesOut( test )" );
allSmallOnesOut( test );
}
} |
|
|
|
13
|
class Opgave_13 {
static boolean erDetPrimtal( int kandidat ) {
boolean erPrimtal=true; // indtil det modsatte er bevist
for ( int divisor=2; divisor<=Math.sqrt( kandidat ); divisor++ )
if ( kandidat % divisor == 0 ) {
erPrimtal = false;
break;
}
return erPrimtal;
}
public static void main( String argv[] ) {
for ( int i=2; i<=100; i++ )
if ( erDetPrimtal( i ) )
System.out.print( i + " " );
System.out.println();
}
} |
|
|
|
14
|
class Opgave_14 {
/*
* opgave 1
*/
static int add( int x, int y ) {
return x + y;
}
/*
* opgave 2
*/
static int sub( int x, int y ) {
return x - y;
}
static int mul( int x, int y ) {
return x * y;
}
static int div( int x, int y ) {
return x / y;
}
static int mod( int x, int y ) {
return x % y;
}
/*
* opgave 4
*/
static int power( int x, int y ) {
// PRE: y>=0
int res=1;
for ( int i=0; i<y; i=add(i,1) )
res = mul( res , x );
return res;
}
/*
* opgave 5
*/
static int sqr( int x ) {
return power( x, 2 );
}
/*
* opgave 6
*/
static int abs( int x ) {
if ( x<0 )
x = sub( 0 , x );
return x;
}
/*
* opgave 7
*/
static int poly3( int x ) {
return sub( add( add( power( x, 3 ), mul( 3, sqr( x ) ) ), x), 5 );
}
/*
* opgave 8
*/
static int sqrt( int x ) {
// PRE: x>0
int res=0;
while ( sqr( res ) <= x )
res = add( res, 1 );
return sub( res, 1 );
}
public static void main( String[] argv ) {
System.out.println( "add( 2, 3 ) = " + add( 2, 3 ) );
System.out.println( "sub( 2, 3 ) = " + sub( 2, 3 ) );
System.out.println( "mul( 2, 3 ) = " + mul( 2, 3 ) );
System.out.println( "div( 2, 3 ) = " + div( 2, 3 ) );
System.out.println( "mod( 2, 3 ) = " + mod( 2, 3 ) );
System.out.println( "power( 2, 3 ) = " + power( 2, 3 ) );
System.out.println( "sqr( 3 ) = " + sqr( 3 ) );
System.out.println( "abs( -5 ) = " + abs( -5 ) );
System.out.println( "poly3( 2 ) = " + poly3( 2 ) );
System.out.println( "sqrt( 41 ) = " + sqrt( 41 ) );
/*
* opgave 3
*/
System.out.println( "5 * 10 + 11 = " + add( mul( 5, 10 ), 11 ) );
System.out.println( "7 / 3 - 9 * 5 = " + sub( div( 7, 3 ), mul( 9, 5 ) ) );
System.out.println( "4 * ( 3 + 9 ) = " + mul( 4, add( 3, 9 ) ) );
System.out.println( "9 / 4 + 8 % 3 = " + add( div( 9, 4 ), mod( 8, 3 ) ) );
System.out.println( "9 / 3 + 9 % 3 + 12 = " +
add( add( div( 9, 3 ), mod( 9, 3 ) ), 12 ) );
}
} |
|
|
|
15
|
static int tilskud( int afstand ) {
// PRE: afstand >= 0
if ( afstand > 5 )
return afstand - 5;
else
return 0;
} |
|
|
|
16
|
static boolean bestået( int[] karakter ) {
// PRE: karakter.length == 8 && karakter[i] er gyldig karakter på 13-skalaen
if ( karakter[0] < 6 ||
karakter[1] < 6 ||
karakter[7] < 6 )
return false;
double sum=0;
for ( int i=0; i<karakter.length; i++ ) {
sum += karakter[i];
if ( karakter[i] < 5 )
return false;
}
return sum / karakter.length >= 6;
} |
|
|
|
17.1
|
static boolean lige( int x ) {
return x % 2 == 0;
}
static boolean ulige( int x ) {
return !lige( x );
} |
|
| Selv om de to metoder godt kunne laves uafhængigt af hinanden, er
det mere elegant at den ene kalder den anden.
|
17.2
|
static boolean swapLigeUlige( int[] t, int index1, int index2 ) {
if ( lige( t[index1] ) && ulige( t[index2] ) ) {
int temp = t[index1];
t[index1] = t[index2];
t[index2] = temp;
return true;
} else
return false;
} |
|
17.2
| swapLigeUlige gennemløber
elementparene i arrayet (elementer der står parvis ved siden af hinanden)
og bytter dem om med hinanden hvis den til venstre er lige og den til højre
er ulige.
|
| Hvis swapLigeUlige
returnerer false,
står alle de ulige tal i den første del af arrayet, mens alle
de lige står i den sidste del af arrayet.
|
| F.eks.:
|
|
static void printArray( int[] t ) {
for ( int i=0; i<t.length; i++ )
System.out.print( t[i] + " " );
System.out.println();
}
public static void main( String[] argv ) {
int[] tabel = { 6, 7, 1, 8, 5 };
printArray( tabel );
while ( m( tabel ) )
;
printArray( tabel );
} |
|
|
|
18
|
static void erstatMindre( int[] t, int grænse, int erstatning ) {
for ( int i=0; i<t.length; i++ )
if ( t[i] <= grænse )
t[i] = erstatning;
} |
|
|
|
19
|
static boolean findesPar( int[] t, int x1, int x2 ) {
for ( int i=0; i<t.length-1; i++ )
if ( t[i] == x1 && t[i+1] == x2 )
return true;
return false;
} |
|
|
|
20.1
|
static int hyppighed( int[] t, int værdi ) {
int antal=0;
for ( int i=0; i<t.length; i++ )
if ( t[i] == værdi )
antal++;
return antal*100/t.length;
} |
|
20.2
|
static void printStatistik( int[] t ) {
for ( int i=0; i<10; i++ )
System.out.println( i + ": " + hyppighed( t, i ) );
} |
|
|
|