Fred7555 Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 Alle eksamene ligger her: http://www.udir.no/Vurdering/Eksamen-videregaende/Eksamen-Kunnskapsloftet/Programfag-studieforberedende-/Informasjonsteknologi-2-/ Lenke til kommentar
dodoman Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 Ser mange som spør etter denne Losningsforslag_H2010.zip Lenke til kommentar
dodoman Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 Har prøvd å lage et program hvor jeg kan søke etter personer, som da skal bli søkt opp fra et array. Hvis personen finnes skal det bli tracet Riktig og omvendt.. Hva er feil? btnSøk.addEventListener(MouseEvent.CLICK, sok) var navnArray:Array = new Array(); navnArray[0] = new Array("Kåre"); navnArray[1] = new Array("Ole"); navnArray[2] = new Array("Per"); var teller:int = 0; var teller1:int = 0; function sok(evt){ var navn:String = txtNavn.text; while(teller < navnArray.length){ while (teller1<navnArray.length+1){ // trace(navnArray[teller][teller1]) if(navnArray.indexOf(navn) != -1){ trace ("Riktig"); } else{ trace ("Galt"); } teller1++; } teller++; teller1 = 0; } } Lenke til kommentar
Fred7555 Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 (endret) Du trenger ingen løkke for å bruke indexOf. indexOf kjører selv gjennom hele arrayet, og gir tilbake enten indexen eller -1. Dette er nok (ikke testet, men mener det skal funke): searchForName_btn.addEventListener(MouseEvent.CLICK, searchForName) var nameArry:Array = ["Nils", "Ole", "Per"] function searchForName(e:MouseEvent) { var navn:String = name_txt.text; if(nameArry.indexOf(navn) != -1) trace ("Riktig"); else trace ("Galt"); } Endret 22. mai 2012 av Fred7555 2 Lenke til kommentar
OneWingedAngel Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 (endret) Skal ikke "navn" i if-testen definere verdien som skal finnes? Edit: Never mind. Så ikke variabelen ovenfor. Endret 22. mai 2012 av OneWingedAngel 1 Lenke til kommentar
dodoman Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 Takk for det! Men si da at arrayen ser slik ut(to dimensjonal?): btnSøk.addEventListener(MouseEvent.CLICK, søkEtterNavn) var navnArray:Array = new Array(); navnArray[0] = new Array("Kåre"); navnArray[1] = new Array("Ole"); navnArray[2] = new Array("Per"); function søkEtterNavn(e:MouseEvent) { var navn:String = txtNavn.text; if(navnArray.indexOf(navn) != -1){ trace ("Riktig"); } else{ trace ("Galt"); } } Da fungerer det ikke... Vil ha den sann da jeg tenker det kan komme en oppgave hvor man må vite f eks hvor mange medaljer hver person har vunnet. og da kan jo arrayen bli noe som dette: var navnArray:Array = new Array(); navnArray[0] = new Array(navn: "Kåre", medaljer: 3 ); navnArray[1] = new Array(navn: "Ole"), medaljer: 1 ); navnArray[2] = new Array(navn: "Per"), medaljer: 5); eller? Lenke til kommentar
OneWingedAngel Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 For en sånn array må du dra frem løkken. btnSøk.addEventListener(MouseEvent.CLICK, sok) var navnArray:Array = new Array(); navnArray[0] = new Array("Kåre"); navnArray[1] = new Array("Ole"); navnArray[2] = new Array("Per"); function sok(evt:MouseEvent) { var navn:String = txtNavn.text; for(var teller:int = 0; teller < navnArray.length; teller++) { if(navnArray[teller].indexOf(navn) != -1) { trace ("Riktig"); } else { trace ("Galt"); } } } 1 Lenke til kommentar
marxus Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 Mulig at vi må bruke MasterPage? Lenke til kommentar
whazzo Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 Får ikke noen av scriptene deres til å fungere jeg, men er det ikke feil å definere en new Array når det bare er en i lista. Altså, endimensjonal: var navnArray:Array = new Array(); navnArray[0] = "Sindre" navnArray[1] = "Ole" navnArray[3] = "Martin" todimensjonal: var navnArray:Array = new Array(); navnArray[0] = new Array( "Sindre", 2) navnArray[1] = new Array("Ole", 8) navnArray[3] = new Array("Martin", 4) Lenke til kommentar
Fred7555 Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 Hvorfor bruke så mange linjer, når det holder å bruke: ? En-dimensjonal: var nameArry:Array = ["Sindre", "Ole", "Martin] To-dimensjonal: var nameArry:Array = [ ["Sindre", 2], ["Ole", 8], ["Martin", 4] ] Lenke til kommentar
whazzo Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 Hvorfor bruke så mange linjer, når det holder å bruke: ? En-dimensjonal: var nameArry:Array = ["Sindre", "Ole", "Martin] To-dimensjonal: var nameArry:Array = [ ["Sindre", 2], ["Ole", 8], ["Martin", 4] ] Sant, bare vandt med det fra timene, også er det mer oversiktlig, men er jo selvfølgelig lettere Lenke til kommentar
Fred7555 Skrevet 22. mai 2012 Del Skrevet 22. mai 2012 Såklart, man bruker jo sinde egne metoder Om det er 3-4 linjer, så gjør det jo ikke noe, men når du legger til 10+ elementer i et array på den måten, så blir det plutselig velge mange 'unødvendige' linjer som kunne ha forkortest ned. Også husk å ha god, strukturert og kommentert kode under eksamen. Mye bedre å ha oversiktlig og godt kommentert kode, enn å ha fult av ting her og der uten noen form for oversikt. De fleste vet sikkert det, og det er nokså innlysende, men ekstra viktig på eksamen, da det er det som er førsteinntrykket sensoren får om deg. Lenke til kommentar
whistle Skrevet 23. mai 2012 Del Skrevet 23. mai 2012 Noen her nå? Hvordan finner man lengden på en todimensjonal tabell? var idrett: Array=new Array(); idrett[0]=new Array("Friidrett", "Håndball", "Svømming"); idrett[1]=new Array("Basket", "Fotball", "Sprint", "Svømming"); Altså lengen på tabellene som ligger i tabellen idrett. Lenke til kommentar
Fred7555 Skrevet 23. mai 2012 Del Skrevet 23. mai 2012 (endret) Ikke 100%, da jeg ikke får tid til å teste eller brukt i det siste, men jeg vil anta at en av disse vil funke: var len1:int = idrett[0].length; var len2:int = idrett[1].length; var len:int = len1 + len2; var len1:int = 0; var len2:int = 0; for (var row:int = 0; row < idrett.lengh; row++) { len1++; for (var column:int = 0; column < idrett[row].length; column++) { len2++; } } var len:int = len1 + len2; Endret 23. mai 2012 av Fred7555 Lenke til kommentar
whistle Skrevet 23. mai 2012 Del Skrevet 23. mai 2012 ^ tuuusen takk! nå er mitt eneste problem den heelsikes søkinga i tabeller. vet at det har blitt forsøkt forklart her inne, men jeg må innrømme at jeg ikke helt har forstått det enda. men det blir vel kanskje for komplisert å forklare for et forvirret hode før klokka er åtte også. Lenke til kommentar
Fred7555 Skrevet 23. mai 2012 Del Skrevet 23. mai 2012 (endret) Klarte å gå tilbake, dermed ble hele forklaringen slettet, og ikke tid til å skrive alt igjen, men prøver å huske det jeg skrev :/ nameOfArray.indexOf("det du søker etter, gåseøyne om det er en string), går som sagt gjennom arrayet. Det den gjør, er å gå igjennom raden, og i et en-dimensjonalt array er det bare en rad, altså funker det helt fint. Men når vi kommer til fler-dimensjonalt, så har den flere rader, og indexOf tar bare for seg den første, altså nameOfArray[0]-raden. Så når vi ønsker å søke igjennom hele arrayet, må vi tilby indexOf alle radene i arrayet, så søker den igjennom alle kolonnene i raden vi tilbyr. Det kan gjøres på flere måter, men den under er grei og fin. Bruker oppsetter ditt: var idrett: Array=new Array(); idrett[0]=new Array("Friidrett", "Håndball", "Svømming"); idrett[1]=new Array("Basket", "Fotball", "Sprint", "Svømming"); for (var i:int = 0; < idrett.length; i++) { if (idrett[i].indexOf("....") == -1) ...skjer om det ikke finnes.... if (idrett[i].indexOf("....") != -1) ... skjer om det finnes.... } Den går da gjennom 0 og helt til siste rad, og dermed gir du metoden(indexOf) alle radene, og den går selv gjennom kolonnene, og om det ikke finnes blir det -1, og om det finnes blir det indexen som sagt. On du bare skal gå igjennom arrayet for å sjekke om noe finnes, og ikke bruke det, så er det ikke vits å huske i. Men om du skal bruke rad-nummeret videre, f.eks. et annet array har samme struktur med en annen idrett, eller du skal bruke det til å finne personer før/etter ol., så må du huske i-en, da det er rad-nummeret det ble funnet på. Håper du skjønner det litt bedre hvertfall Endret 23. mai 2012 av Fred7555 Lenke til kommentar
PaRaNo1D Skrevet 23. mai 2012 Del Skrevet 23. mai 2012 fy faen... var det bare jeg som ikke fikk till oppgave 3?? Lenke til kommentar
Fred7555 Skrevet 23. mai 2012 Del Skrevet 23. mai 2012 Noen som vet når eksamen blir lagt ut? Lenke til kommentar
Potetmann Skrevet 23. mai 2012 Del Skrevet 23. mai 2012 Oppgave 3 var uten tvil den vanskeligste! Klarte den heldigvis til slutt Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå