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 o nazwie statystyka.c
, który rozszerza działanie programu z ostatniego ćwiczenia w taki sposób, że dla podanego ciągu liczb wyświetla:
Końcowa wartość 0 nie jest brana do obliczeń.
Dane: ciąg liczb rzeczywistych zakończonych wartością 0
Wynik: ilość podanych liczb, ilość liczb większych od 0, suma, średnia, wartość minimalna i maksymalna z podanych liczb
Sum,ę wartość średnią, minimalną i maksymalną wyświetl z dokładnością do 1 miejsca po przecinku.
Przykład:
5 3.1 -2.5 0 ilosc 3 dodatnie 2 suma 5.6 srednia 1.9 min -2.5 max 5.0