Post on 01-Mar-2019
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