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: abc ; ab c ; ab ; a−b bc bc e d− f g a ; a d e bc d −ef c abc 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.