Rodzaje błędów w programach. Wykład9.UWAGIOGÓLNE,str.1

Wielkość: px
Rozpocząć pokaz od strony:

Download "Rodzaje błędów w programach. Wykład9.UWAGIOGÓLNE,str.1"

Transkrypt

1 Wykład9.UWAGIOGÓLNE,str.1

2 Wykład9.UWAGIOGÓLNE,str.1 Błąd leksykalny pojedyncza jednostka leksykalna(operator, słowo kluczowe, liczba itp.), której nie przewiduje definicja języka.

3 Wykład9.UWAGIOGÓLNE,str.1 Błąd leksykalny pojedyncza jednostka leksykalna(operator, słowo kluczowe, liczba itp.), której nie przewiduje definicja języka. Mn:=1;

4 Wykład9.UWAGIOGÓLNE,str.1 Błąd leksykalny pojedyncza jednostka leksykalna(operator, słowo kluczowe, liczba itp.), której nie przewiduje definicja języka. Mn:=1; Sygn. błędu w C: expected expression before = token

5 Wykład9.UWAGIOGÓLNE,str.1 Błąd leksykalny pojedyncza jednostka leksykalna(operator, słowo kluczowe, liczba itp.), której nie przewiduje definicja języka. Mn:=1; Sygn. błędu w C: expected expression before = token M foor(i=0; i<100; i=i+1) s=s+i;

6 Wykład9.UWAGIOGÓLNE,str.1 Błąd leksykalny pojedyncza jednostka leksykalna(operator, słowo kluczowe, liczba itp.), której nie przewiduje definicja języka. Mn:=1; Sygn. błędu w C: expected expression before = token M foor(i=0; i<100; i=i+1) s=s+i; Traktowany przez C jak identyfikator.

7 Wykład9.UWAGIOGÓLNE,str.1 Błąd leksykalny pojedyncza jednostka leksykalna(operator, słowo kluczowe, liczba itp.), której nie przewiduje definicja języka. Mn:=1; Sygn. błędu w C: expected expression before = token M foor(i=0; i<100; i=i+1) s=s+i; Traktowany przez C jak identyfikator. Mx=6.02F-23;

8 Wykład9.UWAGIOGÓLNE,str.1 Błąd leksykalny pojedyncza jednostka leksykalna(operator, słowo kluczowe, liczba itp.), której nie przewiduje definicja języka. Mn:=1; Sygn. błędu w C: expected expression before = token M foor(i=0; i<100; i=i+1) s=s+i; Traktowany przez C jak identyfikator. Mx=6.02F-23; Działanie nieokreślone: ignoruje F.

9 Wykład9.UWAGIOGÓLNE,str.1 Błąd leksykalny pojedyncza jednostka leksykalna(operator, słowo kluczowe, liczba itp.), której nie przewiduje definicja języka. Mn:=1; Sygn. błędu w C: expected expression before = token M foor(i=0; i<100; i=i+1) s=s+i; Traktowany przez C jak identyfikator. Mx=6.02F-23; Działanie nieokreślone: ignoruje F. Błędy leksykalne są na ogół nietrudne do znalezienia.

10 Wykład9.UWAGIOGÓLNE,str.2 Błąd składniowy poprawne jednostki leksykalne są niepoprawnie zestawione.

11 Wykład9.UWAGIOGÓLNE,str.2 Błąd składniowy poprawne jednostki leksykalne są niepoprawnie zestawione. Mx=(x+1)/2);

12 Wykład9.UWAGIOGÓLNE,str.2 Błąd składniowy poprawne jednostki leksykalne są niepoprawnie zestawione. Mx=(x+1)/2); Sygn.błęduwC:expected ; before ) token

13 Wykład9.UWAGIOGÓLNE,str.2 Błąd składniowy poprawne jednostki leksykalne są niepoprawnie zestawione. Mx=(x+1)/2); Sygn.błęduwC:expected ; before ) token Mx+1=x;

14 Wykład9.UWAGIOGÓLNE,str.2 Błąd składniowy poprawne jednostki leksykalne są niepoprawnie zestawione. Mx=(x+1)/2); Sygn.błęduwC:expected ; before ) token Mx+1=x; Sygn. błędu w C: lvalue required as left operand of assignment

15 Wykład9.UWAGIOGÓLNE,str.2 Błąd składniowy poprawne jednostki leksykalne są niepoprawnie zestawione. Mx=(x+1)/2); Sygn.błęduwC:expected ; before ) token Mx+1=x; Sygn. błędu w C: lvalue required as left operand of assignment M for(i=0, i<100, i=i+1);

16 Wykład9.UWAGIOGÓLNE,str.2 Błąd składniowy poprawne jednostki leksykalne są niepoprawnie zestawione. Mx=(x+1)/2); Sygn.błęduwC:expected ; before ) token Mx+1=x; Sygn. błędu w C: lvalue required as left operand of assignment M for(i=0, i<100, i=i+1); Sygn.błęduwC:expected ; before ) token

17 Wykład9.UWAGIOGÓLNE,str.2 Błąd składniowy poprawne jednostki leksykalne są niepoprawnie zestawione. Mx=(x+1)/2); Sygn.błęduwC:expected ; before ) token Mx+1=x; Sygn. błędu w C: lvalue required as left operand of assignment M for(i=0, i<100, i=i+1); Sygn.błęduwC:expected ; before ) token Błędy składniowe są na ogół niezbyt trudne do znalezienia ale błąd może występować wcześniej, niż sygnalizuje kompilator.

18 Wykład9.UWAGIOGÓLNE,str.3 Błąd typowania wyrażenie użyte w kontekście, w którym potrzebne jest wyr. innego typu.

19 Wykład9.UWAGIOGÓLNE,str.3 Błąd typowania wyrażenie użyte w kontekście, w którym potrzebne jest wyr. innego typu. Mdoublex; x=x%2;

20 Wykład9.UWAGIOGÓLNE,str.3 Błąd typowania wyrażenie użyte w kontekście, w którym potrzebne jest wyr. innego typu. Mdoublex; x=x%2; Sygn. błędu w C: invalidoperandstobinary%(have double and int )

21 Wykład9.UWAGIOGÓLNE,str.3 Błąd typowania wyrażenie użyte w kontekście, w którym potrzebne jest wyr. innego typu. Mdoublex; x=x%2; Sygn. błędu w C: invalidoperandstobinary%(have double and int ) Mdoublea[10]; a=0.1;

22 Wykład9.UWAGIOGÓLNE,str.3 Błąd typowania wyrażenie użyte w kontekście, w którym potrzebne jest wyr. innego typu. Mdoublex; x=x%2; Sygn. błędu w C: invalidoperandstobinary%(have double and int ) Mdoublea[10]; a=0.1; Sygn. błędu w C: incompatible types in assignment

23 Wykład9.UWAGIOGÓLNE,str.3 Błąd typowania wyrażenie użyte w kontekście, w którym potrzebne jest wyr. innego typu. Mdoublex; x=x%2; Sygn. błędu w C: invalidoperandstobinary%(have double and int ) Mdoublea[10]; a=0.1; Sygn. błędu w C: incompatible types in assignment M char tab[10]; tab[0] ="czesc";

24 Wykład9.UWAGIOGÓLNE,str.3 Błąd typowania wyrażenie użyte w kontekście, w którym potrzebne jest wyr. innego typu. Mdoublex; x=x%2; Sygn. błędu w C: invalidoperandstobinary%(have double and int ) Mdoublea[10]; a=0.1; Sygn. błędu w C: incompatible types in assignment M char tab[10]; tab[0] ="czesc"; Ostrzeżenie w C: assignment makes integer from pointer without a cast

25 Błędy typu są niezbyt trudne do znalezienia, jeśli są sygnalizowane. Czasem niesąiwtedyjestźle... Rodzaje błędów w programach Wykład9.UWAGIOGÓLNE,str.3 Błąd typowania wyrażenie użyte w kontekście, w którym potrzebne jest wyr. innego typu. Mdoublex; x=x%2; Sygn. błędu w C: invalidoperandstobinary%(have double and int ) Mdoublea[10]; a=0.1; Sygn. błędu w C: incompatible types in assignment M char tab[10]; tab[0] ="czesc"; Ostrzeżenie w C: assignment makes integer from pointer without a cast

26 Wykład9.UWAGIOGÓLNE,str.4 Błąd semantyczny niezadeklarowanie identyfikatora, lub pomylenie zakresu jego deklaracji.

27 Wykład9.UWAGIOGÓLNE,str.4 Błąd semantyczny niezadeklarowanie identyfikatora, lub pomylenie zakresu jego deklaracji. Mmain() {i=0; }

28 Wykład9.UWAGIOGÓLNE,str.4 Błąd semantyczny niezadeklarowanie identyfikatora, lub pomylenie zakresu jego deklaracji. Mmain() {i=0; } Sygn. błędu w C: i undeclared

29 Wykład9.UWAGIOGÓLNE,str.4 Błąd semantyczny niezadeklarowanie identyfikatora, lub pomylenie zakresu jego deklaracji. Mmain() {i=0; } Sygn. błędu w C: i undeclared Mdoublex; int qq(intx) {returnx; } main() {x=x%2; }

30 Wykład9.UWAGIOGÓLNE,str.4 Błąd semantyczny niezadeklarowanie identyfikatora, lub pomylenie zakresu jego deklaracji. Mmain() {i=0; } Sygn. błędu w C: i undeclared Mdoublex; int qq(intx) {returnx; } main() {x=x%2; } Sygn. błędu w C: invalidoperandstobinary%(have double and int )

31 Wykład9.UWAGIOGÓLNE,str.4 Błąd semantyczny niezadeklarowanie identyfikatora, lub pomylenie zakresu jego deklaracji. Mmain() {i=0; } Sygn. błędu w C: i undeclared Mdoublex; int qq(intx) {returnx; } main() {x=x%2; } Sygn. błędu w C: invalidoperandstobinary%(have double and int ) Brak deklaracji jest łatwy do znalezienia, jeśli jest sygnalizowany. Pomylenie zakresu może dać trudny do znalezienia błąd logiczny(patrz dalej).

32 Wykład9.UWAGIOGÓLNE,str.5 Błąd działania skompilowany program natrafia na niemożność dalszego działania.

33 Wykład9.UWAGIOGÓLNE,str.5 Błąd działania skompilowany program natrafia na niemożność dalszego działania. Mn=n/(2*n/2-n);

34 Wykład9.UWAGIOGÓLNE,str.5 Błąd działania skompilowany program natrafia na niemożność dalszego działania. Mn=n/(2*n/2-n); W C zatrzymanie z komunikatem: Floating point exception

35 Wykład9.UWAGIOGÓLNE,str.5 Błąd działania skompilowany program natrafia na niemożność dalszego działania. Mn=n/(2*n/2-n); W C zatrzymanie z komunikatem: Floating point exception M i=0; while(i<=0) { a[i]=0; i=i-1; }

36 Wykład9.UWAGIOGÓLNE,str.5 Błąd działania skompilowany program natrafia na niemożność dalszego działania. Mn=n/(2*n/2-n); W C zatrzymanie z komunikatem: Floating point exception M i=0; while(i<=0) { a[i]=0; i=i-1; } W C zatrzymanie z komunikatem: Segmentation fault

37 Wykład9.UWAGIOGÓLNE,str.5 Błąd działania skompilowany program natrafia na niemożność dalszego działania. Mn=n/(2*n/2-n); W C zatrzymanie z komunikatem: Floating point exception M i=0; while(i<=0) { a[i]=0; i=i-1; } W C zatrzymanie z komunikatem: Segmentation fault Znalezienie utrudnia fakt, że błąd może wystąpić lub nie, zależnie od danych. Przyczyną może być błąd logiczny(patrz dalej).

38 Wykład9.UWAGIOGÓLNE,str.6 Nieskończone obliczenie obliczenie nigdy się nie kończy.

39 Wykład9.UWAGIOGÓLNE,str.6 Nieskończone obliczenie obliczenie nigdy się nie kończy. Mk=0;q=0; while(n>0) {n=n-k;q=q+1; }

40 Wykład9.UWAGIOGÓLNE,str.6 Nieskończone obliczenie obliczenie nigdy się nie kończy. Mk=0;q=0; while(n>0) {n=n-k;q=q+1; } M void qq(int n) { int k; k=n/2; if(n>0){qq(k); qq(n-k);} } main() {qq(5); }

41 Wykład9.UWAGIOGÓLNE,str.6 Nieskończone obliczenie obliczenie nigdy się nie kończy. Mk=0;q=0; while(n>0) {n=n-k;q=q+1; } M void qq(int n) { int k; k=n/2; if(n>0){qq(k); qq(n-k);} } main() {qq(5); } Przyczyna nieskończonego obliczenia może być trudna do znalezienia; może nią być błąd logiczny(patrz dalej).

42 Wykład9.UWAGIOGÓLNE,str.7 Błąd logiczny programliczynieto,cotrzeba.

43 Wykład9.UWAGIOGÓLNE,str.7 Błąd logiczny programliczynieto,cotrzeba. Mint pot2(intw) { int p,p2,x; p=2;x=1; while(w%2==0) {p=p*p;w=w/2; } p2=p*p; while(w>3) {x=x*p2;w=w-2; } return x*p*p2; }

44 Wykład9.UWAGIOGÓLNE,str.7 Błąd logiczny programliczynieto,cotrzeba. Mint pot2(intw) { int p,p2,x; p=2;x=1; while(w%2==0) {p=p*p;w=w/2; } p2=p*p; while(w>3) {x=x*p2;w=w-2; } return x*p*p2; } pot2(w)=2 w jeśliwniejestpotęgą2

45 Wykład9.UWAGIOGÓLNE,str.7 Błąd logiczny programliczynieto,cotrzeba. Mint pot2(intw) { int p,p2,x; p=2;x=1; while(w%2==0) {p=p*p;w=w/2; } p2=p*p; while(w>3) {x=x*p2;w=w-2; } return x*p*p2; } pot2(w)=2 w jeśliwniejestpotęgą2

46 Wykład9.UWAGIOGÓLNE,str.7 Błąd logiczny programliczynieto,cotrzeba. Mint pot2(intw) { int p,p2,x; p=2;x=1; while(w%2==0) {p=p*p;w=w/2; } p2=p*p; while(w>3) {x=x*p2;w=w-2; } return x*p*p2; } pot2(w)=2 w jeśliwniejestpotęgą2 alejeśliwjestpotęgą2,topot2(w)=2 3w

47 Wykład9.UWAGIOGÓLNE,str.7 Błąd logiczny programliczynieto,cotrzeba. Mint pot2(intw) { int p,p2,x; p=2;x=1; while(w%2==0) {p=p*p;w=w/2; } p2=p*p; while(w>3) {x=x*p2;w=w-2; } return x*p*p2; } pot2(w)=2 w jeśliwniejestpotęgą2 alejeśliwjestpotęgą2,topot2(w)=2 3w Może być bardzo trudno ustalić, dlaczego program liczy dobrze dla jednych danychaźledlainnych.

48 Wykład9.UWAGIOGÓLNE,str.8 łatwe błąd leksykalny błąd składniowy błąd typowania błąd semantyczny błąd działania nieskończone obliczenie trudne błąd logiczny

49 Wykład9.UWAGIOGÓLNE,str.8 łatwe błąd leksykalny błąd składniowy błąd typowania błąd semantyczny błąd działania nieskończone obliczenie trudne błąd logiczny Przy programowaniu bezpośrednio w języku maszyny przeważająca większość błędów to błędy logiczne trudne do znalezienia.

50 Wykład9.UWAGIOGÓLNE,str.8 łatwe błąd leksykalny błąd składniowy błąd typowania błąd semantyczny błąd działania nieskończone obliczenie trudne błąd logiczny Przy programowaniu bezpośrednio w języku maszyny przeważająca większość błędów to błędy logiczne trudne do znalezienia. We współczesnych językach programowania wysokiego poziomu programista rzadziej popełnia błędy logiczne, a częściej błędy należące do łatwiejszych rodzajów.

51 Wykład9.UWAGIOGÓLNE,str.9 Niebezpieczne konstrukcje w jęz. programowania Brak sygnalizacji przekroczenia zakresu tablicy

52 Wykład9.UWAGIOGÓLNE,str.9 Niebezpieczne konstrukcje w jęz. programowania Brak sygnalizacji przekroczenia zakresu tablicy komenda po jej wykonaniu int a[5],b[5],i; for(i=0; i<5; i=i+1) a[i]=1; for(i=0; i<10; i=i+1) b[i]=2; a[0]=2 a[1]=2 a[2]=2 a[3]=2 a[4]=2 b[0]=2 b[1]=2 b[2]=2 b[3]=2 b[4]=2

53 Wykład9.UWAGIOGÓLNE,str.9 Niebezpieczne konstrukcje w jęz. programowania Brak sygnalizacji przekroczenia zakresu tablicy komenda po jej wykonaniu int a[5],b[5],i; for(i=0; i<5; i=i+1) a[i]=1; for(i=0; i<10; i=i+1) b[i]=2; a[0]=? a[1]=? a[2]=? a[3]=? a[4]=? b[0]=? b[1]=? b[2]=? b[3]=? b[4]=?

54 Wykład9.UWAGIOGÓLNE,str.9 Niebezpieczne konstrukcje w jęz. programowania Brak sygnalizacji przekroczenia zakresu tablicy komenda po jej wykonaniu int a[5],b[5],i; for(i=0; i<5; i=i+1) a[i]=1; for(i=0; i<10; i=i+1) b[i]=2; a[0]=1 a[1]=1 a[2]=1 a[3]=1 a[4]=1 b[0]=? b[1]=? b[2]=? b[3]=? b[4]=?

55 Wykład9.UWAGIOGÓLNE,str.9 Niebezpieczne konstrukcje w jęz. programowania Brak sygnalizacji przekroczenia zakresu tablicy komenda po jej wykonaniu int a[5],b[5],i; for(i=0; i<5; i=i+1) a[i]=1; for(i=0; i<10; i=i+1) b[i]=2; a[0]=2 a[1]=2 a[2]=2 a[3]=2 a[4]=2 b[0]=2 b[1]=2 b[2]=2 b[3]=2 b[4]=2

56 Wykład9.UWAGIOGÓLNE,str.9 Niebezpieczne konstrukcje w jęz. programowania Brak sygnalizacji przekroczenia zakresu tablicy komenda po jej wykonaniu int a[5],b[5],i; for(i=0; i<5; i=i+1) a[i]=1; for(i=0; i<10; i=i+1) b[i]=2; a[0]=2 a[1]=2 a[2]=2 a[3]=2 a[4]=2 b[0]=2 b[1]=2 b[2]=2 b[3]=2 b[4]=2 Nadanie wartości tablicy b, wyjechane poza jej zakres, niejawnie zmieniło wartości tablicy a.

57 Wykład9.UWAGIOGÓLNE,str.9 Niebezpieczne konstrukcje w jęz. programowania Brak sygnalizacji przekroczenia zakresu tablicy komenda po jej wykonaniu int a[5],b[5],i; for(i=0; i<5; i=i+1) a[i]=1; for(i=0; i<10; i=i+1) b[i]=2; a[0]=2 a[1]=2 a[2]=2 a[3]=2 a[4]=2 b[0]=2 b[1]=2 b[2]=2 b[3]=2 b[4]=2 Nadanie wartości tablicy b, wyjechane poza jej zakres, niejawnie zmieniło wartości tablicy a. Taksiędziejem.in.wC.

58 Wykład 9. UWAGI OGÓLNE, str. 10 Niebezpieczne konstrukcje w jęz. programowania Brak jawnych deklaracji

59 Wykład 9. UWAGI OGÓLNE, str. 10 Niebezpieczne konstrukcje w jęz. programowania Brak jawnych deklaracji Mi=0; ikwadr=0; while(i<n) { ikwadrat=ikwadr+2*i+1; i=i+1; }

60 Wykład 9. UWAGI OGÓLNE, str. 10 Niebezpieczne konstrukcje w jęz. programowania Brak jawnych deklaracji Mi=0; ikwadr=0; while(i<n) { ikwadrat=ikwadr+2*i+1; i=i+1; } Błąd w nazwie zmiennej powoduje błędny wynik, zamiast komunikatu.

61 Wykład 9. UWAGI OGÓLNE, str. 10 Niebezpieczne konstrukcje w jęz. programowania Brak jawnych deklaracji Mi=0; ikwadr=0; while(i<n) { ikwadrat=ikwadr+2*i+1; i=i+1; } Błąd w nazwie zmiennej powoduje błędny wynik, zamiast komunikatu. Taksiędziejem.in.wjęzykubasha,wPHP,...,wwieluinnych.

62 Wykład 9. UWAGI OGÓLNE, str. 11 Niebezpieczne konstrukcje w jęz. programowania Brak dyscypliny typowania

63 Wykład 9. UWAGI OGÓLNE, str. 11 Niebezpieczne konstrukcje w jęz. programowania Brak dyscypliny typowania Mmain() { intn; if(n=2* a ) printf("%s\n","pierwszy rok informatyki"+1); }

64 Wykład 9. UWAGI OGÓLNE, str. 11 Niebezpieczne konstrukcje w jęz. programowania Brak dyscypliny typowania Mmain() { intn; if(n=2* a ) printf("%s\n","pierwszy rok informatyki"+1); } Pomnożenie znaku przez 2, przypisanie w warunku if, dodanie liczby do napisu nie są sygnalizowane jako błąd.

65 Wykład 9. UWAGI OGÓLNE, str. 11 Niebezpieczne konstrukcje w jęz. programowania Brak dyscypliny typowania Mmain() { intn; if(n=2* a ) printf("%s\n","pierwszy rok informatyki"+1); } Pomnożenie znaku przez 2, przypisanie w warunku if, dodanie liczby do napisu nie są sygnalizowane jako błąd. To jest autentyczny przykład w C.

66 Wykład 9. UWAGI OGÓLNE, str. 12 Niebezpieczne konstrukcje w jęz. programowania Skoki(i breaki)

67 Wykład 9. UWAGI OGÓLNE, str. 12 Niebezpieczne konstrukcje w jęz. programowania Skoki(i breaki) schemat i 0 ikwad 0 L i<n i N ikwad ikwad+2 i+1 i i+1 E program ze skokami program bez skoków i=0; i kwad=0; L: if(i>=n) goto E; L:ikwad= L:ikwad+ L:2*i+1; L:i=i+1; L:gotoL; E: i=0; i kwad=0; while(i<n) { ikwad= ikwad+ 2*i+1; i=i+1; }

68 Wykład 9. UWAGI OGÓLNE, str. 12 Niebezpieczne konstrukcje w jęz. programowania Skoki(i breaki) schemat i 0 ikwad 0 L i<n i N ikwad ikwad+2 i+1 i i+1 E program ze skokami program bez skoków i=0; i kwad=0; L: if(i>=n) goto E; L:ikwad= L:ikwad+ L:2*i+1; L:i=i+1; L:gotoL; E: i=0; i kwad=0; while(i<n) { ikwad= ikwad+ 2*i+1; i=i+1; }

69 Wykład 9. UWAGI OGÓLNE, str. 12 Niebezpieczne konstrukcje w jęz. programowania Skoki(i breaki) schemat i 0 ikwad 0 L i<n i N ikwad ikwad+2 i+1 i i+1 E program ze skokami program bez skoków i=0; i kwad=0; L: if(i>=n) goto E; L:ikwad= L:ikwad+ L:2*i+1; L:i=i+1; L:gotoL; E: i=0; i kwad=0; while(i<n) { ikwad= ikwad+ 2*i+1; i=i+1; }

70 Wykład 9. UWAGI OGÓLNE, str. 12 Niebezpieczne konstrukcje w jęz. programowania Skoki(i breaki) schemat i 0 ikwad 0 L i<n i N ikwad ikwad+2 i+1 i i+1 E program ze skokami program bez skoków i=0; i kwad=0; L: if(i>=n) goto E; L:ikwad= L:ikwad+ L:2*i+1; L:i=i+1; L:gotoL; E: i=0; i kwad=0; while(i<n) { ikwad= ikwad+ 2*i+1; i=i+1; } Skoki umożliwiają realizację dowolnego schematu, nawet bardzo nieporządnego. Ale schemat i program ze skokami są narażone na błędy logiczne związane np. z możliwością skoku w nieprawidłowe miejsce.

71 Wykład 9. UWAGI OGÓLNE, str. 12 Niebezpieczne konstrukcje w jęz. programowania Skoki(i breaki) schemat i 0 ikwad 0 L i<n i N ikwad ikwad+2 i+1 i i+1 E program ze skokami program bez skoków i=0; i kwad=0; L: if(i>=n) goto E; L:ikwad= L:ikwad+ L:2*i+1; L:i=i+1; L:gotoL; E: i=0; i kwad=0; while(i<n) { ikwad= ikwad+ 2*i+1; i=i+1; } Skoki umożliwiają realizację dowolnego schematu, nawet bardzo nieporządnego. Ale schemat i program ze skokami są narażone na błędy logiczne związane np. z możliwością skoku w nieprawidłowe miejsce. SkokiibreakisądopuszczonewC.

72 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 13 Podział programu na(względnie) niezależne moduły

73 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 13 Podział programu na(względnie) niezależne moduły funkcje

74 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 13 Podział programu na(względnie) niezależne moduły funkcje, program w wielu plikach(dyrektywa#include"...")

75 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 13 Podział programu na(względnie) niezależne moduły funkcje, program w wielu plikach(dyrektywa#include"..."), inne narzędzia.

76 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 13 Podział programu na(względnie) niezależne moduły funkcje, program w wielu plikach(dyrektywa#include"..."), inne narzędzia. Przekazywanie informacji między modułami powinno odbywać się jawnie, raczej przez parametry niż przez zmienne globalne.

77 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 13 Podział programu na(względnie) niezależne moduły funkcje, program w wielu plikach(dyrektywa#include"..."), inne narzędzia. Przekazywanie informacji między modułami powinno odbywać się jawnie, raczej przez parametry niż przez zmienne globalne. Czytelność kodu źródłowego

78 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 13 Podział programu na(względnie) niezależne moduły funkcje, program w wielu plikach(dyrektywa#include"..."), inne narzędzia. Przekazywanie informacji między modułami powinno odbywać się jawnie, raczej przez parametry niż przez zmienne globalne. Czytelność kodu źródłowego mnemotechniczne nazwy identyfikatorów

79 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 13 Podział programu na(względnie) niezależne moduły funkcje, program w wielu plikach(dyrektywa#include"..."), inne narzędzia. Przekazywanie informacji między modułami powinno odbywać się jawnie, raczej przez parametry niż przez zmienne globalne. Czytelność kodu źródłowego mnemotechniczne nazwy identyfikatorów, przemyślane komentarze

80 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 13 Podział programu na(względnie) niezależne moduły funkcje, program w wielu plikach(dyrektywa#include"..."), inne narzędzia. Przekazywanie informacji między modułami powinno odbywać się jawnie, raczej przez parametry niż przez zmienne globalne. Czytelność kodu źródłowego mnemotechniczne nazwy identyfikatorów, przemyślane komentarze, wcięcia.

81 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 14 Unikanie sztuczek

82 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 14 Unikanie sztuczek zwykłe kopiowanie void kopiuj1 (charcel[],charzrodlo[]) { inti; i=0; while(zrodlo[i]!= \0 ) { cel[i] = zrodlo[i]; i=i+1; } cel[i]= \0 ; } trikowe kopiowanie void kopiuj2 (charcel[],charzrodlo[]) { while ((*cel++=*zrodlo++)!= \0 ); }

83 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 14 Unikanie sztuczek zwykłe kopiowanie void kopiuj1 (charcel[],charzrodlo[]) { inti; i=0; while(zrodlo[i]!= \0 ) { cel[i] = zrodlo[i]; i=i+1; } cel[i]= \0 ; } trikowe kopiowanie void kopiuj2 (charcel[],charzrodlo[]) { while ((*cel++=*zrodlo++)!= \0 ); }

84 Styl programowania Wykład 9. UWAGI OGÓLNE, str. 14 Unikanie sztuczek zwykłe kopiowanie void kopiuj1 (charcel[],charzrodlo[]) { inti; i=0; while(zrodlo[i]!= \0 ) { cel[i] = zrodlo[i]; i=i+1; } cel[i]= \0 ; } trikowe kopiowanie void kopiuj2 (charcel[],charzrodlo[]) { while ((*cel++=*zrodlo++)!= \0 ); } Program czytelny jest lepszy od kryptycznego, nawet jeśli jest dłuższy!

85 Granice informatyki Wykład 9. UWAGI OGÓLNE, str. 15 Czykomputerypotrafiąwszystko?

86 Granice informatyki Wykład 9. UWAGI OGÓLNE, str. 15 Czykomputerypotrafiąwszystko? Jakoż zbudowali inżynierowie królewscy wyborną maszynę cyfrową na Księżycu[...].Królzrazutakiowakdzielnośćmaszynypróbował;razzaśnakazał jej telegraficznie, aby elektroskoku dokonała: był bowiem ciekaw, czy prawdą jest, co mówili inżynierowie, że machina ta umie wszystko. Jeśli wszystkoumie takmyślał toniechskacze.wszelakotreśćdepeszy uległa drobnemu zniekształceniu i maszyna otrzymała rozkaz, iż nie elektroskok, lecz elektrosmok ma przez nią zostać wykonany; i jak najlepiej umiała wypełniła polecenie. Stanisław Lem. Bajka o maszynie cyfrowej, co ze smokiem walczyła. Bajki robotów. Wydawnictwo Literackie, Kraków 1978, str. 63.

87 Granice informatyki Wykład 9. UWAGI OGÓLNE, str. 16 Czykomputerypotrafiąwszystko?

88 Granice informatyki Wykład 9. UWAGI OGÓLNE, str. 16 Czykomputerypotrafiąwszystko? TWIERDZENIE: (nierozstrzygalność problemu stopu) MNie istnieje(meta)program komputerowy, który potrafiłby wczytać dowolny program P i dane D, a następnie w skończonym czasie prawidłowo przewidzieć, czy P zatrzyma się na D.

89 Granice informatyki Wykład 9. UWAGI OGÓLNE, str. 16 Czykomputerypotrafiąwszystko? TWIERDZENIE: (nierozstrzygalność problemu stopu) MNie istnieje(meta)program komputerowy, który potrafiłby wczytać dowolny program P i dane D, a następnie w skończonym czasie prawidłowo przewidzieć, czy P zatrzyma się na D. TWIERDZENIE: (nierozstrzygalność poprawności) MNie istnieje(meta)program komputerowy, który potrafiłby wczytać dowolnyprogrampidwieasercjeaib,anastępniewskończonymczasie prawidłowo orzec, czy P jest częściowo poprawny względem A i B.

90 Granice informatyki Wykład 9. UWAGI OGÓLNE, str. 16 Czykomputerypotrafiąwszystko? TWIERDZENIE: (nierozstrzygalność problemu stopu) MNie istnieje(meta)program komputerowy, który potrafiłby wczytać dowolny program P i dane D, a następnie w skończonym czasie prawidłowo przewidzieć, czy P zatrzyma się na D. TWIERDZENIE: (nierozstrzygalność poprawności) MNie istnieje(meta)program komputerowy, który potrafiłby wczytać dowolnyprogrampidwieasercjeaib,anastępniewskończonymczasie prawidłowo orzec, czy P jest częściowo poprawny względem A i B. Hipoteza: (P NP) MNieistniejeprogramkomputerowyPiwielomianW,takiżePpotrafiłby wczytać dowolną formułę logiczną i prawidłowo orzec w czasie W(n), gdzie n jest długością formuły, czy jest ona tautologią.

Błędy leksykalne są na ogół nietrudne do znalezienia.

Błędy leksykalne są na ogół nietrudne do znalezienia. Rodzaje błędów w programach Wykład9.UWAGIOGÓLNE,str.1 Błąd leksykalny pojedyncza jednostka leksykalna(operator, słowo kluczowe, liczba itp.), której nie przewiduje definicja języka. Mn:=1; Sygn. błędu

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane: Deklaracje W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane: int i,j,n; double x, tab[1000]; przykładowe deklaracje w C Pierwsze

Bardziej szczegółowo

Deklaracje. W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane:

Deklaracje. W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane: Deklaracje Wykład5TYPYDANYCH,str1 W większości języków programowania(nie we wszystkich) wymaga się, żeby użyte w programie zmienne były wcześniej zadeklarowane: int i,j,n; double x, tab[1000]; } przykładowe

Bardziej szczegółowo

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 3 Konstrukcje sterujące Krzysztof Banaś Podstawy programowania 1 Kod źródłowy i wykonanie programu Kod źródłowy w języku programowania zawiera przepis wykonania programu

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Poprawność semantyczna

Poprawność semantyczna Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych

Bardziej szczegółowo

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 1 Programowanie 1 Program wykładu Struktura programu Instrukcja przypisania Wprowadzanie danych Wyprowadzanie wyników Instrukcja

Bardziej szczegółowo

Tablice, funkcje - wprowadzenie

Tablice, funkcje - wprowadzenie Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład

Bardziej szczegółowo

Java EE produkcja oprogramowania

Java EE produkcja oprogramowania Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1 Pętle Pętla jest konstrukcją sterującą stosowaną w celu wielokrotnego wykonania tego samego zestawu instrukcji jednokrotne

Bardziej szczegółowo

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki Analiza leksykalna 1 Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych

Bardziej szczegółowo

Funkcje. Funkcje. liczba rzeczywista r punkt, w którym wartość wielomianu nas interesuje. Szukane: liczba rzeczywista

Funkcje. Funkcje. liczba rzeczywista r punkt, w którym wartość wielomianu nas interesuje. Szukane: liczba rzeczywista Funkcje Przykład: (wartość wielomianu w punkcie) M Dane: liczba naturalna N liczba współczynników wielomianu (= stopień wielomianu +1) tablicaliczbrzeczywistycha 0,a 1,a 2,...,a N 1 współczynnikiwielomianu

Bardziej szczegółowo

Wskaźniki w C. Anna Gogolińska

Wskaźniki w C. Anna Gogolińska Wskaźniki w C Anna Gogolińska Zmienne Zmienną w C można traktować jako obszar w pamięci etykietowany nazwą zmiennej i zawierający jej wartość. Przykład: kod graficznie int a; a a = 3; a 3 Wskaźniki Wskaźnik

Bardziej szczegółowo

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Tablice (jedno i wielowymiarowe), łańcuchy znaków Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA

JĘZYKI PROGRAMOWANIA Stefan Sokołowski JĘZYKI PROGRAMOWANIA Inst Informatyki UG, Gdańsk, 2014/2015 Wykład1OGÓLNEINFORMACJEOC,str1 JĘZYKI PROGRAMOWANIA reguły gry Zasadnicze informacje: http://infugedupl/ stefan/dydaktyka/jezprog

Bardziej szczegółowo

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1 Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).

Bardziej szczegółowo

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest

Bardziej szczegółowo

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia Język ANSI C część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia najbardziej podstawowe operacje na wskaźnikach int x = 1, y = 2, Tab[10]; int *ip; // czy

Bardziej szczegółowo

Stefan Sokołowski JĘZYKIPROGRAMOWANIA. Inst. Informatyki UG, Gdańsk, 2012/2013

Stefan Sokołowski JĘZYKIPROGRAMOWANIA. Inst. Informatyki UG, Gdańsk, 2012/2013 Stefan Sokołowski JĘZYKIPROGRAMOWANIA Inst Informatyki UG, Gdańsk, 2012/2013 Wykład1OGÓLNEINFORMACJEOC,str1 JĘZYKI PROGRAMOWANIA reguły gry Zasadnicze informacje: http://infugedupl/ stefan/dydaktyka/jezprog

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.

Bardziej szczegółowo

Podstawy Informatyki. Algorytmy i ich poprawność

Podstawy Informatyki. Algorytmy i ich poprawność Podstawy Informatyki Algorytmy i ich poprawność Błędy Błędy: językowe logiczne Błędy językowe Związane ze składnią języka Wykrywane automatycznie przez kompilator lub interpreter Prosty sposób usuwania

Bardziej szczegółowo

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe

Wykład 15. Literatura. Kompilatory. Elementarne różnice. Preprocesor. Słowa kluczowe Wykład 15 Wprowadzenie do języka na bazie a Literatura Podobieństwa i różnice Literatura B.W.Kernighan, D.M.Ritchie Język ANSI Kompilatory Elementarne różnice Turbo Delphi FP Kylix GNU (gcc) GNU ++ (g++)

Bardziej szczegółowo

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie Krzysztof Banaś Podstawy programowania 1 są sposobem na przechowywanie w ramach pojedynczej zmiennej zestawu zmiennych różnych typów,

Bardziej szczegółowo

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors.

Elementy języka C. ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Wykład 3 ACprogramislikeafastdanceonanewlywaxeddancefloorbypeople carrying razors. Waldi Ravens J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 75 / 146 deklaracje zmiennych instrukcja podstawienia

Bardziej szczegółowo

Podstawy Programowania.

Podstawy Programowania. Podstawy Programowania http://www.saltbox.com/img/under_the_hood.png O mnie... dr inż. Łukasz Graczykowski Zakład Fizyki Jądrowej Wydział Fizyki Politechniki Warszawskiej lgraczyk@if.pw.edu.pl www.if.pw.edu.pl/~lgraczyk/wiki

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania I rok Automatyka i Robotyka Eka PWr Ćwiczenia Zestaw 4 Zakres materiału Analiza poprawności konstrukcji, wyliczanie wyrażeń z wskaźnikami i tablicami, ręczna symulacja, opracowywanie

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych

Bardziej szczegółowo

Tablice, funkcje, wskaźniki - wprowadzenie

Tablice, funkcje, wskaźniki - wprowadzenie Tablice, funkcje, wskaźniki - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 4 19 listopada 2018 (Wykład 4) Tablice, funkcje, wskaźniki - wprowadzenie 19 listopada 2018 1 / 37 Outline 1 Tablice

Bardziej szczegółowo

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)

Bardziej szczegółowo

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Przemysław Gawroński D-10, p. 234 Wykład 1 8 października 2018 (Wykład 1) Wstęp do programowania 8 października 2018 1 / 12 Outline 1 Literatura 2 Programowanie? 3 Hello World (Wykład

Bardziej szczegółowo

Podstawy programowania - 1

Podstawy programowania - 1 Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl

Bardziej szczegółowo

KONSTRUKCJA KOMPILATORÓW

KONSTRUKCJA KOMPILATORÓW KONSTRUKCJA KOMPILATORÓW WYKŁAD Robert Plebaniak PLATFORMA PROGRAMOWA LINUX (może nie zawierać LLgen, wówczas instalacja ze strony http://tack.sourceforge.net); WINDOWS (używa się wtedy programu Cygwin,

Bardziej szczegółowo

Jerzy Nawrocki, Wprowadzenie do informatyki

Jerzy Nawrocki, Wprowadzenie do informatyki Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Programowanie imperatywne i język C Zaprezentować paradygmat programowania imperatywnego

Bardziej szczegółowo

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Poprawność algorytmów

Poprawność algorytmów Poprawność algorytmów Jeśli uważasz, że jakiś program komputerowy jest bezbłędny, to się mylisz - po prostu nie zauważyłeś jeszcze skutków błędu, który jest w nim zawarty. Jakie błędy można popełnić? Błędy

Bardziej szczegółowo

Podstawy Programowania

Podstawy Programowania Podstawy Programowania http://www.saltbox.com/img/under_the_hood.png Any sufficiently advanced technology is indistinguishable from magic. Arthur C. Clarke O mnie... dr inż. Małgorzata Janik Zakład Fizyki

Bardziej szczegółowo

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6

PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 PODSTAWY INFORMATYKI 1 PRACOWNIA NR 6 TEMAT: Programowanie w języku C/C++: instrukcje iteracyjne for, while, do while Ogólna postać instrukcji for for (wyr1; wyr2; wyr3) Instrukcja for twory pętlę działającą

Bardziej szczegółowo

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy

Bardziej szczegółowo

Języki formalne i techniki translacji

Języki formalne i techniki translacji Języki formalne i techniki translacji Laboratorium - Projekt Termin oddania: ostatnie zajęcia przed 17 stycznia 2016 Wysłanie do wykładowcy: przed 23:59 28 stycznia 2016 Używając BISON-a i FLEX-a napisz

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 4

Programowanie komputerowe. Zajęcia 4 Programowanie komputerowe Zajęcia 4 Typ logiczny Wartości logiczne są reprezentowane przez typ bool. Typ bool posiada tylko dwie wartości: true i false. Zamiast wartości logicznych można używać wartości

Bardziej szczegółowo

Laboratorium 5: Tablice. Wyszukiwanie binarne

Laboratorium 5: Tablice. Wyszukiwanie binarne Wojciech Myszka Laboratorium 5: Tablice. Wyszukiwanie binarne 2016-05-07 09:02:17 +0200 1. Tablice Do tej pory nie było potrzeby odwoływać się do zmiennych złożonych. Programy były bardzo proste i korzystały

Bardziej szczegółowo

Język C zajęcia nr 7. Uwagi dotyczące stylu programowania

Język C zajęcia nr 7. Uwagi dotyczące stylu programowania Język C zajęcia nr 7 Uwagi dotyczące stylu programowania Program można pisać w sposób mniej lub bardziej porządny i systematyczny. Przejrzyste programy pozwalają na znacznie łatwiejszą ich analizę i ewentualne

Bardziej szczegółowo

Podstawy programowania (1)

Podstawy programowania (1) Podstawy programowania (1) doc. dr inż. Tadeusz Jeleniewski Konsultacje pokój 19 Poniedziałki, godz. 9:45 11:20 e-mail: tadeusz.jeleniewski@neostrada.pl Podstawy programowania (1) - wykład 1. Wprowadzenie

Bardziej szczegółowo

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Etapy kompilacji. Wykład 7. Przetwarzanie wstępne, str. 1. #define ILE for(i=0; i<ile; i++)...

Etapy kompilacji. Wykład 7. Przetwarzanie wstępne, str. 1. #define ILE for(i=0; i<ile; i++)... Etapy kompilacji Wykład 7 Przetwarzanie wstępne, str 1 #define ILE 100 for(i=0; i

Bardziej szczegółowo

Praktyka Programowania

Praktyka Programowania Praktyka Programowania Dariusz Dereniowski Materiały udostępnione przez Adriana Kosowskiego Katedra Algorytmów i Modelowania Systemów Politechnika Gdańska deren@eti.pg.gda.pl Gdańsk, 2010 strona przedmiotu:

Bardziej szczegółowo

Pytania sprawdzające wiedzę z programowania C++

Pytania sprawdzające wiedzę z programowania C++ Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?

Bardziej szczegółowo

Wstęp do informatyki- wykład 7

Wstęp do informatyki- wykład 7 1 Wstęp do informatyki- wykład 7 Operatory przypisania, złożone operatory przypisania, Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.

Bardziej szczegółowo

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania weryfikacyjne:

Bardziej szczegółowo

Wprowadzenie do języka Java

Wprowadzenie do języka Java WSNHiD, Programowanie 2 Lab. 1 [ część 1 ] Wprowadzenie do języka Java Wprowadzenie Język programowania Java jest obiektowym językiem programowania. Powstał w 1995 i od tej pory był intensywnie rozwijany.

Bardziej szczegółowo

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p. Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy Laboratorium 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Na podstawie: G. Perry, D. Miller, Język C Programowanie dla

Bardziej szczegółowo

Zmienne, stałe i operatory

Zmienne, stałe i operatory Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe

Bardziej szczegółowo

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009 Informatyka 1 zajęcia nr 1 Elektrotechnika, semestr II rok akademicki 2008/2009 mgr inż.. Paweł Myszkowski Plan dzisiejszych zajęć 1. Organizacja laboratorium przedmiotu 2. Algorytmy i sposoby ich opisu

Bardziej szczegółowo

Jerzy Nawrocki, Wprowadzenie do informatyki

Jerzy Nawrocki, Wprowadzenie do informatyki Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Programowanie imperatywne i język C Zaprezentować paradygmat programowania imperatywnego

Bardziej szczegółowo

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji

Bardziej szczegółowo

Wartości domyślne, przeciażenia funkcji

Wartości domyślne, przeciażenia funkcji Wartości domyślne, przeciażenia funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.

Bardziej szczegółowo

Laboratorium nr 10. Temat: Funkcje cz.2.

Laboratorium nr 10. Temat: Funkcje cz.2. Zakres laboratorium: Laboratorium nr 10 Temat: Funkcje cz.2. przeciążanie nazw funkcji argumenty domyślne funkcji przekazywanie danych do funkcji przez wartość, wskaźnik i referencję przekazywanie tablic

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Funkcje w języku C Zasięg zmiennych Przekazywanie

Bardziej szczegółowo

Podstawy Kompilatorów

Podstawy Kompilatorów Podstawy Kompilatorów Laboratorium 10 Translacja sterowana składnią w generatorze YACC. Zadanie 1: Proszę napisać program, który dla danej liczby całkowitej j oraz niepustego ciągu liczb naturalnych c

Bardziej szczegółowo

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/

Podstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura

Bardziej szczegółowo

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu

Bardziej szczegółowo

Programowanie komputerowe. Zajęcia 3

Programowanie komputerowe. Zajęcia 3 Programowanie komputerowe Zajęcia 3 Instrukcje przypisania Poza zwykłą instrukcją przypisania, powodującą ustawienie wartości zmiennej na podane wyrażenie, istnieje wiele innych, np. += dodaj, a+=b jest

Bardziej szczegółowo

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów

C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów

Bardziej szczegółowo

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje. Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2015/16 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411b Plan wykładu Operacje wejścia-wyjścia Dostęp do plików Struktury

Bardziej szczegółowo

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle! Funkcja wysoce niezależny blok definicji i instrukcji programu (podprogram) Każdy program napisany w języku C/C++ zawiera przynajmniej jedną funkcję o predefiniowanej nazwie: main( ). Najczęściej wykorzystuje

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Podstawy programowania w języku C++

Podstawy programowania w języku C++ Podstawy programowania w języku C++ Część dziewiąta Tablice a zmienne wskaźnikowe Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie

Bardziej szczegółowo

tablica: dane_liczbowe

tablica: dane_liczbowe TABLICE W JĘZYKU C/C++ tablica: dane_liczbowe float dane_liczbowe[5]; dane_liczbowe[0]=12.5; dane_liczbowe[1]=-0.2; dane_liczbowe[2]= 8.0;... 12.5-0.2 8.0...... 0 1 2 3 4 indeksy/numery elementów Tablica

Bardziej szczegółowo

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 3

PARADYGMATY PROGRAMOWANIA Wykład 3 PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5 JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 5 1 SPECYFIKATOR const Specyfikator (przydomek) const: Umieszczenie przed nazwą zmiennej specyfikatora const w jej definicji informuje kompilator,

Bardziej szczegółowo

EGZAMIN MATURALNY 2011 INFORMATYKA

EGZAMIN MATURALNY 2011 INFORMATYKA Centralna Komisja Egzaminacyjna w Warszawie EGZAMIN MATURALNY 2011 INFORMATYKA POZIOM PODSTAWOWY MAJ 2011 2 Zadanie 1. a) (0 1) Egzamin maturalny z informatyki poziom podstawowy CZĘŚĆ I Obszar standardów

Bardziej szczegółowo

Wskaźniki. Informatyka

Wskaźniki. Informatyka Materiały Wskaźniki Informatyka Wskaźnik z punktu widzenia programisty jest grupą komórek pamięci (rozmiar wskaźnika zależy od architektury procesora, najczęściej są to dwa lub cztery bajty ), które mogą

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje

Bardziej szczegółowo

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Zajęcia nr 1 Podstawy programowania. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Zajęcia nr 1 Podstawy programowania dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Ramowy program warsztatów 1. Pierwsze: Podstawy programowania 2. Drugie:

Bardziej szczegółowo

Przypomnienie o klasach i obiektach

Przypomnienie o klasach i obiektach Wykład 14 Programowanie obiektowe ciąg dalszy, str 1 Przypomnienie o klasach i obiektach -5 należydo int 314 należy do double false należy do boolean {27, 314,-15 należy do double[] wartość należy do typ

Bardziej szczegółowo

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; Ogólna postać definicji tablicy: TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ; np. int tablica [ 10 ]; // 10-cio elementowa tablica liczb całkowitych char tekst

Bardziej szczegółowo

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.

Bardziej szczegółowo

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem.

Struktura programu. Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem. Struktura programu Projekty złożone składają się zwykłe z różnych plików. Zawartość każdego pliku programista wyznacza zgodnie z jego przeznaczeniem. W ostatnich latach najbardziej używanym stylem oprogramowania

Bardziej szczegółowo

- - Ocena wykonaniu zad3. Brak zad3

- - Ocena wykonaniu zad3. Brak zad3 Indeks Zad1 Zad2 Zad3 Zad4 Zad Ocena 20986 218129 ocena 4 Zadanie składa się z Cw3_2_a oraz Cw3_2_b Brak opcjonalnego wywołania operacji na tablicy. Brak pętli Ocena 2 Brak zad3 Ocena wykonaniu zad3 po

Bardziej szczegółowo

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++

Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ Podstawy programowania Wykład II Tablice (wstęp) Przykłady algorytmów Wstęp do języka C/C++ 1 dr Artur Bartoszewski - Podstawy programowania, sem. 1- WYKŁAD Część I Wstęp do struktur danych: Tablice 2

Bardziej szczegółowo

Język C++ Różnice między C a C++

Język C++ Różnice między C a C++ Język C++ Różnice między C a C++ Plan wykładu C a C++ Różnice ogólne Typy Deklaracje zmiennych C++ jako rozszerzenie C Domyślne argumenty funkcji Przeciążanie funkcji Referencje Dynamiczny przydział pamięci

Bardziej szczegółowo

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Programowanie I C / C++ laboratorium 03 arytmetyka, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Typ znakowy Typ znakowy Typ wyliczeniowy # include

Bardziej szczegółowo

EGZAMIN MATURALNY Z INFORMATYKI 11 MAJA 2018 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut

EGZAMIN MATURALNY Z INFORMATYKI 11 MAJA 2018 POZIOM PODSTAWOWY. Godzina rozpoczęcia: 14:00 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. Układ graficzny CKE 2013 KOD UZUPEŁNIA ZDAJĄCY PESEL Miejsce na naklejkę z kodem EGZAMIN MATURALNY Z INFORMATYKI POZIOM PODSTAWOWY

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo