Przykład
#include <stdio.h> /* program sprawdza czy podana liczba jest dodatnia */ int main() { float x; printf("Podaj liczbe: "); scanf("%f", &x); if( x > 0 ) printf("Liczba %f jest wieksza od zera\n", x); return 0; }
Operator =
to operator przypisania wartości do zmiennej a operator ==
to operator sprawdzający, czy wartości są równe.
int x = 0; if ( x = 1 ) printf("Czy to jest błąd?");
#include <stdio.h> /* program sprawdza czy podana liczba jest parzysta */ int main() { int x; printf("Podaj liczbe calkowita: "); scanf("%d", &x); if( x % 2 == 0 ) { printf("Liczba %d jest parzysta\n", x); } else { printf("Liczba %d jest nieparzysta\n", x); } return 0; }
W języku C nie ma typu logicznego.
Wartość całkowita 0 jest fałszem a wartość całkowita różna od 0 - prawdą.
if ( 1 ) printf("Prawda czy fałsz?");
Dodatkowe ćwiczenia Rozszerz działanie programu z ostatniego ćwiczenia (sprawdzającego, czy liczba jest parzysta) o następujące operacje:
Napisz program do wyznaczania miejsc zerowych równania kwadratowego $$ y = a x^2 + bx +c$$
Dane: trzy liczby rzeczywiste określające parabolę: $a$, $b$, $c$
Wynik: informacja o ilości miejsc zerowych (lub ich braku) oraz wartości miejsc zerowych $x_1$, $x_2$
Uwaga Do obliczania pierwiastka kwadratowego wykorzystaj funkcję sqrt() z biblioteki math.h.
Kompilując program korzystający z funkcji matematycznych dla kompilatora GCC należy dodać opcję -lm
, np.:
cc -lm pierwiastek.c -o pierwiastek
Przykład:
1 2 3 Brak miejsc zerowych
1 -4 -4 Jedno miejsce zerowe 2.000000
1 0 -4 Dwa miejsca zerowe -2.000000 i 2.000000
Dodatkowe ćwiczenia
Do programu obliczającego pierwiastki równania kwadratowego dodaj instrukcje weryfikujące, czy rzeczywiście $f(x_1)=0$ oraz $f(x_2)=0$.
Sprawdź, czy program poprawnie wyznacza miejsca zerowe równania $y = x^2 - 6.433 x + 0.009474$ oraz $y = 0.2 x^2 - 56 x + 1$.
Jeśli występują niedokładności to popraw program w taki sposób aby je zniwelować.
Przykład:
#include <stdio.h> /* program wyswietla sekwencje liczb calkowitych od 1 do podanej przez uzytkownika wartosci */ int main() { int liczba; int i = 0; printf("Podaj liczbe: "); scanf("%d", &liczba); while(i <= liczba) { printf("%d\n",i); i = i + 1; } return 0; }
Napisz program, który wczytuje kolejno liczby rzeczywiste aż do momentu gdy użytkownik poda wartość 0, po czym wyświetla sumę wczytanych liczb.
Dane: ciąg liczb rzeczywistych zakończonych wartością 0
Wynik: suma podanych liczb
Przykład:
Wprowadz liczby. Wartosc 0 konczy program. 1 2 3 0 suma 6.000000
Wprowadz liczby. Wartosc 0 konczy program. 5 3.1 -2.5 0 suma 5.600000
Napisz program, który wyznacza wartość zgromadzonego kapitału w kolejnych latach inwestycji zgodnie z zasadą procentu składanego.
Program wczytuje następujące dane wejściowe:
Zakładamy, że odsetki naliczane na koniec roku są całkowicie reinwestowane i powiększają kapitał oprocentowany w kolejnych latach. Wartość kapitału $V_k$ w roku $k$ wynosi więc: $$ V_k = V_{k-1} + R\cdot V_{k-1}$$ gdzie $R$ jest stopą rocznego oprocentowania.
Dla podanych wartości wejściowych program wypisuje w kolejnych liniach 3 wartości:
Przykład działania programu:
kapital poczatkowy: 100 oprocentowanie roczne: 5.1 ile lat: 10 1 105.10 5.1% 2 110.46 10.5% 3 116.09 16.1% 4 122.01 22.0% 5 128.24 28.2% 6 134.78 34.8% 7 141.65 41.7% 8 148.87 48.9% 9 156.47 56.5% 10 164.45 64.4%
Rozwiązanie w postaci pliku zawierającego program w języku C umieść tutaj