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 uwzględnić 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ę
isSymmetric, 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ę
areArraysEqual, która otrzymuje trzy argumenty: dodatnią liczbę całkowitą \(n\) oraz dwie \(n\)-elementowe tablicetab1itab2o 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ę
indexOfMaxAbs, 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ę
rotateLeftByTwo, 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ę
multiplyElementwise, 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ę
sumOddIndices, 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ę
countPositiveElements, 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ę
doubleOddElements, 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ę
increaseByIndex, 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.Napisz funkcję
multiplyElementwise, 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ę
sumAboveThreshold, która otrzymuje trzy argumenty: liczbę całkowitąk, dodatnią liczbę całkowitąnorazn-elementową tablicęarro elementach typuint. Funkcja ma zwrócić sumę wszystkich elementów tablicyarrwiększych od liczbyk. Stwórz dwa przypadki testowe. Przykład: dlak=10,n=6oraz tablicy4,12,3,15,8,25funkcja powinna zwrócić 52.Napisz funkcję
findFirstDivisibleIndex, która otrzymuje trzy argumenty: dodatnią liczbę całkowitąp, dodatnią liczbę całkowitąnorazn-elementową tablicęnumberso elementach typuint. Funkcja ma zwrócić indeks pierwszego wystąpienia liczby podzielnej przezpw tablicynumbers. Jeśli żaden element nie jest podzielny przezp, funkcja powinna zwrócić -1. Stwórz dwa przypadki testowe. Przykład: dlap=3,n=7oraz tablicy5,11,9,2,4,7,6funkcja powinna zwrócić 2.Napisz funkcję
countInRange, która otrzymuje trzy argumenty: liczbę całkowitąa, liczbę całkowitąboraz dodatnią liczbę całkowitąnorazn-elementową tablicędatao elementach typuint. Funkcja ma policzyć ile elementów tablicydataznajduje się w przedziale[a,b](włącznie zaib). Stwórz dwa przypadki testowe. Przykład: dlaa=5,b=15,n=8oraz tablicy3,7,22,10,5,18,9,4funkcja powinna zwrócić 4.Napisz funkcję
sumDivisibleBy3, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja powinna zwrócić sumę elementów podzielnych przez 3 oraz zero gdy takich elementów nie ma. Stwórz przypadek testowy. Przykład: dla tablicy7,9,2,6,5funkcja powinna zwrócić 15.Napisz funkcję
productEven, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja powinna zwrócić iloczyn elementów o parzystych wartościach oraz 1 gdy takich elementów nie ma. Stwórz przypadek testowy. Przykład: dla tablicy3,4,5,2,7funkcja powinna zwrócić 8.Napisz funkcję
countNegInd, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja powinna zwrócić liczbę elementów ujemnych, które znajdują się na indeksach parzystych tablicy. Jeśli takich elementów nie ma, funkcja powinna zwrócić 0. Stwórz przypadek testowy. Przykład: dla tablicy-2,4,-5,-7,6funkcja powinna zwrócić 2.Napisz funkcję
minArrays, która otrzymuje cztery argumenty: dodatnią liczbę całkowitąn,n-elementowe tablicetabA,tabBitabCo elementach typuint. Funkcja powinna wybierać minimalną wartość z elementów tablictabAitabBo tych samych indeksach i zapisywać wyniki do tablicytabC. Stwórz przypadek testowy. Przykład:tabA= {7,-2,14},tabB= {9,6,-3} →tabC= {7,-2,-3}.Napisz funkcję
sumArrays, która otrzymuje cztery argumenty: dodatnią liczbę całkowitąm,m-elementowe tablicearray1,array2iarrayResulto elementach typudouble. Funkcja powinna sumować odpowiadające sobie elementy tablicarray1iarray2, a następnie zapisywać wyniki do tablicyarrayResult. Stwórz przypadek testowy.Napisz funkcję
sumOdd, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja powinna zwrócić sumę elementów o nieparzystych wartościach oraz 0 gdy takich elementów nie ma. Stwórz przypadek testowy. Przykład: dla tablicy2,7,4,9,3funkcja powinna zwrócić 19.Napisz funkcję
multiplyByPosition, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja modyfikuje tablicę, mnożąc każdy element przez jego indeks zwiększony o 1 (element o indeksie 0 jest mnożony przez 1, element o indeksie 1 przez 2 itd.). Stwórz przypadek testowy. Przykład: tablica{2,3,4}→{2,6,12}.Napisz funkcję
decreaseBySquare, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja ma zmniejszyć wartość każdego elementu tablicy o kwadrat jego indeksu. Stwórz przypadek testowy. Przykład: tablica{5,10,15,20}→{5,9,11,11}.Napisz funkcję
replaceWithPower, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja ma zastąpić wartość każdego elementu tablicy wartością tego elementu podniesioną do potęgi równej jego indeksowi. Dla indeksu 0 element pozostaje bez zmian. Stwórz przypadek testowy. Przykład: tablica{2,3,4,-3,-2}→{2,3,16,-27,16}.Napisz funkcję
sumOddIndex, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja powinna zwrócić sumę elementów na pozycjach nieparzystych oraz zero gdy takich elementów nie ma. Stwórz przypadek testowy. Przykład: dla tablicy3,-4,5,7,3funkcja powinna zwrócić 3, bo na indeksach nieparzystych są -4 i 7.Napisz funkcję
countMatching, która przyjmuje jako argumenty tablicę liczb całkowitych, rozmiar tablicy oraz wskaźnik na funkcjępredicate. Funkcjapredicateprzyjmuje jako argument liczbę całkowitą i zwraca wartość 0 lub 1 oznaczającą, czy liczba spełnia określony warunek. FunkcjacountMatchingpowinna policzyć i zwrócić liczbę elementów w tablicy spełniających warunek. Stwórz przypadek testowy. Przykład: dla funkcji f(x)=1 dla parzystych, f(x)=0 dla nieparzystych i tablicy{2,7,8,3,10}funkcja powinna zwrócić 3.Napisz funkcję
productPositive, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja ma zwrócić iloczyn wszystkich elementów dodatnich w tablicy. Jeśli tablica nie zawiera elementów dodatnich, funkcja ma zwrócić 1. Stwórz przypadek testowy. Przykład: dla tablicy{3,-2,5,0,-1,4}funkcja powinna zwrócić 60.Napisz funkcję
countDivisible, która otrzymuje trzy argumenty: dodatnią liczbę całkowitąn,n-elementową tablicętabo elementach typuintoraz dodatnią liczbę całkowitądivisor. Funkcja ma zwrócić liczbę elementów tablicy, które są podzielne przezdivisor. Stwórz przypadek testowy. Przykład: dla tablicy{12,7,-9,15,4,21}orazdivisor=3funkcja powinna zwrócić 4.Napisz funkcję
replaceWithFactorial, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja ma zastąpić wartość każdego elementu tablicy silnią wartości bezwzględnej tego elementu. Dla wartości większych niż 12 element ma zostać zastąpiony wartością -1. Stwórz przypadek testowy. Przykład: tablica{3,-4,0,5,15}→{6,24,1,120,-1}.Napisz funkcję
getMaximumValue, która przyjmuje jako argumenty niepustą tablicę liczb całkowitych, rozmiar tablicy oraz wskaźnik na funkcjęisValid. FunkcjaisValidprzyjmuje liczbę całkowitą i zwraca 0 lub 1. FunkcjagetMaximumValuepowinna znaleźć największą wartość wśród elementów tablicy spełniających warunek i ją zwrócić. Jeśli żaden element nie spełnia warunku, funkcja powinna zwrócić 0. Stwórz przypadek testowy. Przykład: dla f(x)=1 gdy x%3==0 i tablicy{7,9,4,12,6}funkcja powinna zwrócić 12.Napisz funkcję
sumOfDivisors, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja ma zastąpić wartość każdego elementu tablicy sumą wszystkich dodatnich dzielników wartości bezwzględnej tego elementu (łącznie z samą liczbą). Stwórz przypadek testowy. Przykład: tablica{6,-12,1,7,-8}→{12,28,1,8,15}.Napisz funkcję
sumEvenIndices, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja ma zwrócić sumę elementów znajdujących się na pozycjach o parzystych indeksach (0, 2, 4, …). Stwórz przypadek testowy. Przykład: dla tablicy{10,3,7,-2,5,8}funkcja powinna zwrócić 22.Napisz funkcję
multiplyByDigitSum, która otrzymuje dwa argumenty: dodatnią liczbę całkowitąnorazn-elementową tablicętabo elementach typuint. Funkcja ma zastąpić wartość każdego elementu tablicy iloczynem tej wartości i sumy cyfr wartości bezwzględnej tego elementu. Stwórz przypadek testowy. Przykład: tablica{12,-34,5,100,-7}→{36,-238,25,100,-49}.