Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.

Podobne prezentacje


Prezentacja na temat: "Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie."— Zapis prezentacji:

1 Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/wsb-wdi/ Wprowadzenie do informatyki Wykład 4

2 J.Nawrocki, Programowanie imperatywne i C Klasy języków programowania Języki programowania Ciąg rozkazów Opis problemu Fortran Algol Pascal C C++ Java Prolog ILOG ImperatywneDeklaratywne

3 J.Nawrocki, Programowanie imperatywne i C Historia języka C 1966: Kompilator języka BCPL 1969: Język B 1972: Język C Ken Thompson, UNIX B.Kernighan, D.Ritchie, The C Programming Language. Lex, YACC, AWK Stroustrap, C++, 1983

4 J.Nawrocki, Programowanie imperatywne i C Plan wykładu Programy z jedną instrukcją Dwie instrukcje i \n Koncepcja zmiennej Drukowanie wartości zmiennej Czytanie liczb Instrukcja warunkowa Uproszczona instrukcja warunkowa Instrukcja powtarzania while Funkcje Problem stopu

5 J.Nawrocki, Programowanie imperatywne i C Program z jedną instrukcją void main() { printf("Fly by Lot\n"); return; } Instrukcja drukowania

6 J.Nawrocki, Programowanie imperatywne i C Program z jedną instrukcją void main() { printf ("Fly by Lot\n"); return; } Nazwa instrukcji

7 J.Nawrocki, Programowanie imperatywne i C Program z jedną instrukcją void main() { printf(" Fly by Lot \n"); return; } Drukowany tekst Fly by Lot

8 J.Nawrocki, Programowanie imperatywne i C Kompilacja programu i wykonanie obliczeń 1. Zapisanie programu w pliku Fly.cFly.exe Dane wejściowe Fly by Lot Wyniki 3. Wykonanie obliczeń przez Fly.exe 2. Kompilacja np. tcc Fly.c

9 J.Nawrocki, Programowanie imperatywne i C Program z dwiema instrukcjami void main() { printf(" Historia Poznania \n"); printf(" warta jest poznania. \n"); return; } Historia Poznania warta jest poznania.

10 J.Nawrocki, Programowanie imperatywne i C void main() { printf("Historia Poznania \n "); printf("warta jest poznania. \n "); return; } Znak nowej linii \n void main() { printf("Historia Poznania \n warta jest poznania. \n "); return; } Historia Poznania warta jest poznania.

11 J.Nawrocki, Programowanie imperatywne i C Zmienna jako pamięć Zmienna 121 Cel: Pamiętanie wartości (np. liczby) Dwie operacje do wyboru: Zapisanie jakieś wartości. Odczytanie wartości. Zapisz 5 Odczytaj Zapisz 121 Jest 121

12 J.Nawrocki, Programowanie imperatywne i C Zmienna jako pamięć Zmienna X 18 W programie można używać wielu zmiennych. Dlatego trzeba je nazywać. Zmienna Y 2 Zmienna SUMA 20 Zapisz w X 18 Zapisz w Y 2 Zapisz w SUMA sumę X+Y Ukryty odczyt

13 J.Nawrocki, Programowanie imperatywne i C Zmienna jako pamięć Zmienna X 18 Zmienna Y 2 Zmienna SUMA 20 Zapisz w X 18 Zapisz w Y 2 Zapisz w SUMA sumę X+Y void main() {... X = 18; Y = 2; SUMA = X + Y;... }

14 J.Nawrocki, Programowanie imperatywne i C Typy zmiennych Komputer inaczej przetwarza Liczby całkowite (.., -2, -1, 0, 1, 2,..) Liczby rzeczywiste (-1.5, 0.5, 2.3,..) Pojedyncze znaki ('a', 'b', 'z', 'A', 'Z', '+', '-', '*', '$', '0', '9',..) Ciągi znaków ("on", "rok 1956",..) Zmienna: typ + nazwa Przykładowe typy zmiennych w języku C: int – liczby całkowite (ang. integer) float – liczby rzeczywiste (ang. floating point) char – znaki (ang. character)

15 J.Nawrocki, Programowanie imperatywne i C Prosty program ze zmiennymi void main() {... return; } Instrukcje Deklaracje zmiennych Zmienna: typ + nazwa Deklaracje zmiennych: typ nazwy_oddzielone_przecinkami ;

16 J.Nawrocki, Programowanie imperatywne i C Zmienna jako pamięć void main() {... X = 18; Y = 2; SUMA = X + Y;... } void main() { int X, Y, SUMA; X = 18; Y = 2; SUMA = X + Y; return; } Deklaracje zmiennych: typ nazwy_oddzielone_przecinkami ;

17 J.Nawrocki, Programowanie imperatywne i C Drukowanie wartości zmiennej printf(" format ", zmienne ); Ogólniejsza postać printf: printf("Y= %d; X= %d \n", Y, X); Y= 2; X= 18 %d oznacza int printf("X = %d \n", X); X = 18 void main() { int X, Y, SUMA; X = 18; Y = 2; SUMA = X + Y; printf("%d \n", SUMA); return; } 20

18 J.Nawrocki, Programowanie imperatywne i C Zadanie Napisać program wyświetlający sumę dowolnych dwóch liczb całkowitych. 18 2 0 5 -3 1 18 + 2 = 200 + 5 = 5-3 + 1 = -2

19 J.Nawrocki, Programowanie imperatywne i C void main() { int X, Y, SUMA; X = 18; Y = 2; SUMA = X + Y; printf("%d + %d = %d \n", X, Y, SUMA); return; } Czytanie liczb 18 + 2 = 20 Jak wczytać wartości X, Y ?

20 J.Nawrocki, Programowanie imperatywne i C Czytanie liczb Jak wczytać wartości X, Y ? scanf(" format ", adresy_zmiennych ); scanf(" %d ", &X ); void main() { int X; scanf("%d", &X); printf("%d \n", X ); return; }

21 J.Nawrocki, Programowanie imperatywne i C Czytanie liczb Jak wczytać wartości X, Y ? scanf(" format ", adresy_zmiennych ); scanf(" %d ", &X ); scanf(" %d %d ", &X, &Y ); & - bardzo ważny!

22 J.Nawrocki, Programowanie imperatywne i C void main() { int X, Y, SUMA; X = 18; Y = 2; SUMA = X + Y; printf("%d + %d = %d \n", X, Y, SUMA); return; } Czytanie liczb

23 J.Nawrocki, Programowanie imperatywne i C void main() { int X, Y, SUMA; scanf("%d %d", &X, &Y); SUMA = X + Y; printf("%d + %d = %d \n", X, Y, SUMA); return; } Czytanie liczb 18 + 2 = 20 18 2

24 J.Nawrocki, Programowanie imperatywne i C Zadanie Napisać program wyświetlający minimum z dwóch liczb całkowitych. 18 2 0 5 -3 1 min(18, 2)= 2min(0, 5)= 0min(-3, 1)= -3 5 min(5, 5)= 5

25 J.Nawrocki, Programowanie imperatywne i C Schemat rozwiązania Start Czytaj X,Y X < Y Tak Drukuj(X) Nie Drukuj(Y) Stop

26 J.Nawrocki, Programowanie imperatywne i C Instrukcja warunkowa if ( warunek ) { instrukcje_1 } else { instrukcje_2 } if ( ładna_pogoda ) { o_19tej_idziemy_na_spacer; } else { o_19tej_idziemy_do_kina; }

27 J.Nawrocki, Programowanie imperatywne i C Instrukcja warunkowa Czytaj X,Y X < Y Tak Drukuj(X) Nie Drukuj(Y) void main() { int X, Y; scanf("%d %d", &X, &Y); if ( X < Y ) { printf("min(%d, %d)= %d \n", X, Y, X ); } else { printf("min(%d, %d)= %d \n", X, Y, Y); } return; }

28 J.Nawrocki, Programowanie imperatywne i C void main() { int X, Y; scanf("%d %d", &X, &Y); if ( X < Y ) { printf("min(%d, %d)= %d \n", X, Y, X); } else { printf("min(%d, %d)= %d \n", X, Y, Y); } return; } Instrukcja warunkowa min(0, 5)= 0 0 5

29 J.Nawrocki, Programowanie imperatywne i C void main() { int X, Y; scanf("%d %d", &X, &Y); if ( X < Y ) { printf("min(%d, %d)= %d \n", X, Y, X); } else { printf("min(%d, %d)= %d \n", X, Y, Y); } return; } Instrukcja warunkowa min(18, 2)= 2 18 2

30 J.Nawrocki, Programowanie imperatywne i C Zadanie Napisać program wyświetlający wartość bezwzględną podanej liczby całkowitej. 3 0 -3 303

31 J.Nawrocki, Programowanie imperatywne i C Schemat rozwiązania Nie X < 0 Tak X – X Drukuj X Czytaj X

32 J.Nawrocki, Programowanie imperatywne i C Uproszczona instrukcja warunkowa if ( warunek ) { instrukcje } if ( pożar ) { dzwonPoStrazPozarna; }

33 J.Nawrocki, Programowanie imperatywne i C Uproszczona instrukcja warunkowa X < 0 Tak Nie Drukuj X Czytaj X X – X void main() { int X; scanf("%d", &X); if ( X < 0 ) { X = -X; } printf("%d \n", X); return; }

34 J.Nawrocki, Programowanie imperatywne i C Uproszczona instrukcja warunkowa void main() { int X; scanf("%d", &X); if ( X < 0 ) { X = -X; } printf("%d \n", X); return; } -3 X

35 J.Nawrocki, Programowanie imperatywne i C Uproszczona instrukcja warunkowa void main() { int X; scanf("%d", &X); if ( X < 0 ) { X = -X; } printf("%d \n", X); return; } -3 X

36 J.Nawrocki, Programowanie imperatywne i C Uproszczona instrukcja warunkowa void main() { int X; scanf("%d", &X); if ( X < 0 ) { X = -X; } printf("%d \n", X); return; } -3 3 X

37 J.Nawrocki, Programowanie imperatywne i C Uproszczona instrukcja warunkowa void main() { int X; scanf("%d", &X); if ( X < 0 ) { X = -X; } printf("%d \n", X); return; } -3 3 X 3

38 J.Nawrocki, Programowanie imperatywne i C Zadanie Napisać program obliczający liczbę cyfr dziesiętnych podanej liczby naturalnej (0, 1, 2,..). 0 9 10 0 ma cyfr: 19 ma cyfr: 110 ma cyfr: 2 99 99 ma cyfr: 2 100 100 ma cyfr: 3

39 J.Nawrocki, Programowanie imperatywne i C 0,.. 9, 10,.. 99, 100,.. 999, 1 000,.. 9 999, 10 000,.. Analiza zadania C=1 G=10 1 cyf. X<10 2 cyf. X<100 3 cyfry X<1000 4 cyfry X<10000 X >= G C= C + 1 G= G * 10 Tak C= C + 1 G= G * 10 Tak C= C + 1 G= G * 10 Tak X >= G C= Cyfr G= Granica

40 J.Nawrocki, Programowanie imperatywne i C Inny przykład obliczeń Nie X >= G Tak C C + 1 G G * 10 Drukuj C Czytaj X C 1 G 10 X X C C G G 87

41 J.Nawrocki, Programowanie imperatywne i C Inny przykład obliczeń Nie X >= G Tak C C + 1 G G * 10 Drukuj C Czytaj X C 1 G 10 87 X X C C G G

42 J.Nawrocki, Programowanie imperatywne i C Inny przykład obliczeń Nie X >= G Tak C C + 1 G G * 10 Drukuj C Czytaj X C 1 G 10 87 10 X X C C G G 1 2 100 87 ma cyfr: 2 87

43 J.Nawrocki, Programowanie imperatywne i C Instrukcja powtarzania Nie X >= G Tak C C + 1 G G * 10 Drukuj C Czytaj X C 1 G 10 while ( warunek ) { instrukcje; } while ( X >= G ) { C= C + 1; G= G * 10; }

44 J.Nawrocki, Programowanie imperatywne i C Program w C Nie X >= G Tak C C + 1 G G * 10 Drukuj C Czytaj X C 1 G 10 void main() { int X, C, G; scanf("%d", X); C= 1; G= 10; while (X >= G) { C= C + 1; G= G * 10; } printf("%d ma cyfr: %d \n", X, C); return; }

45 J.Nawrocki, Programowanie imperatywne i C Funkcje cos ( /2 ) = 0 Argument (parametr aktualny) Nazwa funkcji Wynik

46 J.Nawrocki, Programowanie imperatywne i C Funkcje nast ( 3 ) = 4 void main() { int X, Y; scanf("%d", &X); Y= X + 1; printf("%d \n", Y); return; } void main() { int X, Y; scanf("%d", X); Y= nast(X); printf("%d \n", Y); return; } int nast(int n) { return n+1; } Napisać program wyświetlający liczbę o 1 większą od podanej. 3 4

47 J.Nawrocki, Programowanie imperatywne i C Funkcje void main() { int X, Y; scanf("%d", X); Y= nast(X) ; printf("%d \n", Y); return; } int nast(int n) { return n+1; }

48 J.Nawrocki, Programowanie imperatywne i C Funkcje void main() { int X, Y; scanf("%d", X); Y= nast (X); printf("%d \n", Y); return; } int nast(int n) { return n+1 ; }

49 J.Nawrocki, Programowanie imperatywne i C Funkcje void main() { int X, Y ; scanf("%d", X); Y = nast(X); printf("%d \n", Y); return; } int nast(int n) { return n+1; }

50 J.Nawrocki, Programowanie imperatywne i C Funkcje TypWyniku NazwaFun ( Param ){ Deklaracje Instrukcje Instrukcje return Wynik ; } int nast( int n ){ return n+1 ; }

51 J.Nawrocki, Programowanie imperatywne i C Funkcje void main() { printf("Fly by Lot\n"); return; } Żaden Brak parametrów Brak wyniku Program = zbiór funkcji Wykonanie zaczyna się od funkcji main

52 J.Nawrocki, Programowanie imperatywne i C Problem stopu Dany jest podprogram X. Czy ten podprogram skończy obliczenia w skończonym czasie? ZatrzymaSie(F) – funkcja wyrocznia. X – funkcja nieprzewidywalna.

53 J.Nawrocki, Programowanie imperatywne i C Problem stopuZatrzymaSie(X) funkcja X koniec X Tak Nie Wniosek: Problem stopu jest nierozstrzygalny

54 J.Nawrocki, Programowanie imperatywne i C Podsumowanie Drukowanie i czytanie liczb w C. Intrukcje warunkowe if. Instrukcja powtarzania while. Funkcje (podprogramy). Nie wszystko można obliczyć. Język schematów blokowych jest wygodnym narzędziem opisu algorytmów. Wreszcie!


Pobierz ppt "Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie."

Podobne prezentacje


Reklamy Google