Etapy kompilacji. Wykład 7. Przetwarzanie wstępne, str. 1. #define ILE for(i=0; i<ile; i++)...
|
|
- Iwona Władysława Kamińska
- 5 lat temu
- Przeglądów:
Transkrypt
1 Etapy kompilacji Wykład 7 Przetwarzanie wstępne, str 1 #define ILE 100 for(i=0; i<ile; i++)
2 Etapy kompilacji Wykład 7 Przetwarzanie wstępne, str 1 #define ILE 100 for(i=0; i<ile; i++) #include #define #if
3 Etapy kompilacji Wykład 7 Przetwarzanie wstępne, str 1 #define ILE 100 for(i=0; i<ile; i++) przetwarzanie wstępne #include #define #if for(i=0; i<100; i++)
4 Etapy kompilacji Wykład 7 Przetwarzanie wstępne, str 1 #define ILE 100 for(i=0; i<ile; i++) przetwarzanie wstępne #include #define #if for(i=0; i<100; i++) kompilacja właściwa binaria
5 Etapy kompilacji Wykład 7 Przetwarzanie wstępne, str 1 #define ILE 100 for(i=0; i<ile; i++) przetwarzanie wstępne #include #define #if for(i=0; i<100; i++) kompilacja właściwa dane binaria wyniki
6 Etapy kompilacji Wykład 7 Przetwarzanie wstępne, str 1 #define ILE 100 for(i=0; i<ile; i++) przetwarzanie wstępne #include #define #if for(i=0; i<100; i++) kompilacja właściwa dane Przetwarzanie wstępne preprocessing binaria wyniki
7 Wykład 7 Przetwarzanie wstępne, str 2 Przed właściwą kompilacją tekst programu jest przekształcany zgodnie z dyrektywami programisty
8 Wykład 7 Przetwarzanie wstępne, str 2 Przed właściwą kompilacją tekst programu jest przekształcany zgodnie z dyrektywami programisty To przekształcenie jest czysto tekstowe preprocesor nie zajmuje się logiką programu Nieostrożnie napisane dyrektywy mogą spowodować, że program nie da się skompilować, albo będzie działał błędnie
9 Wykład 7 Przetwarzanie wstępne, str 2 Przed właściwą kompilacją tekst programu jest przekształcany zgodnie z dyrektywami programisty To przekształcenie jest czysto tekstowe preprocesor nie zajmuje się logiką programu Nieostrożnie napisane dyrektywy mogą spowodować, że program nie da się skompilować, albo będzie działał błędnie
10 Wykład 7 Przetwarzanie wstępne, str 2 Przed właściwą kompilacją tekst programu jest przekształcany zgodnie z dyrektywami programisty To przekształcenie jest czysto tekstowe preprocesor nie zajmuje się logiką programu Nieostrożnie napisane dyrektywy mogą spowodować, że program nie da się skompilować, albo będzie działał błędnie Podstawowe dyrektywy: #include włączyć plik
11 Wykład 7 Przetwarzanie wstępne, str 2 Przed właściwą kompilacją tekst programu jest przekształcany zgodnie z dyrektywami programisty To przekształcenie jest czysto tekstowe preprocesor nie zajmuje się logiką programu Nieostrożnie napisane dyrektywy mogą spowodować, że program nie da się skompilować, albo będzie działał błędnie Podstawowe dyrektywy: #include włączyć plik #define zastąpić w tekście programu
12 Wykład 7 Przetwarzanie wstępne, str 2 Przed właściwą kompilacją tekst programu jest przekształcany zgodnie z dyrektywami programisty To przekształcenie jest czysto tekstowe preprocesor nie zajmuje się logiką programu Nieostrożnie napisane dyrektywy mogą spowodować, że program nie da się skompilować, albo będzie działał błędnie Podstawowe dyrektywy: #include włączyć plik #define zastąpić w tekście programu #if kompilować warunkowo
13 Wykład 7 Przetwarzanie wstępne, str 3 #include program na wielu plikach
14 Wykład 7 Przetwarzanie wstępne, str 3 #include program na wielu plikach #include"plik" plik Włącza(bez interpretowania) cały plik
15 Wykład 7 Przetwarzanie wstępne, str 3 #include program na wielu plikach #include"plik" plik Włącza(bez interpretowania) cały plik Dyrektywa#include"plik" włącza plik z aktualnego katalogu opracowany przez programistę
16 Wykład 7 Przetwarzanie wstępne, str 3 #include program na wielu plikach #include"plik" plik Włącza(bez interpretowania) cały plik Dyrektywa#include"plik" włącza plik z aktualnego katalogu opracowany przez programistę Dyrektywa#include<plik> włącza plik z katalogu kompilatora opracowany przez autora kompilatora
17 Wykład 7 Przetwarzanie wstępne, str 4 #include program na wielu plikach #include"globalne" intmain(){ printf("\n%s\n\n",haslo); return 0; }
18 Wykład 7 Przetwarzanie wstępne, str 4 #include program na wielu plikach #include"globalne" intmain(){ printf("\n%s\n\n",haslo); return 0; } Błędy: niezadeklarowane printf haslo
19 Wykład 7 Przetwarzanie wstępne, str 4 #include program na wielu plikach #include"globalne" intmain(){ printf("\n%s\n\n",haslo); return 0; } globalne #include<stdioh> char haslo[20] ="Naprzod!";
20 Wykład 7 Przetwarzanie wstępne, str 4 #include program na wielu plikach #include"globalne" intmain(){ printf("\n%s\n\n",haslo); return 0; } Drukuje: Naprzod! globalne #include<stdioh> char haslo[20] ="Naprzod!";
21 Wykład 7 Przetwarzanie wstępne, str 4 #include program na wielu plikach #include"globalne" intmain(){ printf("\n%s\n\n",haslo); return 0; } Drukuje: Naprzod! globalne #include<stdioh> char haslo[20] ="Naprzod!"; Plik inkludowany może inkludować inne pliki
22 Wykład 7 Przetwarzanie wstępne, str 5 #include program na wielu plikach Co inkludujemy, pisząc na początku programu #include<stdioh> lub #include<mathh> itp?
23 Wykład 7 Przetwarzanie wstępne, str 5 #include program na wielu plikach Co inkludujemy, pisząc na początku programu #include<stdioh> lub #include<mathh> itp? (Na sigmie te pliki mieszczą w/usr/include/ można zajrzeć)
24 Wykład 7 Przetwarzanie wstępne, str 5 #include program na wielu plikach Co inkludujemy, pisząc na początku programu #include<stdioh> lub #include<mathh> itp? (Na sigmie te pliki mieszczą w/usr/include/ można zajrzeć) W standardowym pliku nagłówkowym(header file) mieszczą się min definicjetypów npfile
25 Wykład 7 Przetwarzanie wstępne, str 5 #include program na wielu plikach Co inkludujemy, pisząc na początku programu #include<stdioh> lub #include<mathh> itp? (Na sigmie te pliki mieszczą w/usr/include/ można zajrzeć) W standardowym pliku nagłówkowym(header file) mieszczą się min definicjetypów npfile definicjestałych npeof
26 Wykład 7 Przetwarzanie wstępne, str 5 #include program na wielu plikach Co inkludujemy, pisząc na początku programu #include<stdioh> lub #include<mathh> itp? (Na sigmie te pliki mieszczą w/usr/include/ można zajrzeć) W standardowym pliku nagłówkowym(header file) mieszczą się min definicjetypów npfile definicjestałych npeof deklaracje zmiennych np stdout(zmienna typu FILE*, wskaźnik na plik związany z ekranem)
27 Wykład 7 Przetwarzanie wstępne, str 5 #include program na wielu plikach Co inkludujemy, pisząc na początku programu #include<stdioh> lub #include<mathh> itp? (Na sigmie te pliki mieszczą w/usr/include/ można zajrzeć) W standardowym pliku nagłówkowym(header file) mieszczą się min definicjetypów npfile definicjestałych npeof deklaracje zmiennych np stdout(zmienna typu FILE*, wskaźnik na plik związany z ekranem) nagłówki funkcji np printf; wyłącznie nagłówki, bez definicji!
28 Wykład 7 Przetwarzanie wstępne, str 5 #include program na wielu plikach Co inkludujemy, pisząc na początku programu #include<stdioh> lub #include<mathh> itp? (Na sigmie te pliki mieszczą w/usr/include/ można zajrzeć) W standardowym pliku nagłówkowym(header file) mieszczą się min definicjetypów npfile definicjestałych npeof deklaracje zmiennych np stdout(zmienna typu FILE*, wskaźnik na plik związany z ekranem) nagłówki funkcji np printf; wyłącznie nagłówki, bez definicji!
29 Wykład 7 Przetwarzanie wstępne, str 5 #include program na wielu plikach Co inkludujemy, pisząc na początku programu #include<stdioh> lub #include<mathh> itp? (Na sigmie te pliki mieszczą w/usr/include/ można zajrzeć) W standardowym pliku nagłówkowym(header file) mieszczą się min definicjetypów npfile definicjestałych npeof deklaracje zmiennych np stdout(zmienna typu FILE*, wskaźnik na plik związany z ekranem) nagłówki funkcji np printf; wyłącznie nagłówki, bez definicji! Np intprintf(char*format,);
30 Wykład 7 Przetwarzanie wstępne, str 5 #include program na wielu plikach Co inkludujemy, pisząc na początku programu #include<stdioh> lub #include<mathh> itp? (Na sigmie te pliki mieszczą w/usr/include/ można zajrzeć) W standardowym pliku nagłówkowym(header file) mieszczą się min definicjetypów npfile definicjestałych npeof deklaracje zmiennych np stdout(zmienna typu FILE*, wskaźnik na plik związany z ekranem) nagłówki funkcji np printf; wyłącznie nagłówki, bez definicji! Np intprintf(char*format,); Definicje funkcji standardowych mieszczą się w bibliotece standardowej C, a nie w pliku nagłówkowym
31 Wykład 7 Przetwarzanie wstępne, str 6 #include własny plik nagłówkowy
32 Wykład 7 Przetwarzanie wstępne, str 6 #include własny plik nagłówkowy Modularność programu ułatwia panowanie nad dużymi systemami W najprostszym przypadku:
33 Wykład 7 Przetwarzanie wstępne, str 6 #include własny plik nagłówkowy Modularność programu ułatwia panowanie nad dużymi systemami W najprostszym przypadku: funkcje ogólne na jednym pliku; np 1ulamki-definicjec
34 Wykład 7 Przetwarzanie wstępne, str 6 #include własny plik nagłówkowy Modularność programu ułatwia panowanie nad dużymi systemami W najprostszym przypadku: funkcje ogólne na jednym pliku; np 1ulamki-definicjec używający ich program główny na innym; np 1ulamki-glownyc
35 Wykład 7 Przetwarzanie wstępne, str 6 #include własny plik nagłówkowy Modularność programu ułatwia panowanie nad dużymi systemami W najprostszym przypadku: funkcje ogólne na jednym pliku; np 1ulamki-definicjec używający ich program główny na innym; np 1ulamki-glownyc wspólna kompilacja: gcc-wall 1ulamki-definicjec 1ulamki-glownyc
36 Wykład 7 Przetwarzanie wstępne, str 6 #include własny plik nagłówkowy Modularność programu ułatwia panowanie nad dużymi systemami W najprostszym przypadku: funkcje ogólne na jednym pliku; np 1ulamki-definicjec używający ich program główny na innym; np 1ulamki-glownyc wspólna kompilacja: gcc-wall 1ulamki-definicjec 1ulamki-glownyc (patrz 07-Ulamki/)
37 Wykład 7 Przetwarzanie wstępne, str 6 #include własny plik nagłówkowy Modularność programu ułatwia panowanie nad dużymi systemami W najprostszym przypadku: funkcje ogólne na jednym pliku; np 1ulamki-definicjec używający ich program główny na innym; np 1ulamki-glownyc wspólna kompilacja: gcc-wall 1ulamki-definicjec 1ulamki-glownyc (patrz 07-Ulamki/) gcc-wall część wspólna definicje część wspólna główny
38 Wykład 7 Przetwarzanie wstępne, str 7 #include własny plik nagłówkowy część wspólna gcc-wall #include"" definicje h #include"" główny
39 Wykład 7 Przetwarzanie wstępne, str 7 #include własny plik nagłówkowy część wspólna gcc-wall #include"" definicje h #include"" główny typy, stałe, zmienne i nagłówki funkcji; np 2ulamkih; funkcje ogólne; np 2ulamki-definicjec; używający ich program główny; np 2ulamki-glownyc; wspólna kompilacja } biblioteka
40 Wykład 7 Przetwarzanie wstępne, str 7 #include własny plik nagłówkowy część wspólna gcc-wall #include"" definicje h #include"" główny typy, stałe, zmienne i nagłówki funkcji; np 2ulamkih; funkcje ogólne; np 2ulamki-definicjec; używający ich program główny; np 2ulamki-glownyc; wspólna kompilacja } biblioteka
41 Wykład 7 Przetwarzanie wstępne, str 7 #include własny plik nagłówkowy część wspólna gcc-wall #include"" definicje h #include"" główny typy, stałe, zmienne i nagłówki funkcji; np 2ulamkih; funkcje ogólne; np 2ulamki-definicjec; używający ich program główny; np 2ulamki-glownyc; wspólna kompilacja } biblioteka
42 Wykład 7 Przetwarzanie wstępne, str 7 #include własny plik nagłówkowy część wspólna gcc-wall #include"" definicje h #include"" główny typy, stałe, zmienne i nagłówki funkcji; np 2ulamkih; funkcje ogólne; np 2ulamki-definicjec; używający ich program główny; np 2ulamki-glownyc; wspólna kompilacja } biblioteka
43 Wykład 7 Przetwarzanie wstępne, str 7 #include własny plik nagłówkowy część wspólna gcc-wall #include"" definicje h #include"" główny typy, stałe, zmienne i nagłówki funkcji; np 2ulamkih; funkcje ogólne; np 2ulamki-definicjec; używający ich program główny; np 2ulamki-glownyc; wspólna kompilacja } biblioteka
44 Wykład 7 Przetwarzanie wstępne, str 8 #include własny plik nagłówkowy Utrzymywanie tej samej części wspólnej w kilku różnych plikach jest niepraktyczne Dokonywanie w niej zmian wymaga zmieniania kilku plików
45 Wykład 7 Przetwarzanie wstępne, str 8 #include własny plik nagłówkowy Utrzymywanie tej samej części wspólnej w kilku różnych plikach jest niepraktyczne Dokonywanie w niej zmian wymaga zmieniania kilku plików
46 Wykład 7 Przetwarzanie wstępne, str 8 #include własny plik nagłówkowy Utrzymywanie tej samej części wspólnej w kilku różnych plikach jest niepraktyczne Dokonywanie w niej zmian wymaga zmieniania kilku plików Staramysię,żebytensamkodpisanybyłtylkoraz;albowplikuz definicjami, albo w programie głównym
47 Wykład 7 Przetwarzanie wstępne, str 8 #include własny plik nagłówkowy Utrzymywanie tej samej części wspólnej w kilku różnych plikach jest niepraktyczne Dokonywanie w niej zmian wymaga zmieniania kilku plików Minimum tego, co musi być znane zarówno definicjom jak programowi głównemu(definicje typów, stałych, deklaracje zmiennych, nagłówki funkcji) wynosimy do odrębnego pliku nagłówkowego
48 Wykład 7 Przetwarzanie wstępne, str 8 #include własny plik nagłówkowy Utrzymywanie tej samej części wspólnej w kilku różnych plikach jest niepraktyczne Dokonywanie w niej zmian wymaga zmieniania kilku plików Staramysię,żebytensamkodpisanybyłtylkoraz;albowplikuz definicjami, albo w programie głównym Minimum tego, co musi być znane zarówno definicjom jak programowi głównemu(definicje typów, stałych, deklaracje zmiennych, nagłówki funkcji) wynosimy do odrębnego pliku nagłówkowego Nazwy plików nagłówkowych tradycyjnie mają rozszerzenie h od ang header
49 Wykład 7 Przetwarzanie wstępne, str 8 #include własny plik nagłówkowy Utrzymywanie tej samej części wspólnej w kilku różnych plikach jest niepraktyczne Dokonywanie w niej zmian wymaga zmieniania kilku plików Staramysię,żebytensamkodpisanybyłtylkoraz;albowplikuz definicjami, albo w programie głównym Minimum tego, co musi być znane zarówno definicjom jak programowi głównemu(definicje typów, stałych, deklaracje zmiennych, nagłówki funkcji) wynosimy do odrębnego pliku nagłówkowego Nazwy plików nagłówkowych tradycyjnie mają rozszerzenie h od ang header Autor programu głównego nie musi znać treści pliku z definicjami, ale powinien znać treść pliku nagłówkowego
50 Wykład 7 Przetwarzanie wstępne, str 9 #define zastępowanie w programie
51 Wykład 7 Przetwarzanie wstępne, str 9 #define zastępowanie w programie #define ABC defg ABC ABC
52 Wykład 7 Przetwarzanie wstępne, str 9 #define zastępowanie w programie #define ABC defg ABC ABC defg defg
53 Wykład 7 Przetwarzanie wstępne, str 9 #define zastępowanie w programie #define ABC defg ABC ABC defg defg Dyrektywa #define MAKRO reszta wiersza powoduje zastąpienie wszystkich wystąpień MAKRa w programie przez resztę wiersza
54 Wykład 7 Przetwarzanie wstępne, str 10 #define zastępowanie w programie Przykład: (UWAŻAĆ!) M #define ILE 100; if(ile < 1000) printf("\n mniejsze\n\n"); else printf("\n niemniejsze\n\n");
55 Wykład 7 Przetwarzanie wstępne, str 10 #define zastępowanie w programie Przykład: (UWAŻAĆ!) M #define ILE 100; if(ile < 1000) printf("\n mniejsze\n\n"); else printf("\n niemniejsze\n\n"); sygnalizuje błąd: error: expected ) before ; token
56 Wykład 7 Przetwarzanie wstępne, str 10 #define zastępowanie w programie Przykład: (UWAŻAĆ!) M #define ILE 100; if(ile < 1000) printf("\n mniejsze\n\n"); else printf("\n niemniejsze\n\n"); sygnalizuje błąd: error: expected ) before ; token Wynik zastąpienia: if(100; < 1000) printf("\n mniejsze\n\n"); else printf("\n niemniejsze\n\n");
57 Wykład 7 Przetwarzanie wstępne, str 10 #define zastępowanie w programie Przykład: (UWAŻAĆ!) M #define ILE 100; if(ile < 1000) printf("\n mniejsze\n\n"); else printf("\n niemniejsze\n\n"); sygnalizuje błąd: error: expected ) before ; token Wynik zastąpienia: if(100; < 1000) printf("\n mniejsze\n\n"); else printf("\n niemniejsze\n\n"); Winny jest średnik
58 Wykład 7 Przetwarzanie wstępne, str 11 #define zastępowanie w programie Nie zastępuje się części słów
59 Wykład 7 Przetwarzanie wstępne, str 11 #define zastępowanie w programie Nie zastępuje się części słów; np nie będzie żadnego zastąpienia w tym przypadku: #define KOT pies BOJKOT
60 Wykład 7 Przetwarzanie wstępne, str 11 #define zastępowanie w programie Nie zastępuje się części słów; np nie będzie żadnego zastąpienia w tym przypadku: #define KOT pies BOJKOT Nie zastępuje się we wnętrzu cudzysłowu
61 Wykład 7 Przetwarzanie wstępne, str 11 #define zastępowanie w programie Nie zastępuje się części słów; np nie będzie żadnego zastąpienia w tym przypadku: #define KOT pies BOJKOT Nie zastępuje się we wnętrzu cudzysłowu; np nie będzie żadnego zastąpienia w tym przypadku: #define KOT pies printf("wlazł KOT na płot\n");
62 Wykład 7 Przetwarzanie wstępne, str 12 #define zastępowanie z parametrami
63 Wykład 7 Przetwarzanie wstępne, str 12 #define zastępowanie z parametrami Makro może mieć parametry nazwy pooddzielane przecinkami
64 Wykład 7 Przetwarzanie wstępne, str 12 #define zastępowanie z parametrami Makro może mieć parametry nazwy pooddzielane przecinkami Przy zastępowaniu parametry są tekstowo (czyli na ślepo, bezmyślnie ) zastępowane argumentami wywołania
65 Wykład 7 Przetwarzanie wstępne, str 12 #define zastępowanie z parametrami Makro może mieć parametry nazwy pooddzielane przecinkami Przy zastępowaniu parametry są tekstowo (czyli na ślepo, bezmyślnie ) zastępowane argumentami wywołania #define KWADRAT(x) x*x printf("%i\n",kwadrat(4)); printf("%2lf\n",kwadrat(12));
66 Wykład 7 Przetwarzanie wstępne, str 12 #define zastępowanie z parametrami Makro może mieć parametry nazwy pooddzielane przecinkami Przy zastępowaniu parametry są tekstowo (czyli na ślepo, bezmyślnie ) zastępowane argumentami wywołania #define KWADRAT(x) x*x printf("%i\n",kwadrat(4)); printf("%2lf\n",kwadrat(12)); printf("%i\n",4*4); printf("%2lf\n",12*12);
67 Wykład 7 Przetwarzanie wstępne, str 12 #define zastępowanie z parametrami Makro może mieć parametry nazwy pooddzielane przecinkami Przy zastępowaniu parametry są tekstowo (czyli na ślepo, bezmyślnie ) zastępowane argumentami wywołania #define KWADRAT(x) x*x printf("%i\n",kwadrat(4)); printf("%2lf\n",kwadrat(12)); printf("%i\n",4*4); printf("%2lf\n",12*12); Aletrzebauważać
68 Wykład 7 Przetwarzanie wstępne, str 13 #define zastępowanie z parametrami #define KWADRAT(x) x*x printf("%i\n",kwadrat(2+2)); Taka komenda drukuje 8 (zamiast 16)
69 Wykład 7 Przetwarzanie wstępne, str 13 #define zastępowanie z parametrami #define KWADRAT(x) x*x printf("%i\n",kwadrat(2+2)); Taka komenda drukuje 8 (zamiast 16)
70 Wykład 7 Przetwarzanie wstępne, str 13 #define zastępowanie z parametrami #define KWADRAT(x) x*x printf("%i\n",kwadrat(2+2)); Taka komenda drukuje 8 (zamiast 16) Wynik zastąpienia: 2+2*2+2 Lepsza definicja: #define KWADRAT(x)(x)*(x) wynik zastąpienia: (2+2)*(2+2)
71 Wykład 7 Przetwarzanie wstępne, str 13 #define zastępowanie z parametrami #define KWADRAT(x) x*x printf("%i\n",kwadrat(2+2)); Taka komenda drukuje 8 (zamiast 16) Wynik zastąpienia: 2+2*2+2 Lepsza definicja: #define KWADRAT(x)(x)*(x) wynik zastąpienia: (2+2)*(2+2)
72 Wykład 7 Przetwarzanie wstępne, str 14 #define zastępowanie z parametrami #define DLA(I, N) for(i=0; I<(N); I++)
73 Wykład 7 Przetwarzanie wstępne, str 14 #define zastępowanie z parametrami #definedla(i,n)for(i=0;i<(n);i++) pętlapoiod0don
74 Wykład 7 Przetwarzanie wstępne, str 14 #define zastępowanie z parametrami #definedla(i,n)for(i=0;i<(n);i++) pętlapoiod0don Wtedy: w=1; DLA(i,N)w=2*w; obliczapotęgęw=2 N w=1; DLA(i,N)w=w*(i+1); obliczasilnięw=n! DLA(i,n) DLA(j,k) tab[i][j] = 0; zeruje tablicę tab[n][k]
75 Wykład 7 Przetwarzanie wstępne, str 14 #define zastępowanie z parametrami #definedla(i,n)for(i=0;i<(n);i++) pętlapoiod0don Wtedy: w=1; DLA(i,N)w=2*w; obliczapotęgęw=2 N w=1; DLA(i,N)w=w*(i+1); obliczasilnięw=n! DLA(i,n) DLA(j,k) tab[i][j] = 0; zeruje tablicę tab[n][k]
76 Wykład 7 Przetwarzanie wstępne, str 14 #define zastępowanie z parametrami #definedla(i,n)for(i=0;i<(n);i++) pętlapoiod0don Wtedy: w=1; DLA(i,N)w=2*w; obliczapotęgęw=2 N w=1; DLA(i,N)w=w*(i+1); obliczasilnięw=n! DLA(i,n) DLA(j,k) tab[i][j] = 0; zeruje tablicę tab[n][k]
77 Wykład 7 Przetwarzanie wstępne, str 15 #define zastępowanie z parametrami UWAGA NA SPACJE!
78 Wykład 7 Przetwarzanie wstępne, str 15 #define zastępowanie z parametrami UWAGA NA SPACJE! #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro bez parametrów: printf("%i\n",(int)((int)06+(int)(06))); drukuje: 0 #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro z parametrem: printf("%i\n",(int)(06+06)); drukuje: 1
79 Wykład 7 Przetwarzanie wstępne, str 15 #define zastępowanie z parametrami UWAGA NA SPACJE! #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro bez parametrów: printf("%i\n",(int)((int)06+(int)(06))); drukuje: 0 #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro z parametrem: printf("%i\n",(int)(06+06)); drukuje: 1
80 Wykład 7 Przetwarzanie wstępne, str 15 #define zastępowanie z parametrami UWAGA NA SPACJE! #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro bez parametrów: printf("%i\n",(int)((int)06+(int)(06))); drukuje: 0 #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro z parametrem: printf("%i\n",(int)(06+06)); drukuje: 1
81 Wykład 7 Przetwarzanie wstępne, str 15 #define zastępowanie z parametrami UWAGA NA SPACJE! #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro bez parametrów: printf("%i\n",(int)((int)06+(int)(06))); drukuje: 0 #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro z parametrem: printf("%i\n",(int)(06+06)); drukuje: 1
82 Wykład 7 Przetwarzanie wstępne, str 15 #define zastępowanie z parametrami UWAGA NA SPACJE! #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro bez parametrów: printf("%i\n",(int)((int)06+(int)(06))); drukuje: 0 #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro z parametrem: printf("%i\n",(int)(06+06)); drukuje: 1
83 Wykład 7 Przetwarzanie wstępne, str 15 #define zastępowanie z parametrami UWAGA NA SPACJE! #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro bez parametrów: printf("%i\n",(int)((int)06+(int)(06))); drukuje: 0 #define ZLE(int)06+(int) printf("%i\n",(int)(zle(06))); makro z parametrem: printf("%i\n",(int)(06+06)); drukuje: 1
84 Wykład 7 Przetwarzanie wstępne, str 16 #define zastępowanie z parametrami Poprzedzenie parametru makra płotkiem# powoduje ujęcie argumentu w cudzysłów
85 Wykład 7 Przetwarzanie wstępne, str 16 #define zastępowanie z parametrami Poprzedzenie parametru makra płotkiem# powoduje ujęcie argumentu w cudzysłów: #define PYTAJ O(zmienna)\ {printf("%s==",#zmienna);scanf("%i",&zmienna); }
86 Wykład 7 Przetwarzanie wstępne, str 16 #define zastępowanie z parametrami Poprzedzenie parametru makra płotkiem# powoduje ujęcie argumentu w cudzysłów: #define PYTAJ O(zmienna)\ {printf("%s==",#zmienna);scanf("%i",&zmienna); } Wtedy PYTAJ O(N) rozwija się do {printf("%s==","n");scanf("%i",&n); }
87 Wykład 7 Przetwarzanie wstępne, str 16 #define zastępowanie z parametrami Poprzedzenie parametru makra płotkiem# powoduje ujęcie argumentu w cudzysłów: #define PYTAJ O(zmienna)\ {printf("%s==",#zmienna);scanf("%i",&zmienna); } Wtedy PYTAJ O(N) rozwija się do {printf("%s==","n");scanf("%i",&n); } idrukuje N== anastępniewczytujeliczbęcałkowitądozmiennej N
88 Wykład 7 Przetwarzanie wstępne, str 17 #define makra standardowe Komenda: printf(" Data:%s Czas:%s Plik:%s Wiersz:%i\n", DATE, TIME, FILE, LINE ); wydrukowała: Data: Mar Czas: 14:43:33 Plik: testc Wiersz: 5
89 Wykład 7 Przetwarzanie wstępne, str 17 #define makra standardowe Komenda: printf(" Data:%s Czas:%s Plik:%s Wiersz:%i\n", DATE, TIME, FILE, LINE ); wydrukowała: Data: Mar Czas: 14:43:33 Plik: testc Wiersz: 5 DATE data TIME czas(godz:min:sek) FILE przetwarzany plik LINE nrwiersza
90 Wykład 7 Przetwarzanie wstępne, str 17 #define makra standardowe Komenda: printf(" Data:%s Czas:%s Plik:%s Wiersz:%i\n", DATE, TIME, FILE, LINE ); wydrukowała: Data: Mar Czas: 14:43:33 Plik: testc Wiersz: 5 DATE data TIME czas(godz:min:sek) FILE przetwarzany plik LINE nrwiersza
91 Wykład 7 Przetwarzanie wstępne, str 17 #define makra standardowe Komenda: printf(" Data:%s Czas:%s Plik:%s Wiersz:%i\n", DATE, TIME, FILE, LINE ); wydrukowała: Data: Mar Czas: 14:43:33 Plik: testc Wiersz: 5 DATE data TIME czas(godz:min:sek) FILE przetwarzany plik LINE nrwiersza
92 Wykład 7 Przetwarzanie wstępne, str 17 #define makra standardowe Komenda: printf(" Data:%s Czas:%s Plik:%s Wiersz:%i\n", DATE, TIME, FILE, LINE ); wydrukowała: Data: Mar Czas: 14:43:33 Plik: testc Wiersz: 5 DATE data TIME czas(godz:min:sek) FILE przetwarzany plik LINE nrwiersza
93 Wykład 7 Przetwarzanie wstępne, str 18 #define zastosowaniemakr FILE i LINE #define BLAD WEWN\ printf("\nbladwewnetrzny");\ printf("\n Powiadom autora programu podajac:");\ printf("\n nazwepliku:%s", FILE );\ printf("\n numer wiersza:%i\n\n", LINE ); if()bladwewn
94 Wykład 7 Przetwarzanie wstępne, str 18 #define zastosowaniemakr FILE i LINE #define BLAD WEWN\ printf("\nbladwewnetrzny");\ printf("\n Powiadom autora programu podajac:");\ printf("\n nazwepliku:%s", FILE );\ printf("\n numer wiersza:%i\n\n", LINE ); if()bladwewn drukuje: BLAD WEWNETRZNY Powiadom autora programu podajac: nazwe pliku: testc numer wiersza: 10
95 Wykład 7 Przetwarzanie wstępne, str 19 #define zastępowanie z parametrami Napisy, ujęte w cudzysłowy i postawione obok siebie, zlewają się w jeden: char napis[30] ="Maly""dom"; = char napis[30] ="Maly dom";
96 Wykład 7 Przetwarzanie wstępne, str 19 #define zastępowanie z parametrami Napisy, ujęte w cudzysłowy i postawione obok siebie, zlewają się w jeden: char napis[30] ="Maly""dom"; = char napis[30] ="Maly dom"; #define OSTRZEGAJ JESLI(cos zle)\ if(cos zle)\ printf("ostrzezenie:"#coszle"wwierszu%i\n", LINE ); OSTRZEGAJ JESLI(a[i]==0)
97 Wykład 7 Przetwarzanie wstępne, str 19 #define zastępowanie z parametrami Napisy, ujęte w cudzysłowy i postawione obok siebie, zlewają się w jeden: char napis[30] ="Maly""dom"; = char napis[30] ="Maly dom"; #define OSTRZEGAJ JESLI(cos zle)\ if(cos zle)\ printf("ostrzezenie:"#coszle"wwierszu%i\n", LINE ); OSTRZEGAJ JESLI(a[i]==0) if(a[i]==0) printf("ostrzezenie:""a[i]==0"" w wierszu%i\n", 10);
98 Wykład 7 Przetwarzanie wstępne, str 19 #define zastępowanie z parametrami Napisy, ujęte w cudzysłowy i postawione obok siebie, zlewają się w jeden: char napis[30] ="Maly""dom"; = char napis[30] ="Maly dom"; #define OSTRZEGAJ JESLI(cos zle)\ if(cos zle)\ printf("ostrzezenie:"#coszle"wwierszu%i\n", LINE ); OSTRZEGAJ JESLI(a[i]==0) if(a[i]==0) printf("ostrzezenie:""a[i]==0"" w wierszu%i\n", 10); drukuje: OSTRZEZENIE: a[i]==0 w wierszu 10
99 Wykład 7 Przetwarzanie wstępne, str 20 Dziedziczenie wielostronne
100 Wykład 7 Przetwarzanie wstępne, str 20 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: conflicting types for punkt Jak tego uniknąć?
101 Wykład 7 Przetwarzanie wstępne, str 20 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: plik punkth: typedef struct { double x,y; } punkt; plik odcinekh: #include"punkth" typedef struct { punkt pocz,kon; }odcinek; plik trojkath: #include"punkth" typedef struct { punkt w1,w2,w3; }trojkat; conflicting types for punkt Jak tego uniknąć? plik geomc: #include"odcinekh" #include"trojkath" trojkattr={{0,0}, {1,0}, {0,1}};
102 Wykład 7 Przetwarzanie wstępne, str 20 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: plik punkth: typedef struct { double x,y; } punkt; plik odcinekh: #include"punkth" typedef struct { punkt pocz,kon; }odcinek; plik trojkath: #include"punkth" typedef struct { punkt w1,w2,w3; }trojkat; conflicting types for punkt Jak tego uniknąć? plik geomc: #include"odcinekh" #include"trojkath" trojkattr={{0,0}, {1,0}, {0,1}};
103 Wykład 7 Przetwarzanie wstępne, str 20 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: plik punkth: typedef struct { double x,y; } punkt; plik odcinekh: #include"punkth" typedef struct { punkt pocz,kon; }odcinek; plik trojkath: #include"punkth" typedef struct { punkt w1,w2,w3; }trojkat; conflicting types for punkt Jak tego uniknąć? plik geomc: #include"odcinekh" #include"trojkath" trojkattr={{0,0}, {1,0}, {0,1}};
104 Wykład 7 Przetwarzanie wstępne, str 20 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: plik punkth: typedef struct { double x,y; } punkt; plik odcinekh: #include"punkth" typedef struct { punkt pocz,kon; }odcinek; plik trojkath: #include"punkth" typedef struct { punkt w1,w2,w3; }trojkat; conflicting types for punkt Jak tego uniknąć? plik geomc: #include"odcinekh" #include"trojkath" trojkattr={{0,0}, {1,0}, {0,1}};
105 Wykład 7 Przetwarzanie wstępne, str 20 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: plik punkth: typedef struct { double x,y; } punkt; plik odcinekh: #include"punkth" typedef struct { punkt pocz,kon; }odcinek; plik trojkath: #include"punkth" typedef struct { punkt w1,w2,w3; }trojkat; conflicting types for punkt Jak tego uniknąć? plik geomc: #include"odcinekh" #include"trojkath" trojkattr={{0,0}, {1,0}, {0,1}};
106 Wykład 7 Przetwarzanie wstępne, str 21 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: conflicting types for punkt Jak tego uniknąć?
107 Wykład 7 Przetwarzanie wstępne, str 21 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: conflicting types for punkt Jak tego uniknąć? plik punkth: #ifndef PUNKT #define PUNKT typedef struct { double x,y; } punkt; #endif #define PUNKT definiuje makro specyficzne dla pliku punkth
108 Wykład 7 Przetwarzanie wstępne, str 21 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: conflicting types for punkt Jak tego uniknąć? plik punkth: #ifndef PUNKT #define PUNKT typedef struct { double x,y; } punkt; #endif #define PUNKT definiuje makro specyficzne dla pliku punkth
109 Wykład 7 Przetwarzanie wstępne, str 21 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: conflicting types for punkt Jak tego uniknąć? plik punkth: #ifndef PUNKT #define PUNKT typedef struct { double x,y; } punkt; #endif #define PUNKT definiuje makro specyficzne dla pliku punkth Część programu między #ifndef PUNKT a #endif jest wykonywana tylko wtedy, gdy makro PUNKT jest niezdefiniowane To się może zdarzyć tylko jeden raz
110 Wykład 7 Przetwarzanie wstępne, str 21 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: conflicting types for punkt Jak tego uniknąć? plik punkth: #ifndef PUNKT #define PUNKT typedef struct { double x,y; } punkt; #endif #define PUNKT definiuje makro specyficzne dla pliku punkth Część programu między #ifndef PUNKT a #endif jest wykonywana tylko wtedy, gdy makro PUNKT jest niezdefiniowane To się może zdarzyć tylko jeden raz
111 Wykład 7 Przetwarzanie wstępne, str 21 Dziedziczenie wielostronne Wwyniku wielostronnego dziedziczenia przez #include dojść może do wielokrotnej definicji tego samego typu Błąd: conflicting types for punkt Jak tego uniknąć? plik punkth: #ifndef PUNKT #define PUNKT typedef struct { double x,y; } punkt; #endif #define PUNKT definiuje makro specyficzne dla pliku punkth Część programu między #ifndef PUNKT a #endif jest wykonywana tylko wtedy, gdy makro PUNKT jest niezdefiniowane To się może zdarzyć tylko jeden raz Wobec tego typ punkt zostanie zdefiniowany tylko raz
112 Wykład 7 Przetwarzanie wstępne, str 22 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif
113 Wykład 7 Przetwarzanie wstępne, str 22 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif ( poprzednioomawianakonstrukcja#ifndef#endif też jest przykładem kompilacji warunkowej )
114 Wykład 7 Przetwarzanie wstępne, str 22 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif ( poprzednioomawianakonstrukcja#ifndef#endif też jest przykładem kompilacji warunkowej ) Te dyrektywy włączają do kompilacji fragmenty programu np w zależności od używanej maszyny lub systemu operacyjnego lub kompilatora
115 Wykład 7 Przetwarzanie wstępne, str 22 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif ( poprzednioomawianakonstrukcja#ifndef#endif też jest przykładem kompilacji warunkowej ) Te dyrektywy włączają do kompilacji fragmenty programu np w zależności od używanej maszyny lub systemu operacyjnego lub kompilatora, stadium uruchamiania programu wydruki testowe, ostatecznie usuwane
116 Wykład 7 Przetwarzanie wstępne, str 22 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif ( poprzednioomawianakonstrukcja#ifndef#endif też jest przykładem kompilacji warunkowej ) Te dyrektywy włączają do kompilacji fragmenty programu np w zależności od używanej maszyny lub systemu operacyjnego lub kompilatora, stadium uruchamiania programu wydruki testowe, ostatecznie usuwane, chwilowego wyboru wersji
117 Wykład 7 Przetwarzanie wstępne, str 22 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif ( poprzednioomawianakonstrukcja#ifndef#endif też jest przykładem kompilacji warunkowej ) Te dyrektywy włączają do kompilacji fragmenty programu np w zależności od używanej maszyny lub systemu operacyjnego lub kompilatora, stadium uruchamiania programu wydruki testowe, ostatecznie usuwane, chwilowego wyboru wersji, itp
118 Wykład 7 Przetwarzanie wstępne, str 23 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif #ifwarunek 0 program 0 #elifwarunek 1 program 1 #elifwarunek 2 program 2 #elifwarunek n program n #elseprogram n+1 #endif
119 Wykład 7 Przetwarzanie wstępne, str 23 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif #ifwarunek 0 program 0 #elifwarunek 1 program 1 #elifwarunek 2 program 2 #elifwarunek n program n #elseprogram n+1 #endif jeślispełnionyjestwarunek 0, tokompilowanyjesttylkoprogram 0 jeślispełnionyjestwarunek 1, tokompilowanyjesttylkoprogram 1 itd jeśli nie jest spełniony żaden z warunków, tokompilowanyjesttylkoprogram n+1
120 Wykład 7 Przetwarzanie wstępne, str 23 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif #ifwarunek 0 program 0 #elifwarunek 1 program 1 #elifwarunek 2 program 2 #elifwarunek n program n #elseprogram n+1 #endif jeślispełnionyjestwarunek 0, tokompilowanyjesttylkoprogram 0 jeślispełnionyjestwarunek 1, tokompilowanyjesttylkoprogram 1 itd jeśli nie jest spełniony żaden z warunków, tokompilowanyjesttylkoprogram n+1
121 Wykład 7 Przetwarzanie wstępne, str 23 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif #ifwarunek 0 program 0 #elifwarunek 1 program 1 #elifwarunek 2 program 2 #elifwarunek n program n #elseprogram n+1 #endif jeślispełnionyjestwarunek 0, tokompilowanyjesttylkoprogram 0 jeślispełnionyjestwarunek 1, tokompilowanyjesttylkoprogram 1 itd jeśli nie jest spełniony żaden z warunków, tokompilowanyjesttylkoprogram n+1
122 Wykład 7 Przetwarzanie wstępne, str 23 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif #ifwarunek 0 program 0 #elifwarunek 1 program 1 #elifwarunek 2 program 2 #elifwarunek n program n #elseprogram n+1 #endif jeślispełnionyjestwarunek 0, tokompilowanyjesttylkoprogram 0 jeślispełnionyjestwarunek 1, tokompilowanyjesttylkoprogram 1 itd jeśli nie jest spełniony żaden z warunków, tokompilowanyjesttylkoprogram n+1 Niekompilowanie niepotrzebnego kodu daje oszczędność pamięci
123 Wykład 7 Przetwarzanie wstępne, str 24 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif Przykład: M(Patrz 07-Sortowanie/)
124 Wykład 7 Przetwarzanie wstępne, str 24 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif Przykład: M(Patrz 07-Sortowanie/) W pliku sorth można wybrać jeden z algorytmów: #define BUBBLE //#define INSERTION //#definemerge
125 Wykład 7 Przetwarzanie wstępne, str 24 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif Przykład: M(Patrz 07-Sortowanie/) W pliku sorth można wybrać jeden z algorytmów: #define BUBBLE //#define INSERTION //#definemerge Wpliku sortc temuwyborowi odpowiada kompilacja warunkowa:
126 Wykład 7 Przetwarzanie wstępne, str 24 Kompilacja warunkowa dyrektywy#if,#else,#elif,#endif Przykład: M(Patrz 07-Sortowanie/) W pliku sorth można wybrać jeden z algorytmów: #define BUBBLE //#define INSERTION //#definemerge Wpliku sortc temuwyborowi odpowiada kompilacja warunkowa: #if defined BUBBLE void sort(double tab[wlk TABLICY]) { sortowaniebąbelkowe } #elif defined INSERTION void sort(double tab[wlk TABLICY]) { sortowanieprzezwstawianie } #elif defined MERGE void sort(double tab[wlk TABLICY]) { sortowanieprzezscalanie } #else #error"nieznany algorytm sortowania" #endif
127 Wykład 7 Przetwarzanie wstępne, str 25 Jak automatycznie uzyskać wynik preprocessingu?
128 Wykład 7 Przetwarzanie wstępne, str 25 Jak automatycznie uzyskać wynik preprocessingu? Komenda gcc-e-ccplikzdyrektywami dokonuje przetwarzania wstępnego i niczego więcej; i drukuje tekst z rozwiniętymi dyrektywami
129 Wykład 7 Przetwarzanie wstępne, str 25 Jak automatycznie uzyskać wynik preprocessingu? Komenda gcc-e-ccplikzdyrektywami dokonuje przetwarzania wstępnego i niczego więcej; i drukuje tekst z rozwiniętymi dyrektywami: #define mleka piwa #define tego ten #define szczescie zly los #define czeka wykiwa Kto wypije mleka, tego szczescie czeka Kto wypije mleka, tego szczescie czeka
130 Wykład 7 Przetwarzanie wstępne, str 25 Jak automatycznie uzyskać wynik preprocessingu? Komenda gcc-e-ccplikzdyrektywami dokonuje przetwarzania wstępnego i niczego więcej; i drukuje tekst z rozwiniętymi dyrektywami: #define mleka piwa #define tego ten #define szczescie zly los #define czeka wykiwa Kto wypije mleka, tego szczescie czeka Kto wypije piwa, ten zly los wykiwa
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ółowoKatedra 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ółowoWykład. Materiały bazują częściowo na slajdach Marata Dukhana
Wykład Materiały bazują częściowo na slajdach Marata Dukhana Języki programowania Kompilowane np. C, C++, Pascal Interpretowane np. JavaScript, PHP, Python, VBA Pośrednie np. Java, C# Znane kompilatory
Bardziej szczegółowoCo nie powinno być umieszczane w plikach nagłówkowych:
Zawartość plików nagłówkowych (*.h) : #include #define ESC 27 dyrektywy dołączenia definicje stałych #define MAX(x,y) ((x)>(y)?(x):(y)) definicje makr int menu(char* tab[], int ilosc); struct
Bardziej szczegółowoAbstrakcyjne struktury danych w praktyce
Abstrakcyjne struktury danych w praktyce Wykład 13 7.4 notacja polska A.Szepietowski Matematyka dyskretna rozdział.8 stos kompilacja rozłączna szablony funkcji Przypomnienie Drzewo binarne wyrażenia arytmetycznego
Bardziej szczegółowo1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Bardziej szczegółowoPodział programu na moduły
Materiały Podział programu na moduły Informatyka Szczegółowe informacje dotyczące wymagań odnośnie podziału na moduły: http://www.cs.put.poznan.pl/wcomplak/bfiles/c_w_5.pdf Podział programu na moduły pozwala
Bardziej szczegółowoW 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ółowoDeklaracje. 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ółowoPreprocesor. natychmiast następuje \n są usuwane następny wiersz zostaje połączony z tym, w którym był znak \ o usuwane są wszystkie komentarze są
Preprocesor włącza się automatycznie, bez udziału uŝytkownika poprzedza kompilację dokonuje konwersji tekstu realizuje dyrektywy (linie zaczynające się od znaku #) dyrektywy mogą wystąpić w dowolnym miejscu
Bardziej szczegółowoMETODY 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ółowoWstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 3. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dyrektywy preprocesora #include #define Interakcja
Bardziej szczegółowoZaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce
Zaawansowane programowanie w języku C++ Funkcje uogólnione - wzorce Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Bardziej szczegółowoLaboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów. mgr inż. Arkadiusz Chrobot
Laboratorium 3: Preprocesor i funkcje ze zmienną liczbą argumentów mgr inż. Arkadiusz Chrobot 10 listopada 2010 1 Preprocesor Preprocesor jest programem uruchamianym przed właściwym procesem kompilacji
Bardziej szczegółowoJęzyk C - podstawowe informacje
Język C - podstawowe informacje Michał Rad AGH Laboratorium Maszyn Elektrycznych 2014-12-05 Outline Program w języku C Funkcje Składnia Instrukcje sterujace Na koniec... Po kolei napisać program (zwykły
Bardziej szczegółowozastępować zarezerwowane słowa lub symbole innymi,
Wykład 7 7. Preprocesor i dyrektywy kompilatora 7.1. Makrodefinicje proste 7.2. Makrodefinicje parametryczne 7.3. Usuwanie definicji makra 7.4. Włączanie innych zbiorów do tekstu programu 7.5. Dyrektywy
Bardziej szczegółowoPoprzedni wykład [ ] :
Poprzedni wykład [ 20.11.2018 ] : - Funkcje w języku C (definicje i prototypy) - Struktura programu: Zmienne zewnętrzne, zasięg nazw; programy wieloplikowe (wprowadzenie) - Klasy pamięci: static, register
Bardziej szczegółowoTemat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.
Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,
Bardziej szczegółowoPodstawy programowania. Wykład 9 Preprocesor i modularna struktura programów. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 9 Preprocesor i modularna struktura programów Krzysztof Banaś Podstawy programowania 1 Programy Większość programów w C stanowią rozbudowane kody, definiujące wiele funkcji
Bardziej szczegółowoPodstawy 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#line #endif #ifndef #pragma
8.1 Instrukcje preprocesorowe... 1 8.1.1 Instrukcja #define... 1 8.1.2 Instrukcje #pragma... 2 8.2 Polecenie _asm... 3 8.3 Polecenie declspec... 4 8.4 Definiowanie makr... 5 8.5 Programy wieloplikowe,
Bardziej szczegółowoJęzyki programowania obiektowego Nieobiektowe elementy języka C++
Języki programowania obiektowego Nieobiektowe elementy języka C++ Roman Simiński roman.siminski@us.edu.pl www.programowanie.siminskionline.pl Preprocesor koncepcja, rola zasady wykorzystania Co to jest
Bardziej szczegółowoElementy 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ółowoCwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR
Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR Zadanie polega na napisaniu pierwszego programu w języku C, jego poprawnej kompilacji i wgraniu na mikrokontroler. W tym celu należy zapoznać
Bardziej szczegółowoProgramowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33
Programowanie w C++ Wykład 8 Katarzyna Grzelak 15 kwietnia 2019 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Bardziej szczegółowoFunkcja (podprogram) void
Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji
Bardziej szczegółowoWykł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ółowoProgramowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30
Programowanie w C++ Wykład 9 Katarzyna Grzelak 14 maja 2018 K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe plus
Bardziej szczegółowo1 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ółowoFunkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów
Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików
Bardziej szczegółowoISO/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ółowoWstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Bardziej szczegółowoPodstawy 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ółowoWstę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ółowoWstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania
Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe
Bardziej szczegółowoProgramowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31
Programowanie w C++ Wykład 8 Katarzyna Grzelak 7 maja 2018 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31 STL - powtórzenie STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki:
Bardziej szczegółowoPodstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
Bardziej szczegółowoWYKŁAD 1 - KONSPEKT. Program wykładu:
mgr inż. Jarosław Forenc e-mail: jarekf@pb.bialystok.pl tel. (0-85) 746-93-97 WWW: http://we.pb.bialystok.pl/~jforenc konsultacje: zaliczenie: Program wykładu: WYKŁAD 1 - KONSPEKT 1. Ogólna struktura programu
Bardziej szczegółowoProgramowanie Proceduralne
Programowanie Proceduralne Makefile Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 14 Co to jest Makefile Makefile jest plikiem reguł dla programu make. Wykorzystywany jest
Bardziej szczegółowoZmienne, 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ółowoPodstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
Bardziej szczegółowoPodstawy 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ółowo1 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ółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowoStałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane
Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane Stałe Oprócz zmiennych w programie mamy też stałe, które jak sama nazwa mówi, zachowują swoją wartość przez cały czas działania programu. Można
Bardziej szczegółowoProgramowanie 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ółowoPMiK Programowanie Mikrokontrolera 8051
PMiK Programowanie Mikrokontrolera 8051 Wykład 3 Mikrokontroler 8051 PMiK Programowanie mikrokontrolera 8051 - wykład S. Szostak (2006) Zmienna typu bit #define YES 1 // definicja stałych #define NO 0
Bardziej szczegółowoProgramowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 6 Katarzyna Grzelak kwiecień 2019 K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40 STL - powtórzenie STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki:
Bardziej szczegółowoTypy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1
Typy złożone Struktury, pola bitowe i unie. Programowanie Proceduralne 1 Typy podstawowe Typy całkowite: char short int long Typy zmiennopozycyjne float double Modyfikatory : unsigned, signed Typ wskaźnikowy
Bardziej szczegółowoProgramowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 12 Katarzyna Grzelak 28 maja 2018 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Klasy cd K.Grzelak (Wykład 12) Programowanie w C++ 2 / 27 Klasy - powtórzenie Klasy typy definiowane
Bardziej szczegółowoKompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main
Język obiektowy Wykład 13 Programowanie obiektowe z lotu ptaka, str 1 James Gosling, Mike Sheridan, Patrick Naughton Sun Microsystems 1995(20latmłodszyodC) C jest językiem proceduralnym Java jest językiem
Bardziej szczegółowoWstę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ółowoPodstawy 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ółowoWstę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ółowoBłę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ółowoI - Microsoft Visual Studio C++
I - Microsoft Visual Studio C++ 1. Nowy projekt z Menu wybieramy File -> New -> Projekt -> Win32 Console Application w okienku Name: podajemy nazwę projektu w polu Location: wybieramy miejsce zapisu i
Bardziej szczegółowoProgramowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30
Programowanie w C++ Wykład 11 Katarzyna Grzelak 13 maja 2019 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Klasy cd K.Grzelak (Wykład 11) Programowanie w C++ 2 / 30 Klasy - powtórzenie Klasy typy definiowane
Bardziej szczegółowo1. 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ółowoC++. Leksykon kieszonkowy
IDZ DO PRZYK ADOWY ROZDZIA KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE O NOWOCIACH ZAMÓW CENNIK CZYTELNIA SPIS TRECI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY
Bardziej szczegółowoTablice 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ółowoProgramowanie I. O czym będziemy mówili. Plan wykładu nieco dokładniej. Plan wykładu z lotu ptaka. Podstawy programowania w językach. Uwaga!
Programowanie I O czym będziemy mówili Podstawy programowania w językach proceduralnym ANSI C obiektowym Java Uwaga! podobieństwa w podstawowej strukturze składniowej (zmienne, operatory, instrukcje sterujące...)
Bardziej szczegółowoTablice, 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ółowoProgramowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie
Bardziej szczegółowoC++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU
Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale
Bardziej szczegółowoPrzekazywanie argumentów wskaźniki
Przekazywanie argumentów wskaźniki klasyczne wywołanie wyliczenie i zwrotne przekazanie tylko jednej wielkości moŝliwość uŝycia zmiennych globalnych niebezpieczeństwa z tym związane wyjście wywołanie funkcji
Bardziej szczegółowoJęzyk C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
Bardziej szczegółowoLaboratorium Podstaw Informatyki. Kierunek Elektrotechnika. Ćwiczenie 1. Podstawy. Wprowadzenie do programowania w języku C. Katedra Metrologii AGH
Laboratorium Podstaw Informatyki Kierunek Elektrotechnika Ćwiczenie 1 Podstawy Wprowadzenie do programowania w języku C Kraków 2010 Twój pierwszy program w C Program w języku C, jak i w wielu innych językach
Bardziej szczegółowoPodstawy 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ółowoStruktura 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ółowoFunctionalization. Jeszcze o funkcjach i strukturze projektu. Marcin Makowski. 3 grudnia Zak lad Chemii Teoretycznej UJ
Jeszcze o funkcjach i strukturze projektu Zak lad Chemii Teoretycznej UJ 3 grudnia 2008 1 2 3 4 5 typedef Plan typedef specyfikator typu nazwa S luży do stworzenia nowej nazwy dla jakiegoś typu. Nazwa
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami
Bardziej szczegółowoProgramowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35
Programowanie w C++ Wykład 3 Katarzyna Grzelak 12 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35 Zakres ważności obiektów K.Grzelak (Wykład 1) Programowanie w C++ 2 / 35 Zakres ważności obiektów
Bardziej szczegółowoWykład 1
Wstęp do programowania 1 Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Wprowadzenie Cel wykładów z programowania proceduralnego Wykład jest poświęcony językowi C i jego
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji (1) Algorytmy liniowe Algorytmy z rozgałęzieniami
Bardziej szczegółowoWzorce funkcji (szablony)
Wzorce funkcji (szablony) Wzorce funkcji (ang. function template) dają możliwość wielokrotnego wykorzystywania tego samego kodu funkcji dla różnych typów danych. Załóżmy, że chcemy zdefiniować funkcję
Bardziej szczegółowoPodstawy programowania komputerów
Podstawy programowania komputerów Wykład 14: Programowanie współbieżne w C Definicja programowania współbieżnego Programowanie współbieżne jest tworzeniem programów, których wykonanie powoduje uruchomienie
Bardziej szczegółowoFunctionalization. Funkcje w C. Marcin Makowski. 30 listopada Zak lad Chemii Teoretycznej UJ
w C Zak lad Chemii Teoretycznej UJ 30 listopada 2006 1 2 3 Inicjalizacja zmiennych Zmienne jednowymiarowe można inicjować przy ich definicji. #include i n t x = 1 ; l o n g day = 1000L * 60L
Bardziej szczegółowoPodstawy 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ółowoKomentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)
Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty) // to jest pojedynczy komentarz (1-linijkowy) to jest wielolinijkowy komentarz Budowa "czystego" skryptu PHP (tak
Bardziej szczegółowoRodzaje błędów w programach. Wykład9.UWAGIOGÓLNE,str.1
Wykład9.UWAGIOGÓLNE,str.1 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. Wykład9.UWAGIOGÓLNE,str.1
Bardziej szczegółowowykład III uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - zarządzanie pamięcią, struktury,
, Programowanie, uzupełnienie notatek: dr Jerzy Białkowski , 1 2 3 4 , Wczytywanie liczb , Wczytywanie liczb 1 #include 2 #include < s t d l i b. h> 3 4 int main ( ) { 5 int rozmiar, numer
Bardziej szczegółowoPodstawowe 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ółowoPROGRAMOWANIE w C prolog
PROGRAMOWANIE w C prolog dr inż. Jarosław Stańczyk Uniwersytet Przyrodniczy we Wrocławiu Wydział Biologii i Hodowli Zwierząt Katedra Genetyki 1 / jaroslaw.stanczyk@up.wroc.pl programowanie w c 17.10.2014
Bardziej szczegółowoWstę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ółowoWykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:
Program przedmiotu Programowanie (język C++) Wykład 1. Język C a C++. Definiowanie prostych klas. Typy referencyjne. Domyślne wartości argumentów. PrzeciąŜanie funkcji. Konstruktory, destruktory. Definiowanie
Bardziej szczegółowoAutomatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {
Przeciążanie a dziedziczenie class Integer2: public Integer Operatory, z wyjątkiem operatora przypisania są automatycznie dziedziczone w klasach pochodnych. Integer2(int i): Integer(i) Automatyczne tworzenie
Bardziej szczegółowoJę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ółowoJęzyk C część 1. Sformułuj problem Zanalizuj go znajdź metodę rozwiązania (pomocny może byd algorytm) Napisz program Uruchom i przetestuj czy działa
Język C część 1 Literatura [1] Brian W. Kernighan, Dennis M. Ritchie: Język ANSI C, Wydawnictwa Naukowo Techniczne, Warszawa 2003 [2] Anna Strudzioska-Walczak, Krzysztof Walczak, Nakuka programowania dla
Bardziej szczegółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Bardziej szczegółowoPodstawy 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ółowoInżynieria Wytwarzania Systemów Wbudowanych
GUT Intel 2015/16 1/30 Inżynieria Wytwarzania Systemów Wbudowanych Wykład 3 Iwona Kochańska Katedra Systemów Elektroniki Morskiej WETI PG October 18, 2018 Dobre praktyki GUT Intel 2015/16 2/30 Przenośność
Bardziej szczegółowoProgramowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw
Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej
Bardziej szczegółowoSzablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Bardziej szczegółowoProgramowanie - wykład 4
Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include
Bardziej szczegółowoPytania 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ółowoLaboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
Bardziej szczegółowoSpis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO Rozdział 1. Wybór i instalacja kompilatora języka Pascal 1.1. Współczesne wersje kompilatorów Pascala 1.2. Jak zainstalować
Bardziej szczegółowoIX. Wskaźniki.(3 godz.)
Opracowała: dr inż. Anna Dubowicka Uczelniane Centrum Komputerowe PK IX. Wskaźniki.(3 godz.) Wskaźnik jest zmienną, która zawiera adres innej. 1. Definiowanie wskaźników. typ * nazwa ; gdzie: znak * informuje
Bardziej szczegółowoC-struktury wykład. Dorota Pylak
C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.
Bardziej szczegółowoPodstawy 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