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

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
Informatyka Stosowana
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.
Przetwarzanie tekstów i AWK Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Obliczalność i złożoność obliczeniowa
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 granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Przetwarzanie tekstów i AWK Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 7
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Język asemblera i koncepcja von Neumanna
Przetwarzanie tekstów i AWK
Programowanie imperatywne i język C
Języki formalne i gramatyki
Informatyka jako dziedzina wiedzy Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Przetwarzanie tekstów i AWK Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie 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.
Wyrażenia regularne i język AWK
Komunikacja poprzez Internet
Dokumenty i prezentacje Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do.
Język ANSI C Operacje we/wy
Wprowadzenie do programowania w języku Turbo Pascal
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 II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
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++
Wprowadzenie do programowania w językach C i C++
Łódź, 3 października 2013 r. Katedra Analizy Nieliniowej, WMiI UŁ Podstawy Programowania Złożona składnia języka C++
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Podstawy programowania w języku C i C++
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
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
Podstawy języka Instrukcje - wprowadzenie
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.
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Wyrażenia regularne i język AWK Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne.
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 Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 4

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ą Dwie instrukcje i \n Koncepcja zmiennej Drukowanie wartości zmiennej Czytanie liczb Instrukcja warunkowa Instrukcja powtarzania Problem stopu

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

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

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

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.

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.

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

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

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 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 Drukowanie wartości zmiennej printf(" format ", zmienne ); Ogólniejsza postać printf: %d oznacza int printf("X = %d \n", X );

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

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 void main() { int X, Y, SUMA; X = 18; Y = 2; SUMA = X + Y; printf("%d + %d = %d \n", X, Y, SUMA); return; } Czytanie liczb = 20 Jak wczytać wartości X, Y ?

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 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 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 =

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

J.Nawrocki, Programowanie imperatywne i C Język schematów blokowych R 1 R 1 S S + 1 S S + 1 R2 > 0 Tak Nie Start Stop

J.Nawrocki, Programowanie imperatywne i C Schemat rozwiązania Start 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 ) { printf(" min(%d, %d)= %d \n", X, Y, X); } else { } return; } min(0, 5)= 0

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 { } return; } min(0, 5)= 0

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

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

J.Nawrocki, Programowanie imperatywne i C Liczba automorficzna Jak obliczyć rzad(n) ? rząd(1)=.. = rząd(9)=10 rząd(10)=.. = rząd(99)=100 rząd(100)=.. = rząd(999)=1000 rząd(n) = 10 liczba_cyfr(n) rząd(n) = 10, 100, 1000,.. rząd(n) > n

J.Nawrocki, Programowanie imperatywne i C Liczba automorficzna rz 10 rz <= n Tak rz rz * 10 Nie Wynik rz Jak to sprawdzi ć? nrz 25 We Wyj

J.Nawrocki, Programowanie imperatywne i C Problem stopu Dany jest podprogram X. Czy ten podprogram skończy obliczenia w skończonym czasie? ZatrzymaSie – Podprogram wyrocznia. X – Podprogram nieprzewidywalny.

J.Nawrocki, Programowanie imperatywne i C Podprogram nieprzewidywalny ZatrzymaSie(X) poczatek X koniec X Tak Nie Wniosek Wniosek: Problem stopu jest nierozstrzygalny.

J.Nawrocki, Programowanie imperatywne i C Podsumowanie Drukowanie i czytanie liczb całkowitych. Instrukcje warunkowe i powtarzania. Język schematów blokowych jest wygodnym narzędziem opisu algorytmów. Nie wszystko można obliczyć. Wreszcie!

J.Nawrocki, Programowanie imperatywne i C Ocena wykładu 1. Wrażenie ogólne? (1 - 6) 2. Zbyt wolno czy zbyt szybko? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co poprawić i jak?