Zadania



Zad. 1. Wyjaśnić szczegółowo różnicę w przydzielaniu i zwalnianiu pamięci zgodznie z poniższymi schematami:

Schemat 1.

	int ** tabX = new int*[n];  
	for (int i=0; i<n; ++i)
		tabX[i] = new int[m];   

	for (int i=0; i<n; ++i)
		delete tabX[i];
	delete [] tabX;

Schemat 2.

	int ** tabX = new int * [n];  
	tabX[0] = new int[n*m];  
	for (int i=1; i<n; ++i)
		tabX[i] = tabX[i-1]+m;

	delete [] tabX[0];  
	delete [] tabX;     

Zad. 2. Zadanie to jest identyczne jak zadanie 1 z poprzedniej listy, ale dotyczy zmiennych dynamicznych. Napisać program wykonujący działanie na macierzach dynamicznych. Każde działanie powinno znajdować się w odrębnej funkcji (procedurze):

Zad. 3. Z platformy moodle pobrać kod programu: zm_dynam6.zip. Uruchomić i omówić działanie programu.

Zad. 4. Z platformy moodle pobrać kody programów: menu.zip. Uruchomić i omówić działanie programów.

Zad. 5. Napisać program, który czyta plik tekstowy. Przeczytany tekst szyfruje szyfrem ga-de-ry-po-lu-ki oraz zaszyfrowny tekst zapisuje do nowego pliku. Szyfrowanie polaga na zastąpieniu w łącuchu oryginalnych liter ich literami-partnerami z pary. Na przykład: "ala ma asa." po zaszyfrowaniu daje: "gug mg gsg.". Jak powinna wyglądać funkacja deszyfrująca? Dla ułatwienia należy się ograniczyć do tekstów pisanych małymi literami, bez polskich znaków diakrytycznych.