Перейти к содержимому

Что значит в порядке неубывания

  • автор:

Что означает «в порядке неубывания»?

Это практически «в порядке возрастания», но данный термин предполагает что некоторые значения могут быть равны (1, 2, 3, 3, 4, 5, 6, 6, 7).

Остальные ответы

Возрастания

Андрей ПавловУченик (147) 7 лет назад

Нет, там как-то по-другому

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Вывести в порядке неубывания (возрастания) те элементы этого массива, целая часть которых кратна трем

Не могу понять в чем ошибка. Вот условие задачи: Дан одномерный массив из 100 элементов, состоящий из случайных вещественных чисел в диапазоне от 3 до 23. Вывести в порядке неубывания (возрастания) те элементы этого массива, целая часть которых кратна трем. Заранее спасибо.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
#include #include #include #include using namespace std; int main() { const int maxelem = 100; int elem[maxelem]={ 0 }; float a[maxelem], j[maxelem]; double b; srand(time(NULL)); int N = 0; setlocale(0, "rus"); do { cout  "Введите число элементов массива не больше "  maxelem  " :"; cin >> N; } while (N  0 || N >= maxelem); for (int i = 0; i  N; i++) { a[i] = rand() % 20 + 3; cout  a[i]  endl; } for (int i = 0; i  N; i++) { if (int (a[i]) % 3 == 0) j[i] = a[i]; cout  j[i]  endl; } for (int i = 0; i  i; i++) { if (j[i]  j[i + 1]) { b = j[i]; j[i] = j[i + 1]; j[i + 1] = b; cout  j[i]  endl; } } cin.get(); return 0; }

Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Вывести в порядке возрастания те элементы этого массива, целая часть которых кратна трем.
Дан одномерный массив из 100 элементов, состоящий из случайных вещественных чисел в диапазоне от 3.

Вывести в порядке возрастания элементы массива, целая часть которых — нечетное число
в массиве 100 вещ чисел (от 3 до 35). как вывести в порядке возрастания элементы, целая часть.

Вывести в порядке невозрастания (убывания) те элементы этого массива, целая часть которых — четное число
Всем добрый вечер, я учусь на программиста, но тяжеловато это дается. Помогите пожалуйста с.

Вывести в порядке неубывания (возрастания) отрицательные элементы массива
Дан одномерный массив из N случайных действительных чисел в диапазоне от -5 до 5. Вывести в.

Эксперт CЭксперт С++

5097 / 2777 / 1462
Регистрация: 14.12.2018
Сообщений: 5,116
Записей в блоге: 1

ЦитатаСообщение от Enigma02 Посмотреть сообщение

Не могу понять в чем ошибка. Вот условие задачи: Дан одномерный массив из 100 элементов, состоящий из случайных вещественных чисел в диапазоне от 3 до 23. Вывести в порядке неубывания (возрастания) те элементы этого массива, целая часть которых кратна трем. Заранее спасибо.

Можно попробовать (исправил чуть-чуть на основе вашего кода):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
#include #include #include #include using namespace std; int main() { const int maxelem = 100; int elem[maxelem] = { 0 }; float a[maxelem]; double b; srand(time(NULL)); int N = 0; setlocale(0, "rus"); do { cout  "Введите число элементов массива не больше "  maxelem  " : "; cin >> N; } while (N  2 || N > maxelem); cout  "Массив после рандома:"  endl; for (int i = 0; i  N; i++) { a[i] = 0.1f * ((float)(rand() % 201 + 30)); cout  a[i]  " "; } cout  endl; for (int i = 0; i  N-1; i++) for (int j = i+1; j  N; j++) { if (((int)a[i]) % 3 == 0 && ((int)a[j]) % 3 == 0 && a[i] > a[j]) { float tmp = a[i]; a[i] = a[j]; a[j] = tmp; } } cout  "Массив в порядке неубывания (возрастания):"  endl; for (int i = 0; i  N; i++) cout  a[i]  " "; cin.get(); return 0; }

7428 / 5021 / 2891
Регистрация: 18.12.2017
Сообщений: 15,692
Volga_, в задаче не нужно выводить массив:

ЦитатаСообщение от Enigma02 Посмотреть сообщение

Вывести в порядке неубывания (возрастания) те элементы этого массива, целая часть которых кратна трем.

Эксперт CЭксперт С++

5097 / 2777 / 1462
Регистрация: 14.12.2018
Сообщений: 5,116
Записей в блоге: 1

Лучший ответ

Сообщение было отмечено Enigma02 как решение

Решение

Enigma02, попробуйте мой код с помощью советов от Yetty (спасибо вам от души, русский очень сложно для меня).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
#include #include #include #include using namespace std; int main() { const int maxelem = 100; float a[maxelem]; srand(time(NULL)); int N = 0; setlocale(0, "rus"); do { cout  "Введите число элементов массива не больше "  maxelem  " : "; cin >> N; } while (N  2 || N > maxelem); cout  "Массив после рандома:"  endl; for (int i = 0; i  N; i++) { a[i] = 0.1f * ((float)(rand() % 201 + 30)); cout  a[i]  " "; } cout  endl; for (int i = 0; i  N - 1; i++) for (int j = i + 1; j  N; j++) { if (((int)a[i]) % 3 == 0 && ((int)a[j]) % 3 == 0 && a[i] > a[j]) { float tmp = a[i]; a[i] = a[j]; a[j] = tmp; } } cout  "Массив в порядке неубывания (возрастания):"  endl; for (int i = 0; i  N; i++) if (((int)a[i]) % 3 == 0) cout  a[i]  " "; cin.get(); return 0; }

126 / 83 / 44
Регистрация: 18.11.2018
Сообщений: 299

ЦитатаСообщение от Enigma02 Посмотреть сообщение

Дан одномерный массив из 100 элементов, состоящий из случайных вещественных чисел в диапазоне от 3 до 23. Вывести в порядке неубывания (возрастания) те элементы этого массива, целая часть которых кратна трем. Заранее спасибо.

Насколько понял и смог, реализовал таким образом:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
#include #include #include using namespace std; double Random(double Min, double Max) { double R = (double)rand() / RAND_MAX; return Min + R * (Max - Min); } void Sort(double* A, int M) { for (unsigned i = 0; i  M; i++) { for (unsigned j = 0; j  M - 1; j++) { if(A[j] > A[j+1]) { double tmp = A[j]; A[j] = A[j+1]; A[j+1] = tmp; } } } } int main() { srand(time(0)); const int n = 100; double min = 3, max = 23; double* a = new double[n]; int m = 0; for (unsigned i = 0; i  n; i++) { a[i] = Random(min, max); cout  [i]  <" "; if ((int)a[i] % 3 == 0) m++; } double* b = new double[m]; m = 0; cout  <"\n\n"; for (unsigned i = 0; i  n; i++) { if ((int)a[i] % 3 == 0) { b[m] = a[i]; m++; } } Sort(b, m); cout.precision(4); for (unsigned i = 0; i  m; i++) { cout  [i]  <" "; } cout  ; delete[] a; delete[] b; system("pause"); return 0; }

Регистрация: 26.09.2020
Сообщений: 52
Спасибо за решение, но я не понял 25 строку, зачем ( f) нужен?
7428 / 5021 / 2891
Регистрация: 18.12.2017
Сообщений: 15,692

Enigma02, так записываются числа типа float. я бы не рекомендовал использовать этот тип — применяйте тип double. в коде сообщения #4 нарушается порядок расположения элементов в начальном массиве

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
#include #include #include #include #include #include using namespace std; int main() { srand((int)time(0)); const int n=100; double a[100]; vectordouble> v; cout  <"Array:\n"; for (int i = 0; i  n; i++) { a[i]=0.1*(rand()%201 + 30); if ((int)a[i]%3==0) v.push_back(a[i]); cout  (5)  (1)   [i]; if((i+1)%20==0) cout  <"\n"; } size_t size=v.size(); if(size) { sort(v.begin(), v.end()); cout  <"Numbers:\n"; for (size_t i = 0; i  size; i++) { cout  (5)  [i]; if((i+1)%20==0) cout  <"\n"; } cout  <"\n"; } else cout  <"Such numbers are absent\n"; system("pause"); return 0; }

Эксперт CЭксперт С++

5097 / 2777 / 1462
Регистрация: 14.12.2018
Сообщений: 5,116
Записей в блоге: 1

ЦитатаСообщение от Enigma02 Посмотреть сообщение

зачем ( f) нужен?

Когда вы пишите 0.1 это будет тип double; но когда пишите 0.1f это будет тип float. В вашем начальном коде вам нужен тип float, поэтому может быть написать 0.1f для получения хорошо результатов по условию задачи (случайных вещественных чисел) !

Регистрация: 26.09.2020
Сообщений: 52

Не могу понять почему счетчик kol не работает, я немножко поправил. Сегодня пробовал сдать но сказали, что нужно что те числа которые кратны 3 нужно вписать в массив (я это попытался сделать незнаю правильно или нет) , и если нет ни одного числа которые кратны 3 то выводить сообщение «Чисел кратных 3 нету».

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
#include #include #include #include using namespace std; int main() { const int maxelem = 100; double a[maxelem] = { 0 }, b[maxelem] = {0 }; srand(time(NULL)); int N = 0, kol=0; setlocale(0, "rus"); do { cout  "Введите число элементов массива не больше "  maxelem  " : "; cin >> N; } while (N  0 || N > maxelem); cout  "Массив после рандома:"  endl; for (int i = 0; i  N; i++) { a[i] = 0.1 * ((double)(rand() % 201 + 30)); cout  a[i]  " "; } cout  endl; for (int i = 0; i  N - 1; i++) for (int j = i + 1; j  N; j++) { if (((int)a[i]) % 3 == 0 && ((int)a[j]) % 3 == 0 && a[i] > a[j]) { double tmp = a[i]; a[i] = a[j]; a[j] = tmp; } } cout  "Массив в порядке неубывания (возрастания):"  endl; for (int i = 0; i  N; i++) { if (((int)a[i]) % 3 == 0) { kol++; b[i] = a[i]; cout  b[i]  " "; } } if(kol = 0) cout  "Чисел кратных 3 нету"; cout  kol  endl; //я здесь так написал чтобы проверить ++ или нет. cout  endl; cin.get(); return 0; }

Объясните пожалуйста как это делать

Анализируем задание.
1. Сумма кубов старшего и младшего разрядов и куб суммы старшего и младшего разрядов. Смотрим в пример, нам дано число 51. Сумма кубов это 5^3 + 1^3 = 125 + 1 = 126. Куб суммы это (5+1)^3 = 6^3 = 216. Все верно.
2. В порядке невозрастания — это значит, что в порядке убывания, то есть сначала мы записываем большее число (в примере 216), а потом меньшее (126). Получается число 216126.

Теперь анализируем данные нам числа.
10 у нас получиться не может, т.к. 1 и 0 получиться в результате вычислений (куб суммы и сумма кубов) не могут.
82. В результате вычислений должно получиться 8 и 2. Замечаем, что 8 — это 2^3, то есть куб суммы может быть равен 2.
Давайте действительно предположим, что куб суммы может быть равен 2. Сразу исключается вариант (0+2)^3, т.к. число 02, то есть 2, не двузначное. Исключается и вариант (2+0)^3, т.к сумма кубов числа 20 равна 2^3 + 0^3 = 8, а куб суммы равен (2+0)^3 = 2^3 = 8. Получается число 88, а не 82. Рассматриваем число 11. (1+1)^3 = 2^3 = 8. 1^3 + 1^3 = 1+1 = 2. Записываем в порядке убывания и получаем число 82.
3. 28 получиться не может, т.к. 2 и 8 записаны в порядке возрастания, а 28 и 0 невозможно, т.к. в результате вычислений такие числа не получатся.
4. 927. Сразу понятно, что числа 9 и 27 не могут получиться в результате вычислений (они расположены в порядке возрастания). Тогда берем 92 и 7. Нет таких чисел, которые в кубе давали бы 92 и 7, поэтому это число не может получиться в результате преобразований. (Если бы хотя бы одно число являлось кубом, тогда можно было бы поразмыслить)
5. 6415. Можем взять числа 64 и 15. Расположены в порядке неубывания. 64 — это куб 4, значит, куб суммы должен быть равен 64. Замечаем, что мы в расчет взять можем только числа 4, 3, 2 и 1, кубы которых равны 64, 27, 8 и 1 соответственно, но не получится никак сделать из них 15, поэтому пара 64 и 15 не подходит. 641 и 5 тоже не подходит, так как ни одного числа с такими кубами нет.
6. 216126 подходит, см пример в условии
7. 512512. Ну сразу понятно, что 512 — это куб 8. Работаем 🙂
Сумма кубов должна быть равна 512 и куб суммы тоже должен быть равен 512. Нет таких кубов, которые давали бы нам 512 в сумме, но мы видим, что числа одинаковые, потому можем сделать одну цифру в числе равной 0. 80 — идеальное число. (8+0)^3 = 8^3 = 512. 8^3 + 0^3 = 8^3 = 512. Получается 512512.
8. 62550. 6 и 2550; 62 и 550 — не подходят, т.к. расположены в порядке возрастания. Берем 625 и 50. Нет куба ни 625, ни 6255, ни 50, ни сумма никаких кубов не сможет дать нам такие числа. Не подходит.
Итог: могут получиться числа: 82, 216126, 512512
Ответ: 3
Мой мозг..

Разбор задач из ЕГЭ №6 по информатике

2) К этой записи дописываются справа ещё два разряда по следующему правилу: если N чётное, в конец числа (справа) дописываются два нуля, в противном случае справа дописываются две единицы. Например, двоичная запись 1001 числа 9 будет преобразована в 100111.

Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью числа — результата работы данного алгоритма.

Укажите максимальное число N, для которого результат работы алгоритма будет меньше 134. В ответе это число запишите в десятичной системе счисления. [ЕГЭ — 2020. Досрочная волна. Вариант 2]

Решение:

Если число чётное, то в конец его двоичной записи добавляются цифры 00, а если нечётное — цифры 11.

Рассмотрим числа, меньшие 134, и найдем максимальное число, которое является результатом работы алгоритма.

133 =100001012 – не может являться результатом работы алгоритма, так как двоичная запись данного числа оканчивается на 01.

132 =100001002 – не может являться результатом работы алгоритма, так как если отбросить два последних разряда, то полученное число будет нечетным, а значит, согласно алгоритму к нему должно быть дописано 11, а не 00.

131 =100000112 – не может являться результатом работы алгоритма, так как если отбросить два последних разряда, то полученное число будет четным, а значит, согласно алгоритму к нему должно быть дописано 00, а не 11.

130 =100000102 – не может являться результатом работы алгоритма, так как двоичная запись данного числа оканчивается на 10.

129 =100000012 – не может являться результатом работы алгоритма, так как двоичная запись данного числа оканчивается на 01.

128 =100000002 – удовлетворяет всем условиям.

Выполним обратное преобразование числа 128 согласно алгоритму:

Получаем ответ — 32.

Ответ: 32

Информационные источники

  1. «ФИПИ. Открытый банк тестовых заданий», http :// os . fipi . ru / tasks /5/ a
  2. Материалы для подготовки к ЕГЭ по информатике К.Ю. Полякова, http :// kpolyakov . spb . ru / school / ege . htm
  3. Образовательный портал «Решу ЕГЭ», https :// ege . sdamgia . ru /
  4. Я.Н.Зайдельман , ЕГЭ 2020. Информатика и ИКТ. Подготовка к ЕГЭ в 2020 году. Диагностические работы. ФГОС. — М.: МЦНМО, 2019.
  5. Я. Н. Зайдельман, М. А. Ройтберг, Информатика и ИКТ. Подготовка к ЕГЭ в 2019 году. Диагностические работы. ФГОС.— М.: МЦНМО, 2019.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *