8 Tablice jednowymiarowe
Zadania należy rozwiązać bez konwersji liczb na napisy.
Napisz funkcję
findMaxValue
, która przyjmuje jako argumenty tablicę liczb całkowitychnumbers
oraz jej rozmiarsize
(dodatnia liczba całkowita). Funkcja powinna przeszukać tablicę i wyświetlić maksymalną wartość znalezioną w tej tablicy. Stwórz przypadek testowy.Napisz funkcję
average
, której argumentem jest dodatnia liczba całkowita \(n\) oraz \(n\)-elementowa tablicatab
o elementach typuint
oraz zwraca średnią arytmetyczną jako liczbę zmiennoprzecinkową. Stwórz przypadek testowy.Napisz funkcję
sumSquares
, której argumentem jest dodatnia liczba całkowita \(n\) oraz \(n\)-elementowa tablicatab
o elementach typuint
oraz zwraca sumę kwadratów elementów tablicy. Stwórz przypadek testowy.Napisz funkcję
copyArr
, która otrzymuje trzy argumenty: dodatnią liczbę całkowitąn
oraz dwien
-elementowe tablicetab1
,tab2
o elementach typu int i przepisuje kolejno elementy tablicytab1
do tablicytab2
. Stwórz przypadek testowy.Napisz funkcję
revCopy
, która otrzymuje trzy argumenty: dodatnią liczbę całkowitąn
oraz dwien
-elementowe tablicetab1
,tab2
o elementach typu int i przepisuje elementy tablicytab1
do tablicytab2
w odwrotnej kolejności. Stwórz przypadek testowy.Napisz funkcję
reverseArr
, której argumentami są dodatnia liczba całkowitan
reprezentująca rozmiar tablicy orazn
-elementowa tablicatab
o elementach typuint
. Funkcja ta ma odwrócić kolejność elementów w tablicytab
bezpośrednio w niej (w miejscu), nie używając dodatkowej tablicy do przechowywania wyników. Stwórz przypadek testowy.Napisz funkcję
maxValue
, której argumentami są dodatnia liczba całkowitan
reprezentująca rozmiar tablicy orazn
-elementowa tablicatab
o elementach typuint
. Funkcja ta ma przeszukać tablicę i zwrócić największą znalezioną w niej wartość. Zakładamy, że tablica nie jest pusta. Stwórz przypadek testowy.Napisz funkcję
minValue
, której argumentami są dodatnia liczba całkowitan
reprezentująca rozmiar tablicy orazn
-elementowa tablicatab
o elementach typuint
. Funkcja ta ma przeszukać tablicę i zwrócić najmniejszą znalezioną w niej wartość. Zakładamy, że tablica nie jest pusta. Stwórz przypadek testowy.Napisz funkcję
maxIdx
, której argumentami są dodatnia liczba całkowitan
reprezentująca rozmiar tablicy orazn
-elementowa tablicatab
o elementach typuint
. Funkcja ta ma znaleźć i zwrócić indeks największego elementu w tablicy. W przypadku wystąpienia więcej niż jednego elementu o maksymalnej wartości, funkcja powinna zwrócić indeks pierwszego z nich (czyli najmniejszy możliwy indeks). Zakładamy, że tablica nie jest pusta. Stwórz przypadek testowy.Napisz funkcję
minIdxMax
, której argumentami są dodatnia liczba całkowitan
reprezentująca rozmiar tablicy orazn
-elementowa tablicatab
o elementach typuint
. Funkcja ta ma przeszukać tablicę i zwrócić indeks najmniejszego elementu w tablicy. W przypadku wystąpienia kilku takich samych najmniejszych elementów, zwróć największy z możliwych indeksów tych elementów. Zakładamy, że tablica nie jest pusta. Stwórz przypadek testowy.Napisz funkcję
shiftLeft
, której argumentami są dodatnia liczba całkowitan
reprezentująca rozmiar tablicy orazn
-elementowa tablicatab
o elementach typufloat
. Funkcja ta ma przesunąć wszystkie elementy tablicy o jedną pozycję w lewo, a ostatni element w tablicy powinien zostać zastąpiony przez pierwszy element oryginalnej tablicy. Zakładamy, że tablica nie jest pusta. Stwórz przypadek testowy.Napisz funkcję
shiftRight2
, której argumentami są dodatnia liczba całkowitan
reprezentująca rozmiar tablicy orazn
-elementowa tablicatab
o elementach typuint
. Funkcja ta ma przesunąć wszystkie elementy tablicy o dwa miejsca w prawo. Elementy, które “wypadną” poza tablicę, powinny pojawić się na jej początku w tej samej kolejności. Stwórz przypadek testowy.Napisz funkcję
shiftLeft
, której argumentami są dodatnia liczba całkowitan
reprezentująca rozmiar tablicy orazn
-elementowa tablicatab
o elementach typuint
. Funkcja ma zwrócić wskaźnik do nowo utworzonej dynamicznej tablicy, w której wszystkie elementy zostały przesunięte o jedną pozycję w lewo w stosunku do oryginalnej tablicy, a ostatni element nowej tablicy jest równy początkowemu elementowi oryginalnej tablicy. Stwórz przypadek testowy.Napisz funkcję
shiftRight
, której argumentami są dodatnia liczba całkowitan
reprezentująca rozmiar tablicy orazn
-elementowa tablicatab
o elementach typuint
. Funkcja ma zwrócić wskaźnik do nowo utworzonej dynamicznej tablicy, w której wszystkie elementy zostały przesunięte o jedną pozycję w prawo w stosunku do oryginalnej tablicy, a pierwszy element nowej tablicy jest równy ostatniemu elementowi oryginalnej tablicy. Stwórz przypadek testowy.Poniżej znajduje się kod w języku C. W niektórych linijkach są komentarze. Twoim zadaniem jest wpisanie wartości odpowiednich zmiennych po wykonaniu konkretnej linii kodu. Dopisanie nowych linijek czy zaburzenie struktury kodu oznacza złe wykonanie polecenia.
#include <stdio.h>
#include <stdlib.h>
int foo(int*a,int*b)
{
return *a-*b;
}
int main()
{
int tab[] = {3,3,0,0,3,3,-4,-4,0,1};
int *wsk=tab-1;
int b = *(wsk+=4); //b=
int c = b+3; // b= , c=
int d = foo(&b,&c); // b= , c= , d=
int e = (wsk+=-1)[4]; // b= , c= , d= , e=
= (d *= 2) + (c += 2); // b= , c= , d= , e=
e = d + (b+=4); // b= , c= , d= , e=
c = (--c)-(d++); // b= , c= , d= , e=
e= *wsk + e; // b= , c= , d= , e=
b return 0;
}
- Poniżej znajduje się kod w języku C. W niektórych linijkach są komentarze. Twoim zadaniem jest wpisanie wartości odpowiednich zmiennych po wykonaniu konkretnej linii kodu. Dopisanie nowych linijek czy zaburzenie struktury kodu oznacza złe wykonanie polecenia.
#include <stdio.h>
#include <stdlib.h>
int foo(int*a,int*b)
{
return *a-*b;
}
int main()
{
int tab[] = {1,5,5,2,3,3,-4,-4,0,1};
int *wsk=tab-1;
int b = *(wsk+=4); //b=
int c = b+3; // b= , c=
int d = foo(&b,&c); // b= , c= , d=
int e = (wsk+=-1)[4]; // b= , c= , d= , e=
= (d -= 2) - (c += 2); // b= , c= , d= , e=
e = d + (b+=4); // b= , c= , d= , e=
c = (--c)-(d++); // b= , c= , d= , e=
e= *wsk + e; // b= , c= , d= , e=
b return 0;
}
Napisz funkcję o nazwie
findElement
, która przyjmuje jako argumenty tablicę liczb całkowitych, rozmiar tablicy, liczbę całkowitąval
do znalezienia oraz wskaźnik na funkcjęisEqual
. FunkcjaisEqual
przyjmuje jako argumenty dwie liczby całkowite i zwraca wartość typu 0 lub 1, oznaczającą odpowiednio, czy liczby są równe. FunkcjafindElement
powinna przeszukiwać tablicę w celu znalezienia wartościval
zgodnie z zasadami określonymi przez funkcjęisEqual
, a następnie zwrócić indeks tego elementu w tablicy (pierwszego napotkanego) lub-1
, jeśli element nie istnieje. Stwórz przypadek testowy dla funkcjifindElement
.Napisz funkcję
findWithCondition
, która przyjmuje jako argumenty tablicę liczb całkowitych, rozmiar tablicy oraz wskaźnik na funkcjęcondition
. Funkcjacondition
przyjmuje jako argument liczbę całkowitą i zwraca wartość typu 0 lub 1, oznaczającą odpowiednio, czy liczba spełnia określony warunek. FunkcjafindWithCondition
powinna przeszukać tablicę w celu znalezienia ostatniej liczby spełniającej warunek określony przez funkcjęcondition
, a następnie zwrócić indeks tego elementu w tablicy lub-1
, jeśli taki element nie istnieje. Stwórz przypadek testowy dla funkcjifindWithCondition
.Napisz funkcję, która otrzymuje dwa argumenty: dodatnią liczbę całkowitą \(n\) oraz \(n\)-elementową tablicę
tab
o elementach typuint
. Funkcja powinna zwrócić wartość1
, gdy tablicatab
jest symetryczna (tzn. czy początkowy element jest równy ostatniemu, kolejny przedostatniemu itd.) oraz zwróćić zero w pozostałych przypadkach. Stwórz przypadek testowy dla funkcji.Napisz funkcję, która otrzymuje trzy argumenty: dodatnią liczbę całkowitą \(n\) oraz dwie \(n\)-elementowe tablice
tab1
itab2
o elementach typuint
. Funkcja powinna sprawdzić, czy obie tablice są identyczne. Jeśli tak, funkcja powinna zwrócić 1, w przeciwnym razie zwrócić 0. Stwórz przypadek testowy dla funkcji.Napisz funkcję, która otrzymuje dwa argumenty: dodatnią liczbę całkowitą \(n\) oraz \(n\)-elementową tablicę
tab
o elementach typuint
i zwraca indeks pierwszego wystąpienia największej wartości bezwzględnej elementów przechowywanych w tablicytab
. Stwórz przypadek testowy dla funkcji.Napisz funkcję, która otrzymuje dwa argumenty: dodatnią liczbę całkowitą
n
(\(n>3\)) orazn
-elementową tablicętab
o elementach typudouble
i przesuwa o dwa w lewo wszystkie elementy tablicy (tak, żeby wartość elementu o indeksien-1
znalazła się w elemencie o indeksien-3
, wartość elementu o indeksien-2
znalazła się w elemencie o indeksien-4
, zaś wartość elementu o indeksie0
w elemencie o indeksien-2
, a wartość elementu o indeksie1
w elemencie o indeksien-1
). Stwórz przypadek testowy dla funkcji.Napisz funkcję, która otrzymuje cztery argumenty: dodatnią liczbę całkowitą
n
,n
-elementowe tablicetab1
itab2
orazn
-elementową tablicętab3
o elementach typudouble
. Funkcja powinna obliczać iloczyn elementów tablictab1
itab2
o tych samych indeksach i zapisywać wyniki do tablicytab3
. Stwórz przypadek testowy dla funkcji.Napisz funkcję
sum_odd_indices
, która otrzymuje dwa argumenty: dodatnią liczbę całkowitą \(n\) oraz \(n\)-elementową tablicętab
o elementach typuint
. Funkcja ma zwrócić sumę elementów znajdujących się na nieparzystych indeksach. Stwórz przypadek testowy.Napisz funkcję
count_positive_elements
, która otrzymuje dwa argumenty: dodatnią liczbę całkowitą \(n\) oraz \(n\)-elementową tablicętab
o elementach typuint
. Funkcja ma zwrócić liczbę dodatnich elementów w tablicy. Stwórz przypadek testowy.
Przykład. Dla tablicy zawierającej elementy 3,-4,5 powinno być zwrócone 2.
Napisz funkcję
double_odd_elements
, która otrzymuje dwa argumenty: dodatnią liczbę całkowitą \(n\) oraz \(n\)-elementową tablicętab
o elementach typuint
. Funkcja ma podwoić elementy nieparzyste znajdujące się w tablicy. Stwórz przypadek testowy.Napisz funkcję
increase_by_index
, która otrzymuje dwa argumenty: dodatnią liczbę całkowitą \(n\) oraz \(n\)-elementową tablicętab
o elementach typuint
. Funkcja ma zwiększyć wartość każdego elementu tablicy o jego indeks. Stwórz przypadek testowy.