Strona startowa Ludzie pragną czasami się rozstawać, żeby móc tęsknić, czekać i cieszyć się z powrotem.wczeniej na etapie pierwszych czstek chemicznych, na etapie pierwszychrybozomw, na etapie pierwszych bakterii, na etapie ssakw, a wic take naetapie...– Jak to się stało, że nie miał synów?– Och, miał synów, nawet dwóch...krakowskiego Marka12 nakłania księcia Konrada, żeby traktował bratanka łagodnie i nie przedsiębrał żadnych knowań na życie jego lub jego bliskich...Kiedy T’lion wrócił, przytrzymał Tai żeby mogła oprzeć dłonie na boku Golantha, unikając śladów po pazurach na prawej łopatce, które — gdyby były...– Nigdy! Nawet gdybym musiała zostać chrześcijanką, żeby temu zapobiec! – krzyknęła Igriana...Profilaktyka zaburze emocjonalnych to przede wszystkim uczenie dziecka rnych sposobw radzenia sobie w sytuacjach trudnych, a nie tylko ochrona dziecka przed...Powiedział mi, że jestem osobą, która nie boi się bólu, i że to bardzo dobrze, bo żeby zapanować nad duszą, trzeba również nauczyć się panować nad ciałem...Jakim sposobem dotrzemy do tęczy z zasłoniętymi oczami?Kiedy nie będziesz na nią patrzył, nie będzie mogła wydawać się odległa - tłumaczył mu Arnold...— Jak to nie obchodzi?! — krzyknął kapitan Giles nie kryjąc już oburzenia, które zresztą przejawiało się u niego w sposób opanowany i spokojny...Sonia Karnell odgarnęła krótko przycięte ciemne włosy z czoła i żeby przy- podobać się Berlinowi, zabrała się do swego melona...
 

Ludzie pragną czasami się rozstawać, żeby móc tęsknić, czekać i cieszyć się z powrotem.


2.2.35 (C++) Napisz funkcję, która dla dwóch dodatnich całkowitolicz-bowych argumentów m i n zwraca wartość true jeżeli n dzieli m
oraz false w przeciwnym wypadku. W przypadku podania jednego
argumentu funkcja powinna sprawdzać czy podana liczba jest parzy-
sta.
2.2.36 (C++,r,!) Napisz rodzinę dwuargumentowych funkcji pot, z których każda jako argumenty otrzymuje liczbę n i nieujemną liczbę całkowitą
m typu unsigned int (zakładamy, że co najmniej jeden z argumen-
tów jest różny od zera) i zwraca jako wartość nm. Przeciąż funkcję
pot dla n o typach: double, int, unsigned int. Wynik zwrócony
przez każdą z funkcji pot powinien być tego samego typu co n.
2.2.37 (C++) Rodzinę funkcji pot z zadania 2.2.36 rozszerz o funkcje, w któ-
rych m jest typu int. Funkcje te powinny zwracać wartości typu
double.
2.2.38 (C++) Napisz rodzinę funkcji maksimum zwracających maksimum z dwóch liczb otrzymanych w argumentach. Typem zwracanym powinien być bardziej pojemny z typów argumentów (tak jak to ma miejsce
w przypadku operacji arytmetycznych). Przykładowo dla jednego ar-
gumentu typu int a drugiego typu double zwrócony powinien zostać
wynik o typie doble.
2.2.39 (C++) Napisz rodzinę funkcji maksimum zwracających maksimum od dwóch do pięciu wartości otrzymanych w argumentach. Argumenty
funkcji oraz wartość zwracana przez funkcję powinny być typu int.
2.2.40 (C++) Napisz rodzinę funkcji srednia zwracających średnią arytmetyczną z dwóch lub trzech wartości podanych przez użytkownika.
Typem wyniku każdej z funkcji powinien być najbardziej pojemny
z typów argumentów.
Rozdział 3
Wskaźniki i referencje
3.1.
Wprowadzenie . . . . . . . . . . . . . . . . . . . . . .
14
3.2.
Zadania . . . . . . . . . . . . . . . . . . . . . . . . . .
14
14
3. Wskaźniki i referencje
3.1. Wprowadzenie
Autor niniejszego zbioru jest zwolennikiem tego, aby w procesie naucza-
nia języka C jako pierwszego języka programowania, najpierw mówić o ta-
blicach jednowymiarowych, a dopiero potem mówić o wskaźnikach i ich po-
wiązaniach z tablicami. Od lat w takiej właśnie kolejności był prezentowany materiał na kursie „Programowanie w języku C” na kierunku informatyka
na UMCS. Takie ułożenie materiału pozwala studentom oswoić się z podsta-wami programowania zanim zaczną poznawać trudne zagadnienia związane
ze wskaźnikami. Niniejszy zbiór zadań odszedł od takiego ułożenia materia-
łu ze względu na jednoczesną prezentację rozwiązań w językach C i C++.
O ile bowiem w języku C możemy używać jednowymiarowych tablic nie wie-
dząc nic o wskaźnikach ani dynamicznym zarządzaniu pamięcią, o tyle w ję-
zyku C++ jest to możliwe tylko wtedy, gdy używamy tablic o z góry
(t.j. w momencie kompilacji) znanych rozmiarach.
Ci spośród czytelników, którzy uczą się języka C i nie chcą jeszcze poznawać wskaźników mogą przejść od razu do rozdziału 4. Większość z prezen-
towanych tam zadań nie będzie wymagała od nich znajomości wskaźników.
3.2. Zadania
3.2.1 (r) Napisz funkcję otrzymującą jako argumenty wskaźniki do dwóch zmiennych typu int, która zwraca jako wartość mniejszą z liczb wskazywanych przez argumenty.
3.2.2 (r) Napisz funkcję otrzymującą jako argumenty wskaźniki do dwóch zmiennych typu int, która zwraca jako wartość wskaźnik na zmienną
przechowującą mniejszą z liczb wskazywanych przez argumenty.
3.2.3 (r) Napisz funkcję otrzymującą jako argumenty wskaźniki do dwóch zmiennych typu int, która zamienia ze sobą wartości wskazywanych
zmiennych.
3.2.4 Napisz funkcję otrzymującą jako argumenty wskaźniki do dwóch zmiennych typu int, która zamienia ze sobą wartości wskazywanych zmien-
nych tylko wtedy, gdy wskazywana przez drugi argument zmienna jest
mniejsza od zmiennej wskazywanej przez pierwszy argument.
3.2.5 Napisz funkcję, której argumentami są dwa wskaźniki do stałych typu int, zaś zwracaną wartością jest suma wartości zmiennych wskazywanych przez argumenty.
3.2.6 Napisz funkcję, której argumentami są n typu int oraz w wskaźnik
do int, która przepisuje wartość n do zmiennej wskazywanej przez w.
3.2. Zadania
15
3.2.7 (C++,r) Napisz funkcję otrzymującą jako argumenty referencje do dwóch zmiennych typu int, która zamienia ze sobą wartości zmiennych, do których referencje dostaliśmy w argumentach.
3.2.8 (C++) Napisz funkcję otrzymującą dwa argumenty referencję a oraz wskaźnik b do zmiennych typu int, która zamienia ze sobą wartości zmiennych, do których wskaźnik i referencję dostała w argumen-
tach.
3.2.9 (r,róż) Napisz bezargumentową funkcję, która rezerwuje pamięć dla pojedynczej zmiennej typu int i zwraca jako wartość wskaźnik
do niej.
3.2.10 Napisz bezargumentową funkcję, która rezerwuje pamięć dla pojedynczej zmiennej typu double i zwraca jako wartość wskaźnik do niej.
3.2.11 (r,róż) Napisz funkcję, która dostaje jako argument dodatnią liczbę całkowitą n, rezerwuje w pamięci blok n zmiennych typu int i zwraca
jako wartość wskaźnik do początku zarezerwowanego bloku pamięci.
3.2.12 Napisz funkcję, która dostaje jako argument dodatnią liczbę całkowitą n, rezerwuje w pamięci blok n zmiennych typu double i zwraca jako
wartość wskaźnik do początku zarezerwowanego bloku pamięci.
3.2.13 (*,r,!) Napisz funkcję o dwóch argumentach:
— wskaźnik na funkcję o jednym argumencie typu int zwracającą
wartość typu double,
— wartość typu int,
która zwraca wartość funkcji otrzymanej w pierwszym argumencie na
liczbie całkowitej podanej w drugim argumencie.
3.2.14 (*) Napisz funkcję, która otrzymuje trzy argumenty:
— dwa wskaźniki na funkcje o jednym argumencie typu int zwraca-
jące wartość typu int,
— wartość n typu unsigned int,
i zwraca true, jeżeli otrzymane w argumentach funkcje są równe
dla wartości od 0 do n i false w przeciwnym wypadku.
3.2.15 (r,!) Napisz funkcję, która dostaje dwa argumenty: wskaźnik na stałą typu int i wskaźnik na zmienną typu int, i przepisuje zawartość sta-
łej wskazywanej przez pierwszy argument do zmiennej wskazywanej
przez drugi argument.
3.2.16 (r,!) Napisz funkcję, która dostaje dwa argumenty: wskaźnik na stałą typu int i stały wskaźnik na zmienną typu int. I przepisuje zawartość
stałej wskazywanej przez pierwszy argument do zmiennej wskazywanej
przez drugi argument.