From MJanik
(Difference between revisions)
|
|
| (8 intermediate revisions not shown) |
| Line 1: |
Line 1: |
| - | Wykład dr Hanny Zbroszczyk: [http://www.if.pw.edu.pl/~gos/PO/wyklad4-2012.pdf slajdy]
| + | Tematem zajęć numer 4 będą tablice i wskaźniki. W szczególności dynamiczna alokacja pamięci dla tablic 1- i 2-wymiarowych. |
| | | | |
| | + | Więcej informacji na ten temat można znaleźć na Wykładzie 2 Prof. Zbroszczyk (slajdy dostępne na MS Teams). |
| | + | |
| | + | [http://www.if.pw.edu.pl/~majanik/data/JP/2025/Zadanie4_Tablice.pdf Laboratorium 4] - Język C++, tablice 1- i 2-wymiarowe |
| | + | |
| | + | |
| | + | '''Ćwiczenie''' |
| | + | |
| | + | W ramach przygotowania do zajęć możesz napisać program w języku C++, który: |
| | + | |
| | + | # Wczytuje liczbę '''n''' – rozmiar tablicy jednowymiarowej typu ''int''. |
| | + | # Dynamicznie alokuje tablicę jednowymiarową o rozmiarze ''n'' i wypełnia ją kolejnymi liczbami całkowitymi od 1 do ''n''. |
| | + | # Tworzy dynamicznie tablicę dwuwymiarową ''n × n'', w której element [i][j] jest równy iloczynowi ''tab1[i] * tab1[j]''. |
| | + | # Wypisuje tablicę dwuwymiarową w formie macierzy. |
| | + | # Zwalnia całą zaalokowaną pamięć (''delete[]'', ''delete[][]''). |
| | + | |
| | + | Przykład działania programu: |
| | + | <pre> |
| | + | Podaj n: 3 |
| | + | 1 2 3 |
| | + | 2 4 6 |
| | + | 3 6 9 |
| | + | </pre> |
| | + | |
| | + | '''Dynamiczne tworzenie tablic jednowymiarowych w C++:''' |
| | + | |
| | + | int *tab = new int [10]; |
| | + | |
| | + | '''Dynamiczne tworzenie tablic dwuwymiarowych w C++:''' |
| | + | |
| | + | int **tab = new int* [5]; |
| | + | for (int i = 0; i < 5; ++i) |
| | + | tab[i] = new int [10]; |
| | + | |
| | + | W ten sposób stworzono tablicę dwuwymiarową którą statycznie zadeklarowalibyśmy jako: |
| | + | int tab[5][10]; |
| | + | Należy również zwolnić pamięć dla dynamicznie zadekladowanej tablicy: |
| | + | for (int x = 0; x < 5; x++) |
| | + | delete [] tab[x]; |
| | + | delete [] tab; |
| | + | |
| | + | |
| | + | |
| | + | <!-- |
| | + | Wykład dr Hanny Zbroszczyk: [http://www.if.pw.edu.pl/~gos/PO/wyklad4-2012.pdf slajdy] |
| | | | |
| | Grupa poniedziałek 14:00 - 16:00 | | Grupa poniedziałek 14:00 - 16:00 |
| Line 10: |
Line 54: |
| | | | |
| | [http://www.if.pw.edu.pl/~majanik/data/JP/2012/Zadanie4.Autostrada.2.pdf Zadanie - Klasy Samochod i Klient]: pola statyczne, konstruktory, pętla switch-case. [w parach] | | [http://www.if.pw.edu.pl/~majanik/data/JP/2012/Zadanie4.Autostrada.2.pdf Zadanie - Klasy Samochod i Klient]: pola statyczne, konstruktory, pętla switch-case. [w parach] |
| | + | |
| | + | --> |
Latest revision as of 07:20, 24 October 2025
Tematem zajęć numer 4 będą tablice i wskaźniki. W szczególności dynamiczna alokacja pamięci dla tablic 1- i 2-wymiarowych.
Więcej informacji na ten temat można znaleźć na Wykładzie 2 Prof. Zbroszczyk (slajdy dostępne na MS Teams).
Laboratorium 4 - Język C++, tablice 1- i 2-wymiarowe
Ćwiczenie
W ramach przygotowania do zajęć możesz napisać program w języku C++, który:
- Wczytuje liczbę n – rozmiar tablicy jednowymiarowej typu int.
- Dynamicznie alokuje tablicę jednowymiarową o rozmiarze n i wypełnia ją kolejnymi liczbami całkowitymi od 1 do n.
- Tworzy dynamicznie tablicę dwuwymiarową n × n, w której element [i][j] jest równy iloczynowi tab1[i] * tab1[j].
- Wypisuje tablicę dwuwymiarową w formie macierzy.
- Zwalnia całą zaalokowaną pamięć (delete[], delete[][]).
Przykład działania programu:
Podaj n: 3
1 2 3
2 4 6
3 6 9
Dynamiczne tworzenie tablic jednowymiarowych w C++:
int *tab = new int [10];
Dynamiczne tworzenie tablic dwuwymiarowych w C++:
int **tab = new int* [5];
for (int i = 0; i < 5; ++i)
tab[i] = new int [10];
W ten sposób stworzono tablicę dwuwymiarową którą statycznie zadeklarowalibyśmy jako:
int tab[5][10];
Należy również zwolnić pamięć dla dynamicznie zadekladowanej tablicy:
for (int x = 0; x < 5; x++)
delete [] tab[x];
delete [] tab;