/*Код соответствует тексту задания из файла. Последовательность вводится в строку через знаки пробела, нажатие клавиши Enter заканчивает ввод последовательности. Программа НЕ проверяет корректность введенных данных*/
#include <iostream>
bool is_prime(const int n);
int main(int argc, char* argv[])
{
int numb, n_of_pr_numb = 0;
long int sum = 0;
do
{
std::cin >> numb;
if(is_prime(numb))
{
sum += numb;
n_of_pr_numb++;
}
} while (std::cin.peek() != '\n');
std::cout << "The arithmetic mean: " << (n_of_pr_numb == 0 ? 0 : sum * 1. / n_of_pr_numb);
}
bool is_prime(const int n)
{
if (n <= 1)
{
return false;
}
for (int i = 2; i <= pow(n, 1/2); i++)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
Основные ошибки/недочеты Вашей реализации:
В функции pr строка for ( a = 2 ; a<=n ; a++) неверна, т.к. на последнем шаге число всегда будут сравнивать с самим собой, правильно for ( a = 2 ; a<n ; a++). Ну и нет смысла проверять до a=n-1, достаточно проверить до √n(об этом есть целая теорема).По условию никакого вывода слов "Простое/Не простое" не требуетсяСтрока cout << "n = "; лишняя, т.к. даже если на ввод будет подано несколько чисел, на экран "n = " будет выведено лишь в начале. Лучше уточнить для пользователя формат ввода.Смысл функции arif неясен, она выводит на консоль какие-то непонятные пользователю данные, затем возвращает s/i[ВНИМАНИЕ! Так как s и i целочисленные, то s/i не является средним арифметическим, это будет лишь целая часть от него. Правильнее s * 1./i или static_cast<double>(s)/i], а затем выводит это значение. Зачем разрывать cout на две функции - неясноВвод данных не должен находиться в функции проверки числа на простоту(да и смысл разбиения программы на функции пропадает)
Модельный ответ:
Истинные высказывания: 3, 5, 8.
Модельный ответ с подсчетом баллов:
Каждый правильный ответ
Учащийся уложился в 5 минут (при правильном ответе)
Максимальный балл:
Задание №2. Информационная компетентность: Аспект "Первичная обработка информации". Уровень I.
Вам нреобходимо закодировать и раскодировать слова в десятичном и двоичном коде. Пользуясь кодовой таблицей ASCII,
а) закодируйте тексты:
б) декодируйте тексты:
Десятичный код Текст 69 78 84 69 82 80 65 73 78 84 66 65 67 75 83 80 65 67 69 Двоичный код Текст 01000101 01001110 01000100 01001000 01001111 01001101 01000101 01010111 01001111 01010010 01000100 01000110 01001111 01001111 01010100 01000010 01000001 01001100 01001100Модельный ответ:
а):
б):