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.

Polityka prywatności

Regulamin korzystania ze strony

Odwiedź nasze social media!

Skontaktuj się z nami

Copyright © 2024 return help;

Scroll to Top