Laboration 12, Arrayer

Storlek: px
Starta visningen från sidan:

Download "Laboration 12, Arrayer"

Transkript

1 Laboration 12, Arrayer Avsikten med denna laboration är att du ska träna på att använda arrayer. Skapa paketet laboration12 i ditt laborationsprojekt innan du fortsätter på denna laboration. Uppgift 1 public void baklänges(int[] tal) vilken skriver ut talen i en array med heltal baklänges. Talen separeras med komma-tecken och ett mellanslag. Om du testkör metoden med koden: Uppgift1 upp1 = new Uppgift1(); int[] fält1 = {1,2,3; int[] fält2 = {1000,100,10,1; System.out.print("Fält 1 baklänges: "); upp1.baklänges(fält1); System.out.print("Fält 2 baklänges: "); upp1.baklänges(fält2); så ska du få resultatet till höger. Uppgift 2 public int finns(int tal, int[] arraymedtal) vilken kontrollerar om tal finns i arrayen arraymedtal. Om tal finns i arrayen så returneras positionen för tal i arrayen (första förekomsten om flera gånger) och annars returneras -1. Testprogram Uppgift2 upp2 = new Uppgift2(); int[] array = {1,2,3,9,5,9; int position; position = upp2.finns(7,array); System.out.println("Position för 7: "+position); position = upp2.finns(9,array); System.out.println("Position för 9: "+position); Körresultat Position för 7: -1 Position för 9: 3 DA129A, Programmering 1 1

2 Uppgift 3 Skriv ett program vilket deklarerar en array som rymmer 10 heltal låter användaren mata in tio heltal vilka lagras i arrayen. Inmatningen ska ske med inmatningdialog, t.ex. genom Input.readInt(String). skriver ut heltalen i den ordning de matades in skriver vart annat tal framlänges skriver ut samtliga tal baklänges Programmet ska innehålla metoderna: skrivtal(int[] array) skrivvartannat(int[] array) Dessutom bör din lösning använda metoden baklänges, vilken du skrev i uppgift 1. Körresultat vid inmatning av talen: : Följande tal matades in: 12, 5, 8, 2, 3, 3, 3, 11, 221, 7 Vartannat tal: 12, 8, 3, 3, 221 Talen baklänges: 7, 221, 11, 3, 3, 3, 2, 8, 5, 12 Uppgift 4 public double[] baklänges(double[] array) vilken tar en array som input och som returnerar en array med samma element men med elementen i omvänd ordning. Testprogram Utskrifter Uppgift4 upp4 = new Uppgift4(); double[] array = {3.2, 4.7, -13.1, 14, 17.25; double[] kopia = upp4.baklänges(array); for(int i=0; i<array.length; i++) System.out.print(array[i]+" "); for(int i=0; i<kopia.length; i++) System.out.print(kopia[i]+" "); Tänkbar algoritm för baklänges-metoden 1. Skapa en array med samma kapacitet som input-fältet 2. Kopiera elementen från input-arrayen till den nya arrayen. Men gör det så att elementen byter plats, ungefär med tilldelningen (i är loop-variabel) nyarray[i] = array[array.length-i-1]; 3. Returnera referensen till den nya arrayen. DA129A, Programmering 1 2

3 Uppgift 5 public double[] intervall(double[] array, double min, double max) vilken tar en array och ett intervall (min-max) som input och som returnerar en ny array som innehåller de element i input-arrayen som är i intervallet (min <= element <= max). Tänkbar algoritm för intervall-metoden 1. Räkna antalet element i input-arrayen som är i intervallet 2. Skapa en ny array med korrekt kapacitet 3. Kopiera över elementen i intervallet, från input-arrayen, till den nya arrayen 4. Returnera referensen till den nya arrayen. Skriv dessutom ett program som testar din lösning. Uppgift 6 public int[] udda(int[] array) vilken ska returnera en array som innehåller alla udda element i en input-array. Om input-arrayen är {4, 3, 79, 55, 56, 34, 11, 17 så ska retur-arrayen vara {3, 79, 55, 11, 17 Extrauppgift Skriv ett program som simulerar kast med tre tärningar och som skriver ut resultatet av kasten i tabellform. Vid varje kast så ska tärningarnas siffersumma lagras. Detta sker med fördel i en array: int[] siffersumma = new int[19]; där vardera facket summerar antalet förekomster av en speciell siffersumma. Den minsta möjliga siffersumman är 3 och den största är 18. Exempel: Om tärningarna visar 8 prickar tillsammans så ska siffersumma[8] ökas med ett. Om tärningarna visar 18 prickar tillsammans så ska siffersumma[18] ökas med ett. Om du testar din metod bör den ge ett resultat liknande figuren till höger. DA129A, Programmering 1 3

4 Förslag till lösningar Uppgift 1 public void baklänges(int[] tal) { for(int i=tal.length-1; i>=0; i--) { System.out.print(tal[i]); if(i>0) { System.out.print(", "); Uppgift 2 public int finns(int tal, int[] arraymedtal) { for(int i=0; i<arraymedtal.length; i++) { if(tal == arraymedtal[i]) { return i; return -1; Uppgift 3 public class Uppgift3 { public void inmatning(int[] array) { array[i] = extra.input.readint("ange tal " + (i+1)); public void skrivtal(int[] array) { System.out.print("Följande tal matades in: "); System.out.print(array[i]); if(i<array.length-1) System.out.print(", "); public void skrivvartannat(int[] array) { System.out.print("Vartannat tal: "); for(int i=0; i<array.length; i+=2) { System.out.print(array[i]); if(i<array.length-2) System.out.print(", "); public void program() { Uppgift1 upp1 = new Uppgift1(); int[] heltal = new int[10]; inmatning(heltal); skrivtal(heltal); skrivvartannat(heltal); System.out.print("Talen baklänges: "); upp1.baklänges(heltal); public static void main(string[] args) { Uppgift3 upp3 = new Uppgift3(); upp3.program(); DA129A, Programmering 1 4

5 Uppgift 4 public double[] baklänges(double[] array) { double[] nyarray = new double[array.length]; nyarray[i] = array[array.length-i-1]; return nyarray; Uppgift 5 public double[] intervall(double[] array, double min, double max) { int antal = 0, index=0; double[] nyarray; if((array[i]>=min) && (array[i]<=max)) antal++; nyarray = new double[antal]; if((array[i]>=min) && (array[i]<=max)) { nyarray[index] = array[i]; index++; return nyarray; Uppgift 6 public int[] udda(int[] array) { int antal=0, index=0; int[] nyarray; if(array[i] % 2 == 1) antal++; nyarray = new int[antal]; if(array[i] % 2 == 1) { nyarray[index] = array[i]; index++; return nyarray; DA129A, Programmering 1 5

6 Extrauppgift package laboration12; import extra.*; public class Extrauppgift { public int tärningskast() { return (int)(math.random()*6)+1; public void kasta(int[] resultat, int antalkast) { int tärning1, tärning2, tärning3; for(int i=0; i<antalkast; i++) { tärning1 = tärningskast(); tärning2 = tärningskast(); tärning3 = tärningskast(); resultat[tärning1+tärning2+tärning3]++; public void skrivresultat(int[] resultat) { System.out.println("Summa Antal"); for(int i=3; i<resultat.length; i++) { System.out.println(Output.format(i,5)+Output.format(resultat[i],8)); public void program() { int[] siffersumma = new int[19]; kasta(siffersumma, ); skrivresultat(siffersumma); public static void main(string[] args) { Extrauppgift e = new Extrauppgift(); e.program(); DA129A, Programmering 1 6

Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer

Metodanrop - primitiva typer. Föreläsning 4. Metodanrop - referenstyper. Metodanrop - primitiva typer Föreläsning 4 Metodanrop switch-slingor Rekursiva metoder Repetition av de första föreläsningarna Inför seminariet Nästa föreläsning Metodanrop - primitiva typer Vid metodanrop kopieras värdet av en variabel

Läs mer

Föreläsning 4: for, while, do-while

Föreläsning 4: for, while, do-while TDA 545: Objektorienterad programmering Föreläsning 4: for, while, do-while Magnus Myréen Chalmers, läsperiod 1, 2014-2015 Evaluering Det är viktigt att ni kan se hur kod körs. ( se = simulera på papper,

Läs mer

3.3 for-satsen. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Föreläsning 3

3.3 for-satsen. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Föreläsning 3 Föreläsning 3 3.3 for-satsen I programmering talar man om tre sätt på vilket ett programflöde kan vara beskaffat: 1. Saker kan hända efter varandra, i sekvens. 2. Flödet kan innebära att ett val görs,

Läs mer

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye DD2310 Javaprogrammering för Pythonprogrammerare Johan Boye James Gosling pappa till Java Hej.java public class Hej { public static void main( String[] args ) { System.out.println( "Hej" ); Java basics

Läs mer

Funktioner. Programmering. Egendefinierade funktioner i Java. En Java-funktions anatomi. hh.se/db2004. Statiska metoder. Funktioner. resultatvärde.

Funktioner. Programmering. Egendefinierade funktioner i Java. En Java-funktions anatomi. hh.se/db2004. Statiska metoder. Funktioner. resultatvärde. Programmering hh.se/db2004 Föreläsning 7: Funktioner Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Funktioner Statiska metoder 1 Kan ta 0 eller flera argument. 2 Kan producera

Läs mer

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel Objekt Instansvariabler Instansmetoder Klassvariabler Klassmetoder Inkapsling Föreläsning 6 Vad är ett objekt? Ett objekt har egenskaper, som kallas för objektets attribut Egenskaperna beskriver tillsammans

Läs mer

Att svara på en remiss

Att svara på en remiss Att svara på en remiss Varje år skickar Regeringskansliet betänkanden, utredningar och andra förslag på remiss. Det betyder att myndigheter, organisationer och personer har möjlighet att svara på vad de

Läs mer

Heltal(int) Programmeringsteknik 54

Heltal(int) Programmeringsteknik 54 Heltal(int) Datatypen int används tillsammans med char, short int och long int för att lagra heltal i C. Matematisk sett finns det oändligt många heltal. På en dator måste det införas en begränsning på

Läs mer

NATIONELLT KURSPROV I MATEMATIK KURS A HÖSTEN 2001. Del II

NATIONELLT KURSPROV I MATEMATIK KURS A HÖSTEN 2001. Del II Skolverket hänvisar generellt beträffande provmaterial till bestämmelsen om sekretess i 4 kap 3 Sekretesslagen. För detta material gäller sekretessen till och med utgången av 2011. Anvisningar Provtid

Läs mer

Vikt och volym. Kapitel 4 Vikt och volym

Vikt och volym. Kapitel 4 Vikt och volym Vikt och volym Kapitel 4 Vikt och volym I kapitlet får eleverna arbeta med vikt och volym. Avsnittet om volym tar upp enheterna liter, deciliter och centiliter. Avsnittet om vikt tar upp enheterna kilogram,

Läs mer

An enrichment and extension programme for primary-aged children

An enrichment and extension programme for primary-aged children An enrichment and extension programme for primary-aged children Created by Tim Bell, Ian H. Witten and Mike Fellows Adapted for classroom use by Robyn Adams and Jane McKenzie Illustrated by Matt Powell

Läs mer

Föreläsning 5 Mer om funktioner, villkor

Föreläsning 5 Mer om funktioner, villkor Föreläsning 5 Mer om funktioner, villkor Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper 15.9.2011 Varför? Det finns sammanhang där ett

Läs mer

Nedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt:

Nedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt: 8. Objektorientering Skälet till att C++ är ett av de mest använda programspråken är att det är objektorienterat. Detta bygger vidare på begreppet struct (ursprungligen från språket C som inte är objektorienterat),

Läs mer

Skapa din egen kanal på Youtube

Skapa din egen kanal på Youtube Skapa din egen kanal på Youtube - för dina uppladdade filmer eller som portal som visar din spellista En kanal är en sida som den allmänna publiken kan titta på och som innehåller en användares profilinformation,

Läs mer

7 GRUNDERNA I PROGRAMMERING

7 GRUNDERNA I PROGRAMMERING Grunderna i programmering 7 GRUNDERNA I PROGRAMMERING Detta kapitel är bokens största kapitel och kanske det viktigaste. Vi kommer här att gå igenom grunderna för sekventiell programmering. Det vi går

Läs mer

Med denna aktivitet försöker jag

Med denna aktivitet försöker jag LAURA FAINSILBER Ett funktionsrum Under Vetenskapsfestivalen i Göteborg 2001 bjöd matematiska institutionen på Chalmers och Göteborgs universitet på matematiska experiment för skolklasser. I en av aktiviteterna

Läs mer

Bridge. på 10 minuter

Bridge. på 10 minuter Bridge på 10 minuter STEG FÖR STEG Det bästa sättet att lära sig spela bridge på är att börja med en förenklad form av spelet. Varje giv består av två moment, efter det att man delat ut korten: budgivning

Läs mer

PROV. 10 Uppräknade datatyper

PROV. 10 Uppräknade datatyper 10 10.1 10.2 Definition 10.3 Användning och regler 10.4 switch-satsen 10.5 Iteration över samtliga värden 10.6 Instansvariabler och instanstjänster 10.7 Värdespecifika implementationer 10.1 Hur ser vi

Läs mer

Hur många registreringsskyltar finns det som inte innehåller samma tecken mer än en

Hur många registreringsskyltar finns det som inte innehåller samma tecken mer än en Föreläsning 10 Multiplikationsprincipen Additionsprincipen Permutationer Kombinationer Generaliserade permutationer och kombinationer. Binomialsatsen Multinomialsatsen Lådprincipen (Duvslagsprincipen)

Läs mer

Klara målen i 3:an - undervisa i matematik!

Klara målen i 3:an - undervisa i matematik! Klara målen i 3:an - undervisa i matematik! Att få chans att lyckas i matematik De flesta elever älskar matte under sitt första skolår. Allas vår önskan är att eleverna ska få en fortsatt intressant och

Läs mer

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 17 januari 2013

Akademin för utbildning, kultur och kommunikation MMA132 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 17 januari 2013 MÄLARDALENS HÖGSKOLA TENTAMEN I MATEMATIK Akademin för utbildning, kultur och kommunikation MMA3 Numeriska Metoder Avdelningen för tillämpad matematik Datum: 7 januari 03 Examinator: Karl Lundengård Skrivtid:

Läs mer

Ekonomiavdelningen 2013-04-12. Åtgärda en faktura

Ekonomiavdelningen 2013-04-12. Åtgärda en faktura Åtgärda en faktura När du har fakturor hos dig för åtgärd ser du det genom att klicka på menyn Under Uppgifter arbetsflöde visas de antal fakturor som finns för behandling. Antalet fakturor framgår inom

Läs mer

Snabbguide: Användning av filsamling / resources i Mondo

Snabbguide: Användning av filsamling / resources i Mondo Vers 1.1 André Steinthorsson UPC Snabbguide: Användning av filsamling / resources i Mondo Filsamlingen är ett verktyg i Mondo som gör att du bl.a. kan ladda upp filer i din sajt och på så vis göra de tillgängliga

Läs mer

En bok kan förändra livet. En bokcirkel kan förändra världen. Samtalsmodell för bokcirkel

En bok kan förändra livet. En bokcirkel kan förändra världen. Samtalsmodell för bokcirkel En bok kan förändra livet. En bokcirkel kan förändra världen. Samtalsmodell för bokcirkel 1 Samtalsmodell för bokcirkel Läsning och livstolkning Livstolkning är något vi håller på med hela tiden: Vi försöker

Läs mer

NATIONELLT KURSPROV I MATEMATIK KURS A HÖSTEN 2000. Del I

NATIONELLT KURSPROV I MATEMATIK KURS A HÖSTEN 2000. Del I Skolverket hänvisar generellt beträffande provmaterial till bestämmelsen om sekretess i 4 kap 3 Sekretesslagen. För detta material gäller sekretessen till och med utgången av 2010. NATIONELLT KURSPROV

Läs mer

Näsgård Mobile TID Manual senast ändrad 2012-09-11. Näsgård Mobile TID. Inloggning

Näsgård Mobile TID Manual senast ändrad 2012-09-11. Näsgård Mobile TID. Inloggning Näsgård Mobile TID Generellt Näsgård Mobile TID är en tilläggsmodul och måste användas tillsammans med Näsgård Online modul i PC program. Näsgård Mobile TID kan användas separat eller tillsammans med Näsgård

Läs mer

4 tips för fler affärer

4 tips för fler affärer 4 tips för fler affärer Författaren: Jonaz Kumlander Jonaz Kumlander är grundare av och VD för Doidea. Innan Jonaz grundade Doidea 2004 så arbetade han som konsult under 10 år på företag som Razorfish,

Läs mer

TITEL. Johannes Hedberggymnasiet. Laborantens namn: Medlaboranters namn: Klass: Skola: Påbörjad: Inlämnad:

TITEL. Johannes Hedberggymnasiet. Laborantens namn: Medlaboranters namn: Klass: Skola: Påbörjad: Inlämnad: Johannes Hedberggymnasiet Ha gärna med skolans namn högst upp i vänstra hörnet, det ger framsidan lite guldkant Johannes Hedbergloggan är väldigt snygg att ha uppe i hörnet. Kopiera gärna denna. TITEL

Läs mer

Träningsprogram för att bli av med tvångssyndrom

Träningsprogram för att bli av med tvångssyndrom Träningsprogram för att bli av med tvångssyndrom Programmet bygger på Kognitiv biobeteendeterapeutisk självhjälpsmanual för tvångssyndrom av Jeffrey Schwartz. Texten har översatts av Susanne Bejerot. Texten

Läs mer