background image

06 

Metodyka i techniki programowania 
Instrukcje sterujące w C  
Jacek Dańda na podstawie lab. W. Szmuca

 

 

Ćwiczenie 1. Instrukcja switch   

1.  Zaimplementuj kod 

 

/* TODO: wczytanie zmiennych "lArgument", "operator", "pArgument" (%f%c%f) */ 
 
switch (expression) 

  


case '+': 

 

 

 

printf("%f+%f=%f\n", lArgument, pArgument, lArgument + pArgument); 
break; 

 

 

 

case '-': 

printf("%f-%f=%f\n", lArgument, pArgument, lArgument-pArgument); 
break; 

case '*': 

printf("%f*%f=%f\n", lArgument, pArgument, lArgument*pArgument); 
break; 

case '/': 

printf("%f/%f=%f\n", lArgument, pArgument, lArgument/pArgument); 
break; 

default: 

printf("Niepoprawny format.\n"); 

}; 

2.  Co się stanie, gdy usunięte zostanie break? 

 

Zadanie 

Napisz program wypisujący nazwy pór roku w zależności od numeru wprowadzonego miesiąca. 
W przypadku, gdy miesiąc może należeć do różnych pór roku rozstrzyganie na podstawie 
pobranego numeru dnia tego miesiąca..  

 

Ćwiczenie 2. Pętla while

1.  Zaimplementuj kod: 

srand(time(NULL)); 

 

short propozycja, wylosowana=rand()%100; 

 

do  

 

 

 

 

 

 

 

printf("Wpisz liczbe: "); 
scanf("%hd", &propozycja); 
if (propozycja>wylosowana) printf("Zbyt duza liczba\n"); 
if (propozycja<wylosowana) printf("Zbyt mala liczba\n"); 

} while (propozycja!=wylosowana); 

 

 

printf("Zgadza sie!\n"); 

 

2.  Przed pętlą dodaj: 

if (propozycja<0 || propozycja>99) 

printf("Liczba poza zakresem 0-99.\n"); 
continue;/* przejdz do warunku petli */ 
}; 

Sprawdź działanie programu po wpisaniu niepoprawnej wartości. 

3.  Zamień continue na break. Sprawdź działanie programu. 
4.  Zmień program tak, aby stosował pętlę while zamiast do/while. 

background image

 

Ćwiczenie 3. Pętla for

 

1.  Zaimplementuj kod: 

/* TODO: wczytywanie zmiennej "n" */ 
 
unsigned indeks, silnia=1; 
 
for (indeks=2; indeks<=n; indeks++) 

 

{   

 

 

 

 

 

 

silnia*=indeks; 

}; 

2.  Zamień indeks++ na ++indeks, czy to coś zmienia? 
3.  Zmień program tak, aby obliczał liczbę Eulera przy pomocy wzoru: 

 

n

 wczytuj z konsoli. 

Zadanie 

Napisz program, który wyświetli przebieg ustalonej funkcji (np. sinus) za pomocą symboli *. 
 

Ćwiczenie 4. Operatory binarne. 

 

1.  Zapisz poniższy kod w pliku bitowe.c: 

/* TODO: wczytywanie zmiennej "nieujemna" (unsigned) */ 
 
short indeks; 
printf("%u w zapisie binarnym: ", nieujemna); 
 
for (indeks=31; indeks>=0; indeks--) 

printf("%d", (nieujemna>>indeks)%2);  
if (indeks%4==0) printf(" "); 
if (indeks%8==0) printf(" "); 

}; 

Sprawdź działanie programu oryginalnego oraz po usunięciu nawiasów zawierających 
operację przesunięcia bitowego. 

2.  Używając powyższego programu (lub jego modyfikacji) wypisz więcej bitów niż wynosi 

wielkość wypisywanego typu. Co można wywnioskować z otrzymanego wyniku? 

3.  Zmodyfikuj program tak, aby wyświetlał również reprezentację bitową liczb ujemnych. 
4.  Wykorzystując przedstawiony w punkcie 1. algorytm sprawdź działanie pozostałych 

operatorów bitowych. 

Zadanie 

Napisz program, który rozkłada liczbę na bity z wykorzystaniem przesunięcia bitowego w lewo.