Lista 4 (8 listopada 2005): 13 punktów.
Przeczytaj z książki B.W.Kernighana i D.M.Ritchiego
Język ANSI C rozdział 3:
Sterowanie.
- (2 punkty)
Napisz program, który wczytuje tekst ze standardowego wejścia
i wypisuje go na standardowe wyjście z małymi literami zamienionymi
na wielkie. Wykorzystaj własną funkcję zamieniającą małą literę
na wielką. Pozostałe znaki nie powinny być zmieniane.
Do czytania danych ze strumienia wejściowego wykorzystaj funkcję
getchar() a do pisania do strumienia wyjściowego funkcję
putchar(). Program ma działać w pętli, dopóki nie zostanie
wczytany znak końca pliku EOF.
- (2 punkty)
Napisz program, który wczytuje tekst ze standardowego wejścia
i po przefiltrowaniu wypisuje go na standardowe wyjście.
Filtrowanie ma polegać na usunięciu z tekstu wszystkich znaków
o kodach <32 (za wyjątkiem znaków '\n' i '\t')
lub ==127. Wykorzystaj własną funkcję sprawdzającą, czy znak ma być
zatrzymany (wartość 1) czy odrzucony (wartość 0).
Do czytania danych ze strumienia wejściowego wykorzystaj funkcję
getchar() a do pisania do strumienia wyjściowego funkcję
putchar(). Program ma działać w pętli, dopóki nie zostanie
wczytany znak końca pliku EOF.
- (3 punkty)
Napisz program, który wczytuje tekst ze standardowego wejścia
i wypisuje go na standardowe wyjście po przeformatowaniu.
Formatowanie ma polegać na zastąpieniu w tekście wszystkich długich
odstępów pojedynczą spacją i na usunięciu odstępów sprzed znaku
końca linii '\n'. Przez długi odstęp należy rozumieć spójny
ciąg złożony ze znaków spacji ' ' i tabulacji '\t'
za wyjątkiem pojedynczej spacji.
Do czytania danych ze strumienia wejściowego wykorzystaj funkcję
getchar() a do pisania do strumienia wyjściowego funkcję
putchar(). Program ma działać w pętli, dopóki nie zostanie
wczytany znak końca pliku EOF.
- (3 punkty)
Napisz program, który wczytuje tekst ze standardowego wejścia
i wypisuje go na standardowe wyjście po przeformatowaniu.
Formatowanie ma polegać na zastąpieniu w tekście wszystkich znaków
tabulacji '\t' odpowiednią liczbą spacji ' '
(od 1 do 8), tak aby wygenerowany tekst wyglądał tak samo jak
oryginał.
Do czytania danych ze strumienia wejściowego wykorzystaj funkcję
getchar() a do pisania do strumienia wyjściowego funkcję
putchar(). Program ma działać w pętli, dopóki nie zostanie
wczytany znak końca pliku EOF.
- (3 punkty)
Napisz program, który wczytuje tekst ze standardowego wejścia
i wypisuje go na standardowe wyjście po przeformatowaniu.
Formatowanie ma polegać na wypisaniu każdego słowa w osobnej linii.
Słowa w tekście są porozdzielane ciągami białych znaków (spacje
' ', tabulacje '\t', znaki przejścia do nowej
linii '\r' i '\n').
Do czytania danych ze strumienia wejściowego wykorzystaj funkcję
getchar() a do pisania do strumienia wyjściowego funkcję
putchar(). Program ma działać w pętli, dopóki nie zostanie
wczytany znak końca pliku EOF.
- (2 punkty)
Równanie algebraiczne drugiego stopnia (równanie kwadratowe) ma
następującą postać:
ax2 + bx + c = 0
Napisz program, który wczyta współczynniki rzeczywiste (typu
double) tego równania ze standardowego wejścia (funkcja
scanf()) i rozwiąże je (wyznaczy pierwiastki rzeczywiste).
Jeśli wczytany współczynnik a będzie równy 0, to należy
natychmiast zakończyć działanie programu.
Komunikaty zachęcające do wpisywania wanych należy kierować na
standardowe wyjście dla błędów (funkcja fprintf()).
Jako wynik, należy wypisać na standardowym wyjściu (funkcja
printf()) w pierwszej linii liczbę pierwiastków
rzeczywistych tego równania, a w następnych liniach kolejno te
pierwiastki (po jednym w każdej linii).
- (11 punktów)
Równanie algebraiczne trzeciego stopnia (równanie sześcienne) ma
następującą postać:
ax3 + bx2 + cx + d = 0
Napisz program, który wczyta współczynniki rzeczywiste (typu
double) tego równania ze standardowego wejścia (funkcja
scanf()) i rozwiąże je (wyznaczy pierwiastki rzeczywiste).
Jeśli wczytany współczynnik a będzie równy 0, to należy
natychmiast zakończyć działanie programu.
Komunikaty zachęcające do wpisywania danych należy kierować na
standardowe wyjście dla błędów (funkcja fprintf()).
Jako wynik, należy wypisać na standardowym wyjściu (funkcja
printf()) w pierwszej linii liczbę pierwiastków
rzeczywistych tego równania, a w następnych liniach kolejno te
pierwiastki (po jednym w każdej linii).
Informacji na temat rozwiązywania równań trzeciego stopnia
powinieneś poszukać w internecie (na przykład w
Wikipedii)
lub w fachowej literaturze matematycznej.
|