Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.

Slides:



Advertisements
Podobne prezentacje
1 Dzisiejszy wykład Wzorce funkcji Wzorce klas. 2 Wzorce Często pojawia się konieczność pisania podobnych funkcji lub klas operujących na argumentach.
Advertisements

1 Dzisiejszy wykład Wzorce funkcji Wzorce klas Tablica asocjacyjna Składowe statyczne.
Język ANSI C Funkcje Wykład: Programowanie komputerów
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Filip Andrzejewski Remigiusz Chiluta
Język asemblera Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
argumenty wiersza poleceń: getopt
formatowanie kodu źródłowego
Funkcje Modularyzacja : program główny , funkcje Funkcje :
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.
Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Przetwarzanie tekstów i AWK Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Obliczalność i złożoność obliczeniowa
Budowa komputera Wstęp do informatyki Wykład 15
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
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.
Bazy danych Wprowadzenie do informatyki Wykład 9
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.
Przetwarzanie tekstów i AWK
Programowanie imperatywne i język C
Języki formalne i gramatyki
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
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.
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
Metody formalne Copyright, 2005 © Jerzy R. Nawrocki Analiza systemów informatycznych.
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.
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
Język ANSI C Operacje we/wy
Programowanie obiektowe W2
nowe operatory & . (kropka) * operator rzutowy -> , (przecinek)
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Algorytmy i struktury danych
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.
Programowanie strukturalne i obiektowe
Algorytmy rekurencyjne - przykład
Jerzy F. Kotowski1 Informatyka I Wykład 15 PIERWSZE KROKI.
Translatory Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 11.
Gramatyki i translatory
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Copyright © Jerzy R. Nawrocki Kontrola jakości oprogramowania Inżynieria oprogramowania.
Dokumenty elektroniczne Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do.
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.
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.
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
Asembler i koncepcja von Neumanna Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 5
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.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
1 Opisy funkcji Adres strony WWW : html (należy odszukać hyperlink Function Index) (
Inżynieria oprogramowania
Zapis prezentacji:

Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 3

J.Nawrocki, Modularyzacja i struktury danych w C Plan wykładu Modularyzacja i funkcje Problem stopu Relacje w języku C Czytanie ciągu o nieznanej długości Liczba cyfr raz jeszcze Dyrektywa #include Testowanie Tablice w C

J.Nawrocki, Modularyzacja i struktury danych w C Plan wykładu Modularyzacja i funkcje Problem stopu Relacje w języku C Czytanie ciągu o nieznanej długości Liczba cyfr raz jeszcze Dyrektywa #include Testowanie Tablice w C

J.Nawrocki, Modularyzacja i struktury danych w C Koncepcja modularyzacji Start wahadłowca Discovery (26.VII.2005)

J.Nawrocki, Modularyzacja i struktury danych w C Koncepcja modularyzacji Odrzucona rakieta nośna ET (26.VII.2005)

J.Nawrocki, Modularyzacja i struktury danych w C Koncepcja modularyzacji Discovery (9.VIII.2005)

J.Nawrocki, Modularyzacja i struktury danych w C Koncepcja modularyzacji

J.Nawrocki, Modularyzacja i struktury danych w C Koncepcja modularyzacji System wahadłowca Rakieta ET Discovery Monitor

J.Nawrocki, Modularyzacja i struktury danych w C Koncepcja modularyzacji tg(x) sin(x) cos(x) tg(x) = sin(x) / cos(x)

J.Nawrocki, Modularyzacja i struktury danych w C Funkcje cos ( /2 ) = 0

J.Nawrocki, Modularyzacja i struktury danych w C Funkcje cos ( /2 ) = 0 Nazwa funkcji

J.Nawrocki, Modularyzacja i struktury danych w C Funkcje cos ( /2 ) = 0 Argument (parametr aktualny) Nazwa funkcji

J.Nawrocki, Modularyzacja i struktury danych w C Funkcje cos ( /2 ) = 0 Argument (parametr aktualny) Nazwa funkcji Wynik

J.Nawrocki, Modularyzacja i struktury danych w 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, Modularyzacja i struktury danych w 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; }

J.Nawrocki, Modularyzacja i struktury danych w 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; }

J.Nawrocki, Modularyzacja i struktury danych w 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 ; }

J.Nawrocki, Modularyzacja i struktury danych w 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 ; }

J.Nawrocki, Modularyzacja i struktury danych w 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; }

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

J.Nawrocki, Modularyzacja i struktury danych w 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, Modularyzacja i struktury danych w 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

J.Nawrocki, Modularyzacja i struktury danych w C Plan wykładu Modularyzacja i funkcje Problem stopu Relacje w języku C Czytanie ciągu o nieznanej długości Liczba cyfr raz jeszcze Dyrektywa #include Testowanie Tablice w C

J.Nawrocki, Modularyzacja i struktury danych w C Problem stopu Dany jest podprogram X. Czy ten podprogram skończy obliczenia w skończonym czasie?

J.Nawrocki, Modularyzacja i struktury danych w C Problem stopu ZatrzymaSie(F) – funkcja wyrocznia. X – funkcja nieprzewidywalna.

J.Nawrocki, Modularyzacja i struktury danych w C Problem stopu ZatrzymaSie(X) funkcja X koniec X Tak Nie Wniosek: Problem stopu jest nierozstrzygalny

J.Nawrocki, Modularyzacja i struktury danych w C Plan wykładu Modularyzacja i funkcje Problem stopu Relacje w języku C Czytanie ciągu o nieznanej długości Liczba cyfr raz jeszcze Dyrektywa #include Testowanie Tablice w C

J.Nawrocki, Modularyzacja i struktury danych w 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; } mniejsze niz 5 1 mniejsze lub rowne 5 1 rozne od 5

J.Nawrocki, Modularyzacja i struktury danych w C Plan wykładu Modularyzacja i funkcje Problem stopu Relacje w języku C Czytanie ciągu o nieznanej długości Liczba cyfr raz jeszcze Dyrektywa #include Testowanie Tablice w C

J.Nawrocki, Modularyzacja i struktury danych w C Wynik funkcji scanf scanf(.. ) >= 0 oznacza OK. (liczba przecz. elementów) scanf(.. ) = -1 oznacza błąd (niezgodność z formatem)

J.Nawrocki, Modularyzacja i struktury danych w C Suma liczb

J.Nawrocki, Modularyzacja i struktury danych w C Suma liczb void main() {... return; }

J.Nawrocki, Modularyzacja i struktury danych w C Suma liczb void main() {... suma= 0; jest_jeszcze_jedna_liczba while (jest_jeszcze_jedna_liczba) { suma= suma + a; }... return; }

J.Nawrocki, Modularyzacja i struktury danych w C Suma liczb void main() {... suma= 0; jest_jeszcze_jedna_liczba while (jest_jeszcze_jedna_liczba) { suma= suma + a; } printf("Suma= %d\n", suma); return; }

J.Nawrocki, Modularyzacja i struktury danych w C Suma liczb void main() {... suma= 0; while (scanf("%d", &a) > 0) { suma= suma + a; } printf("Suma= %d\n", suma); return; }

J.Nawrocki, Modularyzacja i struktury danych w C Suma liczb void main() { int a, suma; suma= 0; while (scanf("%d", &a) > 0) { suma= suma + a; } printf("Suma= %d\n", suma); return; } Suma= 20

J.Nawrocki, Modularyzacja i struktury danych w C Suma liczb void main() { int a, suma; suma= 0; while (scanf("%d", &a) > 0) { suma= suma + a; } printf("Suma= %d\n", suma); return; } Suma= 20 Suma += a;

J.Nawrocki, Modularyzacja i struktury danych w C Plan wykładu Modularyzacja i funkcje Problem stopu Relacje w języku C Czytanie ciągu o nieznanej długości Liczba cyfr raz jeszcze Dyrektywa #include Testowanie Tablice w C

J.Nawrocki, Modularyzacja i struktury danych w 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, Modularyzacja i struktury danych w 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; }

J.Nawrocki, Modularyzacja i struktury danych w 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; }

J.Nawrocki, Modularyzacja i struktury danych w C Wszystkie funkcje w jednym pliku int LiczbaCyfr(int n) { int C, G;... return C; } void main() { int X, C; scanf("%d", &X); C= LiczbaCyfr(X); printf("%d ma cyfr: %d \n", X, C); return; }

J.Nawrocki, Modularyzacja i struktury danych w C Plan wykładu Modularyzacja i funkcje Problem stopu Relacje w języku C Czytanie ciągu o nieznanej długości Liczba cyfr raz jeszcze Dyrektywa #include Testowanie Tablice w C

J.Nawrocki, Modularyzacja i struktury danych w C Dyrektywa #include #include " nazwa_pliku

J.Nawrocki, Modularyzacja i struktury danych w C Jeden program w dwóch plikach int LiczbaCyfr(int n) { int C, G;... return C; } void main() { int X, C; scanf("%d", &X); C= LiczbaCyfr(X); printf("%d ma cyfr: %d \n", X, C); return; } #include "liczbacy.c" 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; } liczbacy.c

J.Nawrocki, Modularyzacja i struktury danych w C Plan wykładu Modularyzacja i funkcje Problem stopu Relacje w języku C Czytanie ciągu o nieznanej długości Liczba cyfr raz jeszcze Dyrektywa #include Testowanie Tablice w C

J.Nawrocki, Modularyzacja i struktury danych w C Najmniejsza wspólna wielokrotność #include "nwd.c" void main() { int X, Y, wyn; scanf("%d %d", &X, &Y); wyn= nwd(X, Y); printf("nwd(%d, %d)= %d \n", X, Y, wyn); return; } int nwd(int a, int b) { while (a != b) { if (a > b){ a-= b; }else{ b-= a; } return a; } #include "nwd.c" void main() { int X, Y, nww; scanf("%d %d", &X, &Y); nww= X*Y / nwd(X,Y); printf("NWW= %d \n", nww); return; } nww.c nwd-tst.c nwd.c

J.Nawrocki, Modularyzacja i struktury danych w C #include "nwd.c" void main() { int X, Y, nww; scanf("%d %d", &X, &Y); nww= X*Y / nwd(X,Y); printf("NWW= %d \n", nww); return; } Najmniejsza wspólna wiel. – testy automatyczne #include "nwd.c" void main() { int A, B, wyn,ocz; A=3; B=3; ocz=1; wyn= nwd(A, B); if (wyn != ocz){ printf("nwd(%d, %d)=%d \n", A, B, wyn); } return; } int nwd(int a, int b) { while (a != b) { if (a > b){ a-= b; }else{ b-= a; } return a; } nwd.c nww.c nwd-tst.c

J.Nawrocki, Modularyzacja i struktury danych w C Plan wykładu Modularyzacja i funkcje Problem stopu Relacje w języku C Czytanie ciągu o nieznanej długości Liczba cyfr raz jeszcze Dyrektywa #include Testowanie Tablice w C

J.Nawrocki, Modularyzacja i struktury danych w C Odwracanie ciągu liczb

J.Nawrocki, Modularyzacja i struktury danych w C Odwracanie ciągu liczb void main() { return; }

J.Nawrocki, Modularyzacja i struktury danych w C Odwracanie ciągu liczb void main() { int i, a[n]; i= 0; while (i < n){ scanf("%d", &a[i]); i= i + 1; } return; }

J.Nawrocki, Modularyzacja i struktury danych w C Odwracanie ciągu liczb void main() { #define n 3 int i, a[n]; i= 0; while (i < n){ scanf("%d", &a[i]); i= i + 1; } return; }

J.Nawrocki, Modularyzacja i struktury danych w C Odwracanie ciągu liczb void main() { #define n 3 int i, a[n]; i= 0; while (i < n){ scanf("%d", &a[i]); i= i + 1; } i= n - 1; while (i >= 0){ printf("%d\n", a[i]); i= i - 1; } return; }

J.Nawrocki, Modularyzacja i struktury danych w C Odwracanie ciągu liczb void main() { #define n 3 int i, a[n]; i= 0; while (i < n){ scanf("%d", &a[i]); i= i + 1; } i= 0; while (i < n){ printf("%d\n", a[n-1-i]); i= i + 1; } return; }

J.Nawrocki, Modularyzacja i struktury danych w C Podsumowanie Funkcje w języku C Problem stopu Czytanie ciągu o nieznanej długości Testowanie funkcji (ręczne i automatyczne) Tablice w języku C Wreszcie!

J.Nawrocki, Modularyzacja i struktury danych w C Ocena wykładu 1. Wrażenie ogólne? (1 - 6) 2. Tempo (wolniej, OK., szybciej)? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co poprawić i jak?

J.Nawrocki, Modularyzacja i struktury danych w C Plan wykładu Modularyzacja i funkcje Problem stopu Relacje w języku C Czytanie ciągu o nieznanej długości Liczba cyfr raz jeszcze Dyrektywa #include Testowanie Tablice w C Sortowanie liczb?