CPP WYKLADY ANALIZA 2


Programowanie i język C++ / Wykłady / Analiza programów CZŚĆ 2
ZAD. 1 / ZMIENNE WSKAyNIKOWE
// INPUT:
b)
// adres zmiennej A = 1000, adres zmiennej B = 2000,
Wykonaj następujące zadania:
// adres zmiennej c = 3000
a) zadeklaruj zmienną o nazwie Q typu double i nadaj jej wartość 1.5;
int A,B,C=25;
b) zadeklaruj wskaznik (zmienną wskaznikową) do wartości typu double o nazwie ptrQ i
int * pA = &A, * pB = 0, * pC = 0;
zainicjuj ją adresem zmiennej Q;
A = 5; B = 12;
c) wypisz wartość zmiennej Q (na dwa sposoby) wykorzystując: 1) zmienną Q; 2) zmienną
cout << "A = " << A << endl;
wskaznikową ptrQ wraz z operatorem dereferencji.
cout << "B = " << B << endl;
cout << "C = " << C << endl << endl;
Odpowiedz swoimi słowami na pytanie, na czym polega operacja pobrania adresu oraz
cout << "pA = " << pA << endl;
operacja dereferencji.
cout << "pB = " << pB << endl;
cout << "pC = " << pC << endl << endl;
ZAD. 2 / ZMIENNE WSKAyNIKOWE
B = A + 10;
Przeanalizuj działanie następujących instrukcji przyjmując podane na wejściu (INPUT) wartości
pB = &B;
zmiennych i wskazników. Opisz, w którym miejscu wykonane zostały odpowiednio: deklaracja
cout << "B = " << B << endl;
zmiennej, deklaracja zmiennej połączona z inicjacją, deklaracja wskaznika, deklaracja wskaznika
cout << "pB = " << pB << endl << endl;
połączona z inicjacją, wykonanie operacji pobrania adresu, wykonanie operacji dereferencji.
C = *pA + *pB;
Odpowiedz na pytanie, co wypisze program oraz jakie będą wartości zmiennych pod koniec
pC = &C;
jego działania.
cout << "C = " << C << endl;
cout << "pC = " << pC << endl << endl;
// INPUT:
a)
// adres zmiennej Z = 1000, adres zmiennej W = 1500
// INPUT:
c)
int Z,W = 5;
// adres zmiennej a = 1200, adres zmiennej b = 3000,
int * pZ, * pW = NULL;
// adres zmiennej c = 2000
int * ptr1 = 0;
int a,b,c;
Z = 12;
int * ptr1 = &a, * ptr2 = &b;
pZ = &Z; pW = &W;
a = 3; b = 10;
cout << "pW = " << pW << endl;
c = (a++) - (--b);
cout << "pZ = " << pZ << endl;
cout << "a = " << a << endl;
cout << "Z = " << Z << endl;
cout << "b = " << b << endl;
cout << "W = " << W << endl;
cout << "c = " << c << endl << endl;
cout << "*pW = " << *pW << endl;
cout << "*pZ = " << *pZ << endl; cout << "*ptr1 = " << *ptr1 << endl;
cout << "*ptr2 = " << *ptr2 << endl << endl;
ptr1 = &W;
cout << "ptr1 = " << ptr1 << endl; *ptr1 = c + 20;
cout << "*ptr1 = " << *ptr1 << endl; ptr2 = &c;
*ptr1 = 20; cout << "ptr1 = " << ptr1 << endl;
cout << "ptr1 = " << ptr1 << endl; cout << "*ptr1 = " << *ptr1 << endl << endl;
cout << "*ptr1 = " << *ptr1 << endl;
cout << "c = " << c << endl;
cout << "W = " << W << endl;
cout << "*ptr2 = " << *ptr2 << endl;
Programowanie i język C++ / Wykłady / Analiza programów CZŚĆ 2
ZAD. 3 / WSKAZANIA ADRESOWE  TYP VOID * ZAD. 4 / REFERENCJE
Przeanalizuj działanie następujących instrukcji przyjmując podane na wejściu (INPUT) wartości Przeanalizuj działanie następujących instrukcji przyjmując podane na wejściu (INPUT)
zmiennych i wskazników oraz odpowiedz na pytanie, co wypisze program. wartości zmiennych i wskazników. Odpowiedz na pytanie, co wypisze program oraz jakie
będą wartości zmiennych pod koniec jego działania.
// INPUT: adres zmiennej b = 1200
a)
double b = 3.5;
// INPUT: -
a)
double * pb = &b;
int x = 4, y = 7;
cout << "b = " << b << endl;
int &ref_x = x;
cout << "pb = " << pb << endl;
int &ref_y = y;
void * p = pb;
cout << "x = " << x << endl;
cout << "p = " << p << endl;
cout << "y = " << y << endl;
cout << "*pb = " << *pb << endl;
cout << "ref_x = " << ref_x << endl;
double * ptr = static_cast (p);
cout << "ref_y = " << ref_y << endl << endl;
cout << "ptr = " << ptr << endl;
ref_x = (++y) - 10;
cout << "*ptr = " << *ptr << endl;
cout << "x = " << x << endl;
cout << "ref_y = " << ref_y << endl << endl;
// INPUT: adres zmiennej U = 2000
b)
int U = 12;
int * pU = &U;
// INPUT: -
b)
cout << "U = " << U << endl;
int x = 4, y, z = 12;
cout << "pU = " << pU << endl;
int &ref_x = x;
int &ref_z = z;
void * ptr1 = pU;
cout << "ptr1 = " << ptr1 << endl;
cout << "x = " << x << endl;
cout << "z = " << z << endl;
int * p1 = static_cast (ptr1);
cout << "ref_x = " << ref_x << endl;
cout << "p1 = " << p1 << endl;
cout << "ref_z = " << ref_z << endl << endl;
cout << "*p1 = " << *p1 << endl;
int &ref = y;
*p1 = 7;
ref = (ref_x < z) ? 3:30;
cout << "*p1 = " << *p1 << endl;
cout << "y = " << y << endl;
cout << "*pU = " << *pU << endl;
cout << "ref = " << ref << endl << endl;
cout << "U = " << U << endl;
ref_x = (--z) - (ref++);
void * ptr2 = ptr1;
cout << "x = " << x << endl;
cout << "ptr2 = " << ptr2 << endl;
cout << "y = " << y << endl;
cout << "z = " << z << endl;
int * p2 = static_cast (ptr2);
cout << "ref_x = " << ref_x << endl;
*p2 = 2;
cout << "ref = " << ref << endl;
cout << "p2 = " << p2 << endl;
cout << "ref_z = " << ref_z << endl << endl;
cout << "*p2 = " << *p2 << endl;
cout << "U = " << U << endl;
Programowanie i język C++ / Wykłady / Analiza programów CZŚĆ 2
ZAD. 5 / STRUKTURY ZAD. 6 / TABLICE
Przeanalizuj działanie następujących instrukcji przyjmując podane na wejściu (INPUT) wartości Wykonaj następujące zadania:
zmiennych i wskazników. Odpowiedz na pytanie, co wypisze program oraz jakie będą wartości a) zadeklaruj tablicę jednowymiarową o nazwie a zawierającą 5 elementów typu double;
zmiennych pod koniec jego działania (OUTPUT). połącz deklarację z inicjacją pierwszych trzech elementów wartościami odpowiednio 12.5,
6.0, 13.0; jakie wartości będą miały elementy odpowiednio a[0], a[1], a[4];
// INPUT: wspolrzedne srodka okregu o2, (x,y) = (2.5, 3.0)
a)
b) zadeklaruj tablicę dwuwymiarową o nazwie b o 2 wierszach i 3 kolumnach zawierającą
// promien okregu o2, r = 6
// OUTPUT: odl, L1, S2 elementy typu short;
c) zainicjuj elementy tablicy b odpowiednio b[0][0], b[1][2] oraz b[1][1] dowolnymi
const double pi = 3.14;
struct okrag
wartościami typu short.
{
Odpowiedz na następujące pytania:
double x,y;
int r;
a) jakie będą wielkości tablic zadeklarowanych i zainicjowanych w poniższy sposób:
} o1 = {1.5, 0.5, 5};
double u[] = {3,2,4,5,6,1}
okrag o2;
char w[] = { a ,  b ,  g }
cout << "Podaj wspolrzedne srodka oraz promien drugiego okregu ";
b) podaj wartości elementów:
cout << endl;
i[0][1], i[2][1], i[1][1]
cout << "x = "; cin >> o2.x;
w[1][1], w[2][0], w[2][1], w[1][0]
cout << "y = "; cin >> o2.y;
cout << "r = "; cin >> o2.r; tablic zadeklarowanych i zainicjowanych w poniższy sposób:
double odl = sqrt( (o1.x-o2.x)*(o1.x-o2.x) + pow(o1.y-o2.y,2) );
int i[3][2] = {{2,1},{4,5},{8,12}}
double L1,S2;
int w[3][2] = {3,4,6,2}
L1 = 2.0*pi*o1.r;
ZAD. 7 / ROZPOZNANIE BADÓW W PROGRAMIE
S2 = pi*o2.r*o2.r;
Odpowiedz na pytanie, w których z poniższych fragmentów programów, programista popełnił
// INPUT : - błąd i wytłumacz na czym ten błąd polega. Popraw kod tak, żeby wyeliminować istniejący
b)
// OUTPUT : suma.re, suma.im, iloczyn.re, iloczyn.im
błąd. Uwaga  nie każdy z poniższych błędów zostanie wykryty i zasygnalizowany przez
struct liczba_zespolona
kompilator.
{
double re; int q = 6; double A = 1.5;
a) b)
double im; int * ptrq = q; double * pA;
} suma, iloczyn; *pA = &A;
liczba_zespolona z,w = {2.0,-3.0};
int D = 2; float * ptrC;
c) d)
z.re = -5.0;
int * p = &D; float C = 3.5;
z.im = 4.0;
p = 10; ptrC = C;
// Obliczamy sume liczb zespolonych : z + w
short u[3] = {1,2,5,8}; int s[] = {1,4,2};
suma.re = z.re + w.re;
e) f)
s[4] = 7;
suma.im = z.im + w.im;
int a = 3; float g = 3.5;
// Obliczamy iloczyn liczb zespolonych : z * w
g) h)
double b = 1.5; float * ptr1 = &g;
iloczyn.re = z.re*w.re - z.im*w.im;
int * p1, * p2; void * pV = ptr1;
iloczyn.im = z.im*w.re + z.re*w.im;
p1 = &a; float * ptr2 = pV;
p2 = &b;


Wyszukiwarka

Podobne podstrony:
CPP WYKLADY ANALIZA 1
wyklad z analizy matematycznej dla studentow na kierunku automatyka i robotyka agh
BUD WODNE Wykład 6 analiza mechaniczna filtracja MES
analiza finansowa wyklad Analiza wstepna i pozioma
CPP WYKLAD 1
CPP WYKLAD 7
Sopot stat 11 wyklad 9 Analiza kowariancji i ogolny model liniowy
CPP WYKLAD 6
Wyklad AnalizaMat 11 08
ProgCPP Wyklad Analiza
Wykład 1 3 Analiza finansowa
PZN wyklad 7 analiz ekon finans
ProgCPP Wyklad Analiza
CPP WYKLAD 1 2

więcej podobnych podstron