Jerzy Nawrocki, Wprowadzenie do informatyki

Podobne dokumenty
Jerzy Nawrocki, Wprowadzenie do informatyki

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Instrukcje podsumowanie. Proste: - przypisania - wejścia-wyjścia (read, readln, write, writeln) - pusta - po prostu ; (średnik) Strukturalne:

Wstęp do programowania

Wstęp do Programowania, laboratorium 02

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

Język ludzki kod maszynowy

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

Podstawy Kompilatorów

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Programowanie w Turbo Pascal

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Podstawy programowania C. dr. Krystyna Łapin

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Algorytm. a programowanie -

Ilość cyfr liczby naturalnej

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

2 Przygotował: mgr inż. Maciej Lasota

Język programowania PASCAL

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

1. Wprowadzenie do C/C++

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Wskaźniki. Programowanie Proceduralne 1

Powtórka algorytmów. Wprowadzenie do języka Java.

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

int tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania

Jerzy Nawrocki, Wprowadzenie do informatyki

IX. Wskaźniki.(3 godz.)

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

INSTRUKCJA PUSTA. Nie składa się z żadnych znaków i symboli, niczego nie robi. for i := 1 to 10 do {tu nic nie ma};

1. Wprowadzenie do C/C++

Wstęp do programowania

Podstawy programowania funkcjonalnego

20. Pascal i łączenie podprogramów Pascala z programem napisanym w C

Funkcje. Piotr Zierhoffer. 7 października Institute of Computer Science Poznań University of Technology

Pliki. Operacje na plikach w Pascalu

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Podstawy programowania w języku C

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Języki i metody programowania. Omówienie języków C, C++ i Java

Podstawy programowania

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Deklaracje. W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Podstawy Programowania

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Technologie informacyjne - wykład 12 -

Algorytmy od problemu do wyniku

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

PROGRAMOWANIE IMPERATYWNE JĘZYK C

Algorytmy. Programowanie Proceduralne 1

Definicje. Algorytm to:

Algorytmika i programowanie. dr inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Warto też w tym miejscu powiedzieć, że w C zero jest rozpoznawane jako fałsz, a wszystkie pozostałe wartości jako prawda.

Funkcje i tablice. Elwira Wachowicz. 23 maja 2013

Języki programowania zasady ich tworzenia

Praktyka Programowania

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

typ zakres sposob zapamietania shortint integer bajty (z bitem znaku) longint byte word

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Pliki. Informacje ogólne. Obsługa plików w języku C

Tablice, funkcje - wprowadzenie

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

1. WSTĘP. Dr inż. Robert Wójcik, p. 313, C-3, tel

Informatyka 1. Procedury i funkcje, struktura programu w Pascalu

Zmienne, stałe i operatory

Podprogramy. Procedury

JĘZYKI PROGRAMOWANIA

Algorytmy i struktury danych

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

ALGORYTMY I STRUKTURY DANYCH

Programowanie w językach wysokiego poziomu

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Struktury, unie, formatowanie, wskaźniki

Proces tworzenia programu:

Lekcja 6: Pascal. Procedura i funkcja

Palindromy. Przykładowe rozwiązanie

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 12. Karol Tarnowski A-1 p.

Podstawy Programowania Algorytmy i programowanie

1 Podstawy c++ w pigułce.

Prof. Danuta Makowiec Instytut Fizyki Teoretycznej i Astrofizyki pok. 353, tel danuta.makowiec at gmail.com

Powtórka algorytmów. Wprowadzenie do języka Java.

Podstawy Programowania C++

Pascal - wprowadzenie

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Programowanie strukturalne i obiektowe. Funkcje

Pytania sprawdzające wiedzę z programowania C++

Programowanie obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++

Transkrypt:

Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Programowanie imperatywne i język C Zaprezentować paradygmat programowania imperatywnego na przykładzie języka C. Programowanie imperatywne i język C (2) Imperatywność Klasy języków programowania Języki programowania łac. imperare rozkazywać Oktawian August 63 p.n.e 14 n.e. Pierwszy Imperator Rzymu Programowanie imperatywne i język C (3) Imperatywne Ciąg rozkazów Fortran Algol Pascal C C++ Java Deklaratywne Opis problemu Prolog ILOG Programowanie imperatywne i język C (4) Historia języka C Pisz Bitwa pod Plan wykładu Akcjum. 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 Programowanie imperatywne i język C (5) Koncepcja Programowanie imperatywne i język C (6) Programowanie imperatywne i język C 1

Jerzy Nawrocki, Program z instrukcją drukowania Kompilacja programu i wykonanie obliczeń Start printf ("Bitwa pod Akcjum\n"); 1. Zapisanie Akc.c programu w pliku 2. Kompilacja np. tcc Akc.c Akc.exe... Stop Bitwa pod Akcjum writeln ('Bitwa pod Akcjum') Programowanie imperatywne i język C (7) Dane wejściowe 3. Wykonanie obliczeń przez Akc.exe Wyniki Bitwa pod Akcjum Programowanie imperatywne i język C (8) Plan wykładu Zapamiętaj sobie 31. Koncepcja Programowanie imperatywne i język C (9) 121 Zapisz 5 Zapisz 121 Odczytaj Jest 121 Zmienna Cel: Pamiętanie wartości (np. liczby) Dwie operacje do wyboru: Zapisanie jakieś wartości. Odczytanie wartości. Programowanie imperatywne i język C (10) W programie można używać wielu zmiennych. Dlatego trzeba je nazywać. 11 22 33 Zmienna X Zmienna Y Zmienna SUMA W programie można używać wielu zmiennych. Dlatego trzeba je nazywać. 18 2 20 Zmienna X Zmienna Y Zmienna SUMA Zapisz w X 18 Zapisz w Y 2 Zapisz w SUMA sumę X+Y Ukryty odczyt Programowanie imperatywne i język C (11) Programowanie imperatywne i język C (12) Programowanie imperatywne i język C 2

Jerzy Nawrocki, 18 2 20 Zmienna X Zmienna Y Zmienna SUMA Zapisz w X 18 Zapisz w Y 2 Zapisz w SUMA sumę X+Y Programowanie imperatywne i język C (13) X := 18; Y := 2; SUMA := X + Y; 18 2 20 Zmienna X Zmienna Y Zmienna SUMA Zapisz w X 18 Zapisz w Y 2 Zapisz w SUMA sumę X+Y Programowanie imperatywne i język C (14) 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) integer real char Deklaracje zmiennych Instrukcje Zmienna: typ + nazwa Prosty program ze zmiennymi Deklaracje zmiennych: typ nazwy_oddzielone_przecinkami ; Programowanie imperatywne i język C (15) Programowanie imperatywne i język C (16) var X, Y, SUMA: integer; X := 18; Y := 2; SUMA := X + Y; Deklaracje zmiennych: typ nazwy_oddzielone_przecinkami ; Programowanie imperatywne i język C (17) Deklaracje zmiennych: nazwy_oddzielone_przecinkami : typ; Programowanie imperatywne i język C (18) Programowanie imperatywne i język C 3

Jerzy Nawrocki, Plan wykładu Pisz co zapamiętałeś. Koncepcja Programowanie imperatywne i język C (19) widać wyników! Drukowanie wartości Programowanie imperatywne i język C (20) Ogólniejsza postać printf: printf(" format ", zmienne); %d oznacza int printf("x = %d \n", X); X = 18 Drukowanie wartości printf("%d \n", SUMA); Drukowanie wartości var X, Y, SUMA: integer; X := 18; Y := 2; SUMA := X + Y; writeln(suma); 20 20 Programowanie imperatywne i język C (21) Programowanie imperatywne i język C (22) Czytaj, co pisze Plan wykładu Livia Drusilla Koncepcja Programowanie imperatywne i język C (23) Zadanie Napisać program wyświetlający sumę dowolnych dwóch liczb całkowitych. 18 2 0 5-3 1 18 + 2 = 20 0 + 5 = 5-3 + 1 = -2 Programowanie imperatywne i język C (24) Programowanie imperatywne i język C 4

Jerzy Nawrocki, Jak wczytać wartości X,Y? Czytanie liczb printf("%d + %d = %d \n", X, Y, SUMA); 18 + 2 = 20 Jak wczytać wartości X,Y? Czytanie liczb scanf(" format ", adresy_zmiennych); scanf(" %d ", &X ); int X; printf("%d \n", X ); Programowanie imperatywne i język C (25) Programowanie imperatywne i język C (26) Czytanie liczb Czytanie liczb 0 5 printf("%d + %d = %d \n", X, Y, SUMA); scanf("%d %d", &X, &Y); printf("%d + %d = %d \n", X, Y, SUMA); 0 + 5 = 5 Programowanie imperatywne i język C (27) Programowanie imperatywne i język C (28) 0 5 Czytanie liczb Jeśli idzie > 1 legion, to Plan wystaw wykładu 2; w przeciwnym razie wystaw 1. var X, Y, SUMA: integer; read(x, Y); SUMA := X + Y; writeln(x, ' + ', Y, ' = ', SUMA); 0 + 5 = 5 Koncepcja Programowanie imperatywne i język C (29) Programowanie imperatywne i język C (30) Programowanie imperatywne i język C 5

Jerzy Nawrocki, Napisać program wyświetlający minimum z dwóch liczb całkowitych. 18 2-3 1 min(18, 2)= 2 min(-3, 1)= -3 5 5 min(5, 5)= 5 Zadanie Schemat rozwiązania Start Czytaj X,Y X < Y Drukuj(X) Drukuj(Y) Programowanie imperatywne i język C (31) Stop Programowanie imperatywne i język C (32) Instrukcja 18 2 Instrukcja if ( warunek ) { instrukcje_1 else { instrukcje_2 if ( ładna_pogoda ) { o_19tej_idziemy_na_spacer; else { o_19tej_idziemy_do_kina; Programowanie imperatywne i język C (33) 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); Programowanie imperatywne i język C (34) 18 2 Instrukcja var X, Y: integer; read(x, Y); if ( X < Y ) then writeln('min(', X, ', ', Y, ')= ', X); end else writeln('min(', X, ', ', Y, ')= ', Y); end min(18, 2)= 2 Programowanie imperatywne i język C (35) Jeśli Marek Antoniusz Plan nie wykładu ustąpi, to wypowiemy wojnę Egiptowi. Koncepcja Programowanie imperatywne i język C (36) Programowanie imperatywne i język C 6

Jerzy Nawrocki, Zadanie Napisać program wyświetlający wartość bezwzględną podanej liczby całkowitej. 3-3 3 3 Czytaj X X < 0 X X Schemat rozwiązania Drukuj X Programowanie imperatywne i język C (37) Programowanie imperatywne i język C (38) Uproszczona instrukcja if ( warunek ) { instrukcje if ( pożar ) { dzwonpostrazpozarna; X Uproszczona instrukcja 3 int X; if ( X < 0 ) { X = -X; printf("%d \n", X); Programowanie imperatywne i język C (39) Programowanie imperatywne i język C (40) 1 5 Relacje w języku C int a, b; scanf("%d %d", &a, &b); if (a < b) {printf("%d mniejsze niz %d\n", a, b); if (a <= b) {printf("%d mniejsze lub rowne %d\n",a, b); if (a == b) {printf("%d rowne %d\n", a, b); if (a!= b) {printf("%d rozne od %d\n", a, b); if (a >= b) {printf("%d wieksze lub rowne %d\n", a, b); if (a > b) {printf("%d wieksze niz %d\n", a, b); 1 mniejsze niz 5 1 mniejsze lub rowne 5 1 rozne od 5 Programowanie imperatywne i język C (41) Jak długo Marek Antoniusz Plan wykładu jest z Kleopatrą, będziemy walczyć. Koncepcja Programowanie imperatywne i język C (42) Programowanie imperatywne i język C 7

Jerzy Nawrocki, Zadanie Napisać program obliczający liczbę cyfr dziesiętnych podanej liczby naturalnej (0, 1, 2,..). 0 9 10 0 ma cyfr: 1 9 ma cyfr: 1 10 ma cyfr: 2 99 99 ma cyfr: 2 100 100 ma cyfr: 3 Programowanie imperatywne i język C (43) 0,.. 9, 10,.. 99, 100,.. 999, 1 000,.. 9 999, 10 000,.. 1 cyf. X<10 C=1 G=10 C= Cyfr G= Granica 2 cyf. X<100 C= C + 1 G= G * 10 3 cyfry X<1000 C= C + 1 G= G * 10 4 cyfry X<10000 C= C + 1 G= G * 10 Programowanie imperatywne i język C (44) Jak to sprawdzić? Czytaj X C 1 G 10 C C + 1 G G * 10 Przykładowe obliczenie 9 X C G Czytaj X C 1 G 10 C C + 1 G G * 10 while ( warunek ) { instrukcje; while ( ) { Instrukcja powtarzania Drukuj C Drukuj C Programowanie imperatywne i język C (45) Programowanie imperatywne i język C (46) Program w C Program w C Czytaj X C 1 G 10 C C + 1 G G * 10 Drukuj C Czytaj X C 1 G 10 C C + 1 G G * 10 Drukuj C while () { Programowanie imperatywne i język C (47) Programowanie imperatywne i język C (48) Programowanie imperatywne i język C 8

Jerzy Nawrocki, 87 Program w Pascalu Plan wykładu var X, C, G: integer; read(x); C:= 1; G:= 10; while () do end; writeln(x, ' ma cyfr: ', C); 87 ma cyfr: 2 Programowanie imperatywne i język C (49) Koncepcja Programowanie imperatywne i język C (50) Koncepcja modularyzacji Koncepcja modularyzacji System wahadłowca tg(x) Rakieta ET Discovery sin(x) cos(x) tg(x) = sin(x) / cos(x) Monitor Start wahadłowca Discovery (26.VII.2005) Programowanie imperatywne i język C (51) Programowanie imperatywne i język C (52) Nazwa funkcji cos ( /2 ) = 0 Argument (parametr aktualny) Wynik Programowanie imperatywne i język C (53) Napisać program wyświetlający liczbę o 1 większą od podanej. 3 Y= X + 1; printf("%d \n", Y); 4 nast ( 3 ) = 4 int nast(int n) { return n+1; Y= nast(x); printf("%d \n", Y); Programowanie imperatywne i język C (54) Programowanie imperatywne i język C 9

Jerzy Nawrocki, int nast(int n) { return n+1; Y= nast(x); printf("%d \n", Y); Programowanie imperatywne i język C (55) int nast(int n) { return n+1; Y= nast(x); printf("%d \n", Y); Programowanie imperatywne i język C (56) int nast(int n) { return n+1; Y= nast(x); printf("%d \n", Y); Programowanie imperatywne i język C (57) TypWyniku NazwaFun ( Param ){ Deklaracje Instrukcje return Wynik; int nast( int n ){ return n+1 ; Programowanie imperatywne i język C (58) Program = zbiór funkcji Wykonanie zaczyna się od funkcji main int nast( int n ){ return n+1 ; Y= nast(x); printf("%d \n", Y); Programowanie imperatywne i język C (59) Program = zbiór funkcji Wykonanie zaczyna się od funkcji main Żaden Brak parametrów printf("fly by Lot\n"); Brak wyniku Programowanie imperatywne i język C (60) Programowanie imperatywne i język C 10

Jerzy Nawrocki, while () { void Ile main() cyfr { ma podana liczba X? int X, C; C= LiczbaCyfr(X); int LiczbaCyfr(int n) { int C, G; while (n >= G) { return C; int LiczbaCyfr(int n) { int C, G;... return C; int X, C; C= LiczbaCyfr(X); Wszystkie funkcje w jednym pliku Programowanie imperatywne i język C (61) Programowanie imperatywne i język C (62) function LiczbaCyfr(n: integer): integer; var C, G: integer;... LiczbaCyfr:= C; end; var X, C: integer; being read(x); C:= LiczbaCyfr(X); writeln(x, ' ma cyfr: ', C); w Pascalu Podsumowanie Plan wykładu Programowanie imperatywne i język C (63) Programowanie imperatywne i język C (64) Podsumowanie Operacje wejścia-wyjścia scanf / printf read / writeln Instrukcje złożone if ( ) { else { if then else while ( ) { while do Wyrażenia logiczne a == b a!= b a = b a <> b Instrukcja przypisania (zapamiętania) a = b; a := b Programowanie imperatywne i język C (65) Podsumowanie Podprogramy (funkcje) Deklaracja int F ( int x) { function F (x: integer): integer; int LokalnyWynik; // instrukcje return LokalnyWynik; var LokalnyWynik: integer; (* instrukcje *) F:= LokalnyWynik; end; Podprogramy (funkcje) Wywołanie Zmienna = 1 + F(2*a); Zmienna := 1 + F(2*a); Programowanie imperatywne i język C (66) Programowanie imperatywne i język C 11

Jerzy Nawrocki, Programowanie sterowane testami 5 Programowanie sterowane testami 87 5 ma cyfr: 1 87 ma cyfr: 1 Programowanie imperatywne i język C (67) Programowanie imperatywne i język C (68) Programowanie sterowane testami 87 while () { Jak to sprawdzić? Symboliczne wykonanie schematu Czytaj X C 1 G 10 C C + 1 G G * 10 Drukuj C 9 X C G 9 87 ma cyfr: 1 Programowanie imperatywne i język C (69) Programowanie imperatywne i język C (70) 9 Symboliczne wykonanie programu Dziękuję za uwagę! while () { X C G 9 Programowanie imperatywne i język C (71) Rzym, Lungo Tevere (foto: Giampaolo Macorig; Programowanie dostępne na www.flickr.com) imperatywne i język C (72) Programowanie imperatywne i język C 12