Lista 7 (6 grudnia 2005): 14 punktów.
Przeczytaj z książki B.W.Kernighana i D.M.Ritchiego
Język ANSI C rozdział 5:
Wskaźniki i tablice.
- (2 punkty)
Zaprogramuj funkcję, która dla zadanego znaku char oraz
słowa char[] zwróci wskaźnik do pierwszego wystąpienia
tego znaku w słowie lub NULL jeżeli znak nie występuje.
Następnie napisz program, który wczyta napis i sprawdzi (korzystając
z tej funkcji), które samogłoski występują w tym napisie, a które
w ogóle w nim nie występują.
Uwaga:
Program powinien wypisać wszystkie samogłoski występujące w napisie.
- (2 punkty)
Zaprogramuj funkcję, która pobiera dwa wskaźniki do łańcuchów
znakowych i sprawdza, czy pierwszy występuje w drugim.
Następnie napisz program, który wczyta określoną liczbę napisów
i sprawdzi czy istnieją wśród nich takie pary, że jeden napis
występuje w drugim.
Uwaga:
Program powinien wypisać wszystkie takie pary.
- (3 punkty)
Napisz program, który wczyta określoną liczbę napisów, a następnie
wypisze je uporządkowane leksykograficznie.
Uwaga:
Twój program powinien porządkować tylko tablicę ze wskaźnikami na
napisy (sortowanie napisów poprzez przestawianie wskaźników do
tablic znakowych).
Wskazówka:
Do porównywania napisów użyj funkcji z biblioteki standardowej
strcmp().
- (2 punkty)
Napisz program, który wczyta nie więcej niż 1000000000 liczb
całkowitych z zakresu od 0 do 999 i wypisze liczbę wystąpień (o ile
jest niezerowa) każdej liczby z tego zakresu.
- (2 punkty)
Napisz program, który wypełni losowymi wartościami całkowitymi
z zakresu od 0 do 999 tablicę liczb o określonym rozmiarze,
a następnie wyznaczy wszystkie pary liczb różniące się o jakąś
potęgę 2 (czyli o 1, 2, 4,... 512).
Uwaga:
Program powinien wypisać wszystkie takie pary.
- (3 punkty)
Zaprogramuj funkcję, która będzie mnożyła dwie kwadratowe macierze
liczb.
Rozmiar tych macierzy jest przekazywany jako parametr wywołania.
Funkcja ta ma umieszczać wynik w tablicy, do której wskaźnik także
jest przekazywany poprzez parametr wywołania funkcji.
Następnie napisz program, który wczyta niedużą liczbę naturalną
n i podniesie do potęgi n-tej macierz A.
Sama macierz A ma wymiary 2x2 i jest cała wypełniona
jedynkami za wyjątkiem pierwszego zerowego elementu
(a1,1=0 oraz
a1,2=a2,1=a2,2=1).
Uwaga:
Program powinien wypisać macierz An.
- (7 punktów)
Napisz program, który będzie w pętli wczytywał ze standardowego
wejścia liczby całkowite z zakresu od 0 do 999 i wypisywał je
w postaci słownej w języku polskim na standardowe wyjście.
Program ma zakończyć działanie dopiero po wczytaniu liczby spoza
tego zakresu.
Komunikaty zachęcające do wprowadzania danych wypisuj na standardowe
wyjście dla błędów.
Uwaga:
Zamieniając liczbę na postać słowną skorzystaj z zainicjalizowanych
tablic globalnych JEDNOSCI[20], DZIESIATKI[10]
i SETKI[10].
Tablice te zdefiniuj w oddzielnym pliku źródłowym, a w pliku
nagłówkowym umieść stosowne deklaracje zapowiadające.
Uwaga:
Przy zamianie liczby na postać słowną skorzystaj z funkcji, która
będzie zwracała wskaźnik do powstałego napisu (lokalna zmienna
statyczna). Napis ten nie powinien posiadać żadnych spacji na
początku i na końcu, a poszczególne liczebniki powinny być
pooddzielane dokładnie jedną spacją.
- (7 punktów, kontynuacja poprzedniego zadania)
Napisz program, który będzie w pętli wczytywał ze standardowego
wejścia liczby całkowite z zakresu od -999999999 do 999999999
i wypisywał je w postaci słownej w języku polskim na standardowe
wyjście.
Program ma zakończyć działanie dopiero po wczytaniu liczby spoza
tego zakresu.
Uwaga:
Pamiętaj o poprawnej odmianie liczebników tysiąc
i milion.
|