• Nie Znaleziono Wyników

Podstawy programowania

N/A
N/A
Protected

Academic year: 2022

Share "Podstawy programowania"

Copied!
5
0
0

Pełen tekst

(1)

Klasa Iie Iki (środa lekcja 6,7) 24.06.2020

Temat 1: Wskaźniki - ćwiczenia.

Temat 2:Wskaźniki jako argument funkcji - ćwiczenia.

Praca zdalna na Discord.(wykład)

Tworzenie wskaźnika

Zmienną wskaźnikową tworzymy podobnie jak zwykłe zmienne pamiętając tylko, aby przed nazwą wpisać operator "*". Operator ten służy także do wyłuskania wartości ze zmiennej wskaźnikowej (wyciągnięcia wartości ze zmiennej, na którą wskazuje).

int *a, *b; //stworzenie dwóch zmiennych wskaźnikowych typu int

Przypisywanie wartości

Aby przypisać wartość należy użyć nazwy zmiennej z operatorem "*" (operator wyłuskania).

Tak samo postępujemy w sytuacji, gdy wartość tej zmiennej chcemy przypisać do innej zmiennej lub ją wyświetlić.

int *a, b; //stworzenie zmiennej wskaźnikowej a i zwykłej zmiennej b

*a = 5; //przypisanie wartości do zmiennej a

b = *a; //przypisanie wartości znajdującej się w zmiennej wskaźnikowej a do zmiennej b

cout<<*a<<" "<<b; //zostanie wypisana dwa razy liczba 5

Przypisywanie adresu drugiej zmiennej

Przypisując adres zmiennej należy wymusić aby przekazała swój adres a nie wartość. W takim przypadku należy użyć operatora "&".

Przypisując do zmiennej wskaźnikowej adres drugiej zmiennej wypisujemy tylko nazwę tej zmiennej, bez operatora "*":

(2)

int *liczba, b;

b = 6;

liczba = &b; //przypisanie adresu zmiennej b

cout<<*liczba; //wypisanie wartości przechowującej przez b

Zastosowanie

Za pomocą wskaźników można kontrolować wartości innych zmiennych:

#include<iostream>

using namespace std;

int main() {

int *a, *b, c;

c = 5;

a = &c; //zmienna a wskazuje na adres zmiennej c b = &c; //zmienna b wskazuje na adres zmiennej c

cout<<*a<<" "<<*b<<endl; //wypisanie wartości, którą przechowuje zmienna c (2 razy 5)

*a = 7; //zmiana wartosci zmiennej c

cout<<*a<<" "<<*b<<" "<<c; //zostanie wypisana trzy razy wartość 7

(3)

}

Wskaźniki jako argumenty funkcji. Przekazując wskaźniki jako argumenty mamy zapewnione, że każda zmiana wartości zmiennej wewnątrz funkcji będzie "widoczna" w miejscu, w którym została wywołana:

#include<iostream>

using namespace std;

void zamien(int *a, int *b) {

int pom = *a;

*a = *b;

*b = pom;

}

int main() {

int a, b;

cin>>a>>b;

zamien(&a,&b); //przekazujemy adresy zmiennych

cout<<a<<" "<<b; //wartości zmiennych zostały zamienione

return 0;

}

(4)

Przykładowe wejście:

2 3 Wyjście:

3 2

Użycie zwykłych zmiennych nie spowoduje zamiany wartości, ponieważ funkcja będzie pracować na kopiach tych zmiennych.

Przydzielanie dynamiczne pamięci dla tablic, obiektów, struktur itp.

Gdy nie znamy wielkości tablicy lub tablica jest bardzo duża - większa niż stos programu, należy ją przydzielić dynamicznie.

#include<iostream>

using namespace std;

class klasa {

public:

void f() {

cout<<"metoda klasy";

} private:

int a;

};

int main() {

(5)

klasa * obiekt = new klasa; //przydzielenie pamięci na obiekt klasy klasa

cout<<"Podaj ilość elementów tablicy: ";

cin>>n;

tab = new int [n]; //przydzielenie pamięci na n elementów tablicy

/*******************************

operacje na tej tablicy

*******************************/

delete [] tab; //zwolnienie pamięci dla tablicy delete obiekt; //zwolnienie pamięci dla objektu

return 0;

}

Przy tworzeniu dynamicznych struktur danych takich jak drzewa, kolejki, listy i stosy.

W razie problemów pisać na na e-mail.: jjoannabryla@gmail.com

Pozdrawiam Joanna Bryła

Cytaty

Powiązane dokumenty

Przekształcenia całkowe.

Atrybut ten definiujemy przy użyciu wartości liczbowych – czyli z ilu kolumn ma się składać komórka..

(a) Gracz rzuca kostką do gry i otrzymuje 25 zł za liczbę oczek podzielną przez 3, a płaci 5 zł za każdy inny wynik. Ma on możliwość wykonania co najwyżej 5 rzutów,

Wiele nauczyłeś się od Pana Jeusa, który pragnie, abyś rozwijał w sobie hart ducha. Hart ducha to odwaga, męstwo, siła woli, panowanie nad sobą, niepoddawanie się

W przypadku przeciwnym, gdy zmiennej typu całkowitego chcemy przypisać wartość wyrażenia, która jest liczbą rzeczywistą, konieczna jest jawna konwersja typu (rzutowanie).. Operacja

g) Dla współczynnika lambda Hoerla i Kennarda wyznacz model regresji ridge ptaki.ridge0. Oblicz jego współczynniki.. h) Oblicz ilorazy współczynników regresji modeli ptaki.ridge0

Czy można dobrać parametr a tak, aby podane funkcje były gęstościami pewnego rozkładu zmiennej losowej?.

Znaleźć wartość oczekiwaną pola prostokąta, którego obwód równy jest 20, a jeden bok jest zmienną losową X o rozkładzie jednostajnym na odcinku [1, 10].. Niech X będzie