CodeGym/Blog Java/Aleatoriu/Vechiul nivel 07
John Squirrels
Nivel
San Francisco

Vechiul nivel 07

Publicat în grup

Tehnologia Informatiei

Vechiul nivel 07 - 1Revoluția computerelor, care a început la sfârșitul secolului al XX-lea, a dus la crearea internetului (web-ul) în anii 90. Și acesta a fost începutul unei și mai mari revoluții. Efectul creării internetului este ca industrializarea. Dar cel mai delicios este că acest proces tocmai a început.

Lume noua

Cantitatea site-ului este de peste 200 de milioane. 3 miliarde de utilizatori de internet acolo. Licitații pe internet, site-uri web, magazine online, servicii internet. Industria tehnologiei informației crește cu 20%-30% anual. Sunt rate monstruoase. Și continuă să crească. În ultimii 10 ani în Silicon Valley (principalul centru al industriei high-tech din lume), la fiecare 2 luni este creată o companie, care costă apoi miliarde de dolari. Ca să nu mai vorbim de vedete de internet precum Facebook (220 de miliarde de dolari), Amazon (140 de miliarde de dolari) și Google (350 de miliarde de dolari). Toate aceste companii nu ar apărea, dacă nu ar exista Internet. Toate acestea au ca rezultat o cerere mare din partea specialiștilor IT. Industria mondială de înaltă tehnologie necesită: dezvoltatori de software, designeri, testeri QA, arhitecți, manageri, administratori de sistem și alți specialiști.

E bine să fii specialist IT

Vechiul nivel 07 - 2Dacă ești specialist IT, este un moment de aur pentru tine. Puteți lucra pentru o companie mare și puteți locui într-un oraș mic sau puteți lucra pentru o companie străină. S-ar putea să câștigi de două ori mai puțin decât în ​​UE, de exemplu, dar vei primi de 3-10 ori mai mult decât pe piața locală a muncii. Cu cât orașul este mai mic, cu atât diferența este mai mare. Veți primi experiență valoroasă, bani buni și un viitor luminos. Uneori, veți merge în călătorii de afaceri la biroul angajatorului. Și dacă vă place mult, vă puteți muta acolo. O maree în creștere ridică toate bărcile. De ce nu ar fi o astfel de barcă care este la momentul potrivit și la locul potrivit? Aceasta este, de asemenea, o artă.

Ai atins un nou nivel

Nivelul 7

Vechiul nivel 07 - 3

1 Elly, Arrays

- Hei, Amigo! - Ce e, Elly? - Astăzi vă voi povesti despre o nouă entitate interesantă - arrays. Un tablou este un tip de date special care poate stoca mai multe valori. Vechiul nivel 07 - 4- Voi începe cu analogia. Să comparăm o casă obișnuită și una înaltă. O casă este ocupată de o singură familie, în timp ce o clădire mare este împărțită în apartamente. Trebuie să specificați adresa unică pentru a scrie o scrisoare către o familie care locuiește în casă. Pentru o familie care locuiește într-un apartament, trebuie să specificați în plus numărul apartamentului. - Da, e clar. - Deci, o variabilă matrice este ca o clădire mare. Puteți stoca mai multe valori în el. O astfel de variabilă are unele apartamente (celule). Fiecare dintre apartamente poate fi accesat după numărul său (index).Pentru a face acest lucru, după numele variabilei dintre paranteze pătrate trebuie să specificați indexul celulei accesate. Este destul de simplu. - Aşa sper. - O variabilă matrice (o clădire înaltă) poate fi de orice tip, așa că trebuie doar să scrieți TypeName[] variable_nameîn loc de TypeName variable_name. - Iată exemple de ceea ce puteți face cu matrice: Vechiul nivel 07 - 5- Cât de interesant! - O variabilă matrice necesită inițializare suplimentară. - De ce asa? - O variabilă obișnuită este gata de utilizare imediat după declararea ei. În ceea ce privește matricele, este puțin mai complicat: - În primul rând, trebuie să creați un container de N elemente, apoi puteți plasa valori în el. Vechiul nivel 07 - 6- Da. Devine mai clar acum. - Elementele de bază despre matrice :
  1. Matricea este formată din mai multe celule.
  2. Fiecare celulă este accesată prin indicarea numărului său.
  3. Toate celulele sunt de același tip.
  4. Într-o matrice de n elemente, celulele au indici 0,1,2,...,n-1. Nu există nicio celulă cu indice n în matrice.
  5. Valoarea inițială pentru toate celulele este nulă, pentru tipurile primitive – 0, 0.0 pentru cele fracționale, false - pentru tipul boolean, exact la fel ca în variabilele simple neinițializate.
  6. Lista String[] este doar o declarație a unei variabile. Mai întâi trebuie să creați o matrice (container) și să o puneți în variabilă, apoi să o utilizați. Vezi exemplul de mai jos.
  7. Când creați o matrice de obiecte (container), este necesar să specificați lungimea acestuia (cate celule va avea). Pentru a face acest lucru, trebuie să scrieți o comandă: TypeName este tipul de valori care vor fi stocate în celulele matricei.new TypeName[n];
Vechiul nivel 07 - 7- Exemple: Vechiul nivel 07 - 8

2 Risha, Aranjarea matricelor în memorie

- Hei, Amigo! Permiteți-mi să vă arăt cum funcționează totul în memorie: Vechiul nivel 07 - 9- Și ce este acest 345? - De fapt, l-am scos din aer, dar în mod normal, este adresa șirului care conține cuvântul «Stop». - Cât despre matrice, este puțin mai complicat:
Vechiul nivel 07 - 10
- Sunt 155.166.177 și numere scoase dintr-o pălărie care reprezintă adresa șirurilor din dreapta? - Da. E bine că ai ghicit. Rețineți că, în a doua imagine, există un obiect suplimentar - o matrice de 10 celule. - Totul e clar, mulțumesc. O imagine valorează cât o mie de cuvinte. Mulțumesc, Risha.

3 Risha, Exemple de tablouri Array

- Vreau să vă dau câteva exemple de lucruri interesante pe care le puteți face cu matrice: Exemplul 1. Vechiul nivel 07 - 11Exemplul 2. Vechiul nivel 07 - 12Exemplul 3. Nivelul vechi 07 - 13Exemplul 4. Vechiul nivel 07 - 14Exemplul 5. Vechiul nivel 07 - 15

4 Diego, Sarcini pentru crearea și utilizarea matricelor

- Hei, Amigo! Iată câteva sarcini pentru tine, amice:
Sarcini
1 1. Maximum o matrice de 20 de numere
1. În metoda initializeArray() :
1.1. Creați o matrice de 20 de numere
1.2. Citiți de la tastatură 20 de numere și umpleți matricea cu ele
2. Metoda max(int[] array) ar trebui să găsească numărul maxim de elemente ale matricei

2

2. Matrice de șiruri în ordine inversă
1. Creați o matrice de 10 șiruri.
2. Citiți de la tastatură 8 șiruri și stocați-le în matrice.
3. Afișați pe ecran conținutul întregii matrice (10 articole) în ordine inversă. Fiecare articol ar trebui să fie pe o linie nouă.

3 3. 2 matrice
1. Creați o matrice de 10 șiruri.
2. Creați o altă matrice de 10 numere.
3. Citiți de la tastatură 10 șiruri și umpleți matricea de șiruri cu ele.
4. Scrieți lungimea unui șir din fiecare celulă a matricei de șiruri în matricea de celule de numere cu același index. Afișați pe ecran conținutul matricei de numere. Fiecare valoare ar trebui să fie pe o linie nouă.
4 4. Matrice de numere în ordine inversă
1. Creați o matrice de 10 numere.
2. Citiți de la tastatură 10 numere și stocați-le în matrice.
3. Aranjați elementele matricei în ordine inversă.
4. Afișați pe ecran rezultatul. Fiecare valoare ar trebui să fie pe o linie nouă.
5 5. O matrice mare și două matrice mici
1. Creați o matrice de 20 de numere.
2. Citiți de la tastatură 20 de numere și umpleți matricea cu ele.
3. Creați două matrice a câte 10 numere fiecare.
4. Copiați numerele matricei mari în două matrice mici: jumătatea numerelor în prima matrice, cealaltă jumătate în a doua.
5. Afișați pe ecran a doua matrice mică. Fiecare valoare ar trebui să fie pe o linie nouă.

5 Elly, ArrayList vs. Array

- Sunt eu. - Bună, Elly! - Astăzi avem un nou subiect interesant! Acum vă voi spune despre o nouă clasă interesantă, ArrayList . - O clasă nouă? Wow! Ce face? - Lasă-mă să încep cu o mică poveste. Programatorilor nu le-a plăcut o proprietate a unui tablou: este imposibil să-i schimbi dimensiunea. Ce trebuie să faceți dacă doriți să stocați încă trei intrări în matrice, dar există un singur spațiu liber? - Singura soluție la problema lipsei de spațiu a fost crearea unui tablou foarte mare care să conțină toate elementele. Dar acest lucru a dus adesea la o utilizare ineficientă a memoriei. De exemplu, dacă în 99% din durata de viață a matricei trebuie să stocați doar 3 elemente în matrice și doar în 1% - 100 de elemente, ar trebui să creați o matrice de 100 de elemente. - Deci cu ce au venit programatorii? - Ei au scris clasa ArrayList care a făcut aceeași treabă ca și Array, dar și-a putut varia dimensiunea. - O mișcare interesantă. Și cum au făcut asta? - Fiecare obiect ArrayList stochează o matrice obișnuită de elemente în interior. Când citiți elemente din ArrayList , acesta le citește din matricea sa internă. Când scrieți elementele, le scrie în matricea internă. Comparați: Nivelul vechi 07 - 16- Deci, care este avantajul ArrayList? În ceea ce mă privește, codul a devenit mai lung. - În primul rând, ArrayList acceptă unele caracteristici suplimentare care nu sunt disponibile în matrice, pe care programatorii le folosesc foarte des. De exemplu,inserați elemente în și ștergeți-le din mijlocul matricei fără a lăsa găuri. - În al doilea rând, ArrayList își poate schimba dimensiunea . Când ArrayList trebuie să stocheze încă un element în matricea sa internă și nu există spațiu liber, se întâmplă următoarele în interiorul ArrayList :
  1. este creată o altă matrice, de două ori mai mare.
  2. toate elementele vechiului tablou sunt copiate în noua matrice.
  3. o nouă matrice este stocată într-o variabilă internă a obiectului ArrayList, vechea matrice este declarată gunoi (pur și simplu nu mai stocăm referința lui).
Vechiul nivel 07 - 17Și cum să lucrezi cu ArrayList? - De fapt, în același mod ca și cu o matrice. Uite aici. Să comparăm lucrul cu ArrayList și să lucrăm cu o matrice. De exemplu, să rezolvăm următoarea sarcină: „ Programul ar trebui să citească de la tastatură 10 șiruri și să le afișeze pe ecran în ordine inversă ”. - Verificați: Vechiul nivel 07 - 18- Am pictat acțiuni echivalente în ambele coloane cu o singură culoare. - Pare diferit, dar dacă te uiți mai atent totul este la fel. - Da. Acum nu avem paranteze pătrate când folosim ArrayList . În schimb, folosim metodele get , set și add . - Am observat. Dar este încă foarte asemănător.

6 Diego, sarcini ArrayList

- Nu mai faci nimic? Ești un robot, nu-i așa? Roboții sunt mereu ocupați cu ceva. Iată câteva sarcini care să te țină pasul. Dar să începem cu câteva sfaturi. - Sfat 1: O listă înseamnă cel mai frecvent o ArrayList . - Sfat 2: Un șir înseamnă tipul String . - Sfat 3: Pentru a crea o listă de șiruri de caractere cel mai frecvent înseamnă ArrayList<String> list = new ArrayList<String>();
Sarcini
1 Sarcina 1. 5 șiruri diferite într-o listă
1. Creați o listă de șiruri.
2. Adăugați 5 șiruri diferite la listă.
3. Afișați pe ecran dimensiunea acesteia.
4. Afișați pe ecran conținutul listei. Fiecare valoare ar trebui să fie pe o linie nouă. Folosiți o buclă.
2 Sarcina 2. 5 rânduri: «101», «102», «103», «104», «105»
1. Creați o listă de șiruri.
2. Adăugați 5 șiruri la listă. «101», «102», «103», «104», «105».
3. Ștergeți-l pe primul, pe cel din mijloc și pe ultimul.
4. Afișați pe ecran conținutul listei. Fiecare valoare ar trebui să fie pe o linie nouă. Folosiți o buclă.
5. Afișați pe ecran dimensiunea acesteia. (După ștergerea unei intrări, indexurile altor intrări se modifică. De exemplu, dacă ștergem primul element, al doilea devine primul).
3 Sarcina 3. 5 linii în ordine inversă
1. Creați o listă de șiruri.
2. Citiți 5 șiruri de caractere de la tastatură, apoi adăugați-le la listă.
3. Aranjați-le în ordine inversă.
4. Afișați pe ecran conținutul listei. Fiecare valoare ar trebui să fie pe o linie nouă. Folosiți o buclă.
4

Sarcina 4. Adăugați 5 șiruri la începutul listei
1. Creați o listă de șiruri.
2. Citiți de la tastatură 5 șiruri. Adăugați aceste șiruri la începutul listei, nu la sfârșit.
3. Afișați pe ecran conținutul listei. Fiecare valoare ar trebui să fie pe o linie nouă. Folosiți o buclă.

5 Sarcina 5. Ștergeți ultimul șir și adăugați-l la începutul listei
1. Creați o listă de șiruri.
2. Citiți de la tastatură 5 șiruri. Adăugați aceste șiruri la listă.
3. Ștergeți ultimul șir și adăugați-l la începutul listei. Repetați această acțiune de 13 ori.
4. Afișați pe ecran conținutul listei. Fiecare valoare ar trebui să fie pe o linie nouă. Folosiți o buclă.

7 Risha, Generic

- Acum, un alt subiect grozav. - Această zi este plină de surprize. Este ca o zi de naștere adevărată. - Astăzi vă voi spune ce sunt genericele. Genericurile sunt tipuri care au parametri. În Java, clasele de containere vă permit să specificați tipuri de obiecte interne . - Când declarăm o variabilă generică, specificăm două tipuri în loc de unul: tipul variabilei și tipul datelor stocate în variabilă. Un bun exemplu în acest sens este ArrayList. Când creăm un nou obiect/variabilă de tip ArrayList, este bine să specificăm și tipul de valori care urmează să fie stocate în listă. Vechiul nivel 07 - 19- Sună incitant. Mi-a plăcut mai ales ce ai spus despre orice tip. - Se pare că e bine. De fapt, dacă într-o metodă șiruri sunt plasate într-o ArrayList, iar în cealaltă metodă lucrezi cu conținutul său și te aștepți că vor fi doar numere, programul se va bloca. - Înțeleg. - Până acum, nu ne vom crea propriile clase cu parametri de tip, vom învăța să folosim clase scrise de creatorii Java. - Pot folosi orice clasă ca parametru de tip, chiar și cea scrisă de mine? - Da, orice tip, cu excepția celor primitive. Toți parametrii clasei trebuie să fie moșteniți din clasa Object. - Deci nu pot scrie ArrayList<int> , nu? - Nu poţi. Dar dezvoltatorii Java au scris pentru tipurile primitive analogii lor neprimitivi - clase de la care moșteniteObiect . Iată cum arată: Vechiul nivel 07 - 20- Tipurile primitive și clasele analogice (clasele wrapper) pot fi alocate cu ușurință unele altora: Vechiul nivel 07 - 21- Fine. Atunci cred că voi folosi ArrayList mai des.

8 Risha, Exemple de ArrayList, Generic

Vechiul nivel 07 - 22- Acum îți voi oferi lucruri cu adevărat utile. Iată câteva exemple utile pentru a lucra cu ArrayList și Generics: - Exemplul 1. Vechiul nivel 07 - 23- Exemplul 2. Vechiul nivel 07 - 24- Exemplul 3. Vechiul nivel 07 - 25- Exemplul 4. Vechiul nivel 07 - 26- Exemplul 5. Vechiul nivel 07 - 27- Minunat! Deci, Diego o să-mi dea o grămadă de sarcini similare acum, nu-i așa? - Da!

9 Diego, List<T> sarcini

- În sfârșit ești liber. M-am săturat să țin cont de aceste sarcini pentru tine. Iată încă câteva pentru a vă ține pasul:
Sarcini suplimentare de făcut în Intellij Idea
1 1. Trei matrice
1. Citiți de la tastatură 20 de numere, salvați-le într-o listă, apoi sortați-le în alte trei liste:
Lista 1 stochează numere divizibile cu 3 ( x%3==0 )
Lista 2 stochează numere divizibile cu 2 ( x%2==0 )
Lista 3 stochează restul numerelor.
Numerele divizibile cu 3 și 2 în același timp (de exemplu 6) aparțin ambelor liste – lista 1 și lista 2.
2. Metoda printList() ar trebui să afișeze fiecare element al listei pe o nouă linie.
3. Folosiți metoda printList() pentru a afișa pe ecran aceste trei liste. Mai întâi ar trebui să fie afișată lista 1, apoi lista 2, după aceea lista 3.
2 2. 5 cuvinte în ordine inversă
Citiți de la tastatură 5 cuvinte. Adăugați-le într-o listă de șiruri și afișați-le pe ecran în ordine inversă.
3 3. Cuvântul „aici”
1. Creați o listă cu cuvintele „opriți”, „priviți”, „ascultați”.
2. Adăugați un șir care conține „aici” după fiecare cuvânt.
3. Afișați rezultatul. Fiecare element al listei ar trebui să fie pe o linie nouă. Utilizați bucla „for”.
4 4. Literele «r» și «l»
1. Creați o listă de cuvinte/șiruri, completați-o cu orice doriți.
2. Metoda fix() ar trebui:
2.1. ștergeți toate cuvintele care conțin litera «r» din lista șirurilor de caractere
2.2. dublați toate cuvintele care conțin litera «l».
2.3. lăsați cuvântul neschimbat dacă conține ambele litere «r» și «l».
2.4. nu face nimic cu alte cuvinte.

Exemplu:
trandafir
salcie
stejar
liră

Date de ieșire:
salcie
salcie
stejar
liră
5 5. Duplicați cuvintele
1. Citiți de la tastatură 10 cuvinte/șiruri, adăugați-le într-o listă de șiruri.
2. Metoda doubleValues ​​ar trebui să dubleze cuvintele conform modelului:
a,b,c → a,a,b,b,c,c.
3. Afișați rezultatul. Fiecare element al listei ar trebui să fie pe o linie nouă. Utilizați bucla „for”.

10 Profesor

Vechiul nivel 07 - 28- Mi-am găsit prelegerile mele minunate! Așa că astăzi veți dobândi cele mai valoroase cunoștințe în matrice și liste. Iată-le: Sfaturi despre ArrayList în Java

11 iulie

- Hei, Amigo! Mă bucur că ai făcut față tuturor acestor lucruri - meriți o recompensă:

12 Căpitan Veverițe

- Bună, soldat! - Buna dimineata domnule! - Am niște vești minunate pentru tine. Iată o verificare rapidă pentru a vă consolida abilitățile. Fă-o în fiecare zi și îți vei îmbunătăți abilitățile foarte repede. Sarcinile sunt special concepute pentru a fi realizate în Intellij IDEA.
Sarcini suplimentare de făcut în Intellij Idea
1 1. Afișați numerele în ordine inversă
Citiți de la tastatură 10 numere și completați lista cu ele.
Afișați pe ecran numerele în ordine inversă. Folosește bucla.
2 2. Mutați primele M linii la sfârșitul listei
Citiți de la tastatură 2 numere: N și M .
Citiți de la tastatură N șiruri și completați o listă cu ele.
Mutați primele M linii la sfârșitul listei
Afișați lista pe ecran. Fiecare valoare ar trebui să fie pe o linie nouă.
3 3. Cel mai mare și cel mai mic număr dintr-o matrice
Creați o matrice de 20 de numere.
Completați-l cu numere care sunt citite de la tastatură.
Găsiți cel mai mare și cel mai mic număr dintr-o matrice.
Afișați pe ecran cele mai mari și cele mai mici numere separate printr-un spațiu.
4 4. Citiți șiruri de caractere de la tastatură până când utilizatorul introduce șirul „end”
Creați o listă de șiruri.
Citiți din șirurile de la tastatură (orice doriți), adăugați-le la listă.
Citiți șirurile de pe tastatură până când utilizatorul introduce șirul „sfârșit”. „sfârșitul” ar trebui să fie omis.
Afișează pe ecran șirurile. Fiecare șir ar trebui să fie pe o linie nouă.
5 5. Bang!
Scrieți un program care numără invers de la 30 la 0 și afișează „Bang!” la sfârșitul. Programul ar trebui să reducă numărul de 10 ori pe secundă. Utilizați funcția de mai jos pentru a introduce o întârziere:
Thread.sleep(100); //întârziere de o zecime de secundă.
Exemplu:
30
29

1
0
Bang!
6 6. Familie
Creați o clasă Om cu câmpurile: Nume șir , sex boolean , vârstă int , Tată uman , Mamă umană . Creați 9 obiecte din clasa Uman și umpleți-le astfel încât să obțineți doi bunici, două bunici, un tată, o mamă și trei copii. Afișați pe ecran obiectele pe ecran.
Sfat:
Dacă scrieți metoda String toString() în clasa Human, atunci va fi folosită pentru a afișa un obiect.
Exemplu de ieșire:
Nume: Anna, sex: femeie, vârstă: 21, tată: Paul, mama: Kate
Nume: Kate, sex: femeie, vârstă: 55
Nume: Ian, sex: bărbat, vârstă: 2, tată: Michael, mama: Anna
...
7 7. Mutați un modificator static
Mutați un modificator static astfel încât programul să fie compilat.
- Acele sarcini au fost pentru verzi. Am adăugat sarcini bonus de complexitate mai mare. Numai pentru armele de top.
Sarcini bonus
1 1. Programul nu se compila si nu ruleaza. Repara-l.
Sarcină: Citiți de la tastatură datele pisicii și afișați-le pe ecran.
Exemplu:
numele pisicii este Jinx, vârsta este 6, greutatea este 5, coada = 22
Numele pisicii este Maisy, vârsta este 8, greutatea este 7, coada = 20
2 2. Adăugați o nouă funcționalitate la program.
Sarcină veche: Programul citește șiruri până când utilizatorul introduce o linie goală apăsând enter. Apoi transformă literele mici în majuscule (mama se transformă în MOM) și le afișează pe ecran.
Sarcină nouă: programul ar trebui să citească șiruri până când utilizatorul introduce o linie goală apăsând enter. Programul construiește apoi o nouă listă. Dacă șirul are un număr par de caractere, șirul este duplicat, dacă este număr impar, șirul este triplat.
Exemplu de intrare:
Cat
Cats
Me
Exemplu de ieșire:
Cat Cat Cat
Cats Cats
Me Me
3 3. Învățarea și exersarea algoritmului.
Citiți de la tastatură 20 de numere și afișați-le în ordine descrescătoare.
Comentarii
  • Popular
  • Nou
  • Vechi
Trebuie să fii conectat pentru a lăsa un comentariu
Această pagină nu are încă niciun comentariu