Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
WI_IDEN - Skracanie identyfikatorów |
W latach 50. ubiegłego wieku, kiedy programowanie było jeszcze w powijakach, kompilatory nie były nawet w części tak zaawansowane, jak są dzisiaj. Na programistę nakładano całą masę ograniczeń różnej natury, które dzisiaj wydawać się mogą śmieszne i niezrozumiałe. I tak na przykład wczesne kompilatory języka Fortran potrafiły narzucać maksymalną długość nazw zmiennych, co oznaczało, że programiście nie było wolno nazywać swoich danych tak, jakby sobie tego życzył i zmuszało go do karkołomnego skracania swoich przydługich nazw, aby woli kompilatora stało się zadość.
W konsekwencji społeczności programistów, skupionych np. w różnych laboratoriach badawczych, wypracowywały dla siebie jednolite konwencje i standardy mówiące, w jaki sposób należy skracać nazwy zmiennych, aby nie były dłuższe niż n (gdzie n mogło silnie zależeć od używanego kompilatora).
Jedną z takich konwencji możemy opisać w sposób następujący:
-
napisz nazwę zmiennej w postaci, w której życzyłbyś sobie ją widzieć – używaj tylko liter, cyfr oraz znaków '_' (podkreślenie) i '$' (dolar); może zabrzmi to dziwnie, ale znak '$' traktować będziemy jak literę (czyni to do dzisiaj wiele kompilatorów);
-
jeśli długość nazwy jest mniejsza równa n, możesz jej użyć i nie musisz robić nic więcej
-
w przeciwnym wypadku usuwaj z nazwy, począwszy od końca, wszystkie znaki, które nie są literami i cyframi – w chwili, w której długość nazwy osiągnie n, możesz zakończyć pracę i użyć nazwy zmiennej
-
jeśli długość nazwy nadal jest większa od n, usuwaj z niej, począwszy od końca, kolejne cyfry - w chwili, w której długość nazwy osiągnie n możesz zakończyć pracę i użyć nazwy zmiennej
-
jeśli długość nazwy nadal jest większa od n, usuwaj z niej, począwszy od początku, kolejne samogłoski z wyjątkiem pierwszej (chodzi o to, by w nazwie została chociaż jedna samogłoska, o ile jakakolwiek została użyta) - w chwili, w której długość nazwy osiągnie n, możesz zakończyć pracę i użyć nazwy zmiennej
-
jeśli długość nazwy nadal jest większa od n, usuwaj z niej znaki od końca, począwszy od przedostatniego - w chwili, w której długość nazwy osiągnie n, możesz zakończyć pracę i użyć nazwy zmiennej
Polecenie: napisz program, który skróci dowolną nazwę zmiennej do maksymalnej długości n w sposób opisany powyższym algorytmem.
Dane wejściowe:
-
2 wiersze, zawierające kolejno:
-
maksymalną dopuszczalną długość zmiennej
(n: n >= 1 i n <= 65535) -
nazwę zmiennej (o długości l), która będzie podlegać skracaniu
(l: l >= 1 i l <= 65636)
-
Dane wyjściowe:
-
jeden wiersz, zawierający nazwę zmiennej poddaną algorytmowi skracania.
Przykład:
Wejście:
7
ALA_MA_KOTA_I_2_PSY
Wyjście:
ALMKTPS
Dodane przez: | Sławomir Wernikowski |
Data dodania: | 2009-09-11 |
Limit czasu wykonania programu: | 1s-10s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | C CSHARP CPP C99 JAVA PAS-GPC PAS-FPC |
Pochodzenie: | Konkurs o nagrodę Dziekana WI ZUT w Szczecinie (2009) |