====== 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:
int i;
float x;
char znak;
float zmienna1, zmienna2;
int a, _a, a1, A;
Podstawowe typy:
{{zajecia:pp1_2021_1:typy.png?400|}}
[[https://pl.wikibooks.org/wiki/C/Zmienne#Typy_zmiennych|Typy zmiennych]]
===== Operator przypisania =====
float x, y;
int k = 42;
char znak;
znak = 'C';
x = 3.14;
y = x;
===== Operatory arytmetyczne =====
{{zajecia:pp1_2021_1:operatory_arytmetyczne.png?400|}}
float x = 3.14;
int k = 42;
char znak = 'C';
k = k + 1;
x = k - 100;
x = x * x;
k = x / 2;
k++;
--k;
[[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() ====
#include
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;
}
==== Ć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() ====
#include
/* 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;
}
==== Ć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:
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
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:
Podaj roznice wysokosci w cm: 2.5
Podaj mase w gramach: 42
Gestosc wynosi
213.9 kg/m^3
0.214 g/cm^3
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]]