10 Tablice jednowymiarowe
Zadania należy rozwiązać bez konwersji liczb na napisy. W zadaniach nie należy używać podwójnych wskaźników i odpowiednik tablic wielowymiarowych - składnia ma być wykonana na jednym wymiarze. W zadaniach nie należy uwzlędniać tablicy o rozmiarze zero, bo argumenty związane z rozmiarem są dodatnie.
Napisz funkcję
findMaxValue, która przyjmuje jako argumenty tablicę liczb całkowitychnumbersoraz 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 tablicatabo elementach typuintoraz 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 tablicatabo elementach typuintoraz zwraca sumę kwadratów elementów tablicy. Stwórz przypadek testowy.Napisz funkcję
copyArr, która otrzymuje trzy argumenty: dodatnią liczbę całkowitąnoraz dwien-elementowe tablicetab1,tab2o elementach typu int i przepisuje kolejno elementy tablicytab1do tablicytab2. Stwórz przypadek testowy.Napisz funkcję
revCopy, która otrzymuje trzy argumenty: dodatnią liczbę całkowitąnoraz dwien-elementowe tablicetab1,tab2o elementach typu int i przepisuje elementy tablicytab1do tablicytab2w odwrotnej kolejności. Stwórz przypadek testowy.Napisz funkcję
reverseArr, której argumentami są dodatnia liczba całkowitanreprezentująca rozmiar tablicy orazn-elementowa tablicatabo elementach typuint. Funkcja ta ma odwrócić kolejność elementów w tablicytabbezpoś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łkowitanreprezentująca rozmiar tablicy orazn-elementowa tablicatabo 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łkowitanreprezentująca rozmiar tablicy orazn-elementowa tablicatabo 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łkowitanreprezentująca rozmiar tablicy orazn-elementowa tablicatabo 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łkowitanreprezentująca rozmiar tablicy orazn-elementowa tablicatabo 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łkowitanreprezentująca rozmiar tablicy orazn-elementowa tablicatabo 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łkowitanreprezentująca rozmiar tablicy orazn-elementowa tablicatabo 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łkowitanreprezentująca rozmiar tablicy orazn-elementowa tablicatabo 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łkowitanreprezentująca rozmiar tablicy orazn-elementowa tablicatabo 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=
e = (d *= 2) + (c += 2); // b= , c= , d= , e=
c = d + (b+=4); // b= , c= , d= , e=
e= (--c)-(d++); // b= , c= , d= , e=
b = *wsk + e; // b= , c= , d= , e=
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=
e = (d -= 2) - (c += 2); // b= , c= , d= , e=
c = d + (b+=4); // b= , c= , d= , e=
e= (--c)-(d++); // b= , c= , d= , e=
b = *wsk + e; // b= , c= , d= , e=
return 0;
}Napisz funkcję o nazwie
findElement, która przyjmuje jako argumenty tablicę liczb całkowitych, rozmiar tablicy, liczbę całkowitąvaldo znalezienia oraz wskaźnik na funkcjęisEqual. FunkcjaisEqualprzyjmuje jako argumenty dwie liczby całkowite i zwraca wartość typu 0 lub 1, oznaczającą odpowiednio, czy liczby są równe. FunkcjafindElementpowinna przeszukiwać tablicę w celu znalezienia wartościvalzgodnie 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. Funkcjaconditionprzyjmuje jako argument liczbę całkowitą i zwraca wartość typu 0 lub 1, oznaczającą odpowiednio, czy liczba spełnia określony warunek. FunkcjafindWithConditionpowinna 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ę
tabo elementach typuint. Funkcja powinna zwrócić wartość1, gdy tablicatabjest 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
tab1itab2o 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ę
tabo elementach typuinti 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ętabo elementach typudoublei przesuwa o dwa w lewo wszystkie elementy tablicy (tak, żeby wartość elementu o indeksien-1znalazła się w elemencie o indeksien-3, wartość elementu o indeksien-2znalazła się w elemencie o indeksien-4, zaś wartość elementu o indeksie0w elemencie o indeksien-2, a wartość elementu o indeksie1w elemencie o indeksien-1). Stwórz przypadek testowy dla funkcji.Napisz funkcję, która otrzymuje cztery argumenty: dodatnią liczbę całkowitą
n,n-elementowe tablicetab1itab2orazn-elementową tablicętab3o elementach typudouble. Funkcja powinna obliczać iloczyn elementów tablictab1itab2o 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ętabo 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ętabo 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ętabo 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ętabo elementach typuint. Funkcja ma zwiększyć wartość każdego elementu tablicy o jego indeks. Stwórz przypadek testowy.