Tablice jednowymiarowe
Wiadomości ogólne
ZAGADNIENIA
Tablica służy do zbierania sekwencji wartości tego samego typu.
Definiowanie tablicy jednowymiarowej
typ nazwa_tablicy[ilość_elementów]; |


Typowe algorytmy tablicowe
Wypełnianie wartościami
W tej pętli tablica jest zapełniana zerami:
for (int i = 0; i < rozmiar tablicy values; i++) { values[i] = 0; } |
for (int i = 0; i < rozmiar tablicy squares; i++) { squares[i] = i * i; } |
Kopiowanie
Weźmy pod uwagę dwie tablice: int squares[5] = { 0, 1, 4, 9, 16 }; int lucky_numbers[5];Aby skopiować tablicę, należy skopiować wszystkie jej elementy do nowej tablicy przy użyciu pętli.
Załóżmy, że chcemy skopiować wszystkie wartości z jednej tablicy do drugiej. Pokazane poniżej przypisanie jest błędne:
lucky_numbers = squares; // Błąd tna nie można przypisać!!!
W języku C++ nie można po prostu przypisać jednej tablicy do drugiej, ale jak pokazano na rysunku 4, trzeba skopiować wszystkie elementy przy użyciu pętli:
for (int i = 0; i < 5; i++) { lucky_numbers[i] = squares[i]; } |
Suma i średnia
Oto kod obliczający sumę wszystkich elementów tablicy: double total = 0; for (int i = 0; i < rozmiar tablicy values; i++) { total = total + values[i]; } |
Aby otrzymać średnią, trzeba podzielić sumę przez liczbę elementów tablicy:
double average = total / rozmiar tablicy values;
Należy się upewnić, że rozmiar tablicy nie jest równy zero.
Maksimum i minimum
Należy skorzystać z algorytmu, w którym utrzymywana jest zmienna do przechowywania największego napotkanego elementu. Oto jego implementacja dla tablic: double largest = values[0]; for (int i = 1; i < rozmiar tablicy values; i++) { if (values[i] > largest) { largest = values[i]; } } |
Aby obliczyć najmniejszą wartość, wystarczy odwrócić porównanie.
Algorytmy te wymagają, by tablica zawierała co najmniej jeden element.
Separatory elementów
Podczas rozdzielania elementów przed pierwszym nie należy wstawiać separatora.Podczas wyświetlania elementów kolekcji zwykle trzeba je rozdzielić przecinkami lub pionowymi kreskami, np. tak: 1 | 4 | 9 | 16 | 25
Należy pamiętać o tym, że separatorów powinno być o jeden mniej niż liczb. Separator wypisuje się przed każdym elementem z wyjątkiem pierwszego (o indeksie 0):
for (int i = 0; i < rozmiar tablicy values; i++) { if (i > 0) { cout << " | "; } cout << values[i]; } |
Przydatne narzędzia/oprogramowanie
SPRAWDŹ SIĘ
1. Co następuje po instrukcji case? A. : B. ; C. - D. Nowy wiersz. 2. Co jest potrzebne, aby kod nie przebiegał przez kolejne bloki case? A. end; B. break; C. stop; D. Średnik. 3. Jakie słowo kluczowe obsługuje niespodziewane przypadki? A. all B. contingency C. default D. other 4. Jaki będzie wynik wykonania poniższego kodu? int x = 0; switch( x ) { case 1: cout << "Jeden"; case 0: cout << "Zero"; case 2: cout << "Witaj Świecie"; } A. Jeden B. Zero C. Witaj Świecie D. ZeroWitaj Świecie
- Utwórz tablicę o nazwie tab1, zawierającą następujące liczby całkowite: 7, 3, 1, 6, 9, 5, 4, 10, 2, 2.
- Wypisz zawartość 5 komórki tablicy na ekran. Zmień zawartość 7 komórki tablicy, wprowadzając do niej wartość 12.
- Utwórz drugą tablicę o nazwie tab2, o tej samej wielkości co tab1. Przepisz zawartość tab1 do tab2.
- Utwórz trzecią tablicę o nazwie tab3, o tej samej wielkości co dwie poprzednie. Zawartością komórek tablicy tab3 jest suma komórek o tych samych indeksach tablic tab1 i tab2.
- Przepisz ponownie zawartość tablicy tab1 do tablicy tab2, jednak w odwrotnej kolejności.
- Wypisz zawartość 5 komórki tablicy na ekran. Zmień zawartość 7 komórki tablicy, wprowadzając do niej wartość 12.
- Utwórz n-elementową tablicę liczb całkowitych, gdzie n podawane jest przez użytkownika.
Wypełnij tablicę wartościami podanymi przez użytkownika.
Znajdź najmniejszy i największy element w tablicy.
Oblicz średnią wartość elementów tablicy.
Wylicz ilość wystąpień cyfry 3 w tablicy.
Dowolnym sposobem posortuj elementy tablicy w porządku rosnącym.
Znajdź medianę elementów tablicy.
Wypisz 3 najmniejsze i trzy największe elementy tablicy.
Zwiększ wartość każdego elementu tablicy podnosząc go do kwadratu.
Policz ilość liczb parzystych i nieparzystych w tablicy.
v Podaj ile liczb zawartych w tablicy jest podzielna bez reszty przez 3. - Utwórz 10-elementową tablicę znaków.
Wypełnij ją literami wprowadzonymi przez użytkownika
Wypełnij ją 10 literowym wyrazem podanym przez użytkownika.
Zamień wszystkie wielkie litery na małe i odwrotnie.
Wypisz zawartość tablicy w losowej kolejności.
- Utwórz 100 elementową tablicę liczb całkowitych i wypełnij ją losowymi liczbami.
Znajdź największą spośród liczb oraz wyświetl na ekranie informację mówiącą o tym, ile razy ta liczba znalazła się w tablicy.
Wyświetl na ekran liczby nieparzyste.
Wyświetl na ekran liczby znajdujące się w komórkach o nieparzystych indeksach.
Program policzy ile liczb zawiera się w przedziale <5, 15) , po czym wypisze te liczby na ekran.
Znajdź element najbliższy wartością wprowadzonej przez użytkownika liczbie „a”.
Znajdź poprzednik i następnik najmniejszej wartości w tablicy (wartość komórki o numerze o jeden większym i o jeden mniejszym, niż indeks minimum tablicy).
Przepisać do nowej tablicy te elementy, których wartość jest >10. Nowa tablica ma mieć rozmiar równy ilości tych elementów.
Utwórz nową tablicę 100 elementową. Wypełnij ją w taki sposób, aby
B[i] = A[1] + A[2] + A[3] + … + A[i], gdzie B to nasza nowa, a A, stara tablica.
Posortuj tablicę malejąco.
Wypisz na ekran elementy, które występują w tablicy przynajmniej 3 razy.
- Utwórz pustą tablicę 100 elementów.
Wypełnij tablicę kolejnymi liczbami ciągu Fibonacciego.
Wypełnij tablicę kolejnymi potęgami liczby 2.
Wypełni tablicę ciągiem liczb: 3, 6, 9, 12, …
Wypełni tablicę ciągiem liczb: 2, 4, 8, 16, 32, …
Przykładowe rozwiązania oraz komentarze do wybranych ćwiczeń i zadań
Rozwiązania do ćwiczeń z tej strony
TEST
1 --> A, 2 --> B, 3 --> C, 4 --> D.