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 <stdio.h>
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.