1. Zapoznać się z działaniem i przeznaczeniem następujących funkcji i procedur:
• new - dispose
• getmem - freemem, memalloc
• release
• memavail, maxavail
2. Napisać program, w którym sprawdzane będzie ile pamięci na stercie oraz ile miejsca pozostaje wolnego po zallokowaniu następujących struktury:
• zmienna typu real
• zmienna typu integer
• tablica 10 liczb typu byte
• tablica 10 znaków (char)
• tablica 10 liczb typu integer
• tablica 10000 liczb typu integer
Należy zwrócić uwagę na to jak zmienia się rozmiar sterty po zarezerwowaniu i po zwolnieniu pamięci. Sprawdzić jak działają i do czego służą ustawienia Menu—>Options—>Memory sizes...
Uwaga! Przed dokonaniem jakichkolwiek zmian ustawień proszę spisać ustawienia pierwotne i po zakończeniu testowania działania programu do nich powrócić.
3. Napisać program wykonujący następujące działania matematyczne na liczbach rzeczywistych przechowywanych na
stercie: *. Wynik działania ma także być przechowywany jako zmienna dynamiczna.
4. Napisać program przechowujący na stercie tablicę 100 znaków. Zdefiniować odpowiednie typy danych, zadeklarować zmienne i przydzielić dla tej tablicy miejsce na stercie. Następnie losowo wypełnić tą tablicę małymi literami (procedury: randomize, random i chr) i sprawdzić (wypisać na ekran) krotności występowania każdej z liter.
5. Zadanie 4 zmodyfikować tak, aby tablica zamiast znaków zawierała wskaźniki do nich.
6. Napisać program, który wypełniać będzie całą dostępną pamięć na stercie losowo wybranymi liczbami naturalnymi z przedziału [0,255]. Działanie programu ma być uniezależnione od rozmiaru sterty.
7. Zadanie 6 zmodyfikować tak, aby wypełniać całą dostępną pamięć na stercie losowo wybranymi liczbami wymiernymi (liczby takie można uzyskać przez podzielenie przez siebie dwóch losowo wybranych liczb całkowitych). Tak jak poprzednio działanie programu ma być uniezależnione od rozmiaru sterty.
8. Napisać program przechowujący na stercie tablicę 100 wskaźników do liczb typu integer. Zdefiniować odpowiednie typy danych, zadeklarować zmienne i przydzielić dla tej tablicy miejsce na stercie. Następnie wylosować te liczby (przedział losowania: [—10,10]) i pod warunkiem, że wylosowane liczby są większe od zera do tablicy wpisać ich adresy na stercie, jeśli nie, do tablicy powinien zostać wpisany adres zerowy (nil) oraz nie powinny one zajmować pamięci. Następnie na podstawie tablicy wskaźników sprawdzić ile wylosowanych liczb było nie większych od zera.
12