Arseni01
17.03.2023 23:42

Перед вами 4 лампочки и один выключатель и любая лампочка может загореться когда вы нажимаете на него. Если зажжется крайняя правая лампочка, сколько бит информации вы получите. ответ запишите в виде числа

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
kirana05
15.03.2020 17:12
Одно из решений, возможно, не самое эффективное
#include <iostream>
#include <iomanip>
int main()
{
    using namespace std;

    //исходная последовательность
    const int N = 8;
    double Arr[N] = { 14.2, -3.4, 7.8, -3.1, 8.2, 98.22, -7, 12 };

    //вывод на экран исходной последовательности
    for (int i = 0; i < N; ++i)
        cout << Arr[i] << "  ";
    cout << endl;

    //подсчитаем количества отрицательных и неотрицательных элементов
    int kpos = 0;
    int kneg = 0;
    for (int i = 0; i < N; ++i)
        if (Arr[i] < 0)
            ++kneg;
        else
            ++kpos;

    //создадим массивы отрицательных и неотрицательных элементов
    double * ArrNeg = new double[kneg];
    double * ArrPos = new double[kpos];

    int kn = 0, kp = 0;
    for (int i = 0; i < N; i++)
        if (Arr[i] < 0)
            ArrNeg[kn++] = Arr[i];
        else
            ArrPos[kp++] = Arr[i];

    cout << "Enter a, b, c or d: ";
    char ch;
    cin >> ch;

    if (ch == 'a' || ch == 'b' || ch == 'c' || ch == 'd')
    {
        switch (ch)
        {
            //пункт а)
            case 'a':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[i];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[i];
                break;

                //пункт б)
            case 'b':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[--kn];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[i];
                break;

                //пункт в)
            case 'c':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[i];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[--kp];
                break;

                //пункт г)
            case 'd':
                for (int i = 0; i < kneg; ++i)
                    Arr[i] = ArrNeg[--kn];
                for (int i = 0; i < kpos; ++i)
                    Arr[i + kneg] = ArrPos[--kp];
                break;
        }
    }
    else
        cout << "You entered wrong symbol\n";

    for (int i = 0; i < N; ++i)
        cout << Arr[i] << "  ";
    cout << endl;
    delete[] ArrNeg;
    delete[] ArrPos;
    return 0;
}
0,0(0 оценок)
Ответ:
mariakochmar
25.10.2020 14:20
1. Вот так это нужно решать по-современному

// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
  Writeln('k=',ArrRandom(15,1,20).Println.Count(x->x>10))
end.

Тестовое решение
4 16 14 9 11 18 17 14 14 15 1 1 9 10 15
k=9

2. А вот так учат решать в школе...

// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
var
  a:array[1..15] of integer;
  i,k:integer;
begin
  Randomize;
  k:=0;
  for i:=1 to 15 do begin
    a[i]:=Random(20)+1;
    Write(a[i],' ');
    if a[i]>10 then k:=k+1
    end;
  Writeln;
  Writeln('k=',k)
end.

Тестовое решение:
18 15 7 6 3 3 10 6 6 15 2 16 16 2 12
k=6
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота