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