Zajęcia 2 (19/11/2013)

Zadanie - Sumowanie liczb

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:

1
2
3
0
suma 6.000000

5
3.1
-2.5
0
suma 5.600000

Zadanie - Statystyka

Rozbuduj program z poprzedniego zadania tak aby dla podanego ciągu liczb obok sumy wyświetlał także wartości:

ilość liczb

ilość liczb większych od 0

wartość średnia

wartość minimalna

wartość maksymalna

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

Przykład:

1
2
3
0
ilosc 3
dodatnie 3
suma 6.000000
srednia 2
min 1
max 3

5
3.1
-2.5
0
ilosc 3
dodatnie 2
suma 5.600000
srednia 1.866
min -2.500000
max 5.000000

Zadanie - Faktoryzacja

Problem: rozkład liczby całkowitej na czynniki pierwsze
Dane: liczba całkowita n
Wynik: ciąg liczb pierwszych większych od 1, których iloczyn wynosi n

Przykładowe wyniki

n=10
2
5

n=12
2
2
3

n=149
149

Zadanie - Zgadywanka

Napisz grę w której użytkownik próbuje odgadnąć pewną wylosowaną wartość całkowitą z zakresu od 1 do 100. W zależności o podanej przez użytkownika liczby całkowitej program:

wyświetla komunikat „za duzo”, gdy podana wartość jest większa od szukanej

wyświetla kominukat „za malo”, gry podana wartość jest za mała

wyświetla komunkat „Brawo !” i kończy działanie gdy użytkownik odgadnie szukaną wartość

wyświetla szukaną wartość i kończy działanie gdy użytkownik poda liczbę 0

Na koniec program wyświetla także komunikat o liczbie podjętych przez użytkownika prób.

Do losowania liczb całkowitych wykorzystaj funkcję rand() z biblioteki stdlib.h.

int rand(void);

Funkcja ta przy każdym uruchomieniu zwraca liczbę całkowitą pseudolosową z zakresu od 0 do wartości określonej przez RAND_MAX. Generator liczb losowych można zainicjować za pomocą funkcji srand()

void srand(int seed);

Chcąc uzyskać za każdym razem inny ciąg liczb najwygodniej jest zainicjować generator wartością związaną z aktualnym czasem: funkcja time() z biblioteki time.h. Zwraca ina liczbę sekund od Przykład

#include <stdlib.h> #include <stdio.h> #include <time.h> int main() { int i=0; srand(time(0)); while(i<10) { printf("%d\n",rand()); i = i +1; } }

Przykładowe wyniki

2
za malo
50
za duzo
49
Brawo!
Liczba podejsc 3

2
za malo
50
za duzo
0
Szukana liczba to 3
Liczba podejsc 2