Here comes the sun - Wydział Chemii UJ

Transkrypt

Here comes the sun - Wydział Chemii UJ
Here comes the sun
Wyklad niesystematyczny
Marcin Makowski
Zaklad Chemii Teoretycznej UJ
24 października 2008
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
1
Wstep
,
2
Kod źródlowy → program
3
Przeglad
w przykladach
, jezyka
,
4
Gdzie szukać narzedzi
i informacji?
,
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Troche, historii
Prehistoria: ALGOL, COBOL, FORTRAN
. . . i prosta, droga, do C . . .
BCPL
B (pierwszy Unix)
C (Ritchie, przepisany caly kod Unix-a, 1973)
C Programming Language, Kernighan, Ritchie, 1978
C++, Java, Perl, PHP, . . .
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Standardy jezyka
oraz C vs C++
,
Standardy C
C89
C90
C99
C a C++
C nie jest podzbiorem C++
C nie jest kompatybilny z C++
poprawny kod w C może być niepoprawnym kodem w C++
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Cechy jezyka
,
prosty i minimalistyczny
w praktycznych zastosowaniach silnie oparty na bibliotekach
niskopoziomowy
programy w C zbudowane sa, w zasadzie z dwojakiego rodzaju
klocków:
funkcji - zawieraja, instrukcje określajace,
jakie operacje należy
,
wykonać
zmiennych - przechowuja, wartości używane podczas procesu
obliczeniowego
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Fazy kompilacji
Co sie, dzieje gdy:
stworze, plik z kodem
źródlowym programu w C
. . . i postanowie, go
skompilować . . .
gcc my superb code.c?
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Podzial odpowiedzialności
Preprocesor
Bierze kod źródlowy, usuwa komentarze, realizuje dyrektywy
preprocesora (oznaczane przez #).
Kompilator
Bierze kod otrzymany od preprocesora, wykonuje optymalizacje, i
tlumaczenie na jezyk
maszynowy (asembler).
,
Asembler
Tworzy pliki obiektowe - *.o (Unix), *.obj (MS DOS).
Linker
Bierze pliki obiektowe, dolacza
potrzebne biblioteki, tworzy plik z
,
kodem wykonywalnym (program).
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Najpiekniejszy
najkrótszy program świata
,
#i n c l u d e < s t d i o . h>
/ * Wypisz H e l l o w o r l d
*/
i n t main ( )
{
p r i n t f ( ” H e l l o w o r l d \n ” ) ;
return 0;
}
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
$$$ . . .
#i n c l u d e < s t d i o . h>
#d e f i n e USD to PLN 2 . 5
/ * P r z e l i c z podana kwote w USD na PLN .
W e r s j a z d e f i n e */
i n t main ( )
{
d o u b l e USD amount ;
d o u b l e PLN amount ;
p r i n t f ( ” I l e USD?\ n ” ) ;
s c a n f ( ”% l f ” , &USD amount ) ;
PLN amount = USD to PLN * USD amount ;
p r i n t f ( ”USD : % l f PLN % l f \n ” , USD amount , PLN amount ) ;
return 0;
}
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
$$$ . . . jeszcze raz
#i n c l u d e < s t d i o . h>
/ * P r z e l i c z podana kwote w USD na PLN .
W e r s j a z c o n s t */
i n t main ( )
{
d o u b l e USD amount , PLN amount ;
c o n s t d o u b l e USD to PLN = 2 . 5 ;
p r i n t f ( ” I l e USD?\ n ” ) ;
s c a n f ( ”% l f ” , &USD amount ) ;
PLN amount = USD to PLN * USD amount ;
p r i n t f ( ”USD : % l f PLN % l f \n ” , USD amount , PLN amount ) ;
return 0;
}
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Petla
,
#i n c l u d e < s t d i o . h>
/ * P r z e l i c z kwoty od 5 do 100 USD na PLN ,
k r o k : 5 USD * /
i n t main ( )
{
d o u b l e USD amount , PLN amount ;
c o n s t d o u b l e b e g i n = 5 . 0 , end = 1 0 0 . 0 , s t e p = 5 . 0 ;
c o n s t d o u b l e USD to PLN = 2 . 5 ;
USD amount = b e g i n ;
w h i l e ( USD amount <= end ) {
PLN amount = USD to PLN * USD amount ;
p r i n t f ( ”USD : % l f PLN % l f \n ” , USD amount , PLN amount ) ;
USD amount += s t e p ;
}
return 0;
}
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
... i jeszcze jedna petla
,
#i n c l u d e < s t d i o . h>
/ * P r z e l i c z kwoty od 5 do 100 USD na PLN ,
k r o k : 5 USD , u z y c i e p e t l i f o r * /
i n t main ( )
{
d o u b l e USD amount ;
c o n s t d o u b l e b e g i n = 5 . 0 , end = 1 0 0 . 0 , s t e p = 5 . 0 ;
c o n s t d o u b l e USD to PLN = 2 . 5 ;
f o r ( USD amount = b e g i n ; USD amount <= end ; USD amount += s t e p )
p r i n t f ( ”USD : % l f PLN % l f \n ” , USD amount , USD to PLN * USD amount ) ;
return 0;
}
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Kopiowanie znaków
#i n c l u d e < s t d i o . h>
/ * K o p i u j z n a k i z w e j s c i a na w y j s c i e
*/
i n t main ( )
{
int c ;
c = getchar ( ) ;
w h i l e ( c != EOF) {
putchar ( c ) ;
c = getchar ( ) ;
}
return 0;
}
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
i zliczanie ...
#i n c l u d e < s t d i o . h>
/ * Z l i c z a j z n a k i na w e j s c i u
*/
i n t main ( )
{
u n s i g n e d amount = 0 ;
w h i l e ( g e t c h a r ( ) != EOF)
amount++;
p r i n t f ( ”Razem %u z n a k i \n ” , amount ) ;
return 0;
}
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Tablica
#i n c l u d e < s t d i o . h>
/ * Wypisz k o l e j n e l i c z b y c i a g u F i b o n a c c i e g o ,
F 0 , . . . F 23 * /
i n t main ( )
{
int fibonacci [24];
int i ;
fibonacci [0] = 0;
fibonacci [1] = 1;
f o r ( i = 2 ; i < 2 4 ; i ++)
f i b o n a c c i [ i ] = f i b o n a c c i [ i −1] + f i b o n a c c i [ i −2];
f o r ( i = 0 ; i < 2 4 ; i ++)
p r i n t f ( ”%3d
%6d\n ” , i , f i b o n a c c i [ i ] ) ;
}
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Funkcja zjadajaca
wlasny ogon
,
#i n c l u d e < s t d i o . h>
/ * Wypisz k o l e j n e l i c z b y c i a g u F i b o n a c c i e g o ,
F 0 , . . . F 23
w e r s j a z r e k u r e n c y j n y m wywolaniem f u n k c j i
*/
int fibonacci ( int );
i n t main ( )
{
f o r ( i n t i = 0 ; i < 2 4 ; i ++)
p r i n t f ( ”%3d
%6d\n ” , i , f i b o n a c c i ( i ) ) ;
return 0;
}
int fibonacci ( int i )
{
i f ( i == 0 )
return 0;
i f ( i == 1 )
return 1;
i f ( i > 1)
r e t u r n f i b o n a c c i ( i − 1) + f i b o n a c c i ( i − 2 ) ;
}
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Kompilatory
http://www.thefreecountry.com/compilers/cpp.shtml
Linki do darmowych kompilatorów C/C++.
GCC - Linux
Intel - Linux
Cygwin - Windows
Mingw - Windows
Open Watcom - Windows
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Zasoby w sieci
http://www.chemia.uj.edu.pl/~makowskm/c_course.html
Materialy zwiazane
z tym kursem.
,
http://galaxy.uci.agh.edu.pl/~chwastek/lectures/C/
spis.html
Folie do wykladów by AGH.
http://www.cprogramming.com/
Your resource for C and C++.
http:
//www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf
Techniczny i szczególowy opis standardu C99.
Marcin Makowski
Here comes the sun
Plan
Wstep
,
Kod źródlowy → program
Przeglad
j
ezyka
w
przyk
ladach
,
,
Gdzie szukać narzedzi
i informacji?
,
Ksiażki
,
Jezyk
ANSI C, Kernighan B.W., Ritchie D.M., WNT
,
Klasyczny podrecznik
napisany przez twórców jezyka.
Zgodny ze
,
,
standardem ANSI C.
Jezyk
C. Szkola programowania, Prata S., Helion
,
Obszerny, zgodny z C99. Oprócz kursu C, zagadnienia zwiazane
z
,
algorytmika, i strukturami danych.
Jezyk
C. Programowanie, Oualline A., Helion
,
Podobno dobry podrecznik.
Podobno źle przetlumaczony.
,
Marcin Makowski
Here comes the sun

Podobne dokumenty