2007-11-06
Metodyka i techniki programowania
Instrukcje sterujące w C
07
mgr inż. Wojciech Szmuc
Ć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. Sprawdz 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
} 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 */
};
Sprawdz działanie programu po wpisaniu niepoprawnej wartości.
3. Podmień continue na break. Sprawdz działanie programu.
4. Zmodyfikuj program tak, aby wykorzystywał pętlę while zamiast do/while.
Ć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. Sprawdz co się zmieni po zastąpieniu indeks++ przez ++indeks.
"
1
3. Zmodyfikuj program tak, aby obliczał liczbę Eulera przy pomocy wzoru: .
e=
"
n !
n=0
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(" ");
};
Sprawdz 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 sprawdz 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 4 Instrukcja wykonania cwiczenia
LAB 2 Instrukcja wykonania cwiczenia
Instrukcje sterujące przebiegiem programu
Lab 1 Instrukcja wykonania cwiczenia Stal weglowa i stopowa
BIOLOGIA lab instrukcje 2012
TB (Lab) Instrukcja nr 3
CIM Lab Instruction for KSPT 2013
LAB 3 Instrukcja wykonania cwiczenia ulepszanie cieplne stali
mte lab instrukcja zszywka
LabSag Lab 5 6 Instrukcja
INSTRUKCJA 3 FIZYKA lab
Lab ME MI1 instrukcja 12 E
Lab ME SPS instrukcja 10 11
MSIB Instrukcja do Cw Lab krystalizacja
TM Lab Voicebox instrukcja
LAB POD ELEKTRONIKI RD instrukcja wzmacniacz operacyjny
Lab MP Turbiny 1 i 2 Instrukcja
więcej podobnych podstron