From b24ab3683f63a7baa7b8b0c0478d53920ad0043b Mon Sep 17 00:00:00 2001 From: Vichingo455 Date: Tue, 3 Dec 2024 16:38:35 +0000 Subject: [PATCH] Upload files to "array" --- array/array_tutti_pari.cpp | 36 ++++++++++++++++++++ array/elimina_pari_vettori.cpp | 38 +++++++++++++++++++++ array/elimina_pari_vettori_memmove.cpp | 46 ++++++++++++++++++++++++++ 3 files changed, 120 insertions(+) create mode 100644 array/array_tutti_pari.cpp create mode 100644 array/elimina_pari_vettori.cpp create mode 100644 array/elimina_pari_vettori_memmove.cpp diff --git a/array/array_tutti_pari.cpp b/array/array_tutti_pari.cpp new file mode 100644 index 0000000..0367410 --- /dev/null +++ b/array/array_tutti_pari.cpp @@ -0,0 +1,36 @@ +/* +AUTORE: Vichingo455 +Function returning if all values stored in an array of values are peer numbers or not +*/ +#include +#include +#include +#include +using namespace std; +bool isPeerArray(int array[], size_t size) { + int numberOfPeers = 0; + for (int i = 0; i < size; i++) { + if (array[i] % 2 == 0) { + numberOfPeers++; + } + } + return numberOfPeers == size; +} +int main() { + size_t numberOfValues; + cout << "Insert the number of values to store on an array: "; + cin >> numberOfValues; + cout << endl; + int array[numberOfValues]; + for (int i = 0; i < numberOfValues; i++) { + cout << "Insert the value: "; + cin >> array[i]; + } + if (isPeerArray(array, numberOfValues)) { + cout << "All numbers are peers." << endl; + } + else { + cout << "Not all numbers are peers." << endl; + } + return 0; +} diff --git a/array/elimina_pari_vettori.cpp b/array/elimina_pari_vettori.cpp new file mode 100644 index 0000000..45e2f75 --- /dev/null +++ b/array/elimina_pari_vettori.cpp @@ -0,0 +1,38 @@ +/* +AUTORE: Vichingo455 +The program deletes peer numbers from a vector without using memmove +*/ +#include +#include +#include +#include +using namespace std; +void printVector(const vector & vett) { + for (int i = 0; i < vett.size(); i++) + cout << vett.at(i) << " "; + cout << endl; +} +void deletePeers(vector & vett) { + for (int i = 0; i < vett.size(); i++) { + if (vett.at(i) % 2 == 0) { + vett.erase(vett.begin() + i); + } + } +} +int main() { + vector vett; + int vectorSize; + cout << "Insert the size of the vector: "; + cin >> vectorSize; + cout << endl; + for (int i = 0,value; i < vectorSize; i++) { + cout << "Insert a value: "; + cin >> value; + vett.push_back(value); + cout << endl; + } + printVector(vett); + deletePeers(vett); + printVector(vett); + return 0; +} diff --git a/array/elimina_pari_vettori_memmove.cpp b/array/elimina_pari_vettori_memmove.cpp new file mode 100644 index 0000000..6ae0e64 --- /dev/null +++ b/array/elimina_pari_vettori_memmove.cpp @@ -0,0 +1,46 @@ +/* +AUTORE: Vichingo455 +The program deletes peer numbers from a vector using memmove +*/ +#include +#include +#include +#include +#include +using namespace std; +void printVector(const vector & vett) { + for (int i = 0; i < vett.size(); i++) + cout << vett.at(i) << " "; + cout << endl; +} +void deletePeers(vector& vec) { + int* data = vec.data(); + size_t size = vec.size(); + size_t newSize = 0; + for (size_t i = 0; i < size; ++i) { + if (data[i] % 2 != 0) { + if (newSize != i) { + std::memmove(&data[newSize], &data[i], sizeof(int)); + } + ++newSize; + } + } + vec.resize(newSize); +} +int main() { + vector vett; + int vectorSize; + cout << "Insert the size of the vector: "; + cin >> vectorSize; + cout << endl; + for (int i = 0,value; i < vectorSize; i++) { + cout << "Insert a value: "; + cin >> value; + vett.push_back(value); + cout << endl; + } + printVector(vett); + deletePeers(vett); + printVector(vett); + return 0; +}