Tablice
Tablice jednowymiarowe:
Tablice możemy porównać do komody zawierającej x szuflad, służą one bowiem do przechowywania zmiennych. Pozwalają nam wygodnie zarządzać nawet ich tysiącami. Tablice posiadają indeksy, czyli numer szuflady, w której znajduje się dana zmienna. Wszystkie tablice są numerowane od zera. Możemy tworzyć tablice zawierające różne typy zmiennych (int, string, bool….). To oznacza, że mogą przechowywać nie tylko liczby, ale też znaki czy nawet łańcuchy znaków.
#include <iostream>
using namespace std;
int main()
{ //typ,nazwa,rozmiar
int tablica[5]={9,4,5,2,6};
/*stworzyliśmy tablicę o rozmiarze 5, czyli posiada ona 5 miejsc
na zmienne. Rozmiar tablicy określamy używając nawiasów
kwadratowych [], przypisaliśmy również wartości do tablicy,
za pomocą znaku = oraz nawiasów klamrowych*/
cout<<tablica[1];
/* wyświetlamy element tablicy pod indeksem 1, czyli w tym
przypadku 4*/
}
Indeks | 0 | 1 | 2 | 3 | 4 |
Zawartość | 9 | 4 | 5 | 2 | 6 |
Tablica wygląda obecnie w ten sposób.
Jeżeli chcemy, aby to użytkownik podał zawartość tablicy kod będzie wyglądał następująco:
#include <iostream>
using namespace std;
int main()
{
int wielkość; //tworzymy zmienna, która przechowa rozmiar tablicy
cin>>wielkość; //pobieramy rozmiar tablicy od użytkownika
int tablica[wielkość]; //tworzymy tablicę o podanym rozmiarze
for(int i=0;i<wielkość;i++)
/*w pętli wczytujemy wartości do kolejnych komórek tablicy,
zaczynamy od 0 ponieważ tablice są indeksowane od 0, warunkiem
zakończenia pętli jest doście do komórki o indeksie wielkości
podanej przez użytkownika*/
{
cin>>tablica[i];
/*wczytujemy wartość na indeksie tablicy, który obecnie
przyjmuje wartość i*/
}
}
ZADANIE: napisz program wykorzystując tablicę jednowymiarową, który pobierze wartości znajdujące się w tablicy od użytkownika, a następnie wyświetli zawartość podanego przez użytkownika indeksu tablicy (dla tablicy [ 3, 2, 8, 4, 9 ] użytkownik podaje przykładowo 5 więc program wyświetla wartość 9)
Tablice dwuwymiarowe:
Podobnie jak standardowa tablica składa się ona z typu, nazwy oraz rozmiaru, jednakże w tym wypadku rozmiar występuje 2-krotnie. Analogicznie w tablicach 3-wymiarowych występują 3 określenia rozmiaru, w 5-wymiarowych 5 itd.
Deklaracja takiej tablicy wygląda więc tak samo, ze zmianą w ilości podawanych liczb.
#include <iostream>
using namespace std;
int main()
{ //typ,nazwa,rozmiar,rozmiar
int tablica[2][5]={{9,4,5,2,6},{6,2,5,4,9}};
cout<<tablica[1][3];
}
Indeksy | 0 | 1 | 2 | 3 | 4 |
0 | 9 | 4 | 5 | 2 | 6 |
1 | 6 | 2 | 5 | 4 | 9 |
Wygląda więc ona następująco.
Analogicznie wczytywanie danych do takiej tablicy przez użytkownika różni się liczbą pętli (tworzymy tzw. pętlę w pętli).
#include <iostream>
using namespace std;
int main()
{
int wielkosc1;
int wielkosc2;
cin>>wielkosc1;
cin>>wielkosc2;
int tablica[wielkosc1][wielkosc2];
for(int i=0;i<wielkosc1;i++)
{
for(int j=0;j<wielkosc2;j++)
/*aby program rozróżniał zmienne w jednym bloku nie możemy
mieć 2 zmiennych o tej samej nazwie */
{
cin>>tablica[i][j];
}
}
}
Tablice dwuwymiarowe możemy wykorzystać np. w takich zadaniach:
Wczytaj tablicę dwuwymiarową n x n. Następnie oblicz sumę liczb na przekątnej, wychodzącej z lewego górnego wierzchołka:
Na przykład: dla n = 4:
10 34 2 51
1 23 13 11
4 5 22 99
77 1 7 63
Odpowiedź w takim przypadku: 10 + 23 + 22 + 63 = 118
Nasz program będzie wyglądał następująco:
#include<iostream>
using namespace std;
int main()
{
int n;
int suma = 0;
//zmienna suma będzie przechowywała sumę liczb na przekątnej
cin >> n; //wczytujemy dane (wielkość tablicy)
int tablica[n][n]; //tworzymy tablicę
for(int i = 0; i < n; i++)
{
for(int j = 0; j < n; j++)
{
cin >> tablica[i][j]; // wczytujemy dane do tablicy
if(i == j)
/*zauważmy, że liczby leżące na przekątnej mają dwie takie
same współrzędne, (np.: 22 ma indeksy 2,2) więc w takim
wypadku do sumy dodajemy wartość, wczytaną do tego pola */
{
suma = suma + tablica[i][j];
}
}
}
cout << suma;
}
ZADANIE: teraz analogicznie spróbuj napisać program, który policzy sumę liczb na przekątnej wychodzącej z prawego górnego wierzchołka.
Idealne miejsce aby zacząć swoją przygodę z programowaniem.
Copyright © 2024 return help;