Array: Övningsuppgifter 1

Övningsuppgift 1

Givet fältet names i koden nedan, som innehåller namn. Skriv ut det med omvänd ordning i en tabell som börjar på 1.

Det vill säga:

1.  Hampus

2.  Rebecca

osv …

public static void main(String[] args) {

    String[] names = {"Erik", "Stina", "Tom", "Gustav", "Amanda", "Elin", "Rebecca", "Hampus"};      

}

Lösning

Vi använder oss av en for-loop för att gå igenom fältet

for (int i =0; i < names.length; i++){
    System.out.println(i+1 + ". " + names[names.length - 1 - i]);
}
  • i + 1, är för att i = 0 och vi vill börja på 1. (vi sätter i = 0 för att börja på index 0)
  • names[names.length – 1 – i] gör så att vi börjar på sista elementet i fältet och då i ökar så går vi mot början.

Övningsuppgift 2

Obs! 

Denna uppgift ska lösas med penna och papper, inte med hjälp av kompilatorn.

Givet fältet values nedan, vad skrivs ut av kodsegment a) ,  b) och c) ?

int[] values = {2, 5, 4, 6, 8, 10, 4, 5};

a)

int totA = 0;
for (int i = 0; i < values.length; i = i + 1) {
    totA = totA + values[i]; 
}

System.out.println(totA);

b)

int totB = 0;
for (int i = 0; i < values.length; i = i + 2) {
   totB = totB + values[i]; 
}

System.out.println(totB);

c)

int totC = 0;
for (int i = 1; i < values.length; i = i + 2) {
   totC = totC + values[i]; 
}

System.out.println(totC);

Lösning

a) 

Svar: 44

b) 

Svar: 18

c) 

Svar: 26


Övningsuppgift 3

Obs! 

Denna uppgift ska lösas med penna och papper, inte med hjälp av kompilatorn.

Givet fältet values nedan i uppgift a) och b), vad skrivs ut i respektive kodsegment? Notera att values innehåller olika värden i a) och b).

a)

int[] values = {2, 5, 5, 6, 8, 10, 4, 5};

int a = 0;
while (values[a] <= values[a+1]){

   System.out.println(values[a]); 
   a = a + 1; 
}

b)

int [] values = {2, 1, 5, 3, 8, 10, 13, 5};

int b = 0;
while (b <= values[b]){

   System.out.println(values[b]);
   b++; 
}

Lösning

a) 

2
5
5
6
8

b) 

2
1
5
3
8
10
13


Övningsuppgift 4

Skriv ett program som ber användaren ange en siffra mellan 1 – 20 och sedan med hjälp av ett Scanner-objekt läser in och sparar ned värdet. Jämför sedan det värdet mot elementen i den givna array values nedan. Skriv ut index för första förekomsten av värdet i array:n och ifall värdet inte finns array:n så skriv ut att “värdet kunde inte hittas”.

Programmet ska även kolla så att värdet som användaren skrivit in ligger i intervallet 1 <= tal <= 20.

Testa gärna att användaren anger någon av de siffror som det finns fler än en förekomst av i array:n för att se så programmet skriver ut första förekomsten, t.ex. siffran 5.

Exempel

Anger användaren värdet 4 ska programmet skriva ut:  Index: 2

Anger användaren värdet 7 ska programmet skriva ut:  Värdet kunde inte hittas

Anger användaren värdet 21 ska programmet skriva ut: Ogiltigt värde

public static void main(String[] args) {

    int[] values = {2, 5, 4, 5, 1, 8, 9, 10, 20, 8, 2, 5, 19, 17, 15, 13};      

}

Lösning

import java.util.Scanner;
/**
 * Created by ProgrammeraJava.se.
 */
public class Main {
    public static void main(String[] args) {
        int[] values = {2, 5, 4, 5, 1, 8, 9, 10, 20, 8, 2, 5, 19, 17, 15, 13};
        Scanner input = new Scanner(System.in);
        // Frågar om ett tal och sparar ner inputen i variabeln val
        System.out.println("Ange tal i arrayen: ");
        int val = input.nextInt();
        /* Kontrollerar att inputen är inom det angivna intervallet.
         * Stänger av programmet om fel intervall angivits */
        if(val < 0 && val > 20){
            System.out.println("Ogiltigt värde");
            System.exit(0);
        }
        /* Loopar igenom alla värden i listan. 
         * Skriver ut indexet på första förekomsten av värdet.
         * Stänger sedan av programmet. 
         */
        for(int i = 0; i < values.length; i++){
            if(val == values[i]){
                System.out.println("Index: " + i);
                System.exit(0);
            }
        }
        System.out.println("Värdet kunde inte hittas");
    }
}

Vad tyckte du om sidan?

Lämna gärna feedback och hjälp oss göra sidan bättre

Feedback gör oss bättre!

Lämna gärna feedback om vad du tyckte om avsnittet!