Основи програмування на С ++ для початківців

Завдання: Одномерные массивы C

Приступая к решению задач, ознайомтеся зі статтями Массиви в C++   і Генератор випадкових чисел rand(), если еще не читали их.   Постарайтеся вирішувати запропоновані завдання самостійно і дивитися наші рішення тільки в крайньому випадку.

1. Создать массив типа int на 10 елементів і заповнити його випадковими числами від 7 до 14. Після заповнення перезаписати всі числа, які більше десяти:  від закладеного значення відняти 10.  Наприклад в осередку зберігається число 12: 12 – 10 = 2. Записать в эту ячейку 2 Записывая новое значение, используйте складові(комбіновані) оператори.

2. Заполнить массив из 50-ти элементов нечётными числами от 1 до 99. (используйте операцию остаток от деления, чтобы проверить число на чётность)

3. Объявить три массива. Перші два заповнити випадковими значеннями від 10 до 30. В елементи третього масиву записати суму відповідних елементів перших двох масивів. (в нулевую ячейку третьего – сумму нулевых ячеек первого и второго массивов и так далее). Затем найти среднее арифметическое элементов третьего массива, максимальное значение и минимальное значение, которые он хранит.

110 думки про "Завдання: Одномерные массивы C

  1. І ще раз не залік. На цей раз ще й тому, хто завдання придумував. Звідки накапали термін “комбіновані оператори” – не власними випадково придумали? – ні в одній книжці я такого не зустрічав.

    ourArr[i] = 7 + rand() % 8;
    Це погано, ви ж недавно писали статтю про правильне оформлення коду. 100% угод про кодування які я читав забороняють використання “магічних констант”, ваші 7 і 8 є саме ними. Если 7 зустрічається в умови, то можна залишити, але 8 треба переписати.

    Const INT lower_limit = 7;
    Const INT верхняя_граніца = 14;

    … % (Const ІНТ верхняя_граніца – Const ІНТ lower_limit + 1)
    І коментар в цей фрагмент можна дописати, т.к. все одно не очевидно чому +1.

    ourArr[i] -= 10; // віднімаємо 10
    А ось тут коментар можна (потрібно) Хіба ж не писав. За багатьма угодами про кодування коментарі взагалі не заохочуються, т.к. застарівають (код ви зміните, а коментар не забудете?). Коментар не повинен бути зайвим, не повинен повторювати код і повинен пояснювати тільки не очевидні моменти. Це спірний момент для будь-яких javadoc / doxygen, але у вашому випадку він очевидно зайвий.

    У третій задачі заміни “аналогічних елементів ” на “відповідних елементів” (можна спробувати більш підходяще слово придумати)

  2. в умові завдання 2 не сказано що числа мають бути випадковими)) у мене вийшло так:

    int main(){
    int aMass[50], p=0;
    for(int i=1; i<100; i++) {
    if(i%2 != 0) {
    aMass[p] = i;
    p++;
    }
    }
    for(int i=0; i<50; i++) cout <<aMass[i] <<' ';
    cout <<endl;

    system("pause");
    return 0;
    }

  3. int massiv1[30]={};
    int massiv2[30]={};
    int massiv3[30]={};
    int max=1, min=0,sum=0,count=0;
    float sredarifm=0;

    srand(time(NULL));

    for (int i = 0; i 0)
    {
    if (massiv3[i]>max)
    {
    max=massiv3[i];
    }
    if (massiv3[i]<min)
    {
    min=massiv3[i];
    }
    }
    }
    sredarifm=static_cast(sum)/count;
    cout<<"Maksimalnoe znachenie = "<<max<<'\n';
    cout<<"Minimalnoe znachenie = "<<min<<'\n';
    cout<<"Sredne-arifmeticheskoe znachenie = "<<sredarifm;

  4. легкі, але цікаві завдання, а ваші рішення ещі і дуже елегантні. Не знаю, чого той чувак до вас докапаться, мені особисто дуже сподобалося. Дякую)

  5. завдання №1
    #include
    #include

    using namespace std;

    int main(){
    setlocale(LC_ALL, “російський”);
    ІНТ розмір Const = 10;
    int array[size];
    ІНТ random_value, FIRST_VALUE, last_value;
    cout << "Задайте начальное значение и ширину диапазона: " <> FIRST_VALUE >> last_value;
    for (int i = 0; i = 10){
    random_value - = 10;
    }
    array[i] = random_value;
    }
    for (int i = 0; i < size; i ) {
    cout << array[i] << " ";
    }
    system("pause");
    return 0;
    }

    1. не весь код скопіювали(

      #include
      #include
      #include

      using namespace std;

      int main(){
      setlocale(LC_ALL, "Russian");
      int const size = 10;
      int array[size];
      int random_value, first_value, last_value;
      cout << "Задайте начальное значение и ширину диапазона: " <> first_value >> last_value;
      for (int i = 0; i = 10){
      random_value -= 10;
      }
      array[i] = random_value;
      }
      for (int i = 0; i < size; i++) {
      cout << array[i] << " ";
      }
      system("pause");
      return 0;
      }

  6. завдання №3
    #include
    #include
    #include
    #include

    using namespace std;

    int main(){
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
    bool exit = true;
    bool exit1 = true;
    int const size = 15;
    int minNum = 100;
    int maxNum = 0;
    int sum = 0;
    int change;
    int average;
    int array1[size], array2[size], array3[size];
    int first_value, last_value;
    cout <> first_value >> last_value;
    if (last_value > first_value)
    exit = false;
    if (last_value < first_value)
    cout << "Введите првильно диапазон: ";
    } while (exit);
    for (int i = 0; i maxNum)
    maxNum = array3[i];
    if (array3[i] < minNum)
    minNum = array3[i];
    sum += array3[i];
    }
    do {
    cout << "\nХотите вывести массив на экран?(1-3)\nВыход(4)" <> change;
    switch (change) {
    case 1:cout << "Первый массив:" << endl;
    for (int i = 0; i < size; i++) {
    cout << array1[i] << " | ";
    }
    break;
    case 2:cout << "\nВторой массив:" << endl;
    for (int i = 0; i < size; i++) {
    cout << array2[i] << " | ";
    }
    break;
    case 3:cout << "\nТретий массив:" << endl;
    for (int i = 0; i < size; i++) {
    cout << array3[i] << " | ";
    }
    break;
    case 4:
    exit1 = false;
    break;
    default:
    cout << "Введите правильный номр массива(1-3)" << endl;
    break;
    }

    } while (exit1);
    average = sum / size;
    cout << "\nСреднее арефметическое: " << average << endl;
    cout << "Минимальное значение: " << minNum << endl;
    cout << "Максимальное значение: " << maxNum << endl;
    system("pause");
    return 0;
    }

  7. завдання №3.
    У мене вийшло ось так:
    #include
    #include
    using namespace std;
    int main()
    {
    setlocale(LC_ALL, “”);
    srand(time(NULL));
    ІНТ iArray1[10] = {}, iArray2[10] = {}, iArray3[10] = {};
    INT iMaxArray3 = 0, iMinArray3 = 31, iSumma = 0;
    for (int j = 0; j < 10; j )
    {
    iArray1[j] = 10 + rand() % 21;
    cout << iArray1[j] << " ";
    }
    cout << endl << endl;
    for (int j = 0; j < 10; j )
    {
    iArray2[j] = 10 + rand() % 21;
    cout << iArray2[j] << " ";
    }
    cout << endl << endl;
    for (int i = 0; i < 10; i )
    {
    iArray3[i] = iArray1[i] +iArray2[i];
    cout << iArray3[i] << " ";
    }
    cout << endl << endl;
    for (int i = 0; i < 10; i )
    {
    iSumma + = iArray3[i];
    if (iArray3[i] iMaxArray3)
    iMaxArray3 = iArray3[i];
    }
    cout << " Середнє арифметичне = " << iSumma / 10 << endl;
    cout << " Максимум = " << iMaxArray3 << endl;
    cout << " Минимум = " << iMinArray3 << endl;
    system("pause");
    return 0;
    }

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *