Top Banner
Informatyka 1 Wstęp dr inż. Małgorzata Detka
45

Inf1 Wyklad1 [tryb zgodno[ci]

Feb 13, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Inf1 Wyklad1 [tryb zgodno[ci]

Informatyka 1

Wstęp

dr inż. Małgorzata Detka

Page 2: Inf1 Wyklad1 [tryb zgodno[ci]

2

Plan

Informacje organizacyjne

Literatura

Wprowadzenie

Algorytm

Przykłady algorytmów

Page 3: Inf1 Wyklad1 [tryb zgodno[ci]

3

Informacje organizacyjne

Wykładowca: dr inż. Małgorzata Detka

Numer pokoju: 5.08, budynek D

Numer telefonu: 41 34-24-157

Adres e-mail: [email protected]

Page 4: Inf1 Wyklad1 [tryb zgodno[ci]

4

Literatura

Brian W. Kernighan, Dennis M. Ritchie, „Język ANSI C. Programowanie”, Wydanie 2, Wydawnictwo Helion, Gliwice 2010

PiotrWróblewski, „Algorytmy, struktury danych i techniki programowania”, Helion, Gliwice 1997

Jon Bentley, „Perełki Oprogramowania”, WNT, Warszawa 1992

Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman „Algorytmy i struktury danych”, Helion, Gliwice 2003

Page 5: Inf1 Wyklad1 [tryb zgodno[ci]

5

Literatura

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, „Wprowadzenie do algorytmów”, WNT, Warszawa 1998

Donald E. Knuth, „Sztuka programowania”, WNT, Warszawa 2002

Steven S. Skiena, “The Algorithm Design Manual”,Springer-Verlang, London 2010 (w języku angielskim)

Page 6: Inf1 Wyklad1 [tryb zgodno[ci]

6

Literaturazasoby internetowe

Wikibooks: Język C

The GNU C programming tutorial

Learning GNU C

The GNU C Library

Page 7: Inf1 Wyklad1 [tryb zgodno[ci]

7

Programowanie

Historia Programowania

Page 8: Inf1 Wyklad1 [tryb zgodno[ci]

8

Programowanie

Programowanie komputerów – jest to zespół czynności,którego celem jest przygotowanie programu dla systemukomputerowego. W skład tych czynności wchodzą:opracowanie modelu problemu, który chcemy rozwiązać zapomocą komputera, opracowanie algorytmu (lub algorytmów)rozwiązania, zakodowanie tego algorytmu za pomocąwybranego języka programowania oraz usunięcie błędówskładniowych i logicznych.

Page 9: Inf1 Wyklad1 [tryb zgodno[ci]

9

Program komputerowy

Program komputerowy – to zapis algorytmu lub algorytmówrozwiązania pewnych problemów w określonym językuprogramowania.

Page 10: Inf1 Wyklad1 [tryb zgodno[ci]

10

Algorytm

Algorytm – jest to skończony zbiór precyzyjniezdefiniowanych czynności koniecznych do wykonaniaokreślonego zadania.

Zapis algorytmu działania w wybranym języku programowania nazywamy implementacją algorytmu.

Page 11: Inf1 Wyklad1 [tryb zgodno[ci]

11

Język programowania

Językiem programowania nazywamy zestaw zasadtekstowego lub graficznego opisu algorytmu za pomocąprzyjętych elementów języka.Po implementacji algorytmu w wybranym języku opisutekstowego powstaje kod źródłowy programu, czyli tekstprogramu.

Page 12: Inf1 Wyklad1 [tryb zgodno[ci]

12

Program komputerowy

Tworzenie programu komputerowego dzielimy na dwa etapy:

ETAP 1Po zrodzeniu się pomysłu powinien powstać algorytm. Algorytm wymuszastosowanie podziału programu na funkcje, zmienne oraz obiekty, na którychprogram będzie operował, jak również wprowadzenie procedur, któreopisują wykonywane operacje.

ETAP 2Algorytm zapisujemy w wybranym języku programowania, stosującdostępne struktury danych i funkcje – tworzymy kod źródłowy programu. Wtrakcie tworzenia programu kod poddajemy debugowaniu, a efekt pracymożemy sprawdzić po kompilacji kodu na program wykonywalny.

Page 13: Inf1 Wyklad1 [tryb zgodno[ci]

13

Program komputerowy

DEBUGGINGW trakcie pisania programu w kodzie źródłowym mogą pojawić się błędy, np. literówki lub funkcje, które nie zostały zdefiniowane. Aby wychwycić wszystkie niebezpieczne miejsca w kodzie źródłowym, kod poddaje się debugowaniu (wyszukiwaniu błędów – robaków).

KOMPILACJAKod źródłowy napisany jest w języku programowania czytelnym dla programisty, ale nie dla komputera. Dlatego musi być zamieniony na instrukcje zrozumiałe dla komputera, a właściwie na ciąg zer i jedynek. Proces ten nazywa się kompilacją, a programy, które realizują ten proces nazywamy kompilatorami.Po kompilacji otrzymuje się program wykonywalny , tzn. gotowy do bezpośredniego uruchomienia przez komputer.

Page 14: Inf1 Wyklad1 [tryb zgodno[ci]

14

Języki programowania Kod maszynowyKomputer jako urządzenie elektroniczne działa na zasadzie przekazywaniapodzespołom sygnałów binarnych – „1” (np. od 2,7 V do 5 V) lub „0” (np. od 0 V do1,8 V). Kod maszynowy jest odpowiednikiem sygnałów binarnych, reprezentującychciąg instrukcji obsługiwanych przez sprzęt (zapis kodu za pomocą instrukcjiprocesora).Języki niskopoziomowePrzedstawiają one instrukcje udostępniane przez system komputerowy w postaciprostych oznaczeń (o ograniczonej liczbie, zakodowane w procesorze). Do językówniskopoziomowych należą Assemblery.Języki wysokopoziomoweSą to języki o wyższym poziomie abstrakcji, bardziej zrozumiałe dla człowieka iniezależne od architektury elektrycznej sprzętu komputerowego.Np. wyświetlenie tekstu na ekranie używając assemblera wymaga napisaniakilkudziesięciu instrukcji. W języku wysokopoziomowym wystarczy wpisać np.print(‘tekst’).Pascal, C, C++, Java.

Page 15: Inf1 Wyklad1 [tryb zgodno[ci]

15

Języki programowania

Języki wysokopoziomowe dzielimy na dwie grupy:• Interpretowalne• Kompilowalne.

Języki interpretowalne nie wymagają kompilacji – HTML, PHP, JavaScript, używane do tworzenia serwisów WWW.

Języki kompilowalne wymagają procesu kompilacji kodu źródłowego do postaci kodu maszynowego, aby program mógł być wykonywany – Pascal, C, C++, Java.

Page 16: Inf1 Wyklad1 [tryb zgodno[ci]

16

Środowiska programistyczne

Do utworzenia programu w danym języku niezbędne są edytor tekstu,debugger i kompilator.

Programy te mogą tworzyć integralne środowisko pracy, udostępniającekombinacje tych funkcji – mówimy wówczas o środowiskuprogramistycznymnp.. Code::Blocks.

Page 17: Inf1 Wyklad1 [tryb zgodno[ci]

17

Algorytm

Jeżeli mamy do wykonania jakieś zadanie, budujemy sposób, przepisrealizacji tego zadania. Taki przepis to algorytm. Dopiero po zapisaniu wkonkretnym języku programowania algorytm staje się programem.

Algorytm to sposób postępowania, który prowadzi do rozwiązania wskończonej liczbie kroków.

Page 18: Inf1 Wyklad1 [tryb zgodno[ci]

18

Własności algorytmu

Skończoność – wykonanie algorytmu zawsze musi się zatrzymać po skończonej liczbiekroków. Procedura, która ma wszystkie cechy algorytmu, poza skończonością nazywanajest procedurą obliczeniową.

Dobre zdefiniowanie – każdy krok algorytmu musi być opisany precyzyjnie, dla każdegoprzypadku akcje muszą być opisane ściśle i jednoznacznie,

Dane wejściowe – algorytm ma zero lub więcej danych wejściowych, tj. wartości, które sąznane przed rozpoczęciem wykonania algorytmu,

Dane wyjściowe – algorytm generuje jedną lub więcej danych wyjściowych, czyli wartościw określony sposób powiązanych z danymi wejściowymi.

Efektywność – z praktycznego punktu widzenia, algorytm nie tylko powinien daćsię wykonać w skończonym czasie, ale również ten czas powinien być możliwiekrótki.

Page 19: Inf1 Wyklad1 [tryb zgodno[ci]

19

Zapis algorytmu

Algorytmy mogą być zapisane w postaci zrozumiałej dlaczłowieka lub nadającej się do wykonania przez komputer. Wpierwszym przypadku może on być opisany słownie lubprzedstawiony za pomocą schematu blokowego.

Page 20: Inf1 Wyklad1 [tryb zgodno[ci]

20

Zapis algorytmuJęzyk naturalnySchematy blokoweJęzyki formalne

Page 21: Inf1 Wyklad1 [tryb zgodno[ci]

21

Zapis algorytmu

Schemat blokowy – szczególna forma zapisu algorytmu,złożona z bloków działań w formie figur geometrycznychpołączonych skierowanymi liniami obrazującymi możliweprzebiegi działań.

Page 22: Inf1 Wyklad1 [tryb zgodno[ci]

22

Elementy schematu blokowego

Start – początek programu

Stop – koniec programu

Blok wejścia – wprowadzanie danych

Page 23: Inf1 Wyklad1 [tryb zgodno[ci]

23

Elementy schematu blokowego

Blok wyjścia – wyprowadzanie wyników

Blok operacyjny – przetwarzanie danych

Blok decyzyjny

Page 24: Inf1 Wyklad1 [tryb zgodno[ci]

24

Elementy schematu blokowego

Pętla „dopóki” - z warunkiem na początku

Pętla „powtórz” - z warunkiem na końcu

Page 25: Inf1 Wyklad1 [tryb zgodno[ci]

25

Elementy schematu blokowego

Pętla „dla” - liczona

Page 26: Inf1 Wyklad1 [tryb zgodno[ci]

26

Algorytmy

Algorytmy dzielimy na:

algorytmy liniowe, jeśli wykorzystują operacje

bezpośredniego następstwa,

algorytmy warunkowe, jeśli wykorzystują operacje

warunkowe,

algorytmy iteracyjne, jeśli wykorzystują pętle.

Page 27: Inf1 Wyklad1 [tryb zgodno[ci]

27

Algorytm dodawania dwóch liczb

Przykład 1

Page 28: Inf1 Wyklad1 [tryb zgodno[ci]

28

Przykład 1

#include <stdio.h>#include <stdlib.h>

int main(){

int a,b,suma;

printf("Podaj a: ");scanf("%d",&a);printf("Podaj b: ");scanf("%d",&b);suma=a + b;printf("Suma: %d",suma);return 0;

}

Page 29: Inf1 Wyklad1 [tryb zgodno[ci]

29

Algorytm wyznaczania minimum z trzech liczb

Przykład 2

Page 30: Inf1 Wyklad1 [tryb zgodno[ci]

30

Przykład 2#include <stdio.h>#include <stdlib.h>

int main(){

int a,b,c,min;printf("Podaj a: ");scanf("%d",&a);printf("Podaj b: ");scanf("%d",&b);printf("Podaj a: ");scanf("%d",&c);min=a;if(b<min) min=b;if(c<min) min=c; printf("Liczba minimalna: %d",min);return 0;

}

Page 31: Inf1 Wyklad1 [tryb zgodno[ci]

31

Algorytm obliczania wartości funkcji

Przykład 3

Page 32: Inf1 Wyklad1 [tryb zgodno[ci]

32

Przykład 3

main(){float x,f;printf("Podaj x: ");scanf("%f",&x);if(x<=5)

f=pow((x-5),2);else

f=sqrt(x-5);printf("Wartosc funkcji

dla %f wynosi:%f",x,f);}

Page 33: Inf1 Wyklad1 [tryb zgodno[ci]

33

Algorytm obliczania wartości funkcji

Przykład 4

Page 34: Inf1 Wyklad1 [tryb zgodno[ci]

34

Przykład 4int main(){

float x,f;

printf("Podaj x: ");scanf("%f",&x);if(x<=-1)

f=x;else

if(x>1)f=-x;

elsef=-1;

printf("%f",f);

return 0;}

Page 35: Inf1 Wyklad1 [tryb zgodno[ci]

35

Rozwiązanie równania kwadratowego

Przykład 5

Page 36: Inf1 Wyklad1 [tryb zgodno[ci]

36

Przykład 5#include <stdio.h>#include <stdlib.h>

int main(){

float a, b, c, delta, x, x1, x2;

printf("Podaj a: ");scanf("%f",&a);printf("Podaj b: ");scanf("%f",&b);printf("Podaj c: ");scanf("%f",&c);delta = b*b-4*a*c;if(delta<0) printf("Brak

pierwiastkow rzeczywistych");

else if(delta==0) {x=-b/(2*a);printf("x=%f",x);

}else{x1=(-b-sqrt(delta))/(2*a);x2=(-b+sqrt(delta))/(2*a);printf("x1=%f, x2=%f",x1,x2);

}return 0;

}

Page 37: Inf1 Wyklad1 [tryb zgodno[ci]

37

Algorytm sumowania ciągu podanych liczb

Przykład 6

Page 38: Inf1 Wyklad1 [tryb zgodno[ci]

38

Przykład 6

main(){int n,x,suma;

printf("Podaj ilosc elementow n: ");

scanf("%d",&n);suma=0;for(int i=0; i<n;i++){

printf("Podaj x:");scanf("%d",&x);suma=suma+x;

}printf("Suma: %d",suma);

}

Page 39: Inf1 Wyklad1 [tryb zgodno[ci]

39

Przykład 7

Algorytm Eukildesa wyznaczania największego wspólnegodzielnika dodatnich liczb całkowitych (NWD).

ProblemDane są dwie liczby całkowite M i N, należy znaleźć ich największywspólny dzielnik, tj. największą dodatnią liczbę całkowitą, któradzieli całkowicie zarówno M, jak i N.

Page 40: Inf1 Wyklad1 [tryb zgodno[ci]

40

Przykład 7main(){

int M,N,R;

printf("Podaj pierwsza liczbe naturalna M:");

scanf("%d",&M);printf("Podaj druga liczbe

naturalna N:");scanf("%d",&N);R=M % N;while(R!=0){

M=N;N=R;R=M%N;

}printf("%d",N);return 0;

}

Page 41: Inf1 Wyklad1 [tryb zgodno[ci]

41

Code::Blocks

Page 42: Inf1 Wyklad1 [tryb zgodno[ci]

42

Code::Blocks

Page 43: Inf1 Wyklad1 [tryb zgodno[ci]

43

Code::Blocks

Page 44: Inf1 Wyklad1 [tryb zgodno[ci]

44

Code::Blocks

Page 45: Inf1 Wyklad1 [tryb zgodno[ci]

45

Informatyka 1

Dziękuję za uwagę