Zadanie 2 - SKŁADANIE FUNKCJI ============================= Funkcja f:X-->Y może być reprezentowana jako program o nazwie f, który wczytuje ze swojego standardowego wejścia argument x oraz wypisuje na standardowe wyjście f(x). Napisz program o nazwie zloz, który pobierze z linii poleceń nazwy dwóch funkcji f:X-->Y oraz g:Y-->Z po czym zachowa się jak program reprezentujący złożenie tych funkcji, tj. wczyta ze standardowego wejścia argument x i wypisze na standardowym wyjściu g(f(x)). Zakładamy przy tym, że w bieżącym katalogu znajdują się pliki wykonywalne o nazwach identycznych z nazwami funkcji podanymi w linii poleceń. Dodatkowe założenia i ograniczenia: 1. Najważniejsze: program zloz _NIE_MOŻE_ poznać pośredniej wartości obliczenia, tzn. f(x). 2. Dla czytelności można pominąć obsługę błędów przy wywołaniach funkcji systemowych. 3. Język programowania dowolny, ale nie wolno używać operatora bezpośredniego zestawiania potoku o ile takowy w tym języku istnieje (np. | w bashu). Nie wolno tworzyć żadnych plików. Przykład ======== W katalogu bieżącym znajduje się skompilowany program w C, o nazwie plus5, którego źródło jest następujące: #include int x; int main() { scanf("%d", &x); printf("%d", x+5); return 0; } oraz wykonywalny skrypt w bashu o nazwie razy2: #!/bin/bash read a echo $[2*$a] Oto przykładowa interakcja z programem zloz: echo 6 | ./zloz razy2 plus5 17 echo 3 | ./zloz plus5 plus5 13 Rozwiązania i pytania: aszek@mimuw.edu.pl. Polecam wyrobienie się przed 23.12.2005 ale ostateczny termin to 10.01.2006.