Предмет: Информатика, автор: MSashaZ

C++
Задание 1. Написать функцию, получающую указатель на динамический массив и его размер. Функция должна удалить все простые числа из массива и повернуть указатель на новый динамический массив.
Задание 2. Написать функцию, получающую указатель на статический массив и его размер. Функция распределяет положительные, отрицательные и нулевые элементы в отдельных динамических массивах.

Ответы

Автор ответа: archie242
1

Відповідь:

Задание 1:

#include <iostream>

#include <cmath>

using namespace std;

bool isPrime(int num) {

   if (num <= 1) return false;

   for (int i = 2; i <= sqrt(num); i++) {

       if (num % i == 0) return false;

   }

   return true;

}

int* removePrimes(int* arr, int size) {

   int newSize = 0;

   for (int i = 0; i < size; i++) {

       if (!isPrime(arr[i])) newSize++;

   }

   int* newArr = new int[newSize];

   int j = 0;

   for (int i = 0; i < size; i++) {

       if (!isPrime(arr[i])) {

           newArr[j] = arr[i];

           j++;

       }

   }

   delete[] arr;

   return newArr;

}

int main() {

   int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };

   int size = sizeof(arr) / sizeof(arr[0]);

   int* newArr = removePrimes(arr, size);

   for (int i = 0; i < size - 2; i++) {

       cout << newArr[i] << " ";

   }

   cout << endl;

   delete[] newArr;

   return 0;

}



Задание 2:

#include <iostream>

using namespace std;

void sortElements(int* arr, int size) {

   int* posArr = new int[size];

   int* negArr = new int[size];

   int* zeroArr = new int[size];

   int posIndex = 0;

   int negIndex = 0;

   int zeroIndex = 0;

   for (int i = 0; i < size; i++) {

       if (arr[i] > 0) {

           posArr[posIndex] = arr[i];

           posIndex++;

       }

       else if (arr[i] < 0) {

           negArr[negIndex] = arr[i];

           negIndex++;

       }

       else {

           zeroArr[zeroIndex] = arr[i];

           zeroIndex++;

       }

   }

   cout << "Positive elements: ";

   for (int i = 0; i < posIndex; i++) {

       cout << posArr[i] << " ";

   }

   cout << endl;

   cout << "Negative elements: ";

   for (int i = 0; i < negIndex; i++) {

       cout << negArr[i] << " ";

   }

   cout << endl;

   cout << "Zero elements: ";

   for (int i = 0; i < zeroIndex; i++) {

       cout << zeroArr[i] << " ";

   }

   cout << endl;

   delete[] posArr;

   delete[] negArr;

   delete[] zeroArr;

}

int main() {

   int arr[] = { 1, -2, 3, 0, 5, -6, 7, -8, 9 };

   int size = sizeof(arr) / sizeof(arr[0]);

   sortElements(arr, size);

   return 0;

}

Похожие вопросы
Предмет: Математика, автор: amollachiyeva
Предмет: Биология, автор: NetsYt
1. Аллельные гены расположены в:
а) половых хромосомах;
б) одной хромосоме;
в) гомологичных хромосомах.
2. Потомство, развивающееся в результате объединения генетического материала разных организмов, называется:
а) гибридом;
б) гетерозисным;
в) гетеротрофным.
3. Перекрёст хромосом – это:
а) спирализация хромосом;
б) обмен участками гомологичных хромосом;
в) процесс расхождения гомологичных хромосом к разным полюсам.
4. Особи, в потомстве которых обнаруживается расщепление, называются:
а) гетерозиготными,
б) гомозиготными;
в) автотрофными.
5. Дигетерозигота имеет генотип:
а) ААВв;
б) АаВв;
в) АаВВ.
6. К анализирующему скрещиванию относят скрещивание:
а) Аа хАа;
б) АА х Аа;
в) Аа х аа.
7. Как называют тип взаимодействия генов, при котором происходит подавление генов одной аллели генами другой:
а) комплементарность;
б) эпистаз;
в) неполное доминирование.
8. Для установления генотипов фенотипически сходных организмов проводят скрещивание с:
а) гомозиготой по доминантному признаку;
б) гомозиготой по рецессивному признаку;
в) гетерозиготой.
9. Укажите, какие из приведённых ниже утверждений, касающихся наследования, сцепленного с полом, правильны:
а) набор половых хромосом самца любого вида животных обозначается, как ХУ;
б) У-хромосома содержит все гены, аллельные генам Х-хромосомы;
в) признаки, сцепленные с Х-хромосомой проявляются у мужчин независимо от их доминантности , или рецессивности;
г) женщина – носительница гемофилии с вероятностью 50% передаст ген гемофилии своим детям;
д) сын носительницы имеет 100% вероятность заболеть гемофилией.
10. Сколько типов гамет образует организм, гетерозиготный по трём признакам?
а) 2; в) 8;
б) 4; г) 16.