zajęcia nr 6

Transkrypt

zajęcia nr 6
Informatyka 1
zajęcia nr 6
Elektrotechnika, semestr II
rok akademicki 2008/2009
mgr inż. Paweł Myszkowski
Plan dzisiejszych zajęć
1. Instrukcja wyboru
2. Funkcje matematyczne z biblioteki <math.h
>
<math.h>
3. Generowanie liczb losowych
1
1. Instrukcja wyboru
Instrukcja wyboru switch:
-
realizuje to samo, co zagnieżdżona
instrukcja warunkowa if.
Zastosowanie instrukcji switch jest
znacznie bardziej czytelne niż użycie
zagnieżdżonej instrukcji if.
1. Instrukcja wyboru
Schemat instrukcji wyboru:
switch (wyraż
(wyrażenie cał
całkowite)
{
case wariant_1: instrukcja;
…
lub blok instrukcji
break;
końcu wariantu
break; //koniecznie na koń
case wariant_2: instrukcja;
…
lub blok instrukcji
break;
końcu wariantu
break; //koniecznie na koń
…………………………………………….
//wariantów moż
może być
być wię
więcej
……………………………………………. //wariantó
default:
instrukcja;
default:
…
lub blok instrukcji
break;
końcu wariantu
break; //koniecznie na koń
}
2
1. Instrukcja wyboru
Wyraż
Wyrażenie cał
całkowite jest zazwyczaj pojedynczą
pojedynczą zmienną
zmienną
typu char lub int.
int. To nie jest warunek! Nie jest to
wyraż
wyrażenie relacyjne ani logiczne!
Po sł
słowie kluczowym case wystę
występują
pują wartoś
wartości, któ
których
się
się spodziewamy i któ
których wystą
wystąpienie w programie
chcemy obsł
obsłużyć. Komenda break oznacza wyjś
wyjście z
instrukcji wyboru.
Sekcja default obsł
obsługuje sytuację
sytuację, gdy wyraż
wyrażenie nie
przyjmie żadnej ze spodziewanych wartoś
wartości
(default /ang./ = domyś
domyślnie).
1. Instrukcja wyboru
Przykł
Przykład: Program komentują
komentujący wpisaną
wpisaną liczbę
liczbę.
#include <stdio.h>
stdio.h>
int main()
main()
{
int liczba;
printf("Podaj liczbę
liczbę cał
całkowitą
kowitą A = ");
scanf("%d",
scanf("%d", &liczba);
switch(liczba
switch(liczba))
{
case 0: printf("Wpisał
printf("Wpisałeś zero");break
zero");break;;
case -5: printf("Wpisał
");break
break;;
printf("Wpisałeś minus pięć
pięć");
case 7: printf("Podał
printf("Podałeś liczbę
liczbę siedem");break
siedem");break;;
default:
default: printf("Podał
printf("Podałeś inną
inną liczbę
liczbę niż
niż się
się
spodziewał
spodziewałem");break
em");break;;
}
}
3
1. Instrukcja wyboru
Ten sam efekt za pomocą
pomocą zagnież
zagnieżdżonej instrukcji if:
if:
//pomijam wprowadzenie, wczytywanie danych, itp.
if (liczba==0)
printf("Wpisał
printf("Wpisałeś zero");
else if (liczba==(liczba==-5)
printf("Wpisał
");
printf("Wpisałeś minus pięć
pięć");
else if (liczba==7)
printf("Podał
printf("Podałeś liczbę
liczbę siedem");
else printf("Podał
printf("Podałeś inną
inną liczbę
liczbę
niż
niż się
się spodziewał
spodziewałem");
Któ
Która postać
postać jest bardziej czytelna?
1. Instrukcja wyboru
Przykł
Przykłady do zrobienia z wykorzystaniem switch:
switch:
1) Do programu badają
badającego przestę
przestępność
pność roku
(z poprzednich zajęć
zajęć)) dodaj menu:
1 – wyś
wyświetl ponownie ekran powitalny,
2 – zbadaj, czy rok jest przestę
przestępny,
3 – wyś
wyświetl planszę
planszę koń
końcową
cową.
Program ma być
być oparty na funkcjach!
2) Napisz prosty kalkulator, pobierają
pobierający z klawiatury
dwie liczby oraz znak dział
działania i realizują
realizujący
dodawanie, odejmowanie, mnoż
mnożenie i dzielenie.
4
2. Funkcje matematyczne z <math.h>
sin(x)
sin(x) – sinus z x
cos(x)
cos(x) – cosinus z x
tan(x)
tan(x) – tangens z x
asin(x)
asin(x) – arcus sinus z x
acos(x)
acos(x) – arcus cosinus z x
atan(x)
atan(x) – arcus tangens z x
exp(x)
exp(x) – eksponent z x (funkcja wykł
wykładnicza)
log(x)
log(x) – logarytm naturalny z x
log10(x) – logarytm dziesię
dziesiętny z x
pow(x,y)
pow(x,y) –x do potę
potęgi y
sqrt(x)
sqrt(x) – pierwiastek kwadratowy z x
abs(x)
abs(x), fabs(x)
fabs(x) – wartość
wartość bezwzglę
bezwzględna z x
2. Funkcje matematyczne z <math.h>
Przykł
Przykład do zrobienia:
Do kalkulatora dodaj potę
potęgowanie
(znak '^').
5
3. Generowanie liczb losowych
srand(unsigned int starter)
starter) – funkcja
inicjują
inicjująca generator liczb pseudolosowych
daną
daną wartoś
wartością
cią począ
początkową
tkową
srand(time(0)) – w ten sposó
sposób otrzymamy za
każ
każdym razem inną
inną liczbę
liczbę
rand() – losuje liczbę
liczbę z zakresu unsigned int,
int,
czyli [0,65535]
rand() % n – zawęż
a przedział
zawęża
przedział losowanych liczb
do [0,n
[0,n-1]
3. Generowanie liczb losowych
Przykł
Przykład zastosowania funkcji losują
losujących:
int main()
main()
{
int i;
srand(time(0)); //"wymieszaj" liczby
i = rand() % 20; //losuj z przedział
przedziału [0,19]
printf("Wylosowana liczba: %d",i
);
%d",i);
system("PAUSE");
system("PAUSE");
return 0;
}
6
Dziękuję za uwagę
7