• Nie Znaleziono Wyników

Informatyka II. INF & EIT.

N/A
N/A
Protected

Academic year: 2021

Share "Informatyka II. INF & EIT."

Copied!
1
0
0

Pełen tekst

(1)

Informatyka II. INF & EIT. Ćwiczenie 3.

Operacje z wykorzystaniem wskaźników

Zagadnienia: Wskaźniki. Dynamiczne przydzielanie pamięci zmiennym za pomocą funkcji mal- loc i operatora new. Wstawianie danych do komórek pamięci o ustalonym adresie. Tablice i wskaźniki. Inicjowanie tablic wielowymiarowych z wykorzystaniem wskaźników. Funkcja main() i jej parametry.

1. Wykorzystując

a) funkcję malloc;

b) operator new;

przydzielić dynamicznie pamięć zmiennym typu char, int, long, float, double oraz zapamię- tać ich adresy w odpowiednich wskaźnikach. W przypadku, gdy alokacja pamięci powiedzie się zainicjować zmienne danymi wprowadzanymi z klawiatury. Wyprowadzić adresy oraz wartości zmiennych na ekran. Przed zakończeniem programu zwolnić przydzieloną pamięć.

2. Opracować funkcje:

a) wstawiającą daną typu unsigned char do pamięci wskazywanej przez void *p;

b) odczytującą daną typu unsigned char z pamięci wskazywanej przez void *p.

Zainicjować zmienną typu char za pomocą funkcji a) oraz odczytać jej wartość za pomocą funkcji b).

3. Opracować funkcje, które inicjują losowymi liczbami całkowitymi należącymi do przedziału [-10, 10] podtablice o wymiarach w0≤N0 tablicy int tab1[N0], gdzie N0 – stała. Prototypy funkcji:

a) void init1a(int *tab, int w0);

b) void init1b(int tab[], int w0).

Wyprowadzić zainicjowane tablice na ekran.

4. Opracować funkcje, które inicjują losowymi liczbami całkowitymi należącymi do przedziału [-1, 12] podtablice o wymiarach w0≤N0 i w1≤N1 tablicy int tab2[N0][N1], gdzie N0, N1 – stałe. Prototypy funkcji:

a) void init2a(int *tab, int w0, int w1);

b) void init2b(int tab[][N1], int w0, int w1).

Sprawdzić, czy inicjacje a) i b) dają takie same wyniki dla podtablic, np. dla tablicy tab2[9][9] i wywołania dla podtablicy init2a(tab2[0], 5, 5) oraz init2b(tab2, 5, 5).

5. Opracować funkcje, które inicjują losowymi liczbami całkowitymi należącymi do przedziału [-7, 15] podtablice o wymiarach w0≤N0, w1≤N1 i w2≤N2 tablicy int tab3[N0][N1]]N2], gdzie N0, N1, N2 – stałe. Prototypy funkcji:

a) void init3a(int *tab, int w0, int w1, int w2);

b) void init3b(int tab[][N1][N2], int w0, int w1, int w2).

6. Napisać program umożliwiający przekazanie do programu dowolnej liczby argumentów typu int za pomocą parametrów funkcji main(int argc, char *argv[]). Wyświetlić na ekranie wprowadzone liczby oraz ich sumę (wykorzystać funkcję atoi). Przetestować program dla wywołania prog 1 2 3.

Cytaty

Powiązane dokumenty

Zdefiniować wskaźnik funkcji double f(double). Zainicjować wskaźnik adresem standar- dowej funkcji sin. Za pomocą wskaźnika wyznaczyć wartości funkcji sin w N losowych punktach

Opracować program umożliwiający przekazanie do programu trzech liczb typu int za pomocą argumentów funkcji main(int argc, char *argv[]), gdzie argc – liczba

Nie zmieniając zawartości tablicy struktur i nie kopiując jej do innej tablicy zmodyfi- kować tablicę indeksów w taki sposób, aby kolejne pozycje w tablicy ind określały

Opracować program, który zapisze do pliku binarnego dane w formacie: rozmiar danej typu tdana (zmienna typu unsigned), liczba danych w pliku (zmienna typu long), ciąg danych

Opracować funkcję, która wyznacza wszystkie liczby pierwsze z przedziału [2,N] w oparciu o metodę „sita” (opis: wpisać wszystkie liczby z przedziału [2,N] do tablicy t[N+1],

Napisać program, który losuje k cyfr liczby binarnej do tablicy unsigned char dane[N], gdzie 1<= k <= N, a następnie oblicza wartość dziesiętną liczby.. Zadanie zrealizować z

a) tworzącą dynamiczną tablicę 2-wymiarową typu int A[nw][nk] o liczbie wierszy i liczbie kolumn wczytywanych do zmiennych int nw, nk; funkcja typu int** zwraca adres po-

Prototyp funkcji: void oblicz(double min, double max, int n, tx T, wskaźnik_funkcji). W programie głównym wykonać obliczenia dla funkcji sin w przedziale [-pi/2, pi/2].