October 26, 2025, Sunday, 298

Języki Programowania 4

From MJanik

(Difference between revisions)
Jump to: navigation, search
(Created page with "Wykład dr Hanny Zbroszczyk: [http://www.if.pw.edu.pl/~gos/PO/wyklad4-2012.pdf slajdy] Grupa poniedziałek 14:00 - 16:00 [http://www.if.pw.edu.pl/~majanik/data/JP/2012/Zadanie...")
 
(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:

  1. Wczytuje liczbę n – rozmiar tablicy jednowymiarowej typu int.
  2. Dynamicznie alokuje tablicę jednowymiarową o rozmiarze n i wypełnia ją kolejnymi liczbami całkowitymi od 1 do n.
  3. Tworzy dynamicznie tablicę dwuwymiarową n × n, w której element [i][j] jest równy iloczynowi tab1[i] * tab1[j].
  4. Wypisuje tablicę dwuwymiarową w formie macierzy.
  5. 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;