Podstawy Inf EiT2014 01 - kgrudzi - Strona...

Post on 01-Mar-2019

217 views 0 download

Transcript of Podstawy Inf EiT2014 01 - kgrudzi - Strona...

Podstawy Informatyki

sem. I 2014/2015 studia zaoczne

Elektronika i Telekomunikacja !

Krzysztof Grudzień kgrudzi@kis.p.lodz.pl

!Zbigniew Chaniecki zch@kis.p.lodz.pl

1

program zajęć - wykładPodstawowe pojęcia informatyki: komputer, algorytm, program.

Systemy liczbowe, podstawy arytmetyki binarnej, formaty numeryczne zapisu danych.

Przetwarzanie danych w komputerze, uruchamianie programów, interpretacja i kompilacja.

Podstawowe konstrukcje programistyczne, schematy i pseudokody algorytmów.

Podstawy programowania w języku C

Wprowadzenie do teorii algorytmów

Oprogramowanie komputerów osobistych

2

zaliczenie

Laboratorium 50%

Wykład 50%

3

Literatura: R. Małecki, D. Arendt, A. Bryszewski, R . Krasiukianis: Wstęp do Informatyki. Skrypt P.Ł. Łódź, 1997.

B. Kernighan, D. Ritchie: Język ANSI C. Programowanie. Wydanie II, Helion 2010

P. Metzger, Anatomia PC. Wydanie XI, Helion, 2007

Stephen Prata, Szkoła programowania. Język C, Helion

A. Sapek, W głąb języka C, Helion, 1993

www: kgrudzi.kis.p.lodz.pl/PP

4

program komputerowysekwencja symboli opisująca obliczenia na danych zgodnie z pewnymi regułami zwanymi językiem programowania.

program jest zazwyczaj wykonywany przez komputer (np. wyświetlenie strony internetowej),

czasami bezpośrednio – jeśli wyrażony jest w języku zrozumiałym dla danej maszyny lub

pośrednio – gdy jest interpretowany przez inny program (interpreter).

5

interfejs: klawiatura, monitor

6

kod źródłowywyrażenie metody obliczeniowej w postaci języka zrozumiałego dla człowieka nazywane jest kodem źródłowym,

podczas gdy program wyrażony w postaci zrozumiałej dla maszyny (to jest za pomocą ciągu liczb, a bardziej precyzyjnie zer i jedynek) nazywany jest kodem maszynowym bądź postacią binarną (wykonywalną).

7

Jaki ma być ten program?

8

Programowanie

cel programu

projektowanie programu

9

Stephen Prata, Szkoła programowania. Język C, Helion

Język programowania - Ckto będzie użytkownikiem?

jaki interfejs?

o co pytamy?

organizacja programu

reprezentacja danych

ile mamy czasu na ukończenie:)?

10

Pisanie kodu#include <stdio.h>

int main(void)

{

printf(”HELLO:)!”);

return 0;

}

11

co dalej z kodem

kompilacja—> kod maszynowy

linkowanie—> połączenie z procedurami OS/hardware

12Stephen Prata, Szkoła programowania. Język C, Helion

Wstępmain

biblioteki - include

printf

zmienne

scanf

operacje matematyczne

instrukcja warunkowa

pętle

13

int main (void)mian - nazwa funkcji głównej

() - lista parametrów/danych do przetworzenia

void - typ pusty

int - jaki typ funkcja zwraca

#include <stdio.h> !int main(void) { // insert code here... printf("Hello, World!\n"); return 0; }

14

include

dołączanie bibliotek:

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

printf/scanf rand/srand/atoi/abs/ sin/cos/log/exp

15

printf - wyświetlanie danych

wyprowadzanie danych na standardowe wyjście —> konsola

jeden obowiązkowy parametr const char* format

int printf(const char *format, ... );

printf(”witaj swiecie”);

16

deklaracja zmiennychZmienne:

int a;

float b;

char c;

stałe:

const int a;

17

instrukcja przypisania

a = 2;

b = 3.53;

c=’k’;

#include <stdio.h> !int main(void) { int a; float b; char c; printf("Hello, World!\n"); a=1; b=3.53; c='k'; return 0; }

18

wypisywanie zawartości zmiennych

%d —> liczba całkowita,typ całkowity

%f —> liczba ułamkowa, typ zmiennoprzecinkowy

%c —> pojedynczy znak

%s —> łańcuch znaków

int main(void) { int a; float b; char c; //printf(„Hello, World!\n"); a=1; b=3.53; c='k'; printf("liczba a = %d\n",a); return 0; }

19

typy danychint —> printf(”%d”,a);

float —> printf(”%f”,b);

double —> printf(”%lf”,c);

char —> printf(”%c”,d);

20

typy danych

21Stephen Prata, Szkoła programowania. Język C, Helion

typy danych —> printf(”%…”, x);

22 A. Sapek, W głąb języka C, Helion, 1993

rozmiar pola wyjściowego

b=3.53;

printf("liczba a = %f\n",b);

printf("liczba a = %.2f\n",b);

23Stephen Prata, Szkoła programowania. Język C, Helion

printf("liczba a = %10.2f\n",b);printf("liczba a = %-10.2f",b);

printf("liczba a = %-10.2f\n",b);

dosunięcie argumentu do lewej strony pola

24

25

A. Sapek, W głąb języka C, Helion, 1993

wartość zwracana przez funkcję printf

Fu n k c j a p r i n t f z w r a c a wa r t ość c a ł k o w i t ą r ó w n ą l i c z b i e wyprowadzonych znaków.

Jeżeli w czasie wyprowadzania wystąpił jakiś błąd, funkcja ta zwraca wartość EOF.

26

pobieramy dane - scanfFunkcja scanf ma jeden obowiązkowy parametr: const char *format —> ciąg znaków formatujących

informacja jak należy interpretować ”wchodzące” do komputera dane - dane wejściowe

scanf(”%d”,…)

int a;

scanf(”%d”, &a);

27

28A. Sapek, W głąb języka C, Helion, 1993

ciąg formatującyo wczytanie liczby w reprezentacji ósemkowej (zawierającej cyfry od 0 do 7 w sposób opisany powyżej).

x wczytanie w analogiczny sposób liczby w reprezentacji szesnastkowej (zawie- rającej cyfry od 0 do f).

29A. Sapek, W głąb języka C, Helion, 1993

ciąg formatujący

c zmiennej wskazywanej przez odpowiedni argument jest przypisywany następny znak w strumieniu wejściowym.

Dotyczy to także białych znaków, które dla specyfikatora c nie są pomijane

30 A. Sapek, W głąb języka C, Helion, 1993

podsumowanie cz. I

deklarować zmienne

pobrać dane

wyświetlić dane

31

operacje matematyczneoperatory:

przypisania

arytmetyczne

relacyjne

inkrementacyjne/dekrementacyjne

inne —> kolejne wykłady

32

Operatory arytmetyczne+ ( dodawanie ) a + b

- ( odejmowanie ) a – b

* ( mnożenie ) a * b

/ ( dzielenie ) a / b —> dzielenie int/int => int

% a % b —> int!

33

Operatory relacyjne porównanie

a < b

a <= b

a >= b

a != b

a == b —> odróżniać od przypisania =

!

Wynik operacji to 0/fałsz lub 1/prawda

34

Operatory logiczne&& AND , np: (a>5 && a<10) —> a (5, 10)

| | OR , np: (a>5 | | a<10) —> a (-…, 5) i a (10, +…)??

!

true/1 and false/0 —> false/0

false/0 and true/1 —> false/0

true/1 and true/1 —> true/1

false/0 and false/0 —> false/0

true/1 or false/0 —> true/1

false/0 or true/1 —> true/1

true/1 or true/1 —> true/1

false/0 or false/0 —> false/035

Operatory inkrementacji

++ prefiksowy ++a;

++ postfiksowy b++;

-- prefiksowy --a;

-- postfiksowy b--;

36

operator przypisaniaa=b+c;

a+=b; —> a=a+b;

a-=b; —> a=a-b;

a*=b; —> a=a*b;

a/=b; —> a=a/b;

37

operator warunkowywarunek ? war1 : war2

jeśli warunek == true/1 —> war1

jeśli warunek != true/1 —> war2

!

a = b>10 ? 10 : b

38

podsumowanie cz. II

deklarować zmienne

pobrać dane

przetworzyć dane

wyświetlić dane

39

instrukcja sterująca programeminstrukcja warunkowa if…else

40

if…

instrukcja1;

If (wyrazenie)

instrukcja2;

Instrukcja3;

41

if… else…instrukcja1;

If (wyrazenie)

instrukcja2;

else

Instrukcja3;

Instrukcja4;

42

if…else ifinstrukcja1;

If (wyrazenie1)

instrukcja2;

else if (wyrazenie2)

Instrukcja3;

else if (wyrazenie3)

Instrukcja4;

else

Instrukcja5;

43

czynności wykonywane wielokrotnie - pętle

for

do…while

while

!

jeśli warunek pętli prawdziwy —> wykonuj pętle

44

pętla forfor (część I; część II; część III)

incjalizacja licznika

warunek

aktualizacja

45Stephen Prata, Szkoła programowania. Język C, Helion

pętla for

??

46

Stephen Prata, Szkoła programowania. Język C, Helion

pętla while, do…while

do

{

scanf(”%d”, &i);

printf(”%d\n”,i);

}while(i!=102);

i=0;

while(i!=102)

{

scanf(”%d”, &i);

printf(”%d\n”,i);

}

47

?

pobieraj liczby od użytkownika aż liczba te będzie równa 102

maksymalna liczba ”strzałów”: 5

48

wyznaczanie średniej z liczb

49

TabliceCiąg wartości tego samego typu: float tab[10]

tab[0]….tab[9]

tab[4]=3.45;

int tab[10]={1,2,3,4,5,6,7,8,9,11};

inicjalizacja zmiennych

Stephen Prata, Szkoła programowania. Język C, Helion

Stephen Prata, Szkoła programowania. Język C, Helion

Stephen Prata, Szkoła programowania. Język C, Helion

Tablice

int tab_int[25];

char tab_char[20];

long tab_long[35];

tablica - pętla for

Stephen Prata, Szkoła programowania. Język C, Helion

tablica znaków a łańcuch znaków

char tab_charA[19];

char tab_charB[20];

Stephen Prata, Szkoła programowania. Język C, Helion

pobieranie znaku

char ch_a;

char_a=getchar(); —> odczytuje każdy znak: tabulator, znak nowej linii,

scanf(”%c”, &char_a);

pobieranie ciągu znaków

char tab_char[20];

for —> tab_char[i]=’k’;

scanf(”%s”, &tab_char[0]);

granica tablicy

int tab[10];

tab[0]=5;

tab[9]=55;

tab[10]=11;?????

zawartość

5

5511

0 1 2 3 4 5 6 7 8 9

10

Przykładywyznaczanie wartości min, max w tabeli

zliczanie liczb parzystych

sumowanie tablicy

zliczanie wystąpień zadanej litery w łańcuchu

tablice wielowymiarowe

int tabA[5][10]; —> 5 tablic 10-cio elementowych

int tabB[50];

tabA[0][0] - tabB[0]

tabA[1][3] - tabB[14]

pamiec

program