Organizacja zajęć Środowisko Pierwszy program Składnia języka
Programowanie I C / C++
laboratorium 01 — Organizacja zajęć
Jarosław Piersa
Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika
2013-02-12
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Program
operacje wejścia i wyjścia instrukcje warunkowe pętle
tablice i wskaźniki operacje na plikach
przegląd podstawowych plików nagłówkowych
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Program zajęć Zasady zaliczenia
Namiary na prowadzącego
Jarosław Piersa
preferowany sposóbe-mail: piersaj (at) mat . umk . pl gabinet: E307
konsultacje: wt, godz. 16-17
www: http://www.mat.umk.pl/~piersaj
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Wspomaganie zajęć
moodle (obowiązkowy!) https:
//plas.mat.umk.pl/moodle/course/view.php?id=328 olat:
https://www.mat.umk.pl:8443/dmz/
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Program zajęć Zasady zaliczenia
Zaliczenie
obecność wymagana (maks. 2 nieobecności nieusprawiedliwione) prace domowe, kolokwia, wejściówki
nieobecność kolokwium lub wejściówce = poprawka na najbliższych konsultacjach
nieobecność nieusprawiedliwiona na kolokwium = 0p + kara 50% z poprawki
kary za spóźnienia (prace domowe, poprawa wejściówki i kolokwium)
kara = min(0.1 · 2sp−1, 1) maksymalnej liczby punktów sp = ilość tygodni spóźnienia zaokrąglona w górę
kara jest subtraktywna (tj odejmowana od podstawowej oceny)
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Zaliczenie
Szacowana liczba punktów (maks. 100):
kolokwia: 2 · (20 − 25)p
prace domowe: łącznie 40 − 50p wejściówki: łącznie 10 − 20p bonus: 100% frekwencja: 2p
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Program zajęć Zasady zaliczenia
Skala ocen
ocena punkty dst [61 – 69) dst+ [69 – 77) db [77 – 85) db+ [85 – 93) bdb [93 – 100]
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Programy
programy będą sprawdzane na linuxie, na kompilatorze gcc v4.*; jeżeli nie zadziałają, to na ultrze60, na kompilatorze gcc program, który się nie kompiluje na żadnym otrzymuje ocenę 0 program, który usiłuje wyrządzić szkody w systemie otrzymuje ocenę 0
kara 10% punktów za brak informacji o autorze i programie kara 10% punktów za brak komentarzy w kodzie
kara 100% za plagiaty
programy można poprawiać, jeżeli nie upłynął jeszcze termin
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Program zajęć Zasady zaliczenia
Pytania?
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Środowiska programistyczne
Eclipse CDT (Windows, linux)http://www.eclipse.org/cdt/
NetBeans IDE (for C / C++)
http://netbeans.org/features/cpp/
Codeblocks (Windows, linux)http://www.codeblocks.org/
MS Visual Studio (Windows) Bloodshed DevC++ (Windows)
http://www.bloodshed.net/devcpp.html
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Edytory / środowiska programistyczne Windows
Edytory
gVim (wszędzie) ConTexT (Windows) Notepad++ (Windows) gedit (linux)
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Skąd wziąć kompilator?
[piersaj@Yavarel ]$ yum / aptget / packman install gcc
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Edytory / środowiska programistyczne Windows
Skąd wziąć kompilator?
CodeBlockshttp://www.codeblocks.org/
(ewentualnie) MinGWhttp://www.mingw.org/
(alternatywa) MS Visual Studiolink
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Codeblocks
Tworzymy: Nowy projekt → Aplikacja konsolowa Zasada: jeden program — jeden projekt
Budujemy: (Build) Uruchamiamy: (Run)
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Edytory / środowiska programistyczne Windows
Codeblocks
Tworzymy: Nowy projekt → Aplikacja konsolowa
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Codeblocks
Wybieramy: Aplikacja konsolowa
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Edytory / środowiska programistyczne Windows
Codeblocks
Podajemy: nazwę projektu i lokalizację w systemie plików
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Codeblocks
Piszemy program
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Edytory / środowiska programistyczne Windows
Codeblocks
Kompilujemy i uruchamiamy
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Pierwszy program
plik.c:
/* P i e r w s z y p r o g r a m w C
*
*/
# include< s t d i o . h >
int m a i n (){
// k o m e n t a r z do k o n c a l i n i i p r i n t f(" h e l l o w o r l d \ n ");
r e t u r n 0;
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Prosty wydruk Wczytywanie danych Wydruk zmiennej
Jak skompilować (Linux?)
[piersaj@Yavarel ]$ gcc plik.c [piersaj@Yavarel ]$ ./a.out hello world
[piersaj@Yavarel ]$
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Wyjaśnienie
#include <sdtio.h>— dołączenie pliku nagłówkowego dającego dostęp do instrukcjiprintf
int main(){...}— definicja głównej części programu printf(...) — wydruk napisu
return 0— zakończenie main-a
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Prosty wydruk Wczytywanie danych Wydruk zmiennej
Wczytywanie danych
plik.c:
# include< s t d i o . h >
int m a i n (){
int a = 0;
p r i n t f(" p o d a j l i c z b e c a l k o w i t a \ n ");
s c a n f(" % d ", & a );
p r i n t f(" p o d a l e s l i c z b e % d \ n ", a );
r e t u r n 0;
} // m a i n
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Wczytywanie danych
plik.c:
# include< s t d i o . h >
# d e f i n e S I Z E 32 int m a i n (){
c h a r zm[ S I Z E ];
p r i n t f(" Jak m a s z na i m i e ?\ n ");
s c a n f(" % s ", zm);
p r i n t f(" M i l o Cie poznac , % s !\ n ", zm);
r e t u r n 0;
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Prosty wydruk Wczytywanie danych Wydruk zmiennej
Wyjaśnienie
int a— deklarujemy zmienną o identyfikatorzea
scanf(¨%d¨, &a)— wczytanie wartości dla zmiennejaz klawiatury
%d— zmienna będzie całkowitoliczbowa w zapisie dziesiętnym (Decimal )
%s— zmienna będzie napisowa (string ) (dokładniej — tablica znaków)
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Wydruk zmiennej
plik.c:
# include< s t d i o . h >
# d e f i n e S I Z E 32
int m a i n (){
int a = 2;
f l o a t b = 1 . 4 ; c h a r c = ’ a ’;
c h a r d [ S I Z E ]= " ala ma k o t a ";
p r i n t f (" % d %.2 f % c % s \ n ", a , b , c , d );
r e t u r n 0;
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Prosty wydruk Wczytywanie danych Wydruk zmiennej
Wyjaśnienie
int— typ całkowitoliczbowy (formatowanie%d) float— typ zmiennoprzecinkowy (%f)
char — typ znakowy (%c)
char zmienna[32] — tablica znaków (napis) (%s)
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Instrukcja warunkowa
plik.c:
# include< s t d i o . h >
int m a i n (){
l o n g a = 1 0 0 0 0 0 0 0 0 0 L , b = 9 9 9 9 9 9 9 9 9 L ;
if ( a > b )
p r i n t f (" a j e s t w i e k s z e \ n ");
e l s e {
p r i n t f (" b j e s t w i e k s z e \ n ");
}
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Instrukcja warunkowa Pętla while
Czym może być warunek Pętla for
Pętla do
Wyjaśnienie
if— obowiązkowe słowo kluczowe, pisane z małych liter (warunek) — warunek, nawiasy są obowiązkowe
else — słowo kluczowe, klauzula jest opcjonalna nie ma elif-a!
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Pętla while
plik.c:
# include< s t d i o . h >
int m a i n (){
u n s i g n e d l o n g a = 15 L , b = 40 L ;
w h i l e ( a < b ) {
p r i n t f (" % ld ^2 = %4 ld \ n ", a , a * a );
a = a +1;
} // w h i l e
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Instrukcja warunkowa Pętla while
Czym może być warunek Pętla for
Pętla do
Wyjaśnienie
while— obowiązkowe słowo kluczowe, pisane z małych liter (warunek) — warunek pętli, nawiasy są obowiązkowe
%ld— format zmiennej long (long decimal )
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Czym może być warunek
# include< s t d i o . h >
int m a i n (){
l o n g a = 1 0 0 0 0 0 0 0 0 0 L , b = 9 9 9 9 9 9 9 9 9 L ; if ( a > b ) p r i n t f (" % d \ n ", 1);
if ( a >= b ) p r i n t f (" % d \ n ", 2);
if ( a < b ) p r i n t f (" % d \ n ", 3);
if ( a <= b ) p r i n t f (" % d \ n ", 4);
if ( a == b ) p r i n t f (" % d \ n ", 5);
if ( a != b ) p r i n t f (" % d \ n ", 6);
r e t u r n 0;
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Instrukcja warunkowa Pętla while
Czym może być warunek Pętla for
Pętla do
Operatory logiczne
# include< s t d i o . h >
int m a i n (){
l o n g a = 1 0 0 0 0 0 0 0 0 0 L , b = 9 9 9 9 9 9 9 9 9 L ; if (0) p r i n t f (" % d \ n ", 1);
if ( a ) p r i n t f (" % d \ n ", 2);
if (! a ) p r i n t f (" % d \ n ", 3);
if (1 && a > b ) p r i n t f (" % d \ n ", 4);
if (0 || a > b ) p r i n t f (" % d \ n ", 5);
r e t u r n 0;
} // m a i n
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Pętla for
# include< s t d i o . h >
int m a i n (){
int i =0 , a = 3 0 ;
for ( i =1; i < a ; i = i + 2 ) {
p r i n t f (" 0 x %02 x \ n ", i );
} // for
r e t u r n 0;
} // m a i n
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Instrukcja warunkowa Pętla while
Czym może być warunek Pętla for
Pętla do
Wyjaśnienie
for— obowiązkowe słowo kluczowe (instr1; warunek2; instr3 ):
instr1 — wykonywana przed pierwszym obrotem pętli warunek2 — jeżeli jest spełniony to kontynuujemy pętlę instr3 — wykonywana po każdym obrocie
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01
Pętla do
# include< s t d i o . h >
int m a i n (){
int i =200 , b =1;
do {
p r i n t f (" %3 d \ n ", i );
i -= b ; b ++;
} w h i l e ( i > = 0 ) ; r e t u r n 0;
} // m a i n
Organizacja zajęć Środowisko Pierwszy program Składnia języka
Instrukcja warunkowa Pętla while
Czym może być warunek Pętla for
Pętla do
Wyjaśnienie
do— obowiązkowe słowo kluczowe while— obowiązkowe słowo kluczowe
( instrukcja )— warunek kontynuowania pętli
J. Piersa Pr. C/C++ 2012/2013 Laboratorium 01