You are on page 1of 18

Informatyka

Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Informatyka I

Tomasz Bobiński

pokój 113, tbobinski@meil.pw.edu.pl


Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Regulamin przedmiotu i zasady zaliczenia

strona www
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Źródła

• Internet
• C / C++ tutoriale
• Stack Overflow
• Google, Bing, Duck Duck Go ...
• Visual Studio 2015 Community or Visual Studio 2013
• praktyka, praktyka, praktyka ...
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Programowanie

• Pisanie intrukcji pozwalających


komputerowi wykonywanie
określonych zadań
• Ada Lovelace (1815 - 1852) -
pierwsza programistka

Źródło: Wikipedia, Science Museum / Science & Society Picture

Library
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Język C

• Dennis Ritchie – AT&T Bell Laboratories - 1972


• Język programowania C - pierwsza specyfikacja - 1978
• 1989: ANSI C89, 1990: ISO C90
• 1999: C99 standard
• Nadal stosowany i na pewno pozostanie jeszcze przez pewien czas
• Szeroki zakres zastosowań. Systemy operacyjne, mikrokontrolery,
bankomaty ...
• Sprawność i wydajność
• Zapewnia dostęp nisko-poziomowy
• Wpłynął na C++, Obj. C, C#, Java, ...
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Pierwszy program
• Plik tekstowy z rozszerzeniem .c (lub .cpp ...)
• Może być edytowany z użyciem edytora tekstowego (lub
dedykowanych programów)
• // pojedyncza linia komentarza, która nie jest
przetwarzana/interpretowana
• /* obszar komentarza (może być wiele linii), który nie jest
przetwarzany */
1 /* Krotki opis programu ( co robi , jak jest zbudowany ...) */
2 # include < stdio .h > // biblioteka wejscie / wyjscie ( input / output )
3
4 int main ()
5 {
6 printf ( " ␣ Witamy ␣ studentow ␣ pierwszego ␣ roku !! ␣ \ n ␣ " ) ;
7 }

• # linie rozpoczynające się od hash’a to dyrektywy preprocesora


• Musi być wyłącznie jedna funkcja główna!
• Uwaga na nawiasy!!
• (Prawie) wszystkie instrukcje kończą się średnikiem ;
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Kompilacja i uruchamianie
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY


Podstawowe elementy języka C
Dozwolone znaki

• a-z - małe litery


• A-Z - duże litery - różnica !
• 0-9 - cyfry
• (), [], - nawiasy
• +, -, *, /, % - operacje
• \, !, <, =, >
• &, @, . , , , : , ; , ’, ", #,
• Będzie więcej!
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY


Podstawowe elementy języka C
Kluczowe słowa

auto double int struct


breach else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY


Podstawowe elementy języka C
Nazwy zdefiniowane przez programistę

• Nazwy funkcji, zmiennych, stałych ...


• Dowolona sekwencja znaków, cyfr oraz podkreślenia
• WAŻNE: Pierwszy znak musi być znakiem
• Nie może być słowem kluczowym
• ax123(), x1(), dominateTheWorld(), ruleGalaxy111(), ...
• Zwyczajowo rozpoczynamy od małej litery
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Komentarze - ignorowane przez kompilator

Do czego służą nam komentarze?


• do wyjaśnienia kodu
• do opisania co program (lub fragment) robi
• jako notatki
• jako rozrywka :)
1 /* To jest komentarz skladajacy sie
2 z wielu linii .
3 Moze zajmowac dowolna ilosc
4 liniii az do wystapienia */
5
6 // This is a single line comment , it stretches until the end of
line . If there is no " new line " and the line is folded , it
is still a single line .
7
8 // sometimes I believe compiler ignores all my comments
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Rzeczywiste przykłady komentarzy

Komentarz znaleziony na Stack Overflow jako przestroga ...


1 //
2 // Dear maintainer :
3 //
4 // Once you are done trying to ’ optimize ’ this routine ,
5 // and have realized what a terrible mistake that was ,
6 // please increment the following counter as a warning
7 // to the next guy :
8 //
9 // t o t a l _ h o u r s _ w a s t e d _ h e r e = 42
10 //
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Program structure

1 /* Opis programu - nie obowiazkowy ale wypada napisac */


2 # include < stdio .h >
3 # define PI 4.0* atan (1.0) // ale trzeba okreslic co to atan (1.0)
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Struktura programu

1/* Opis programu - nie obowiazkowy ale wypada napisac */


2 # include < stdio .h > // Komendy preprocesora rozpoczynaja sie od
znaku \#
3 # include < math .h >
4 # define PI 4.0* atan (1.0) // Stala symboliczna , brak srednika na
koncu ";"
5
6 int main ()
7 {
8
9 }
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Struktura programu

1 /* Opis programu - nie obowiazkowy ale wypada napisac */


2 # include < stdio .h > // Komendy preprocesora rozpoczynaja sie od
znaku \#
3 # include < math .h >
4 # define PI 4.0* atan (1.0) // Stala symboliczna , brak srednika na
koncu ";"
5
6 int main () // Funkcja glowna musi istniec
7 { // <- nawias rozpoczyn ajacy cialo funkcji
8 // Cialo funkcji
9 } // <- nawias zamykajacy
10
11 // ==== Ponizej dodatkowe funkcje zdefiniowane przez programiste
====
12
13 int sum_ints ( int a , int b )
14 {
15 return a + b ;
16 }
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Struktura programu
1 /* Opis programu - nie obowiazkowy ale wypada napisac */
2 # include < stdio .h > // Komendy preprocesora rozpoczynaja sie od
znaku \#
3 # define PI 4.0* atan (1.0) // Stala symboliczna , brak srednika na
koncu ";"
4
5 int sum_ints ( int a , int b ) ; // prototyp funkcji , obietnica dla
kompilatora
6 int a =5; // Zdefiniowanie zmiennej globalnej jesli jest
potrzebna . Nie obowiazkowa , wiecej pozniej .
7
8 int main () // Funkcja glowna musi istniec
9 { // <- nawias rozpoczyn ajacy cialo funkcji
10 // Cialo funkcji
11 } // <- nawias zamykajacy
12
13 // ==== Ponizej dodatkowe funkcje zdefiniowane przez programiste
====
14
15 int sum_ints ( int a , int b )
16 {
17 return a + b ;
18 }
19
20 ....
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Pliki nagłówkowe

1 /* Opis programu */
2 # include < stdio .h >
3 # include " myheader . h "

• Pliki nagłówkowe zawierają stałe, funkcje oraz inne deklaracje


• Są to pliki systemowe lub zdefiniowane przez użytkownika
(programistę)
• #include <stdio.h> - wczytywanie zawartości pliku nagłówkowego
stdio.h
• stdio.h: standardowe wejście/wyjście dla konsoli i plików
• #include <...... .h> - poszukiwania wśród plików nagłówkowych
systemowych
• #include "...... .h" - poszukiwania plików nagłówkowych napisanych
przez użytkownika (programistę) w katalogu ./
Informatyka
Informatyka II

WARSAW UNIVERSITY OF TECHNOLOGY

Funkcje

1
2 int sum_ints ( int a , int b ) ; // deklaracja prototypu funkcji
konczy sie srednikiem
3
4 // typ nazwa ( argumenty )
5 int main ( void ) // funkcja glowna moze posiadac argumenty
6 {
7 return 0; // funkcja glowna jest szczegolna !
8 }
9
10 // ponizsza funkcja jest typu calkowitego
11 int sum_ints ( int a , int b ) // przyjmuje dwa argumenty typu
calkowitego
12 {
13 return a + b ; // skoro funkcja ma typ to musi cos zwracac .
14 }

You might also like