Praca domowa nr 1 1) Napisz kod w języku C obliczający wartość

Transkrypt

Praca domowa nr 1 1) Napisz kod w języku C obliczający wartość
Praca domowa nr 1
1) Napisz kod w języku C obliczający wartość poniższych wyrażeń; załóż, że każda litera oznacza
pojedynczą zmienną typu int:
abc ; ab c ;
ab
;
a−b
bc
bc
e
d−
f g
a
;
a
d e

bc d −ef
c
abc
d ef  gh
2) Napisz kod sprawdzający poniższe warunki sformułowane w języku naturalnym:
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)
(j)
a nie jest równe b
a jest liczbą nieparzystą
a jest mniejsze od b ale jest większe od c
a jest mniejsze od iloczynu liczb c i d ale jest większe od ich sumy
reszta z dzielenia a przez sumę liczb b i c jest liczbą parzystą
a jest różne od iloczynu liczb b i c
a jest równe jednej z liczb a, b lub c
a jest liczbą podzielną przez 3 i przez 5
a jest liczbą podzielną przez 7 lub przez 11
a jest liczbą podzielną przez 13 i przez 17 ale nie jest wielokrotnością liczby 7
3) Napisz kod sprawdzający poniższe warunki sformułowane w języku matematyki:
(a)
(b)
(c)
(d)
x ∈ [ a ,b )
x ∉( c , d ]
x ∈ [ a ,+∞ )
x ∈(−∞ ,b )
4) Napisz program, który wczytuje liczbę – wspólny mnożnik w uproszczonej tabliczce mnożenia;
np. po podaniu wartości 7 program wypisze 10 elegancko sformatowanych wierszy:
1 x 7 = 7
2 x 7 = 14
3 x 7 = 21
. . .
10 x 7 = 70
Praca domowa nr 2
1) Napisz program, który wczytuje liczbę określającą długość boku poniższych figur, kreślonych
przy pomocy gwiazdek; ich wielkość zależy od podanej liczby, np. jeśli podano 5:
nr 1
nr 2
nr 3
nr 4
nr 5
*****
*****
*****
*****
*****
*****
****
***
**
*
*****
****
***
**
*
*
**
***
****
*****
*
**
***
****
*****
Operator powinien móc wskazać, którą figurę chce obejrzeć podając jej numer.
2) Napisz program w języku C, który wczytuje liczbę całkowitą. Zadaniem programu jest
wydrukowanie wszystkich dzielników wczytanej liczby.
Przykładowe wyniki
20:
1, 2, 4, 5, 10, 20
21:
1, 3, 7, 21
22:
1, 2, 11, 22
23:
1, 23
24:
1, 2, 3, 4, 6, 8, 12, 24
3) Napisz program w języku C, który wczytuje dwie liczby całkowite (mc, dz) oznaczające:
mc – numer miesiąca,
dz – numer dnia w miesiącu.
Program ma obliczyć numer kolejny dnia w bieżącym roku wyznaczony przez tę datę.
Przykładowe wyniki
mc=1, dz=1 – to 1-szy dzień roku
mc=1, dz=31 – to 31-szy dzień roku
mc=2, dz=1 – to 32-gi dzień roku
mc=12, dz=31 – to 366-ty dzień roku
4) Napisz program w języku C, który wczytuje liczbę całkowitą oznaczającą ile sekund upłynęło od
północy. Program ma obliczyć trójkę HH:MM:SS – klasyczne zwyczajowe określenie czasu.
Przykładowe wyniki
36600:
36900:
55200:
63920:
10:10:00
10:15:00
15:20:00
17:45:20
Praca domowa nr 3
1) Napisz funkcję w języku C o nazwie slownie100, która dla przekazanej jako parametr wołania
wartości kwota typu int z zakresu [0, 100) wypisze słownie wartość przekazanej kwoty.
Przykładowe wyniki działania funkcji w zależności od przekazanej wartości parametru:
0:
<<== puste, nic nie wypisze
1:
jeden
2:
dwa
33:
trzydziesci trzy
78:
siedemdziesiat osiem
Wskazówka: Być może znajdą Państwo jako użyteczną pomocniczą funkcję slownie10, która
działa analogicznie jak slownie100, ale dla zakresu wartości parametru [0, 10).
2) Napisz funkcję o nazwie czyWzajemniePierwsze, która dla podanych jako parametry wołania
dwóch liczb całkowitych sprawdzi, czy liczby te są wzajemnie pierwsze. Liczby są wzajemnie
pierwsze, gdy żaden z dzielników jednej liczby nie jest dzielnikiem drugiej liczby.
Przykładowe wyniki działania, w zależności od przesłanych parametrów:
20, 21
Prawda
<<== liczby są wzajemnie pierwsze
21, 22
Prawda
21, 33
Fałsz
<<== liczba 3 jest wspólnym dzielnikiem
21, 35
Fałsz
<<== liczba 7 jest wspólnym dzielnikiem
3) Napisz funkcję o nazwie czyPitagorejskie, która dla podanych jako parametry wołania trzech
liczb całkowitych sprawdzi, czy liczby te są tzw. trójkami pitagorejskimi, czyli liczbami
całkowitymi spełniającymi równanie Pitagorasa:
2
2
2
x  y =z
Przykładowe wyniki działania:
1, 2, 3
Fałsz
2, 1, 3
Fałsz
2, 3, 4
Fałsz
3, 4, 5
Prawda
5, 4, 3
Prawda
4) Napisz program, który wczytuje tablicę znaków (napis), który w założeniu jest kodem PESEL.
Zadanie programu to określenie, czy podany kod jest poprawny, czy niepoprawny.
Wskazówka: Kod wczytany zostanie do tablicy znaków: powinno zostać wczytanych 11 cyfr; układ
kodu (jaki znak na jakiej pozycji) pokaże poniższy fragment kodu:
int
i;
char kod[100];
/* bufor na kod PESEL */
printf( "Podaj kod PESEL=" ); gets( kod );
for ( i=0; kod[i] != 0; i++ )
printf( "kod znaku na pozycji [%2d] = %3d\n", i, kod[i] );
Przydatne źródło potrzebnych informacji: http://pl.wikipedia.org/wiki/PESEL
Praca domowa nr 4
1) Napisz program, który wczytuje trzy liczby w założeniu będące długościami boków pewnego
trójkąta; wykonaj następujące obliczenia:
•
sprawdź, czy podane liczby wyznaczają legalny trójkąt;
•
oblicz w stopniach kąty trójkąta;
•
oblicz pole powierzchni trójkąta;
•
oblicz promień okręgu wpisanego w trójkąt;
•
oblicz promień okręgu opisanego na trójkącie.
Przydatne źródło informacji: http://pl.wikipedia.org/wiki/Tr%C3%B3jk%C4%85t
2) Napisz program, który będzie przeliczał kąty z miary łukowej w radianach na miarę w stopniach
(minutach, sekundach), i odwrotnie. Zastanów się jak zorganizować dialog z operatorem programu,
aby umożliwić mu wskazanie pożądanego wariantu konwersji.
Wskazówka: 360º = 2π radianów
3) Napisz program, który będzie przeliczał wzrost podany w centymetrach na wzrost podany
w stopniach i calach, i odwrotnie. Zastanów się jak zorganizować dialog z operatorem programu,
aby umożliwić mu wskazanie pożądanego wariantu konwersji.
Wskazówka: 1 stopa = 12 cali; 1 cal = 2.54 cm
4) Napisz program, który wczytuje liczbę rzeczywistą – część całkowita to złote, część ułamkowa
to grosze; zadanie programu to wyliczenie ile trzeba użyć będących w obiegu nominałów
pieniężnych (banknotów i monet) aby móc wypłacić podaną kwotę.
Przykładowe wyniki:
8.23:
1 ∙ 5zł, 1 ∙ 2zł, 1 ∙ 1zł, 1 ∙ 20gr, 1 ∙ 2gr, 1 ∙ 1gr
49.75:
2 ∙ 20zł, 1 ∙ 5zł, 2 ∙ 2zł, 1 ∙ 50gr, 1 ∙ 20gr, 1 ∙ 5gr
612.37:
6 ∙ 100zł, 1 ∙ 10zł, 1 ∙ 2zł, 1 ∙ 20gr, 1 ∙ 10gr, 1 ∙ 5gr, 1 ∙ 2gr
Praca domowa nr 5
1) Napisz program, który symuluje losowanie Lotto: generowanych jest sześć różnych liczb z
zakresu od 1 do 49.
Wskazówka: Przyjrzyj się uważnie operacji wyznaczania reszty z dzielenia.
2) Napisz funkcję, do której jako parametry wysyłasz adres tablicy liczb rzeczywistych double
i liczbę elementów tej tablicy. Funkcja ma przesunąć cyklicznie elementy w kierunku końca tablicy
o jedną pozycję. Napisz program, który zademonstruje funkcję w działaniu.
Przykład działania funkcji
34
18
5
Tablica przed operacją:
92
8
70 323 661 25
254
18
34
Tablica po operacji:
92
8
70 323 661
25
254
5
3) Napisz funkcję, do której jako parametry wysyłasz adres tablicy liczb rzeczywistych double
i liczbę elementów tej tablicy. Funkcja ma określić dwa wyniki: pozycję w tablicy (indeks) liczby
o największej i o najmniejszej wartości. Napisz program, który zademonstruje funkcję w działaniu.
Przykład
34
5
92
8
70
323 661
25
254
18
W powyższej tablicy wartość minimalna jest na pozycji nr 1, maksymalna na apozycji nr 6.

Podobne dokumenty