background image

P

ROGRAMOWANIE I JĘZYK 

C++

  

/

  

A

NALIZA PROGRAMÓW NR 

Temat: Instrukcje iteracyjne, warunkowe, wyboru i sterujące.  

 

Zadanie 
Wykonać analizę poniższych programów. Nie używając komputera obliczyć wartości zmiennych określonych 
jako OUTPUT przy danych wejściowych INPUT. Sprawdzić wyniki  uruchamiając odpowiedni kod programu 
na komputerze.  
 

1.

   

// INPUT : u = 5 
// OUTPUT: suma 

int

 k; 

double

 suma,u; 

cout << 

"Podaj u = "

cin >> u; 

suma = 0.0; 

for

 (k=-2; k<=1; k++) 

  suma = suma + u*k; 

 

2. 

// INPUT  : u = 2 
// OUTPUT : wynik 

int

 i,wynik,u; 

cout << 

"Podaj u = "

cin >> u; 

wynik = -3; 

for

 (i=-1; i<=2; i++) 

  wynik = wynik + u*i; 
wynik = wynik / 2; 

 

3. 

// INPUT  : a = 5, b = 3 
// OUTPUT : d, c 

double

 a,b,c,d; 

cout << 

"Podaj a = "

; cin >> a; 

cout << 

"Podaj b = "

; cin >> b; 

d = b*b - a*a; 

if

 (d > 0) 

  c = d/b; 

else 

  c = d/a; 

 

4. 

// INPUT  : a = 1, b = 3 
// OUTPUT : c 
 

// INPUT  : a = 1, b = 2 
// OUTPUT : c 

double

 a,b,c; 

cout << 

"Podaj a = "

; cin >> a; 

cout << 

"Podaj b = "

; cin >> b; 

c = b*b - 4*a; 

if

 (c) 

  c = b/c; 

else 

  c = b/a; 

 

background image

5. 

// INPUT  : liczba = 8 
// OUTPUT : j, a[1], a[3] 

int

 liczba,j; 

int

 a[10]; 

cout << 

"Podaj liczbe = "

; cin >> liczba; 

j = 0; 

while

 (liczba > 0) 


  j++; 
  a[j] = liczba; 
  liczba = liczba - 2; 

 

6. 

// INPUT  : liczba = 8 
// OUTPUT : j, a[1], a[3], a[8] 

 
int

 liczba,j; 

int

 a[10] = {0,2,4,6,8,10}; 

cout << 

"Podaj liczbe = "

; cin >> liczba; 

j = 0; 

while

 (liczba > 0) 


  a[j] = a[j] + liczba; 
  liczba = liczba - 3; 
  j++; 

 

7. 

// INPUT  : n = 3 
// OUTPUT : b[0], b[n-1], wynik 
 

int

 n,i,wynik; 

int

 a[20], b[20]; 

cout << 

"Podaj n = "

; cin >> n; 

for

 (i=0; i<=n-1; i++) 

  a[i] = i*i+1; 

for

 (i=0; i<=n-1; i++) 

  b[i] = a[i] + 2; 
wynik = (b[2] + b[n-1]) % 3;

 

 

8. 

// INPUT  : - 
// OUTPUT : a[0],...,a[9], wynik 
 

int

 n,i,wynik; 

int

 a[10] = {10,20,30,40,50,60,70,80,90,100}; 

n = 7; 
 

 

i = 2; 

do

  


  i = i + 1; 
  a[i] = a[i] - 2*i; 
  

if

 (i >= n)  

    

break

while

 (

true

); 

 
wynik = ((a[4] - a[n]) > 7) ? 1 : -1; 

background image

9. 

// INPUT  : -  
// OUTPUT : a[0], a[3], wynik 

 
int

 n,i; 

double

 wynik; 

int

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

n = 3; 

for

 (i=0; i<=n; i++) 


  

if

 (i <= 2) 

    a[i] = a[i] + 1; 
  

else 

    a[i] = a[i] - 1; 

wynik = (a[0] + a[3]) * 2.5; 

 

10. 

// INPUT  : a = 2, b = 3, h = 4, wybor = 1 
// OUTPUT : pole 
 
// INPUT  : a = 2, b = 3, h = 4, wybor = 2 
// OUTPUT : pole 
 
// INPUT  : a = 2, b = 3, h = 4, wybor = 3 
// OUTPUT : pole 
 

int

 wybor; 

double

 a,b,h,pole; 

 
cout << 

"Podaj a = "

; cin >> a; 

cout << 

"Podaj b = "

; cin >> b; 

cout << 

"Podaj h = "

; cin >> h; 

 
cout << 

"Podaj wybor (wybor = 1, 2 lub 3) = "

; cin >> wybor; 

switch

 (wybor) 


  

case

 1: 

// Pole trojkata 

         pole = 0.5*a*h; 
 
  

case

 2: 

// Pole kwadratu 

         pole = a*a; 
         

break

 
  

case

 3: 

// Pole prostokata 

         pole = a*b; 
 
  

default

         pole = -1; 

background image

 

11. 

// INPUT  : z = 'u' 
// OUTPUT : z (jako znak), z (kod znaku), w (jako znak), w (kod znaku) 
 
// INPUT  : z = 'U' 
// OUTPUT : z (jako znak), z (kod znaku), w (jako znak), w (kod znaku) 
 
// INPUT  : z = 'A' 
// OUTPUT : z (jako znak), z (kod znaku), w (jako znak), w (kod znaku) 
 
// INPUT  : z = 'T' 
// OUTPUT : z (jako znak), z (kod znaku), w (jako znak), w (kod znaku) 
 

char

 z,w; 

int

  kod; 

 
cout << 

"Podaj znak = "

; cin >> z; 

switch

 (z) 


  

case

 

'u'

  

case

 

'U'

       w = z + 2; 
       

break

 
  

case

 

'a'

       w = z + 4; 
       

break

 
  

case

 

'A'

       w = z + 5; 
       

break

 
  

default

       w = 

'C'

 

12. 

 

 

// INPUT  : - 
// OUTPUT : s, a, b 

 

 

int

 u[10] = {-4,-3,-2,-1,0,1,2,3,4,5}; 

int

 i,s,a = 3,b = -6; 

 

 

s = 1; 
i = 4; 

while

 (i<=7) 


  

if

 (i == 4) 

    s = s + u[i] + (a++) - (--b); 
  

else

 

if

 (i == 5) 

    s = (++s) - u[i]; 
  

else 

    s = (s--) + u[i]/3; 
 
  i++; 

background image

 

13. 

// INPUT  : - 
// OUTPUT : s, a, b 
 

int

 u[10] = {-4,-3,-2,-1,0,1,2,3,4,5}; 

int

 i,s,a = -2,b = 6; 

 

 

s = 1; 
i = 7; 

do 


  

switch

 (i) 

  { 
    

case

 4: 

         s = (s--) - u[i]; 
         

break

 
    

case

 5: 

         s = u[i+1] + (a++); 
         b--; 
 
    

case

 6: 

         s = s + (++b)/2; 
         

break

 
    

default

         s = s - u[i]; 
  } 
 
  i--; 

while

 (i>3);