Zadania

Wskaźniki: 

Zadanie.1. Zdefiniuj wskaźnik na zmienną typu całkowitego. Zainicjuj wskaźnik adresem zmiennej całkowitej int x = 20. Wyprowadzić na ekran zawartość zmiennej za pomocą wskaźnika oraz za pomocą identyfikatora zmiennej.

Zadanie 2. Napisz program wczytujący tablicę dziesięcioelementową „wypełnioną” dowolnymi liczbami całkowitymi. Następnie, wykorzystując wskaźniki, wyświetl: a) wartość pierwszego elementu tablicy, b) wartość elementu piątego, c) zawartość całej tablicy.

Zadanie 3. Napisać funkcję swap, która zamieni miejscami dwa elementy, typu int, podane jako jej argumenty. Oczywiście argumenty muszą być przekazane przez adres. Uwaga: Choć taka funkcja operująca na danych typu int może wydawać się nieprzydatna (to tylko ćwiczenia) to w podobny sposób można napisać funkcję zamieniającą dwa rekordy – bardzo złożone typy danych.

Zadanie 4. Napisz program, który wypisze zawartość tablicy zadeklarowanej w następujący sposób:

int a[ ] = {1, 3, 5, 7, 9, 11, 13};

Należy napisać dwie funkcje: wersję zwykłą opartą o indeksowanie tablicy i wersję wskaźnikową.

Zadanie 5. Napisz funkcję hist(char *tekst, int *htab_sl, int *htab_d), która wyznaczy histogramy (liczbę wystąpień) wszystkich małych literek i umieści te informacje w tablicy htab_sl i cyfr w htab_d w podanym tekście. Funkcja jako pierwszy parametr dostaje wskaźnik do tekstu, który ma być analizowany, a jako drugi i trzeci wskaźnik do tablicy, gdzie mają być umieszczone histogramy. Program, który będzie wywoływał funkcję hist ma następnie wypisać otrzymane histogramy w formie tabelki.

Przykładowo:

int hl[‘z’-’a’+1], hd[10]; /*deklaracja potrzebnych tablic*/ 
hist("aacdd", hl, hd); /*wywołanie funkcji*/

 

po zakończeniu funkcji tablica hl, będzie zawierać następujące pozycje niezerowe hl[0]=2, hl[2]=1, hl[3]=2; bo w podanym tekście wystąpiły dwie litery ‘a’, jedna ‘c’ i dwie ‘d’.

Funkcje:

Zadanie 1. 

Napisz funkcję, która wyznacza pierwiastek całkowity z zadanej liczby. Zastosuj algorytm odejmowania kolejnych liczb nieparzystych (pierwiastek całkowity z liczby x związany jest z ilością kolejnych liczb nieparzystych jakie uda się odjąć od liczby x tak by pozostała ona nieujemna).

Zadanie 2.

Napisz funkcję logiczną, która stwierdza, czy zadana jako parametr liczba całkowita jest liczbą pierwszą. Wartością funkcji ma być prawda, jeśli parametr jest liczbą pierwszą oraz fałsz w przeciwnym wypadku.

Zadanie 3.

Napisz funkcję, która znajduje w tablicy element maksymalny. Parametrami funkcji mają być: tablica tab oraz liczba elementów tablicy – n. Wartością funkcji ma być element maksymalny.

Zadanie 4.

Napisz funkcję, która znajduje w tablicy element minimalny. Parametrami funkcji mają być: tablica tab oraz liczba elementów tablicy – n. Wartością funkcji ma być element minimalny.

Zadanie 5.

Napisz funkcję, zwracającą liczbę elementów w tablicy większych od podanej liczby.

Zadanie 6.

Napisz funkcję, zwracającą średnią arytmetyczną wszystkich elementów w tablicy.

Zadanie 7.

Napisz funkcję, zwracającą iloczyn skalarny dwóch wektorów tego samego wymiaru.

Zadanie 8.

Napisz funkcje bool czy_parzysta, która dla liczby całkowitej zwraca wartość true, gdy liczba jest parzysta oraz wartość false w przeciwnym razie. Następnie napisz program, który wczytuje liczby całkowite, aż do wpisania liczby ˙ −1. Program, przy pomocy funkcji czy_parzysta, zlicza ile liczb parzystych zostało wpisanych przez użytkownik.

Zadanie 9.

Napisz funkcję, która konwertuje liczbę w systemie dziesiętnym na binarną.

 

Zapisz zadania