→ Slide 1

Instrukcje sterujące - warunki i pętle

→ Slide 2

dodatnia.c
#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;
}
→ Slide 3

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?");
→ Slide 4

parzysta.c
#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?");
↓ Slide 5

Dodatkowe ćwiczenia

Rozszerz działanie programu z ostatniego ćwiczenia (sprawdzającego, czy liczba jest parzysta) o następujące operacje:

  • wyświetl informację, czy podana liczba jest podzielna przez 3,
  • wyświetl informację o tym, czy ostatnią cyfrą podanej liczby jest 1,
  • jeśli liczba jest większa niż 100 to wyświetl ostanie 2 cyfry liczby
↓ Slide 6

Ćwiczenie - miejsca zerowe paraboli

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
↓ Slide 7

Ćwiczenie

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ć.

→ Slide 8

Przykład:

sekwencja.c
#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;
}
→ Slide 9

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
→ Slide 10
  1. napisz program, który dla podanych 3 liczb rzeczywistych 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).
  2. wyświetl tablicę znaków ASCII poczynając od znaku SPACE (32) do znaku DEL (127) wraz z odpowiednimi wartościami liczbowymi w systemie dziesiętnym, szesnastkowym i ósemkowym.
  3. Napisz program wyświetlający figury geometryczne w trybie tekstowym, wypełnione lub puste. Dla podanej wartości całkowitej program wysiwietla:
    • kwadrat o zadanej długości boku
    • trójkąt prostokątny równoramienny o zadanej długości przyprostokątnych
    • okrąg o zadanym promieniu
  4. Napisz program, który dla podanej podstawy i wykładnika oblicza potęgę. Dla uproszczenia przyjmujemy, że wykładnik jest liczbą całkowitą.
  5. Napisz program wyświetlający wartość silni z podanej przez użytkownika liczby całkowitej.
  6. Napisz program wyświetlający tabliczkę mnożenia, której rozmiar ustalany jest przez użytkownika.
→ Slide 11

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:

  • wartość początkowa kapitału $V_0$ w momencie rozpoczęcia inwestycji w PLN
  • średnioroczne oprocentowanie $R$ (wartość rzeczywista podana w procentach)
  • ilość lat inwestycji (wartość całkowita dodatnia)

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:

  • numer kolejnego roku
  • aktualną wartość kapitału na koniec roku
  • całkowity zysk względem kapitału początkowego $\frac{V_k-V_0}{V_0}$ w procentach

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