Edytuj stronę Odnośniki Fold/unfold all ODT export Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić. ====== Podstawy programowania ====== ===== Zmienne i ich typy ===== Zmienne przechowują wartości: * **typ zmiennej:** określa rodzaj danych, zakres wartości, dozwolone operacje na wartości * **nazwa zmiennej:** dozwolone znaki ''a-zA-z0-9_'' (cyfra nie może byc pierwszym znakiem) Deklaracje zmiennych: <code C> int i; float x; char znak; float zmienna1, zmienna2; int a, _a, a1, A; </code> Podstawowe typy: {{zajecia:pp1_2021_1:typy.png?400|}} [[https://pl.wikibooks.org/wiki/C/Zmienne#Typy_zmiennych|Typy zmiennych]] ===== Operator przypisania ===== <code C> float x, y; int k = 42; char znak; znak = 'C'; x = 3.14; y = x; </code> ===== Operatory arytmetyczne ===== {{zajecia:pp1_2021_1:operatory_arytmetyczne.png?400|}} <code C> float x = 3.14; int k = 42; char znak = 'C'; k = k + 1; x = k - 100; x = x * x; k = x / 2; k++; --k; </code> [[https://pl.wikibooks.org/wiki/C/Operatory#Operatory_arytmetyczne|Operatory arytmetyczne]] ===== Funkcja printf() ===== Funkcja służy do wypisywania komunikatów i formatowania wypisywanych wartości zmiennych. Deklaracja funkcji znajduje sie w pliku nagłówkowym [[http://cpp0x.pl/dokumentacja/standard-C/cstdio-stdio-h/492|stdio.h]] {{zajecia:pp1_2021_1:printf3.png?450|}} **Specyfikatory formatu** {{zajecia:pp1_2021_1:printf.png?400|}} ==== Przykład: printf() ==== <code C> #include<stdio.h> int main() { int k = 42; float liczba = 2.0/3.0; char znak = 'J'; printf("k = %d\n", k); printf("znak = %c\n", znak); /* znak jest liczba calkowita */ printf("znak = %d\n", znak); printf("liczba = %f\n", liczba); /* precyzja 2 miejsca po przecinku */ printf("liczba = %.2f\n", liczba); /* w polu o szerokosci 10 znakow */ printf("liczba = %10.2f\n", liczba); /* notacja naukowa (wykladnicza) */ printf("liczba = %e\n", liczba); /* niepoprawne formatowanie znieksztalca wynik */ printf("liczba = %d\n", liczba); return 0; } </code> ==== Ćwiczenie: pole koła ==== Napisz program ''kolo.c'', który wypisze pole oraz obwód koła o promieniu $r=2$.\\ Przyjmij przybliżenie wartości $\pi\approx 3,141592$ {{zajecia:pp1_2021_1:kolo.png?200|}} ===== Funkcja scanf() ===== Funkcja ''scanf()'' służy do wczytywania wartości zmiennych z terminala zgodnie z zadanym formatowaniem (specyfikatory identycznie jak w ''printf''). ==== Przykład: scanf() ==== <code C> #include <stdio.h> /* program wczytuje i wyswietla wartosc podanej liczby calkowitej */ int main() { int liczba; printf("Podaj liczbe: "); scanf("%d", &liczba); printf("Podales liczbe %d \n", liczba); return 0; } </code> ==== Ćwiczenie: pole i obwód koła c.d. ==== Zmodyfikuj program ''kolo.c'' w taki sposób aby użytkownik mógł podać wartość promienia $r$ dla którego wyznaczany jest obwód i pole. ==== Ćwiczenie: hex ==== Napisz program ''hex.c'', który dla podanej liczby całkowitej dziesiętnej wypisze jej postać w systemie szesnastkowym. ==== Ćwiczenie: kalkulator ==== Napisz program o nazwie ''kalkulator.c'', który poprosi użytkownika o podanie 2 liczb rzeczywistych a następnie wypisze ich sumę, różnicę, iloczyn oraz iloraz.\\ Przykładowy wynik działania programu: <code> Podaj dwie liczby: 1 3 Oto wynik: 1.0 + 3.00 = 4.000 1.0 - 3.00 = -2.000 1.0 * 3.00 = 3.000 1.0 / 3.00 = 0.333 </code> Zadbaj o formatowanie wypisywanych wartości tak aby jak najbardziej odzwierciedlić formatowanie wyniku podane w tym przykładzie (precyzję wypisywanych wartości oraz wyrównanie wartości w kolumnach). ===== Zadanie: kalkulator gęstości ===== Napisz program, który wyznaczy gęstość obiektu włożonego do cylindrycznego naczynia o promieniu $r=5\,cm$ wypełnionego wodą. \\ Program po uruchomieniu prosi o podanie dwóch wartości: * masy $m$ obiektu podanej w gramach, * różnicy wysokości $h$ poziomu wody przed i po włożeniu obiektu do zbiornika. Wartość podawana jest w centymetrach. Wynikiem działania programu jest wartość gęstości obiektu wyrażona w kilogramach na metr sześcienny z dokładnością 1 miejsca po przecinku oraz ta sama wartość gęstości wyrażona w gramach na centymetr sześcienny z dokładnością 3 miejsc po przecinku. {{zajecia:pp1_2022_1:menzurka_cylindryczna.png?300 | }} Gęstość ciała wyznaczamy ze wzoru $$\rho = \frac{m}{V}$$ gdzie $m$ oznacza masę obiektu, $V$ to jego objętość. Objętość wyznaczamy korzystając z wzoru na objętość cylindra $$V = \pi r^2 h$$ gdzie $h$ oznacza wysokość cylindra (tutaj różnica wysokości wody) a $r$ to promień podstawy naczynia. \\ Przyjmij $\pi\approx 3,141592$ Przykładowy wynik działania programu: <code> Podaj roznice wysokosci w cm: 2.5 Podaj mase w gramach: 42 Gestosc wynosi 213.9 kg/m^3 0.214 g/cm^3 </code> Rozwiązanie w postaci pliku zawierającego program w języku C umieść [[https://moodle.umk.pl/WFAIIS/mod/assign/view.php?id=6112|tutaj]]