Programowanie I C / C++ laboratorium 01 Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-12
Program zajęć Zasady zaliczenia 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
Program zajęć Zasady zaliczenia Namiary na prowadzącego Jarosław Piersa preferowany sposób e-mail: piersaj (at) mat. umk. pl gabinet: E307 konsultacje: wt, godz. 16-17 www: http://www.mat.umk.pl/~piersaj
Program zajęć Zasady zaliczenia Wspomaganie zajęć moodle (obowiązkowy!) https: //plas.mat.umk.pl/moodle/course/view.php?id=328 olat: https://www.mat.umk.pl:8443/dmz/
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 2 sp 1, 1) maksymalnej liczby punktów sp = ilość tygodni spóźnienia zaokrąglona w górę kara jest subtraktywna (tj odejmowana od podstawowej oceny)
Program zajęć Zasady zaliczenia 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
Skala ocen Program zajęć Zasady zaliczenia ocena punkty dst [61 69) dst+ [69 77) db [77 85) db+ [85 93) bdb [93 100]
Program zajęć Zasady zaliczenia 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 oddawania
Program zajęć Zasady zaliczenia Pytania?
Edytory / środowiska programistyczne Windows Ś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
Edytory / środowiska programistyczne Windows Edytory gvim (wszędzie) ConTexT (Windows) Notepad++ (Windows) gedit (linux)
Skąd wziąć kompilator? Edytory / środowiska programistyczne Windows [piersaj@yavarel ]$ yum / aptget / packman install gcc
Edytory / środowiska programistyczne Windows Skąd wziąć kompilator? CodeBlocks http://www.codeblocks.org/ (ewentualnie) MinGW http://www.mingw.org/ (alternatywa) MS Visual Studio link
Edytory / środowiska programistyczne Windows Codeblocks Tworzymy: Nowy projekt Aplikacja konsolowa Zasada: jeden program jeden projekt Budujemy: (Build) Uruchamiamy: (Run)
Codeblocks Edytory / środowiska programistyczne Windows Tworzymy: Nowy projekt Aplikacja konsolowa
Codeblocks Edytory / środowiska programistyczne Windows Wybieramy: Aplikacja konsolowa
Codeblocks Edytory / środowiska programistyczne Windows Podajemy: nazwę projektu i lokalizację w systemie plików
Codeblocks Edytory / środowiska programistyczne Windows Piszemy program
Codeblocks Edytory / środowiska programistyczne Windows Kompilujemy i uruchamiamy
Prosty wydruk Wczytywanie danych Wydruk zmiennej plik.c: /* w C * */ # include < stdio.h> int main (){ // komentarz do konca linii printf (" hello world \n"); return 0; }
Jak skompilować (Linux?) Prosty wydruk Wczytywanie danych Wydruk zmiennej [piersaj@yavarel ]$ gcc plik.c [piersaj@yavarel ]$./a.out hello world [piersaj@yavarel ]$
Prosty wydruk Wczytywanie danych Wydruk zmiennej Wyjaśnienie #include <sdtio.h> dołączenie pliku nagłówkowego dającego dostęp do instrukcji printf int main(){...} definicja głównej części programu printf(...) wydruk napisu return 0 zakończenie main-a
Wczytywanie danych Prosty wydruk Wczytywanie danych Wydruk zmiennej plik.c: # include < stdio.h> int main (){ int a = 0; printf (" podaj liczbe calkowita \n"); scanf ("%d", &a); printf (" podales liczbe %d\n", a); return 0; } // main
Wczytywanie danych Prosty wydruk Wczytywanie danych Wydruk zmiennej plik.c: # include < stdio.h> # define SIZE 32 int main (){ char zm[ SIZE ]; printf (" Jak masz na imie?\n"); scanf ("%s", zm ); printf (" Milo Cie poznac, %s!\n", zm ); return 0; } // main
Prosty wydruk Wczytywanie danych Wydruk zmiennej Wyjaśnienie int a deklarujemy zmienną o identyfikatorze a scanf( %d, &a) wczytanie wartości dla zmiennej a z klawiatury %d zmienna będzie całkowitoliczbowa w zapisie dziesiętnym (Decimal) %s zmienna będzie napisowa (string) (dokładniej tablica znaków)
Wydruk zmiennej Prosty wydruk Wczytywanie danych Wydruk zmiennej plik.c: # include < stdio.h> # define SIZE 32 int main (){ int a = 2; float b = 1. 4; char c = a ; char d[ SIZE ]= " ala ma kota "; printf ("%d %.2 f %c %s\n", a, b,c return 0; } // main,d);
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)
Instrukcja warunkowa Instrukcja warunkowa Pętla while Czym może być warunek Pętla for Pętla do plik.c: # include < stdio.h> int main (){ long a = 1000000000 L, b = 999999999 L; if (a>b) printf ("a jest wieksze \n"); else { } return 0; } // main printf ("b jest wieksze \n");
Wyjaśnienie Instrukcja warunkowa Pętla while Czym może być warunek Pętla for Pętla do 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!
Pętla while Instrukcja warunkowa Pętla while Czym może być warunek Pętla for Pętla do plik.c: # include < stdio.h> int main (){ unsigned long a = 15 L, b = 40 L; while (a<b) { printf ("%ld ^2 = %4 ld\n", a, a*a); a = a +1; } // while return 0; } // main
Wyjaśnienie Instrukcja warunkowa Pętla while Czym może być warunek Pętla for Pętla do 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)
Czym może być warunek Instrukcja warunkowa Pętla while Czym może być warunek Pętla for Pętla do # include < stdio.h> int main (){ long a = 1000000000 L, b = 999999999 L; if (a> b) printf ("%d\n", 1); if (a >=b) printf ("%d\n", 2); if (a<b) printf ("%d\n", 3); if (a <=b) printf ("%d\n", 4); if (a==b) printf ("%d\n", 5); if (a!=b) printf ("%d\n", 6); return 0; } // main
Operatory logiczne Instrukcja warunkowa Pętla while Czym może być warunek Pętla for Pętla do # include < stdio.h> int main (){ long a = 1000000000 L, b = 999999999 L; if (0) printf ("%d\n", 1); if (a) printf ("%d\n", 2); if (!a) printf ("%d\n", 3); if (1 && a>b) printf ("%d\n", 4); if (0 a>b) printf ("%d\n", 5); return 0; } // main
Pętla for Instrukcja warunkowa Pętla while Czym może być warunek Pętla for Pętla do # include < stdio.h> int main (){ int i=0, a =30; for (i =1; i<a; i=i +2){ printf ("0x %02 x\n", i); } // for return 0; } // main
Wyjaśnienie Instrukcja warunkowa Pętla while Czym może być warunek Pętla for Pętla do for obowiązkowe słowo kluczowe (instr 1 ; warunek 2 ; instr 3 ): instr 1 wykonywana przed pierwszym obrotem pętli warunek 2 jeżeli jest spełniony to kontynuujemy pętlę instr 3 wykonywana po każdym obrocie
Pętla do Instrukcja warunkowa Pętla while Czym może być warunek Pętla for Pętla do # include < stdio.h> int main (){ int i =200, b =1; do { printf ("%3d\n", i); i -= b; b ++; } while (i >=0); return 0; } // main
Wyjaśnienie Instrukcja warunkowa Pętla while Czym może być warunek Pętla for Pętla do do obowiązkowe słowo kluczowe while obowiązkowe słowo kluczowe ( instrukcja ) warunek kontynuowania pętli