• Nie Znaleziono Wyników

Ćwiczenia 9 Podstawy programowania – Wskaźniki

N/A
N/A
Protected

Academic year: 2021

Share "Ćwiczenia 9 Podstawy programowania – Wskaźniki"

Copied!
3
0
0

Pełen tekst

(1)

Ćwiczenia 9

Podstawy programowania – Wskaźniki

1. Napisz funkcję UstalLiczbeCalkowita, która zwraca jako wartość wskaźnik do zmiennej typu int.

Zadaniem funkcji jest zaalokowanie zmiennej oraz ustalenie jej wartości (wartość zmiennej wczytujemy z klawiatury).

Napisz program spradzający działanie funkcji.

2. Biorąc pod uwagę nastepujący kod:

#include<iostream>

using namespace s t d ; int main ( ) {

int a = 1 , b = 2 , c = 3 ; int ∗wsk ;

wsk = &a ;

∗wsk = a + 5 ; wsk = &b ; c = ∗wsk ∗ 2 ; ++∗wsk ;

cout << a << ” ” << b << ” ” << c << ” ” << ∗wsk << e n dl

;

return 0 ; }

• Przeanalizuj powyższy program i bez kompilacji spróbuj przewidzieć wartości wyświetlone na ekranie.

• Zwróć uwagę na sposób deklarowania zmiennej wskaźnikowej wsk.

• Operator & pojawia się dwukrotnie, czy wiesz jakie jest jego zadanie?

 Przyjrzyj się proszę operatorowi dereferencji * (ten sam symbol jest

wykorzystywanyponadto jako operator mnożenia i do deklarowania zmiennych wskaźnikowych), który zamienia zmienną wskaźnikową na obiekt znajdujący się pod wskazywanym adresem.

• Skompiluj program i zobacz czy Twoje przewidywania były słuszne.

3. Biorąc pod uwagę następujący kod odpowiedz:

#include<iostream>

using namespace std ; int main ( ) {

double tablica [10] = { 1. 1 , 3 . 2 , 5 . 3 , 7 . 4 , 9 . 5 , 0 . 6 , 2 . 7 , 4 . 8 , 6 . 9 , 8 } ;

double ∗wsk ; wsk = tablica ;

cout << wsk << e n dl << wsk + 1 << e n dl ;

cout << ∗wsk << ” ” << ∗( wsk + 1 ) << e n dl << e n dl ; wsk++;

cout << wsk << e n dl << wsk + 2 << e n dl ;

cout << ∗wsk << ” ” << ∗( wsk + 2 ) << e n dl << e n dl ;

(2)

wsk += 5 ;

cout << wsk << endl << wsk − 1 << endl ;

cout << ∗wsk << ” ” << ∗( wsk − 1 ) << endl << endl ; cout << wsk − tablica ;

return 0 ; }

• Dlaczego adresy wyświetlone w pierwszych dwóch liniach nie różnią się o 1?

• Czy usunięcie nawiasu z formuły *(wsk + 1) zmienia wynik? (jaka jest kolejność wykonywania operacji?)

• Zwróć uwagę na operacje jakie możesz wykonywać na zmiennych wskaźnikowych.

• Zastanów się jakie jeszcze operacje mają sens.

4. (Zadanie z * - nie mylić z operatorem wyłuskania :-D )

Napisz program, w którym zdefiniowana jest 1-elementowa tablica typu float. Wypełnij ją liczbami od 1 do 10.

Wypisz wszystkie element tablicy na ekran nie używając operatora ‘[ ]’, który pozwala wydobywać poszczególne element z tablicy. W zamian, użyj wskaźników.

5. (Zadanie z **) Zdefiniuj funkcję

double calka (double (*fp)(double x), double a, double b, int n),

która dla danego wskaźnika do funkcji fp oblicza całkę funkcji fp na przedziale [a, b] metodą trapezów uwzględniając podział odcinka na n przedziałów. Oblicz całki kilku wybranych funkcji

Quiz 1. Co wypisze poniższy kod?

int a = 5 , ∗wsk = &a ; (∗wsk ) += 3 ;

cout << a ;

(a) 5 (b) 6 (c) 8

(d) nie skompiluje się

2. Dany jest c-string (tablica znaków zakończona znakiem ‘0’)

char *napis = ”jakis napis”;

Które z poniższych wyrażeń stanowią poprawne odwołanie do 3 elementu (litera k)?

a . n a pi s + 2 ; b . ∗ n a pi s + 2 ; c . ∗( n a pi s + 2 ) ; d . n a pi s [ 2 ] ;

(3)

3. Dana jest tablica i wskaźnik

int tab[5] = {1, 3, 5, 7, 5};

int *wsk = tab + 2;

co wypiszą następujące komendy?

a . cout << ∗wsk << e n dl ; b . cout << wsk [ 2 ] << e n dl ; c . cou << wsk[ −1] << e n dl ; d . cout << wsk – tab << e n dl ; e . cout << wsk << e n dl ;

Cytaty

Powiązane dokumenty

Przekształcenia całkowe.

Podstawowymi funkcjami elementarnymi nazywamy funkcje: staªe, pot¦gowe, wykªadnicze, loga- rytmiczne, trygonometryczne oraz cyklometryczne.. Funkcje elementarne, to takie które

Twierdzenia o dwóch i o trzech funkcjach zachodz¡ równie» dla granic wªa±ciwych jednostronnych jak równie» dla granic wªa±ciwych

Ponadto, niech funkcja g(x) ma staªy znak w przedziale [a, b]. (nieujemna

Niech funkcja f okre±lona na przedziale (a, b] oraz a b¦dzie punktem osobliwym tj. funkcja b¦dzie nieograniczona na prawostronnym s¡siedztwie

Niech funkcja f okre±lona na przedziale (a, b] oraz a b¦dzie punktem osobliwym tj. funkcja b¦dzie nieograniczona na prawostronnym s¡siedztwie punktu a.. Oblicz drog¦ pokonan¡

2) zbadaj podstawowe wªasno±ci funkcji tj. parzysto±¢, nieparzysto±¢, okresowo±¢, punkty prze- ci¦cia wykresu funkcji z osiami wspóªrz¦dnych,. 3) wyznacz asymptoty

Lista nr 6 Elektrotechnika sem.III, studia niestacjonarne, 2019/20. Całkowanie funkcji zespolonej