Lab 07 Instrukcje sterujace w C

background image

07

Metodyka i techniki programowania
Instrukcje sterujące w C
mgr inż. Wojciech Szmuc

2007-11-06

Ćwiczenie 1. Instrukcja

switch

1. Zaimplementuj kod:

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

switch (operator)

/* okreslenie zmiennej, ktorej wartosc bedzie sprawdzana */

{

case '+':

/* jedna z mozliwych wartosci */

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

/* wyjscie z bloku "switch" */

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:

/* wybierane, gdy inne nie pasuja */

printf("Niepoprawny format.\n");

};

2. Sprawdź co spowoduje wykasowanie instrukcji

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ętle

while

1. Zaimplementuj kod:

srand(time(NULL));

/* inicjalizacja generatora liczb losowych */

short propozycja, wylosowana=rand()%100;

/* losowanie liczby od 0 do 99 */

do

/* poczatek petli */

{

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);

/* warunek powtarzania */

printf("Zgadza sie!\n");

2. Przed instrukcjami warunkowymi dopisz:

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. Podmień

continue

na

break

. Sprawdź działanie programu.

4. Zmodyfikuj program tak, aby wykorzystywał pętlę

while

zamiast

do/while

.

background image

Ćwiczenie 3. Pętla

for

1. Zaimplementuj kod:

/* TODO: wczytanie poprawnej wartosci zmiennej "n" */

unsigned indeks, silnia=1;

for (indeks=2; indeks<=n; indeks++)

/* zaczyna od "indeks=2", sprawdza czy */

{

/* "indeks<=n", inkrementuje "indeks" */

silnia*=indeks;

};

2. Sprawdź co się zmieni po zastąpieniu

indeks++

przez

++indeks

.

3. Zmodyfikuj program tak, aby obliczał liczbę Eulera przy pomocy wzoru:

e=

n=0

1

n !

.

Maksymalną wartość

n

pobierz z konsoli.

Zadanie

Napisz program, który wyświetli przebieg ustalonej funkcji (na przykład sinus) za pomocą

symboli

*

.

Ćwiczenie 4. Operatory bitowe

1.

Stwórz plik

bitowe.c

zawierający:

/* TODO: wczytanie zmiennej "nieujemna" (unsigned) */

short indeks;

printf("%u w zapisie binarnym: ", nieujemna);
for (indeks=31; indeks>=0; indeks--)
{

printf("%d", (nieujemna>>indeks)%2);

/* przesuniecie o "indeks" bitow */
/* w prawo */

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.


Wyszukiwarka

Podobne podstrony:
Lab 06 Instrukcje sterujace id Nieznany
07 Instrukcje sterujące C Rozgałęzienia i skoki
Lab 06 Instrukcje sterujace id Nieznany
07 Instrukcje sterujące C Rozgałęzienia i skoki
07.Instrukcja zab. przed szkodnikami, Haccp-Dokumentacja-przykład
05 Instrukcje Sterujaceid 5708
Lab 2 Impulsowe instrukcja
Lab Pompy Instrukcja
Lab 07 Uwierzytelnianie v1 2
lab 07 projektowanie filtrow II
CMS Lab 07 Zend Framework
lab 07 wyprowadzanie równań ruchu2
WGGIS IS 1rok Ch Lab Cw 5 Instrukcja wzor spraw
BRAMSTER LASERBOX 200 03 07 Instrukcja
Informa, Wykład 2 Instrukcje sterujące
JAVA 07 instrukcje warunkowe

więcej podobnych podstron