Proste funkcje

Identyfikacja rodzaju znaku

  1. Proszę napisać funkcję: boolean isLower( char c ) { ... }, rezultatem funkcji ma być wartość false, jeżeli znak c nie jest małą literą, lub wartość true, gdy znak c jest małą literą.
  2. Proszę napisać funkcję: boolean isUpper( char c ) { ... }, rezultatem funkcji ma być wartość false, jeżeli znak c nie jest dużą literą, lub wartość true, gdy znak c jest dużą literą.
  3. Proszę napisać funkcję: boolean isDigit( char c ) { ... }, rezultatem funkcji ma być wartość false, jeżeli znak c nie jest cyfrą dziesiętną, lub wartość true, gdy znak c jest cyfrą dziesiętną.
  4. Proszę napisać funkcję: boolean isHexDigit( char c ) { ... }, rezultatem funkcji ma być wartość false, jeżeli znak c nie jest cyfrą szesnastkową, lub wartość true, gdy znak c jest cyfrą szesnastkową.
  5. Proszę napisać funkcję: boolean isWhiteChar( char c ) { ... }, rezultatem funkcji ma być wartość false, jeżeli znak c nie jest tzw „białym znakiem”, lub wartość true, gdy znak c nim jest. Zakładamy, że białe znaki to ' ', '\n', '\r', '\t'.
  6. Proszę napisać funkcję: boolean isAlphaNum( char c ) { ... }, rezultatem funkcji ma być wartość false, jeżeli znak c nie jest literą ani cyfrą, lub wartość true, gdy znak c to litera (mała lub duża) lub cyfra dziesiętna.

Uwaga, klasa Scanner nie posiada jawnej funkcji odczytu pojedynczego znaku. Można to zrobić np. tak:

char znak = wejscie.nextLine().charAt( 0 );

Wczytywanie liczby z zakresu

Proszę napisać funkcję: double czytajLiczbeZZakresu( String pytanie, String blad, double dol, double gora ) { ... }. Funkcja odczytuje z klawiatury liczbę rzeczywistą, przy czym pozwala tylko na wprowadzenie liczby należącej do przedziału domkniętego określonego parametrami dol i gora. Wczytana liczba jest rezultatem funkcji. Funkcja pyta użytkownika o wartość liczby zawartością łańcucha znaków pytanie, odpytywanie użytkownika trwa tak długo, aż zostanie wprowadzona liczba z odpowiedniego zakresu. W przypadku wprowadzenia nieprawidłowej liczby, funkcja ma wyprowadzić komunikat określony łańcuchem znaków blad, i przejść do ponownego wczytania liczby. Może zdarzyć się sytuacja, że gora <= dol, proszę uwzględnić ten przypadek.

Przeliczenia

  1. Proszę napisać funkcję: bool jestPrzestepny( int rok ) { … } sprawdzającą, czy liczba przekazana parametrem rok oznacza rok przestępny. Rezultatem funkcji ma być wartość true gdy rok jest przestępny, false w przeciwnym przypadku.
  2. Proszę napisać funkcję: double cenaBrutto( double cenaNetto, double podatek ) { … } wyliczającą cenę brutto na podstawie ceny neto oraz wyrażonej w procentach wielkości podatku VAT. Rezultatem wywołania: double cena = cenaBrutto( 100, 23 ); ma być cena == 123.
  3. Proszę napisać funkcję: double cenaNetto( double cenaBrutto, double podatek ) { … }, wyliczającą cenę netto na podstawie ceny brutto oraz wyrażonej w procentach wielkości podatku VAT. Rezultatem wywołania: double cena = cenaNetto( 123, 23 ); ma być cena == 100.
  4. Proszę napisać funkcję: double wartoscPodatku( double cenaBrutto, double podatek ) { … } wyliczającą wartość podatku na podstawie ceny brutto oraz wyrażonej w procentach wielkości podatku VAT. Rezultatem wywołania: double podatek = cenaNetto( 123, 23 ); ma być podatek == 23.
  5. Proszę napisać funkcję: double odsetkiStale( double kwota, double lbDni, double odsetkiZaDzien ) { … } wyliczającą wartość odsetek karnych za zwłokę w zapłaceniu podatku. Parametr kwota określa kwotę zaległego podatku, lbDni zawiera liczbę dni po terminie zapłaty, odsetkiZaDzien zawiera procent od kwoty zaległego podatku naliczany każdego dnia. Wyznaczenie odsetek polega na wyliczeniu kwoty odsetek za każdy dzień zwłoki i przemnożeniu przez liczbę dni. Odsetki za każdy dzień zwłoki są stałe, naliczane są od kwoty wejściowej (parametr kwota). Rezultatem wywołania double odsetki = odsetkiStale( 1000, 10, 3 ); ma być odsteki == 300.
  6. Proszę napisać funkcję: double odsetkiProgresywne( double kwota, double lbDni, double odsetkiZaDzien ) { … } wyliczającą wartość odsetek karnych za zwłokę w zapłaceniu podatku. Parametr kwota określa kwotę zaległego podatku, lbDni zawiera liczbę dni po terminie zapłaty, odsetkiZaDzien zawiera procent od kwoty zaległego podatku naliczany każdego dnia. Wyznaczenie odsetek polega na wyliczeniu kwoty odsetek za każdy dzień zwłoki i przemnożeniu przez liczbę dni. Odsetki za każdy dzień zwłoki są zmienne, naliczane są od kwoty wejściowej (parametr kwota) powiększonej o sumę odsetek z dni poprzednich. Rezultatem wywołania double odsetki = odsetkiStale( 1000, 4, 3 ); ma być odsteki == 125,51 (po zaokrągleniu do grosza), a wywołania: double odsetki = odsetkiStale( 1000, 10, 3 ); ma być odsteki == 343,92 (po zaokrągleniu do grosza).

Materiały w Internecie na temat funkcji: