P
ROGRAMOWANIE I JĘZYK
C++
/
A
NALIZA PROGRAMÓW NR
1
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;
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;
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;
}
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++;
}
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);