#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?");
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
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
a
, b
, i c
wypisze sekwencję liczb od a
do b
z krokiem c
. Zabezpiecz program przed możliwością wprowadzenia takich danych wejściowych, które mogłyby spowodować nieskończone wykonywanie się programu (np. krok c=0
). 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