Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Mgr inż.Marcin Borkowski Podstawy Java Krótkie wprowadzenie dla studentów Wyższej Szkoły Ekologii i Zarządzania
Język ANSI C Funkcje Wykład: Programowanie komputerów
Kompilator: a) gcc [cc, g++]
Języki programowania C++
Język asemblera Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
ZŁOŻONOŚĆ OBLICZENIOWA
Turbo pascal – instrukcje warunkowe, iteracyjne,…
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 2: Wstęp do programowania w Pascalu © Jan Kaczmarek.
P O D S T A W Y P R O G R A M O W A N I A
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Rekurencja Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Programowanie imperatywne i język C
Języki formalne i gramatyki
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Przetwarzanie tekstów i AWK Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 7
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Język C – Część II Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Wyrażenia regularne i język AWK
Wykład 2 struktura programu elementy języka typy zmienne
Wprowadzenie do programowania w języku Turbo Pascal
Programowanie obiektowe W2
Podprogramy.
PROGRAMOWANIE STRUKTURALNE WYKŁAD 2
Schemat Hornera Mgr inż. Michał Szucki.
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Podstawy programowania
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Podstawy programowania w języku C i C++
Podstawy programowania
Programowanie strukturalne i obiektowe
Algorytmy z przykładami w Turbo Pascal 7.0
20 września 2003r. Centrum Kształcenia Ustawicznego im. St. Staszica w Koszalinie Wstęp do algorytmiki Autor: Marek Magiera.
Podstawy programowania w języku C i C++
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wyrażenia w Turbo Pascalu.
Algorytmy i struktury danych
Procedury i funkcje.
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Programowanie strukturalne i obiektowe
Gramatyki i translatory
Informatyka MZT1 Wykład 6 Iteracje while i repeat Tablice Rekordy
Wykład 10 typ zbiorowy rekurencja.
PWSZ Gniezno // codefly 2009 Łukasz Tomczak
Podstawy języka Instrukcje - wprowadzenie
Zmienne i typy danych w C#
Przetwarzanie tekstów i AWK Copyright, 2007 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 5
Języki formalne i gramatyki Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy.
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
METODY REPREZENTOWANIA IFORMACJI
Wyrażenia regularne i język AWK Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
1 Opisy funkcji Adres strony WWW : html (należy odszukać hyperlink Function Index) (
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 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

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

J.Nawrocki, Programowanie imperatywne i C Plan wykładu Programy z jedną instrukcją Koncepcja zmiennej Drukowanie wartości zmiennej Czytanie liczb Instrukcja warunkowa Uproszczona instrukcja warunkowa Instrukcja powtarzania ‘while’ Modularyzacja i funkcje.

J.Nawrocki, Programowanie imperatywne i C Schemat najprostszego programu Start Stop void main() {... return; } Instrukcje begin... end.

J.Nawrocki, Programowanie imperatywne i C Program z instrukcją drukowania void main() { printf ("Bitwa pod Akcjum\n"); return; } Bitwa pod Akcjum begin writeln ('Bitwa pod Akcjum') end. drukuj.. drukuj.. Start Stop

J.Nawrocki, Programowanie imperatywne i C Kompilacja programu i wykonanie obliczeń 1. Zapisanie programu w pliku Akc.cAkc.exe Dane wejściowe Bitwa pod Akcjum Wyniki 3. Wykonanie obliczeń przez Akc.exe 2. Kompilacja np. tcc Akc.c

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

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;... } W programie można używać wielu zmiennych. Dlatego trzeba je nazywać.

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) integer real char

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 ;

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 ;

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

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

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

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; }

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

J.Nawrocki, Programowanie imperatywne i C var X, Y, SUMA: integer; begin read(X, Y); SUMA := X + Y; writeln(X, ' + ', Y, ' = ', SUMA); end. Czytanie liczb 0 5

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

J.Nawrocki, Programowanie imperatywne i C Schemat rozwiązaniaStart Czytaj X,Y X < Y TakDrukuj(X) NieDrukuj(Y) Stop

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; }

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 ) { }else { } return; }

J.Nawrocki, Programowanie imperatywne i C var X, Y: integer; begin read(X, Y); if ( X < Y ) begin writeln('min(', X, ', ', Y, ')= ', X); end else begin writeln('min(', X, ', ', Y, ')= ', Y); end end. Instrukcja warunkowa min(18, 2)=

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

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

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); return; }

J.Nawrocki, Programowanie imperatywne i C Relacje w języku C void main() { 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);} return; } 1 5

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

J.Nawrocki, Programowanie imperatywne i C Analiza zadania Napisać program obliczający liczbę cyfr dziesiętnych podanej liczby naturalnej (0, 1, 2,..). 0,.. 9, 10,.. 99, 100,.. 999, 1 000, , ,..

J.Nawrocki, Programowanie imperatywne i C 0,.. 9, 10,.. 99, 100,.. 999, 1 000, , ,.. Analiza zadania C=1 G=10 1 cyf. X<10 2 cyf. X<100 3 cyfry X< 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

J.Nawrocki, Programowanie imperatywne i C Schemat rozwiązania Nie Tak C  C + 1 G  G * 10 Drukuj C X >= G Czytaj X C  1 G  10

J.Nawrocki, Programowanie imperatywne i C Przykładowe obliczenie Nie X >= G Tak C  C + 1 G  G * 10 Drukuj C Czytaj X C  1 G  10 Jak to sprawdzić ? 9 1 X X C C G G 9

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; }

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

J.Nawrocki, Programowanie imperatywne i C Program w Pascalu var X, C, G: integer; read(X); C:= 1; G:= 10; while (X >= G) do begin C= C + 1; G= G * 10; end; writeln(X, ' ma cyfr: ', C); end ma cyfr: 2

J.Nawrocki, Programowanie imperatywne i C Koncepcja modularyzacji System wahadłowca Monitor Rakieta ET Discovery

J.Nawrocki, Programowanie imperatywne i C Koncepcja modularyzacji tg(x) sin(x) cos(x) tg(x) = sin(x) / cos(x)

J.Nawrocki, Programowanie imperatywne i C Funkcje cos (  /2 ) = 0

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

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

J.Nawrocki, Programowanie imperatywne i C Funkcje Program = zbiór funkcji Wykonanie zaczyna się od funkcji main void main() { int X, Y; scanf("%d", X); Y= nast(X); printf("%d \n", Y); return; } int nast( int n ){ return n+1 ; }

J.Nawrocki, Programowanie imperatywne i C Ile cyfr ma podana liczba X? 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; } void main() { int X, C; scanf("%d", &X); C= LiczbaCyfr(X); printf("%d ma cyfr: %d \n", X, C); return; } int LiczbaCyfr(int n) { int C, G; C= 1; G= 10; while (n >= G) { C= C + 1; G= G * 10; } return C; }