Temat 1 Pojcia: algorytm, program, kompilacja i wykonanie programu. Proste typy danych i deklaracja zmiennych typu prostego. Instrukcja przypisania. Operacje wejcia/wyjcia. Przykłady prostych programów w jzyku C. Literatura podstawowa H. Schildt, Programowanie C, RM, R. Neapolitan, K. Naimipour, Podstawy algorytmów z przykładami w C++, WNT S. Prat, Jzyk C. Szkoła programowania, Helion Literatura uzupełniajca T. H. Cormen, C. E. Leiserson, R. L. Rivest, Wprowadzenie do algorytmów, WNT 1
1. PODSTAWOWE POJCIA program notacja opisujca proces przekształcania danych wejciowych w dane wyjciowe według pewnego algorytmu dane wejciowe informacje dostarczone do programu, w celu umoliwienia wykonania algorytmu dane wyjciowe s generowane przez program i stanowi wyniki działania programu algorytm okrela sposób przekształcania danych wejciowych w dane wyjciowe zgodnie z celem. Algorytm składa si z opisu: obiektów, na których wykonywane s działania, działa realizujcych cel algorytmu. programowanie polega na zapisywaniu algorytmów w formie programów zrozumiałych dla komputera kod ródłowy program napisany w jzyku takim jak Pascal, C, C++, C#, Java itp., czyli w jzyku algorytmicznym czytelny dla programisty kod wynikowy program zapisany jako cig rozkazów i danych w kodzie maszynowym procesora (w postaci czytelnej dla komputera), najczciej w postaci liczb kodu dwójkowego. Proces tworzenia programu: edytor ( *.cpp ) kod ródłowy kompilator ( *.obj ) kod wynikowy linker ( *.exe ) kod wynikowy połczony z bibliotekami debugger (step/watch) ledzenie działania, usuwanie błdów 2
2. PRZYKŁADY NAJPROSTSZYCH PROGRAMÓW // komentarz jednowierszowy /* komentarz wielowierszowy */ Przykład 1.1 Najprostszy program, który jest poprawny, ale nic nie robi int main( ) // main funkcja główna programu return 0; // return - rozkaz zwracajcy wynik funkcji main Przykład 1.2 Program, który wypisuje tekst Czesc! To ja Twoj komputer na ekranie #include <stdio.h> // include dyrektywa pliku nagłówkowego int main( ) printf( Czesc! To ja, Twoj komputer ); // printf funkcja wypisujca na return 0; //ekran tekstowy printf funkcja moliwa do wykorzystania po dodaniu do programu dyrektywy include do pliku stdio.h. Funkcja potrafi wywietla napisy, wartoci liczbowe i pojedyncze znaki. 3
3. Definiowanie zmiennych. Typy proste. nazwa_typu nazwa_zmiennej ; nazwa_typu zmienna_1, zmienna_2, zmienna_3 ; nazwa_typu nazwa_zmiennej = warto; Nazwy zmiennych mog zawiera znaki alfanumeryczne (litery i cyfry) oraz znak podkrelenia. Nazwa zmiennej nie moe zaczyna si od cyfry. W jzyku C wystpuje rozrónianie wielkoci liter. Podstawowe typy proste: Nazwa typu Zawarto Przedział wartoci Zajt. pami char znak -128 127 1 bajt int liczba całkowita -32768 32767 2 bajty long float double długa liczba całkowita liczba rzeczywiste pojedynczej precyzji liczba rzeczywiste podwójnej precyzji -2147mln 2147mln 4 bajty 10-38 10 38 (7cyfr) 4 bajty 10-308 10 308 (15 cyfr) 8 bajtów Uwaga!!! Zajto pamicie typu i zwizany z tym zakres oraz precyzja typu jest zalena od kompilatora. 4
Przykład 1.3 Program, który oblicza redni z najlepszej i najgorszej oceny w skali ocen #include <stdio.h> // stdio.h standard input/output int main( ) int a=2, b=5; //deklaracja zmiennych typu całkowitego printf( Srednia wynosi %f\n, (a+b)/2.0); // %f kod formatujcy dla liczb return 0; // rzeczywistych typu float posta ogólna funkcji printf: printf ( łacuch_formatujcy, argument_1, argument_2,... ) ; łacuch formatujcy jest to napis zawierajcy: znaki drukowane na ekranie tekstowym, kody formatujce kolejnych argumentów: kody formatujce %c pojedynczy znak %s napis %d liczba całkowita %f liczba rzeczywista (notacja dziesitna), standardowo 6 miejsc po kropce /n sekwencja, która dodana do łacucha formatujcego wstawia znak koca linii 5
4. Instrukcja przypisania zmienna = wyraenie; Instrukcja przypisania umoliwia nadawanie wartoci zmiennym w programie. W trakcie realizacji instrukcji przypisania wyznaczana jest warto wyraenia zapisanego po prawej stronie znaku =, a nastpnie wyznaczona warto jest podstawiana (jest przypisywana) do zmiennej po lewej stronie znaku =. Przykład 1.4 Program, który oblicza redni z najlepszej i najgorszej oceny w skali ocen #include <stdio.h> // stdio.h standard input/output int main( ) int a=2, b=5; //deklaracja zmiennych typu całkowitego float wynik=(a+b)/2.0; //deklaracja zmiennej typu float i przypisanie jej wartoci printf( Srednia wynosi %f\n, wynik); // %f kod formatujcy dla liczb return 0; // rzeczywistych Operatory arytmetyczne podstawowe operatory arytmetyczne + dodawanie odejmowanie mnoenie / dzielenie % reszta z dzielenia Do tworzenia wyrae arytmetycznych w programach uywane s: - operatory arytmetyczne, - stałe, - zmienne, - nawiasy okrgłe. 6
Przykład 1.5 int s=4; int w=(s%2)/3; // w=? double x=w/2.0*s+5; // x=? Priorytety operatorów arytmetycznych s takie same jak w matematyce. Przykład 1.6 Program, który oblicza iloczyn dwóch podanych liczb całkowitych #include <stdio.h> // stdio.h standard input/output int main( ) int a, b, wynik; //deklaracja zmiennych typu całkowitego printf( To jest program obliczajacy iloczyn dwoch liczb\n ); printf( Podaj pierwsza liczbe: ) ; // \n znak koca linii scanf( %d,&a) ; // scanf funkcja do czytania danych prinft( Podaj druga liczbe: ); scanf( %d,&b); wynik = a b ; // = operator przypisania, * operator mnoenia printf( Wynik: %d\n, wynik); // %d kod formatujcy dla liczb całkowitych return 0; scanf - funkcja moliwa do wykorzystania po dodaniu do programu dyrektywy include do pliku stdio.h. Funkcja odczytuje znaki ze standardowego strumienia wejciowego (klawiatury), do pierwszego wystpienia białego znaku, zamienia wczytany cig znaków na dane zgodnie z łacuchem formatujcym i zapamituje je pod zadanymi adresami pamici posta ogólna funkcji scanf scanf ( łacuch_formatujcy, adres_1, adres_2,... ) ; łauch formatujcy - jest to napis okrelajcy sposób zamiany wczytanego cigu znaków na dane okreslonego formatu 7
kody formatujce: %c pojedynczy znak %s łacuch znaków %d liczba całkowita %f liczba rzeczywista & operator adresowania (zwraca adres zmiennej podanej po operatorze 8