Informationsteknologier
Computerrevolutionen, som begyndte i slutningen af det 20. århundrede, resulterede i oprettelsen af internettet (nettet) i 90'erne. Og det var begyndelsen på endnu større revolution. Effekten af oprettelse af internettet er ligesom industrialisering. Men det lækreste er, at denne proces lige er startet.Ny verden
Site mængde er over 200 mio. 3 milliarder internetbrugere derude. Internet-auktioner, websteder, online-butikker, internet-tjenester. Informationsteknologiindustrien vokser 20%-30% årligt. Det er monstrøse priser. Og det bliver ved med at vokse. I de sidste 10 år i Silicon Valley (det vigtigste centrum for den højteknologiske industri i verden) bliver der hver 2. måned oprettet en virksomhed, som bagefter koster milliarder af dollars. For ikke at tale om sådanne internetstjerner som Facebook (220 milliarder dollars), Amazon (140 milliarder dollars) og Google (350 milliarder dollars). Alle disse virksomheder ville ikke dukke op, hvis der ikke var noget internet. Alt sammen resulterer i stor efterspørgsel på IT-specialister. Verdens højteknologiske industri kræver: softwareudviklere, designere, QA-testere, arkitekter, ledere, systemadministratorer og andre specialister.Det er godt at være IT-specialist
Hvis du er IT-specialist, er det en gylden tid for dig. Du kan arbejde for en stor virksomhed og bo i en lille by eller arbejde for udenlandsk virksomhed. Du tjener måske to gange mindre end i f.eks. EU, men du får 3-10 gange mere end på det lokale arbejdsmarked. Jo mindre by, jo større er forskellen. Du vil modtage værdifuld erfaring, gode penge og en lys fremtid. Nogle gange tager du på forretningsrejser til dit arbejdsgiverkontor. Og hvis du kan lide det meget, kan du flytte dertil. Et stigende tidevand løfter alle både. Hvorfor ville der ikke være sådan en båd, der er på det rigtige tidspunkt og på det rigtige sted? Dette er også en kunst.Du har nået et nyt niveau
Niveau 7
1 Elly, Arrays
- Hej, Amigo! - Hvad sker der, Elly? - I dag vil jeg fortælle dig om en ny interessant enhed - arrays. Et array er en speciel datatype, der kan lagre mere end én værdi. - Jeg starter med analogi. Lad os sammenligne et almindeligt hus og et højhus. Et hus er beboet af en enkelt familie, hvorimod et højhus er opdelt i lejligheder. Du skal angive den unikke adresse for at skrive et brev til en familie, der bor i huset. For en familie, der bor i lejlighed, skal du desuden angive lejlighedsnummer. - Ja, det er klart. - Så en array-variabel er som en højhus. Du kan gemme flere værdier i den. En sådan variabel har nogle lejligheder (celler). Hver af lejlighederne kan tilgås ved sit nummer (indeks).For at gøre dette skal du efter variabelnavnet i firkantede parenteser angive indekset for den celle, du får adgang til. Det er ret simpelt. - Det håber jeg. - En array-variabel (et højhus) kan være af enhver type, så du skal bare skriveTypeName[] variable_name
i stedet for TypeName variable_name
. - Her er eksempler på, hvad du kan gøre med arrays: - Hvor spændende! - En matrixvariabel har brug for yderligere initialisering. - Hvorfor så? - En sædvanlig variabel er klar til brug lige efter dens erklæring. Hvad angår arrays, er det lidt mere kompliceret: - Først skal du oprette en beholder med N elementer, og derefter kan du placere værdier i den. - Jep. Det bliver tydeligere nu. - Det grundlæggende om arrays :
- Arrayet består af flere celler.
- Hver celle tilgås ved at angive dens nummer.
- Alle cellerne er af samme type.
- I en matrix af n elementer har cellerne indeks 0,1,2,...,n-1. Der er ingen celle med indeks n i arrayet.
- Startværdien for alle celler er nul, for primitive typer – 0, 0,0 for fraktioneret, falsk – for boolesk type, nøjagtig det samme som i simple ikke-initialiserede variable.
- String[] liste er blot en erklæring af en variabel. Først skal du oprette et array (container) og sætte det i variablen og derefter bruge det. Se eksemplet nedenfor.
- Når du opretter et objektarray (container), er det nødvendigt at angive dets længde (hvor mange celler det vil have). For at gøre dette skal du skrive en kommando: TypeName er den type værdier, som vil blive gemt i celler i arrayet.
new TypeName[n];
2 Risha, Arrangement af arrays i hukommelsen
- Hej, Amigo! Lad mig vise dig, hvordan det hele fungerer i hukommelsen: - Og hvad er denne 345? - Faktisk har jeg plukket det ud af luften, men normalt er det adressen på strengen, der indeholder ordet "Stop". - Hvad angår arrays, er det lidt mere kompliceret:3 Risha, Eksempler på arrays Array
- Jeg vil gerne give dig et par eksempler på interessante ting, du kan gøre med arrays: Eksempel 1. Eksempel 2. Eksempel 3. Eksempel 4. Eksempel 5.4 Diego, Opgaver til oprettelse og brug af arrays
- Hej, Amigo! Her er et par opgaver til dig, ven:Opgaver | |
---|---|
1 | 1. Maksimum af en matrix på 20 numre 1. I metoden initializeArray() : 1.1. Opret en matrix med 20 tal 1.2. Læs fra tastaturet 20 tal og fyld arrayet med dem 2. Metoden max(int[] array) skal finde det maksimale antal af elementerne i arrayet |
2 |
2. Array af strenge i omvendt rækkefølge |
3 | 3. 2 arrays 1. Opret et array med 10 strenge. 2. Opret endnu et array med 10 numre. 3. Læs 10 strenge fra tastaturet, og fyld strengearrayet med dem. 4. Skriv længden af en streng fra hver celle i streng-arrayet i cellen med tal-array med samme indeks. Vis indholdet af rækken af tal på skærmen. Hver værdi skal være på en ny linje. |
4 | 4. Matrix af tal i omvendt rækkefølge 1. Opret en matrix med 10 tal. 2. Læs 10 tal fra tastaturet, og gem dem i arrayet. 3. Arranger array-elementer i omvendt rækkefølge. 4. Vis resultatet på skærmen. Hver værdi skal være på en ny linje. |
5 | 5. Et stort og to små arrays 1. Opret et array med 20 tal. 2. Læs 20 tal fra tastaturet, og fyld arrayet med dem. 3. Opret to arrays med hver 10 tal. 4. Kopier numre fra det store array til to små arrays: halvdelen af tallene til det første array, den anden halvdel til det andet. 5. Vis det andet lille array på skærmen. Hver værdi skal være på en ny linje. |
5 Elly, ArrayList vs. Array
- Det er mig. - Hej, Elly! - I dag har vi et nyt spændende emne! Nu vil jeg fortælle dig om en interessant ny klasse, ArrayList . - Åh, en ny klasse? Wow! Hvad gør den? - Lad mig begynde med en lille baghistorie. Programmørerne kunne ikke lide én egenskab ved et array: det er umuligt at ændre dets størrelse. Hvad skal du gøre, hvis du vil gemme tre poster mere i arrayet, men der kun er én ledig plads? - Den eneste løsning på pladsmangel-problemet var at skabe et meget stort array, der indeholder alle elementerne. Men dette førte ofte til ineffektiv brug af hukommelse. For eksempel, hvis du i 99% af arrayets levetid kun skulle gemme 3 elementer i array, og kun i 1% - 100 elementer, skulle du oprette array med 100 elementer. - Så hvad fandt programmørerne på? - De skrev klassen ArrayList , der gjorde det samme arbejde som Array, men kunne variere dens størrelse. - Et interessant træk. Og hvordan gjorde de det? - Hvert ArrayList- objekt gemmer et almindeligt array af elementer indeni. Når du læser elementer fra ArrayList , læser den dem fra dens interne array. Når du skriver elementerne, skriver den dem til det interne array. Sammenlign: - Så hvad er fordelen ved ArrayList? Hvad mig angår, blev koden længere. - For det første understøtter ArrayList nogle ekstra funktioner, der ikke er tilgængelige i array, som programmører bruger meget ofte. For eksempel,indsæt elementer i og slet dem fra midten af arrayet uden at efterlade huller. - For det andet kan ArrayList ændre dens størrelse . Når ArrayList skal gemme et element mere i dets interne array, og der ikke er ledig plads, sker følgende inde i ArrayList :- et andet array oprettes, dobbelt så stort.
- alle elementerne i det gamle array kopieres til det nye array.
- et nyt array er gemt i en intern variabel i ArrayList-objektet, det gamle array erklæres for skrald (vi gemmer simpelthen ikke dets reference mere).
6 Diego, ArrayList opgaver
- Gør du ingenting igen? Du er en robot, er du ikke? Robotter har altid travlt med noget. Her er nogle opgaver for at holde dig oppe. Men lad os begynde med et par tips. - Tip 1: En liste betyder oftest en ArrayList . - Tip 2: En streng betyder typen String . - Tip 3: At oprette en liste over strenge betyder oftest ArrayList<String> list = new ArrayList<String>();Opgaver | |
---|---|
1 | Opgave 1. 5 forskellige strenge på en liste 1. Opret en liste med strenge. 2. Tilføj 5 forskellige strenge til listen. 3. Vis dens størrelse på skærmen. 4. Vis indholdet af listen på skærmen. Hver værdi skal være på en ny linje. Brug en løkke. |
2 | Opgave 2. 5 linjer: «101», «102», «103», «104», «105» 1. Lav en liste med strenge. 2. Tilføj 5 strenge til listen. «101», «102», «103», «104», «105». 3. Slet den første, den midterste og den sidste. 4. Vis indholdet af listen på skærmen. Hver værdi skal være på en ny linje. Brug en løkke. 5. Vis dens størrelse på skærmen. (Efter sletning af en post, ændres indekserne for andre poster. Hvis vi f.eks. sletter det første element, bliver det andet det første). |
3 | Opgave 3. 5 linjer i omvendt rækkefølge 1. Opret en liste med strenge. 2. Læs 5 strenge fra tastaturet, og føj dem derefter til listen. 3. Arranger dem i omvendt rækkefølge. 4. Vis indholdet af listen på skærmen. Hver værdi skal være på en ny linje. Brug en løkke. |
4 |
Opgave 4. Tilføj 5 strenge til begyndelsen af listen |
5 | Opgave 5. Slet den sidste streng og tilføj den til begyndelsen af listen 1. Opret en liste med strenge. 2. Læs fra keyboard 5 strenge. Tilføj disse strenge til listen. 3. Slet den sidste streng og tilføj den til begyndelsen af listen. Gentag denne handling 13 gange. 4. Vis indholdet af listen på skærmen. Hver værdi skal være på en ny linje. Brug en løkke. |
7 Risha, generiske lægemidler
- Nu endnu et fantastisk emne. - Denne dag er fuld af overraskelser. Det er ligesom en rigtig fødselsdag. - I dag vil jeg fortælle dig, hvad generika er. Generiske er typer, der har parametre. I Java giver containerklasser dig mulighed for at angive typer af deres interne objekter . - Når vi erklærer en generisk variabel, angiver vi to typer i stedet for én: typen af variablen og typen af data, der er lagret i variablen. Et godt eksempel på dette er ArrayList. Når vi opretter et nyt objekt/variabel af typen ArrayList, er det også godt at angive den type værdier, der skal gemmes i listen. - Det lyder spændende. Jeg elskede især det du sagde om enhver type. - Det ser bare ud til at være godt. Faktisk, hvis man i den ene metode placerer strenge i en ArrayList, og i den anden metode arbejder med dens indhold og forventer, at der kun vil være tal, vil programmet gå ned. - Jeg ser. - Indtil videre skal vi ikke lave vores egne klasser med type-parametre, vi vil lære at bruge klasser skrevet af Java-skabere. - Må jeg bruge en hvilken som helst klasse som en type-parameter, også den jeg selv har skrevet? - Ja, alle typer, undtagen primitive. Alle klasseparametre skal nedarves fra klasseobjektet. - Så jeg kan ikke skrive ArrayList<int> , vel? - Det kan du ikke. Men Java-udviklere har skrevet til primitive typer deres ikke-primitive analoger - klasser arvet fraObjekt . Sådan ser det ud: - Primitive typer og analoge klasser (indpakningsklasser) kan nemt tildeles hinanden: - Fint. Så vil jeg vel bruge ArrayList oftere.8 Risha, Eksempler på ArrayList, Generics
- Nu vil jeg give dig virkelig brugbare ting. Her er nogle praktiske eksempler til at arbejde med ArrayList og Generics: - Eksempel 1. - Eksempel 2. - Eksempel 3. - Eksempel 4. - Eksempel 5. - Fantastisk! Så Diego vil give mig en masse lignende opgaver nu, ikke? - Jep!9 Diego, List<T> opgaver
- Endelig er du fri. Jeg er træt af at huske på disse opgaver for dig. Her er et par mere for at holde dig oppe:Yderligere opgaver at udføre i Intellij Idea | |
---|---|
1 | 1. Tre arrays 1. Læs fra tastaturet 20 numre, gem dem på en liste, og sorter dem derefter i tre andre lister: Liste 1 gemmer tal deleligt med 3 ( x%3==0 ) Liste 2 gemmer tal deleligt med 2 ( x%2==0 ) Liste 3 gemmer resten af numrene. Tallene, der er delelige med 3 og 2 på samme tid (f.eks. 6) hører til begge lister – liste 1 og liste 2. 2. Metoden printList() skal vise hvert element i listen på en ny linje. 3. Brug metoden printList() til at vise disse tre lister på skærmen. Først skal liste 1 vises, derefter liste 2, efter denne liste 3. |
2 | 2. 5 ord i omvendt rækkefølge Læs fra tastaturet 5 ord. Tilføj dem til en strengliste og vis dem på skærmen i omvendt rækkefølge. |
3 | 3. Ordet «her» 1. Opret en liste over ordene «stop», «se», «lyt». 2. Tilføj en streng med «her» efter hvert ord. 3. Vis resultatet. Hvert element i listen skal være på en ny linje. Brug "for" loop. |
4 | 4. Bogstaverne «r» og «l» 1. Lav en liste med ord/strenge, fyld den med hvad du vil. 2. Metoden fix() skal: 2.1. slet alle ord, der indeholder bogstavet «r» fra listen over strenge 2.2. fordoble alle de ord, der indeholder bogstavet «l». 2.3. lad ordet være uændret, hvis det både indeholder bogstaverne «r» og «l». 2.4. gør ikke noget med andre ord. Eksempel : rosenpil lire eg Outputdata: pil pil lire eg |
5 | 5. Dupliker ordene 1. Læs fra tastaturet 10 ord/strenge, tilføj dem i en strengliste. 2. Metoden doubleValues skal duplikere ord efter mønsteret: a,b,c → a,a,b,b,c,c. 3. Vis resultatet. Hvert element i listen skal være på en ny linje. Brug "for" loop. |
10 Professor
- Jeg fandt mine skønne foredrag! Så i dag får du den mest værdifulde viden i arrays og lister. Her er de: Tips om ArrayList i Java11 Julio
- Hej, Amigo! Jeg er glad for, at du har klaret alt dette - du fortjener en belønning:12 kaptajn egern
- Hej, soldat! - Godmorgen hr! - Jeg har nogle fantastiske nyheder til dig. Her er et hurtigt tjek for at styrke dine færdigheder. Gør det hver dag, og du vil hurtigt forbedre dine færdigheder. Opgaver er specielt designet til at udføre i Intellij IDEA.Yderligere opgaver at udføre i Intellij Idea | |
---|---|
1 | 1. Vis numre i omvendt rækkefølge. Læs fra tastaturet 10 numre og fyld listen med dem. Vis tallene på skærmen i omvendt rækkefølge. Brug løkken. |
2 | 2. Flyt første M linjer til slutningen af listen Læs fra tastaturet 2 numre: N og M . Læs fra tastaturets N strenge, og fyld en liste med dem. Flyt første M linjer til slutningen af listen Vis listen på skærmen. Hver værdi skal være på en ny linje. |
3 | 3. Største og mindste tal i en matrix Opret en matrix med 20 tal. Fyld den med tal, der læses fra tastaturet. Find det største og mindste tal i en matrix. Vis på skærmen de største og mindste tal adskilt af et mellemrum. |
4 | 4. Læs strenge fra tastaturet, indtil brugeren indtaster strengen "slut" Opret en liste over strenge. Læs fra tastaturstrengene (hvad end du vil), føj dem til listen. Læs strenge fra tastaturet, indtil brugeren indtaster strengen "slut". "slut" skal udelades. Vis strengene på skærmen. Hver streng skal være på en ny linje. |
5 | 5. Bang! Skriv et program, der tæller ned fra 30 til 0, og som viser «Bang!» i slutningen. Programmet skal reducere antallet 10 gange i sekundet. Brug funktionen nedenfor til at indsætte en forsinkelse: Thread.sleep(100); //forsinkelse på en tiendedel af et sekund. Eksempel: 30 29 … 1 0 Bang! |
6 | 6. Familie Opret en klasse Menneske med felterne: Strengnavn , boolesk køn , int alder , Menneskelig far , Menneskelig mor . Lav 9 objekter af Human-klassen og fyld dem på en sådan måde, at du får to bedstefædre, to bedstemødre, en far, en mor og tre børn. Vis objekterne på skærmen på skærmen. Tip: Hvis du skriver din metode String toString() i klassen Human, så vil den blive brugt til at vise et objekt. Eksempel output: Navn: Anna, køn: kvinde, alder: 21, far: Paul, mor: Kate Navn: Kate, køn: kvinde, alder: 55 Navn: Ian, køn: mand, alder: 2, far: Michael, mor: Anna … |
7 | 7. Flyt en statisk modifikator Flyt en statisk modifikator, så programmet kompilerer. |
Bonus opgaver | |
---|---|
1 | 1. Programmet kompilerer og kører ikke. Lav det. Opgave: Læs kattedata fra tastaturet og vis dem på skærmen. Eksempel: Kattens navn er Jinx, alderen er 6, vægten er 5, hale = 22 Kattens navn er Maisy, alderen er 8, vægten er 7, hale = 20 |
2 | 2. Tilføj ny funktionalitet til programmet. Gammel opgave: Programmet læser strenge indtil brugeren indtaster en tom linje ved at trykke enter. Så konverterer den små bogstaver til store bogstaver (mor bliver til MOM) og viser dem på skærmen. Ny opgave: Programmet skal læse strenge indtil brugeren indtaster en tom linje ved at trykke enter. Programmet bygger derefter en ny liste. Hvis strengen har et lige antal tegn, duplikeres strengen, hvis ulige tal er tredoblet. Eksempel på input: Cat Cats Me Eksempel output: Cat Cat Cat Cats Cats Me Me |
3 | 3. At lære og praktisere algoritme. Læs 20 tal fra tastaturet, og vis dem i faldende rækkefølge. |