Problem A - Obszary szachownicy
Problem B - Analiza progu rentowności producenta
Problem C - Interpreter
Problem D - Milaż
Problem E - Pozycja drużyny
Problem F - Edytowanie liczb

 

 

1981

Problem F - Edytowanie liczb


Opis

Celem tego zadania jest stworzenie programu, który będzie edytował liczby całkowite, korzystając z "szablonu" do wytworzenia dogodnej do wydruku liczby wyjściowej z przecinkami, kropką dziesiętną (liczby są zapisane w systemie anglosaskim, przyp. tłum.), itp.

 

Specyfikacja wejścia

Na wejściu pojawi się zbiór wierszy o następującym formacie:

 

n m

gdzie:

n - liczba całkowita, która może być poprzedzona spacjami lub zerami wiodącymi. Możesz założyć, że wartość tej liczby zmieści się w zmiennej o standardowym typie liczb całkowitych 32 bitowych.

m - maska, która będzie złożona ze znaków "Z", "9", ",", "-"  i ".".

 

Koniec danych wejściowych jest oznaczany przez pusty wiersz.

 

Specyfikacja wyjścia

Znaki w masce są przetwarzane od strony lewej do prawej. Każde Z lub 9 odnosi się do jednej cyfry we wejściowej liczbie całkowitej; liczba przetworzonych cyfr w tej liczbie jest równa całkowitej ilości znaków Z i 9 w masce. Jeśli maska posiada n znaków Z i 9, to edycji ulega n cyfr liczby całkowitej znajdujących się po prawej stronie. Przy przetwarzaniu obowiązują następujące reguły:

  1. Znaki Z mają być zastąpione albo przez cyfry z liczby (jeśli dana cyfra nie jest zerem wiodącym ani spacją) lub przez spację (jeśli cyfra jest zerem wiodącym lub spacją).
  2. Znaki 9 mają być zastąpione cyfrą z liczby, nawet jeśli ta cyfra zostałaby normalnie uznana za zero wiodące. Wszystkie zera w liczbie całkowitej przetwarzane po znaku 9 mają być traktowane jako zera nie-wiodące (czyli wyświetlane normalnie jako 0, gdy w masce wystąpi znak Z).
  3. Znaki "," i "." mają być zastąpione przez spację, jeśli jedynie przetwarzane były dotychczas zera wiodące; w przeciwnym razie mają pojawić się na wyjściu na tej samej pozycji co w masce.
  4. Znak "-", jeśli będzie obecny, musi pojawić się na końcu maski i powinien być zastąpiony spacją dla liczb dodatnich, a dla liczb ujemnych powinien pojawić się na końcu liczby.

W ten sposób ma być przetworzony każdy wiersz wejściowy z danymi. Na wyjściu ma być wypisana odczytana liczba, maska oraz liczba po edycji. Całość ma przyjąć formę tabeli z odpowiednim nagłówkiem.

 

Przykładowe dane wejściowe

 0234567 ZZZ,ZZ9.99
-1234567 Z,999.999-
     123 ZZ,Z99.99
 1234567 Z,999,999-
 1234567 Z,999

 

Przykładowe dane wyjściowe

  NUMBER      MASK     EDITED VALUE
 0234567  ZZZ,ZZ9.99      2,345.67
-1234567  Z,999.999-    1,234.567-
     123  ZZ,Z99.99          01.23
 1234567  Z,999,999-    1,234,567
 1234567  Z,999             4,567

 



List do administratora Serwisu Edukacyjnego Nauczycieli I LO

Twój email: (jeśli chcesz otrzymać odpowiedź)
Temat:
Uwaga: ← tutaj wpisz wyraz  ilo , inaczej list zostanie zignorowany

Poniżej wpisz swoje uwagi lub pytania dotyczące tego rozdziału (max. 2048 znaków).

Liczba znaków do wykorzystania: 2048

 

W związku z dużą liczbą listów do naszego serwisu edukacyjnego nie będziemy udzielać odpowiedzi na prośby rozwiązywania zadań, pisania programów zaliczeniowych, przesyłania materiałów czy też tłumaczenia zagadnień szeroko opisywanych w podręcznikach.



   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2017 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.