CodeGym /Blog Java /Random-PL /Stary poziom 07
John Squirrels
Poziom 41
San Francisco

Stary poziom 07

Opublikowano w grupie Random-PL

Technologie informacyjne

Stary poziom 07 - 1Rewolucja komputerowa, która rozpoczęła się pod koniec XX wieku zaowocowała powstaniem internetu (sieci) w latach 90-tych. I to był początek jeszcze większej rewolucji. Efektem tworzenia Internetu jest jak uprzemysłowienie. Ale najsmaczniejsze jest to, że ten proces właśnie się rozpoczął.

Nowy Świat

Ilość witryn wynosi ponad 200 milionów. 3 miliardy internautów. Aukcje internetowe, strony internetowe, sklepy internetowe, serwisy internetowe. Przemysł informatyczny rośnie o 20%-30% rocznie. To potworne stawki. I ciągle rośnie. Od 10 lat w Dolinie Krzemowej (głównym ośrodku przemysłu high-tech świata) co 2 miesiące powstaje firma, która potem kosztuje miliardy dolarów. Nie mówiąc już o takich gwiazdach internetu jak Facebook (220 mld dolarów), Amazon (140 mld dolarów) czy Google (350 mld dolarów). Wszystkie te firmy nie pojawiłyby się, gdyby nie było Internetu. To wszystko powoduje duże zapotrzebowanie na specjalistów IT. Światowy przemysł high-tech potrzebuje: programistów, projektantów, testerów QA, architektów, managerów, administratorów systemów i innych specjalistów.

Dobrze być informatykiem

Stary poziom 07 - 2Jeśli jesteś informatykiem, to dla Ciebie złoty czas. Możesz pracować w dużej firmie i mieszkać w małym mieście lub pracować w zagranicznej firmie. Możesz zarobić dwa razy mniej niż np. w UE, ale dostaniesz 3-10 razy więcej niż na lokalnym rynku pracy. Im mniejsze miasto, tym większa różnica. Otrzymasz cenne doświadczenie, dobre pieniądze i świetlaną przyszłość. Czasami wybierasz się w podróże służbowe do swojego biura pracodawcy. A jeśli bardzo ci się spodoba, możesz się tam przenieść. Przypływ podnosi wszystkie łodzie. Dlaczego nie miałaby być taka łódź, która jest we właściwym czasie i we właściwym miejscu? To także sztuka.

Osiągnąłeś nowy poziom

Poziom 7

Stary poziom 07 - 3

1 Elly, Tablice

- Hej, Amigo! - Co słychać, Elly? - Dzisiaj opowiem o nowej ciekawej jednostce - tablicach. Tablica to specjalny typ danych, który może przechowywać więcej niż jedną wartość. Stary poziom 07 - 4- Zacznę od analogii. Porównajmy zwykły dom z wieżowcem. Dom zamieszkuje jedna rodzina, natomiast wieżowiec podzielony jest na mieszkania. Musisz podać unikalny adres, aby napisać list do rodziny mieszkającej w domu. W przypadku rodziny mieszkającej w mieszkaniu należy dodatkowo podać numer mieszkania. - Tak, to jasne. - Tak więc zmienna tablicowa jest jak wieżowiec. Można w nim przechowywać kilka wartości. Taka zmienna ma kilka mieszkań (komórek). Dostęp do każdego z apartamentów można uzyskać po jego numerze (indeksie).W tym celu po nazwie zmiennej w nawiasach kwadratowych należy podać indeks otwieranej komórki. To całkiem proste. - Mam nadzieję. - Zmienna tablicowa (wieżowiec) może być dowolnego typu, więc wystarczy napisać TypeName[] variable_namezamiast TypeName variable_name. - Oto przykłady, co można zrobić z tablicami: Stary poziom 07 - 5- Jakie to ekscytujące! - Zmienna tablicowa wymaga dodatkowej inicjalizacji. - Dlaczego tak? - Zwykła zmienna jest gotowa do użycia zaraz po jej zadeklarowaniu. Jeśli chodzi o tablice, jest to trochę bardziej skomplikowane: - Najpierw musisz utworzyć kontener N elementów, a następnie możesz umieścić w nim wartości. Stary poziom 07 - 6- Tak. Staje się to teraz jaśniejsze. - Podstawy o tablicach :
  1. Tablica składa się z wielu komórek.
  2. Dostęp do każdej komórki uzyskuje się poprzez wskazanie jej numeru.
  3. Wszystkie komórki są tego samego typu.
  4. W tablicy n elementów komórki mają indeksy 0,1,2,...,n-1. W tablicy nie ma komórki o indeksie n.
  5. Wartość początkowa dla wszystkich komórek to null, dla typów pierwotnych – 0, 0.0 dla ułamkowych, false – dla typu boolowskiego, dokładnie tak samo jak w prostych niezainicjowanych zmiennych.
  6. Lista String[] to tylko deklaracja zmiennej. Najpierw musisz utworzyć tablicę (kontener) i umieścić ją w zmiennej, a następnie użyć. Zobacz przykład poniżej.
  7. Podczas tworzenia tablicy obiektowej (kontenera) konieczne jest określenie jej długości (ile komórek będzie miała). W tym celu należy napisać polecenie: TypeName to typ wartości, które będą przechowywane w komórkach tablicy.new TypeName[n];
Stary poziom 07 - 7- Przykłady: Stary poziom 07 - 8

2 Risha, Układ tablic w pamięci

- Hej, Amigo! Pokażę ci, jak to wszystko działa w pamięci: Stary poziom 07 - 9- A co to jest ta 345? - Właściwie to wziąłem to z powietrza, ale normalnie jest to adres łańcucha zawierającego słowo «Stop». - Jeśli chodzi o tablice, jest to nieco bardziej skomplikowane:
Stary poziom 07 - 10
- Czy 155 166 177 to także liczby wyciągnięte z kapelusza, które reprezentują adres ciągów po prawej stronie? - Tak. To dobrze, że się domyśliłeś. Zauważ, że na drugim obrazku jest dodatkowy obiekt - tablica 10 komórek. - Wszystko jasne, dzięki. Obraz jest wart tysiąca słów. Dziękuję, Risza.

3 Risha, Przykłady tablic Tablica

- Chcę podać kilka przykładów interesujących rzeczy, które można zrobić z tablicami: Przykład 1. Stary poziom 07 - 11Przykład 2. Stary poziom 07 - 12Przykład 3. Stary poziom 07 - 13Przykład 4. Stary poziom 07 - 14Przykład 5. Stary poziom 07 - 15

4 Diego, Zadania tworzenia i wykorzystania tablic

- Hej, Amigo! Oto kilka zadań dla ciebie, kolego:
Zadania
1 1. Maksimum tablicy 20 liczb
1. W metodzie initializeArray() :
1.1. Utwórz tablicę 20 liczb
1.2. Odczytaj z klawiatury 20 liczb i wypełnij nimi tablicę
2. Metoda max(int[] array) powinna znaleźć maksymalną liczbę elementów tablicy

2

2. Tablica ciągów w odwrotnej kolejności
1. Utwórz tablicę 10 ciągów.
2. Odczytaj z klawiatury 8 ciągów znaków i zapisz je w tablicy.
3. Wyświetl na ekranie zawartość całej tablicy (10 elementów) w odwrotnej kolejności. Każdy element powinien znajdować się w nowej linii.

3 3. 2 tablice
1. Utwórz jedną tablicę złożoną z 10 łańcuchów.
2. Utwórz kolejną tablicę 10 liczb.
3. Odczytaj z klawiatury 10 ciągów i uzupełnij nimi tablicę.
4. Wpisz długość łańcucha z każdej komórki tablicy łańcuchów w komórce tablicy liczb o tym samym indeksie. Wyświetl na ekranie zawartość tablicy liczb. Każda wartość powinna znajdować się w nowej linii.
4 4. Tablica liczb w odwrotnej kolejności
1. Utwórz tablicę 10 liczb.
2. Odczytaj z klawiatury 10 liczb i zapisz je w tablicy.
3. Ułóż elementy tablicy w odwrotnej kolejności.
4. Wyświetl na ekranie wynik. Każda wartość powinna znajdować się w nowej linii.
5 5. Jedna duża i dwie małe tablice
1. Utwórz tablicę 20 liczb.
2. Odczytaj z klawiatury 20 cyfr i uzupełnij nimi tablicę.
3. Utwórz dwie tablice po 10 liczb każda.
4. Skopiuj liczby z dużej tablicy do dwóch małych tablic: połowę liczb do pierwszej tablicy, drugą połowę do drugiej.
5. Wyświetl na ekranie drugą małą tablicę. Każda wartość powinna znajdować się w nowej linii.

5 Elly, ArrayList a tablica

- To ja. - Cześć, Elly! - Dziś mamy nowy ekscytujący temat! Teraz opowiem ci o interesującej nowej klasie, ArrayList . - Och, nowa klasa? Wow! Co to robi? - Zacznę od małej historii. Programistom nie spodobała się jedna właściwość tablicy: nie można zmienić jej rozmiaru. Co zrobić, jeśli chcesz przechowywać trzy wpisy więcej w tablicy, ale jest tylko jedno wolne miejsce? - Jedynym rozwiązaniem problemu braku miejsca było stworzenie bardzo dużej tablicy zawierającej wszystkie elementy. Ale to często prowadziło do nieefektywnego wykorzystania pamięci. Na przykład, jeśli w 99% czasu życia tablicy musiałbyś przechowywać tylko 3 elementy w tablicy, a tylko w 1% - 100 elementów, musiałbyś stworzyć tablicę ze 100 elementów. - Więc co wymyślili programiści? - Napisali klasę ArrayList , która wykonywała to samo zadanie co tablica, ale mogła zmieniać jej rozmiar. - Ciekawy ruch. A jak oni to zrobili? - Każdy obiekt ArrayList przechowuje w sobie zwykłą tablicę elementów. Kiedy czytasz elementy z ArrayList , odczytuje je ze swojej wewnętrznej tablicy. Kiedy piszesz elementy, zapisuje je do tablicy wewnętrznej. Porównaj: Stary poziom 07 - 16- Jaka jest więc zaleta ArrayList? Jeśli chodzi o mnie, kod stał się dłuższy. - Po pierwsze, ArrayList obsługuje dodatkowe funkcje niedostępne w tablicy, z których programiści bardzo często korzystają. Na przykład,wstawiaj elementy i usuwaj je ze środka tablicy bez pozostawiania dziur. - Po drugie, ArrayList może zmienić swój rozmiar . Kiedy ArrayList musi zapisać jeszcze jeden element w swojej wewnętrznej tablicy, a nie ma wolnego miejsca, wewnątrz ArrayList dzieje się co następuje :
  1. tworzona jest kolejna tablica, dwa razy większa.
  2. wszystkie elementy starej tablicy są kopiowane do nowej tablicy.
  3. nowa tablica jest przechowywana w wewnętrznej zmiennej obiektu ArrayList, stara tablica jest uznawana za śmieci (po prostu nie przechowujemy już jej referencji).
Stary poziom 07 - 17A jak pracować z ArrayList? - Właściwie w taki sam sposób jak w przypadku tablicy. Popatrz tutaj. Porównajmy pracę z ArrayList i pracę z tablicą. Jako przykład rozwiążmy następujące zadanie: « Program powinien odczytać z klawiatury 10 ciągów znaków i wyświetlić je na ekranie w odwrotnej kolejności ». - Sprawdź to: Stary poziom 07 - 18- Namalowałem równoważne akcje w obu kolumnach jednym kolorem. - Wydaje się inaczej, ale jeśli przyjrzysz się bliżej, wszystko jest takie samo. - Tak. Teraz nie mamy nawiasów kwadratowych podczas używania ArrayList . Zamiast tego używamy metod get , set i add . - Zauważyłem to. Ale nadal jest bardzo podobny.

6 Diego, zadania ArrayList

- Znowu nic nie robisz? Jesteś robotem, prawda? Roboty są zawsze czymś zajęte. Oto kilka zadań, które pomogą Ci zachować spokój. Ale zacznijmy od kilku wskazówek. - Porada 1: Lista najczęściej oznacza ArrayList . - Porada 2: Ciąg znaków oznacza typ String . - Wskazówka 3: Aby utworzyć listę ciągów, najczęściej oznacza to, że ArrayList<String> list = new ArrayList<String>();
Zadania
1 Zadanie 1. 5 różnych ciągów znaków na liście
1. Utwórz listę ciągów znaków.
2. Dodaj 5 różnych ciągów do listy.
3. Wyświetl na ekranie jego rozmiar.
4. Wyświetl na ekranie zawartość listy. Każda wartość powinna znajdować się w nowej linii. Użyj pętli.
2 Zadanie 2. 5 wierszy: «101», «102», «103», «104», «105»
1. Utwórz listę ciągów znaków.
2. Dodaj 5 ciągów do listy. „101”, „102”, „103”, „104”, „105”.
3. Usuń pierwszy, środkowy i ostatni.
4. Wyświetl na ekranie zawartość listy. Każda wartość powinna znajdować się w nowej linii. Użyj pętli.
5. Wyświetl na ekranie jego rozmiar. (Po usunięciu jednego wpisu zmieniają się indeksy innych wpisów. Na przykład, jeśli usuniemy pierwszy element, drugi staje się pierwszym).
3 Zadanie 3. 5 wierszy w odwrotnej kolejności
1. Utwórz listę ciągów znaków.
2. Odczytaj 5 ciągów z klawiatury, a następnie dodaj je do listy.
3. Ułóż je w odwrotnej kolejności.
4. Wyświetl na ekranie zawartość listy. Każda wartość powinna znajdować się w nowej linii. Użyj pętli.
4

Zadanie 4. Dodaj 5 ciągów na początek listy
1. Utwórz listę ciągów.
2. Odczytaj z klawiatury 5 ciągów. Dodaj te ciągi na początku listy, a nie na końcu.
3. Wyświetl na ekranie zawartość listy. Każda wartość powinna znajdować się w nowej linii. Użyj pętli.

5 Zadanie 5. Usuń ostatni ciąg i dodaj go na początek listy
1. Utwórz listę ciągów.
2. Odczytaj z klawiatury 5 ciągów. Dodaj te ciągi do listy.
3. Usuń ostatni ciąg znaków i dodaj go na początek listy. Powtórz tę czynność 13 razy.
4. Wyświetl na ekranie zawartość listy. Każda wartość powinna znajdować się w nowej linii. Użyj pętli.

7 Risza, Leki generyczne

- A teraz kolejny wspaniały temat. - Ten dzień jest pełen niespodzianek. To jak prawdziwe urodziny. - Dzisiaj powiem ci, czym są leki generyczne. Rodzaje to typy, które mają parametry. W Javie klasy kontenerów umożliwiają określenie typów ich obiektów wewnętrznych . - Kiedy deklarujemy zmienną ogólną, określamy dwa typy zamiast jednego: typ zmiennej i typ danych przechowywanych w zmiennej. Dobrym tego przykładem jest ArrayList. Kiedy tworzymy nowy obiekt/zmienną typu ArrayList, dobrze jest również określić typ wartości, które mają być przechowywane na liście. Stary poziom 07 - 19- Brzmi ekscytująco. Szczególnie podobało mi się to, co powiedziałeś o każdym typie. - Wydaje się, że jest dobrze. W rzeczywistości, jeśli w jednej metodzie łańcuchy zostaną umieszczone w tablicy ArrayList, aw drugiej będziesz pracować z jej zawartością i spodziewasz się, że będą tam tylko liczby, program ulegnie awarii. - Widzę. - Na razie nie będziemy tworzyć własnych klas z parametrami typu, nauczymy się korzystać z klas napisanych przez twórców Javy. - Czy mogę użyć dowolnej klasy jako parametru typu, nawet tej napisanej przeze mnie? - Tak, każdego rodzaju, z wyjątkiem prymitywnych. Wszystkie parametry klasy muszą być dziedziczone z klasy Object. - Więc nie mogę napisać ArrayList<int> , prawda? - Nie możesz. Ale programiści Java napisali dla prymitywnych typów ich nieprymitywne odpowiedniki - klasy odziedziczoneObiekt . Oto jak to wygląda: Stary poziom 07 - 20- Typy pierwotne i klasy analogowe (klasy opakowania) można łatwo przypisać do siebie: Stary poziom 07 - 21- Dobrze. Wtedy myślę, że częściej będę używał ArrayList.

8 Risha, Przykłady ArrayList, Generics

Stary poziom 07 - 22- Teraz dam ci naprawdę przydatne rzeczy. Oto kilka przydatnych przykładów pracy z ArrayList i Generics: - Przykład 1. Stary poziom 07 - 23- Przykład 2. Stary poziom 07 - 24- Przykład 3. Stary poziom 07 - 25- Przykład 4. Stary poziom 07 - 26- Przykład 5. Stary poziom 07 - 27- Niesamowite! Więc Diego da mi teraz kilka podobnych zadań, prawda? - Tak!

9 Diego, List<T> zadania

- Nareszcie jesteś wolny. Jestem zmęczony pamiętaniem o tych zadaniach dla ciebie. Oto jeszcze kilka, które pomogą Ci zachować spokój:
Dodatkowe zadania do wykonania w Intellij Idea
1 1. Trzy tablice
1. Odczytaj z klawiatury 20 liczb, zapisz je na liście, a następnie posortuj na trzy inne listy:
Lista 1 przechowuje liczby podzielne przez 3 ( x%3==0 )
Lista 2 przechowuje liczby podzielne przez 2 ( x%2==0 )
Lista 3 przechowuje resztę liczb.
Liczby podzielne jednocześnie przez 3 i 2 (np. 6) należą do obu list – listy 1 i listy 2.
2. Metoda printList() powinna wyświetlać każdy element listy w nowym wierszu.
3. Użyj metody printList() , aby wyświetlić na ekranie te trzy listy. Najpierw powinna zostać wyświetlona lista 1, następnie lista 2, po niej lista 3.
2 2. 5 słów w odwrotnej kolejności
Przeczytaj z klawiatury 5 słów. Dodaj je do listy ciągów i wyświetl na ekranie w odwrotnej kolejności.
3 3. Słowo „tutaj”
1. Utwórz listę słów „stop”, „patrz”, „słuchaj”.
2. Po każdym słowie dodaj ciąg znaków zawierający słowo „tutaj”.
3. Wyświetl wynik. Każdy element listy powinien znajdować się w nowej linii. Użyj pętli „for”.
4 4. Litery «r» i «l»
1. Stwórz listę słów/łańcuchów znaków i wypełnij ją czym tylko chcesz.
2. Metoda fix() powinna:
2.1. usuń wszystkie słowa zawierające literę «r» z listy ciągów znaków
2.2. podwoić wszystkie słowa zawierające literę «l».
2.3. pozostaw słowo bez zmian, jeśli zawiera ono obie litery „r” i „l”.
2.4. nie rób nic innymi słowami.

Przykład: wierzba
różana lira dąb




Dane wyjściowe:
wierzba
wierzba
lira
dąb
5 5. Powiel słowa
1. Odczytaj z klawiatury 10 słów/łańcuchów, dodaj je do listy ciągów.
2. Metoda doubleValues ​​powinna zduplikować słowa według wzoru:
a,b,c → a,a,b,b,c,c.
3. Wyświetl wynik. Każdy element listy powinien znajdować się w nowej linii. Użyj pętli „for”.

10 Profesor

Stary poziom 07 - 28- Znalazłem moje wspaniałe wykłady! Więc dzisiaj zdobędziesz najcenniejszą wiedzę o tablicach i listach. Oto one: Wskazówki dotyczące ArrayList w Javie

11 lipca

- Hej, Amigo! Cieszę się, że sobie z tym wszystkim poradziłeś - należy Ci się nagroda:

12 kapitanów wiewiórek

- Cześć, żołnierzu! - Dzień dobry panu! - Mam dla ciebie wspaniałe wieści. Oto szybkie sprawdzenie, aby wzmocnić swoje umiejętności. Rób to codziennie, a szybko poprawisz swoje umiejętności. Zadania są specjalnie zaprojektowane do wykonywania w Intellij IDEA.
Dodatkowe zadania do wykonania w Intellij Idea
1 1. Wyświetl cyfry w odwrotnej kolejności
Odczytaj z klawiatury 10 cyfr i uzupełnij nimi listę.
Wyświetl na ekranie liczby w odwrotnej kolejności. Użyj pętli.
2 2. Przenieś pierwsze M wierszy na koniec listy
Odczytaj z klawiatury 2 cyfry: N i M .
Odczytaj z klawiatury ciągi znaków N i uzupełnij nimi listę.
Przesuń pierwsze M wierszy na koniec listy
Wyświetl listę na ekranie. Każda wartość powinna znajdować się w nowej linii.
3 3. Największa i najmniejsza liczba w tablicy
Utwórz tablicę 20 liczb.
Wypełnij go liczbami odczytanymi z klawiatury.
Znajdź największą i najmniejszą liczbę w tablicy.
Wyświetl na ekranie największą i najmniejszą liczbę oddzieloną spacją.
4 4. Odczytuj napisy z klawiatury, aż użytkownik wprowadzi napis „koniec”.
Utwórz listę napisów.
Czytaj z ciągów klawiatury (cokolwiek chcesz), dodaj je do listy.
Odczytuj napisy z klawiatury, aż użytkownik wprowadzi napis „koniec”. „koniec” należy pominąć.
Wyświetl na ekranie ciągi znaków. Każdy ciąg powinien znajdować się w nowej linii.
5 5. Uderz!
Napisz program, który odlicza od 30 do 0 i wyświetla „Bang!” na końcu. Program powinien zmniejszać liczbę 10 razy na sekundę. Użyj poniższej funkcji, aby wstawić opóźnienie:
Thread.sleep(100); //opóźnienie jednej dziesiątej sekundy.
Przykład:
30
29

1
0
Bum!
6 6. Rodzina
Utwórz klasę Człowiek z polami: Nazwa ciągu znaków , płeć boolowska , wiek całkowity , Ojciec człowieka , Matka człowieka . Stwórz 9 obiektów klasy Człowiek i wypełnij je tak, aby otrzymać dwóch dziadków, dwie babcie, ojca, matkę i trójkę dzieci. Wyświetlaj na ekranie obiekty na ekranie.
Wskazówka:
jeśli napiszesz metodę String toString() w klasie Human, zostanie ona użyta do wyświetlenia obiektu.
Przykładowe dane wyjściowe:
Imię: Anna, płeć: kobieta, wiek: 21 lat, ojciec: Paweł, matka: Kate
Imię: Kate, płeć: kobieta, wiek: 55
Imię: Ian, płeć: mężczyzna, wiek: 2 lata, ojciec: Michael, matka: Anna
7 7. Przenieś jeden modyfikator statyczny
Przesuń jeden modyfikator statyczny, aby program się skompilował.
- Te zadania były dla zielonych. Dodałem dodatkowe zadania o większej złożoności. Tylko dla najlepszych dział.
Zadania bonusowe
1 1. Program nie kompiluje się i nie uruchamia. Napraw to.
Zadanie: Odczytaj z klawiatury dane kota i wyświetl je na ekranie.
Przykład:
Imię kota to Jinx, wiek 6 lat, waga 5 lat, ogon = 22
Imię kota Maisy, wiek 8 lat, waga 7 lat, ogon = 20
2 2. Dodaj nową funkcjonalność do programu.
Stare zadanie: Program odczytuje ciągi, dopóki użytkownik nie wprowadzi pustej linii, naciskając klawisz Enter. Następnie zamienia małe litery na duże (mama zamienia się w MAMĘ) i wyświetla je na ekranie.
Nowe zadanie: Program powinien czytać napisy, dopóki użytkownik nie wprowadzi pustej linii, naciskając enter. Następnie program tworzy nową listę. Jeśli łańcuch ma parzystą liczbę znaków, łańcuch jest duplikowany, jeśli jest nieparzysty, łańcuch jest potrojony.
Przykładowe dane wejściowe:
Cat
Cats
Me
Przykładowe dane wyjściowe:
Cat Cat Cat
Cats Cats
Me Me
3 3. Uczenie się i ćwiczenie algorytmu.
Odczytaj z klawiatury 20 cyfr i wyświetl je w kolejności malejącej.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION