Programowanie imperatywne i język C

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Język C/C++ Funkcje.
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
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Języki programowania C++
Język asemblera Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
PROGRAMOWANIE STRUKTURALNE
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.
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.
Wprowadzenie do informatyki Wykład 5
Obliczalność i złożoność obliczeniowa
Testy akceptacyjne Analiza systemów informatycznych Wykład 9
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.
Asembler i koncepcja von Neumanna
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Język asemblera i koncepcja von Neumanna
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Asembler i koncepcja von Neumanna Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 5
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.
Komunikacja poprzez Internet
Wprowadzenie do informatyki Wykład 5
Laboratoria z „wstęp do programowania”
Język ANSI C Operacje we/wy
Wykład 2 struktura programu elementy języka typy zmienne
Jak uczę programowania?
Programowanie obiektowe W2
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
Algorytmy z przykładami w Turbo Pascal 7.0
Podstawy programowania. Język C i C++– podstawy Temat: 1
Podstawy programowania w języku C i C++
Pierwsze programy.
Łódź, 3 października 2013 r. Katedra Analizy Nieliniowej, WMiI UŁ Podstawy Programowania Złożona składnia języka C++
Procedury i funkcje.
Jerzy F. Kotowski1 Informatyka I Wykład 8 STRUKTURA PROGRAMU n Funkcje n Klasy zmiennych n Projekt.
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Podstawy programowania w języku C i C++
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Translatory Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 11.
Gramatyki i translatory
PWSZ Gniezno // codefly 2009 Łukasz Tomczak
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Podstawy języka Instrukcje - wprowadzenie
Zmienne i typy danych w C#
Programowanie proceduralne Podstawy Programowania dla geoinformatyków Wykład 3 Rafał Witkowski, 2015.
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Programowanie imperatywne i język C (c) Jerzy Nawrocki Wykł. 2 Wstęp do informatyki Wykład 2 Programowanie imperatywne i język C Jerzy.Nawrocki@put.poznan.pl http://www.cs.put.poznan.pl/jnawrocki/wsb-wdi/ Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki

Pierwszy Imperator Rzymu Imperatywność łac. imperare rozkazywać Oktawian August 63 p.n.e – 14 n.e. Pierwszy Imperator Rzymu J.Nawrocki, Programowanie imperatywne i C

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

J.Nawrocki, Programowanie imperatywne i C (c) Jerzy Nawrocki Plan wykładu Wykł. 2 Programy z jedną instrukcją Dwie instrukcje i \n Koncepcja zmiennej Drukowanie wartości zmiennej Czytanie liczb Instrukcja warunkowa Uproszczona instrukcja warunkowa Instrukcja powtarzania ‘while’. J.Nawrocki, Programowanie imperatywne i C Wstęp do informatyki

Pisz „Bitwa pod Akcjum”. Plan wykładu Pisz „Bitwa pod Akcjum”. Programy z jedną instrukcją Dwie instrukcje i \n Koncepcja zmiennej Drukowanie wartości zmiennej Czytanie liczb Instrukcja warunkowa Uproszczona instrukcja warunkowa Instrukcja powtarzania ‘while’ J.Nawrocki, Programowanie imperatywne i C

Program z jedną instrukcją Drukowany tekst void main() { printf("Bitwa pod Akcjum\n"); return; } Bitwa pod Akcjum J.Nawrocki, Programowanie imperatywne i C

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

Program z dwiema instrukcjami void main() { printf("Bitwa pod Akcjum.\n"); printf("Zwyciestwo.\n"); return; } Bitwa pod Akcjum. Zwyciestwo. J.Nawrocki, Programowanie imperatywne i C

J.Nawrocki, Programowanie imperatywne i C Znak nowej linii \n void main() { printf(„Bitwa pod \n Akcjum."); printf(„Zwyciestwo.\n"); return; } Bitwa pod Akcjum. Zwyciestwo. J.Nawrocki, Programowanie imperatywne i C

J.Nawrocki, Programowanie imperatywne i C Znak nowej linii \n void main() { printf("Bitwa pod Akcjum \n"); printf("Zwyciestwo.\n"); return; } void main() { printf("Bitwa pod Akcjum. \nZwyciestwo.\n"); return; } Bitwa pod Akcjum. Zwyciestwo. J.Nawrocki, Programowanie imperatywne i C

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

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

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

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) J.Nawrocki, Programowanie imperatywne i C

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

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

Drukowanie wartości zmiennej Kompletny program Nie widać wyników! 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; } Kompletny program Ogólniejsza postać printf: printf(" format ", zmienne); %d oznacza int printf("X = %d \n", X); X = 18 printf("Y= %d; X= %d \n", Y, X); Y= 2; X= 18 20 J.Nawrocki, Programowanie imperatywne i C

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

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

scanf(" format ", adresy_zmiennych); 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

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

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

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

Język schematów blokowych (c) Jerzy Nawrocki Język schematów blokowych Wykł. 2 Start R2 > 0 Tak Nie R  1 S  S + 1 Stop J.Nawrocki, Programowanie imperatywne i C Wstęp do informatyki

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

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

J.Nawrocki, Programowanie imperatywne i C Instrukcja warunkowa 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; Czytaj X,Y Nie X < Y Tak Drukuj(X) Drukuj(Y) J.Nawrocki, Programowanie imperatywne i C

Jeśli Marek Antoniusz nie ustąpi, to wypowiemy wojnę Egiptowi. Plan wykładu Jeśli Marek Antoniusz nie ustąpi, to wypowiemy wojnę Egiptowi. Programy z jedną instrukcją Dwie instrukcje i \n Koncepcja zmiennej Drukowanie wartości zmiennej Czytanie liczb Instrukcja warunkowa Uproszczona instrukcja warunkowa Instrukcja powtarzania ‘while’ J.Nawrocki, Programowanie imperatywne i C

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

J.Nawrocki, Programowanie imperatywne i C Schemat rozwiązania Czytaj X Nie X < 0 Tak X  – X Drukuj X 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 void main() { int X; scanf("%d", &X); if ( X < 0 ) { X = -X; } printf("%d \n", X); return; Czytaj X Nie X < 0 Tak X  – X Drukuj X J.Nawrocki, Programowanie imperatywne i C

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

Jak długo Marek Antoniusz jest z Kleopatrą, Plan wykładu Jak długo Marek Antoniusz jest z Kleopatrą, będziemy walczyć. Programy z jedną instrukcją Dwie instrukcje i \n Koncepcja zmiennej Drukowanie wartości zmiennej Czytanie liczb Instrukcja warunkowa Uproszczona instrukcja warunkowa Instrukcja powtarzania ‘while’ J.Nawrocki, Programowanie imperatywne i C

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

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, .. 9 999, 10 000, .. J.Nawrocki, Programowanie imperatywne i C

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

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

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

J.Nawrocki, Programowanie imperatywne i C Program w 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; Nie X >= G Tak C  C + 1 G  G * 10 Drukuj C J.Nawrocki, Programowanie imperatywne i C

J.Nawrocki, Programowanie imperatywne i C Podsumowanie Podsumujmy. Drukowanie i czytanie liczb w C. Instrukcje warunkowe ‘if’. Instrukcja powtarzania ‘while’. Język schematów blokowych jest wygodnym narzędziem opisu algorytmów. J.Nawrocki, Programowanie imperatywne i C