M8. Задачи на обработку двух или трех массивов

Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи.
Внимание! При решении задач на одномерные массивы обязательно учтите рекомендации по оформлению вашего результата!
Решены задачи нет. Не решены: пока все.

Задачи

M8.1. Фирме принадлежат два магазина. Известна стоимость товаров, проданных в каждом магазине за каждый день в июле и августе, которая хранится в двух массивах. Получить общую стоимость проданных фирмой товаров за два месяца.
M8.2. Известно количество мячей, забитых футбольной командой за каждую игру в двух чемпионатах, которое хранится в двух массивах. В каждом из чемпионатов команда сыграла 26 игр. Найти общее количество мячей, забитых командой в двух чемпионатах.
M8.3. В области 20 районов. Площади, засеянные пшеницей (в гектарах), и урожай, собранный в каждом районе (в центнерах), хранятся в двух массивах. Определить среднюю урожайность пшеницы по каждому району и по области в целом.
Задачу решить двумя способами:
1) без использования дополнительного (третьего) массива;
2) с использованием дополнительного массива.
M8.4. В области 10 районов. Заданы площади, засеваемые пшеницей (в гектарах), и средняя урожайность (в центнерах с гектара) в каждом районе. Определить количество пшеницы, собранное в области, и среднюю урожайность по области.
Задачу решить двумя способами:
1) без использования дополнительного (третьего) массива;
2) с использованием дополнительного массива.
M8.5. Размеры 12 параллелепипедов (длина, ширина, высота) хранятся в трех массивах. Вывести на экран объемы каждой фигуры.
Задачу решить двумя способами:
1) без использования дополнительного (третьего) массива;
2) с использованием дополнительного массива.
M8.6. Известны данные о мощности двигателя (в лошадиных силах — л.с.) и стоимости 30-ти марок легковых автомобилей. Напечатать стоимость каждого из автомобилей, у которых мощность двигателя не превышает 80 л.с.
M8.7. Известны данные о вместимости (в мегабайтах) и стоимости (в рублях) каждого из 22 типов жестких магнитных дисков (винчестеров). Напечатать вместимость тех винчестеров, которые стоят больше s рублей.
M8.8. В одном массиве записано количество мячей, заброшенных баскетбольной командой в каждом из 15-ти матчей, в другом — количество пропущенных мячей. Для каждой игры определить словесный результат игры (выигрыш или проигрыш).
Задачу решить двумя способами:
1) без использования дополнительного (третьего) массива;
2) с использованием дополнительного массива.
M8.9. В одном массиве записано количество мячей, забитых футбольной командой в каждой из 20-ти игр, в другом — количество пропущенных мячей в этой же игре. Для каждой игры определить словесный результат игры (выигрыш, проигрыш или ничья).
Задачу решить двумя способами:
1) без использования дополнительного (третьего) массива;
2) с использованием дополнительного массива.
M8.10. Даны два массива из 20 однозначных чисел. В первом из них записано количество мячей, забитых футбольной командой в игре, во втором — количество пропущенных мячей в этой же игре.
а) Для каждой проведенной игры напечатать словесный результат: «выигрыш», «ничья» или «проигрыш».
б) Определить количество выигрышей данной команды.
в) Определить количество выигрышей и количество проигрышей данной команды.
г) Определить количество выигрышей, количество ничьих и количество проигрышей данной команды.
д) Определить, в скольких играх разность забитых и пропущенных мячей была большей или равной трем.
е) Общее число очков, набранных командой (за выигрыш дается 3 очка, за ничью — 1, за проигрыш — 0).
M8.11. Решить задачу M8.10. для случая, когда вместо двух массивов однозначных чисел задан один массив однозначных или двузначных чисел, запись которых образована цифрами, означающими количество забитых и пропущенных мячей в одной игре. Например, 32 — 3 забитых, 2 пропущенных; 22 — 2 забитых, 2 пропущенных; 0 — 0 забитых, 0 пропущенных.
M8.12. Известны данные о численности населения (в миллионах жителей) и площади (в миллионах квадратных километров) 28 государств. Определить общую численность государств, чья площадь превышает 5 млн кв. км.
M8.13. Известны данные о мощности двигателя (в л. с.) и стоимости 30 легковых автомобилей. Определить общую стоимость автомобилей, у которых мощность двигателя превышает 100 л. с.
M8.14. Имеется информация о количестве осадков, выпавших за каждый день месяца, и о температуре воздуха в эти дни. Определить, какое количество осадков выпало в виде снега и какое — в виде дождя. (Считать, что идет дождь, если температура воздуха выше 0 С.)
M8.15. Известны данные о численности населения (в миллионах жителей) и площади (в тысячах квадратных километров) 28 государств. Определить общую численность населения в «маленьких» государствах (чья площадь не превышает А тысяч квадратных километров).
M8.16. Имеется информация о количестве осадков, выпавших за каждый день января и за каждый день марта. Определить, в каком из этих месяцев выпало больше осадков.
M8.17. Фирма имеет два магазина. Известен доход каждого магазина за каждый день февраля. Определить, в каком из магазинов общий доход за месяц меньше.
M8.18. Известны данные о массе (в кг) и объеме (в см3) 20-ти предметов, изготовленных из различных материалов. Определить максимальную плотность материала. Задачу решить двумя способами:
1) без использования дополнительного (третьего) массива;
2) с использованием дополнительного массива.
M8.19. Известны длины участков пути (в км), которые проехали 25 легковых автомобилей, и время, затраченное каждым из них (в часах). Определить минимальную из средних скоростей движения автомобилей на участках. Задачу решить двумя способами:
1) без использования дополнительного (третьего) массива;
2) с использованием дополнительного массива.
M8.20. Размеры 15-ти параллелепипедов (длина, ширина, высота) хранятся в трех массивах. Определить:
а) максимальный объем фигуры;
б) минимальный объем фигуры;
в) номер фигуры, имеющей максимальный объем;
г) номер фигуры, имеющей минимальный объем.
Каждую задачу решить двумя способами:
1) без использования дополнительного (третьего) массива;
2) с использованием дополнительного массива.
M8.21. На плоскости даны 20 точек: x1, y1 , x2 , y2 , …, x20 , y20 . Рассмотрим прямоугольники, содержащие эти точки, причем стороны прямоугольников параллельны или перпендикулярны координатным осям. Возьмем наименьший из них. Определить координаты противоположных углов такого прямоугольника — левого нижнего и правого верхнего.
M8.22. Дан массив. Скопировать все его элементы в другой массив такого же размера:
а) в том же порядке расположения элементов;
б) в обратном порядке расположения элементов.
11.236. Из элементов массива a сформировать массив b того же размера по правилу: если номер i элемента массива a четный, то bi = aii , в противном случае bi = 2 * ai.
M8.23. Из элементов массива m сформировать массив n того же размера по правилу: если номер i элемента массива m нечетный, то ni = i * m , в противном случае ni = m * i.
M8.24. Из элементов массива p сформировать массив q того же размера по правилу: элементы с номером i от 3-го по 10-й находятся по формуле qi = — pi , все остальные — по формуле qi = pi * i.
M8.25. Из элементов массива a, заполненного целыми числами, сформировать массив b того же размера по правилу: четные элементы массива a удвоить, нечетные оставить без изменения.
M8.26. Из элементов массива m сформировать массив n того же размера по правилу: неотрицательные элементы массива m уменьшить в три раза, остальные — возвести в квадрат.
M8.27. Дан массив. Переписать его второй, четвертый и т. д. элементы в другой массив такого же размера:
а) расположив элементы на тех же местах, что и в исходном массиве;
б) расположив элементы подряд с начала массива.
M8.28. Дан массив целых чисел. Переписать его нечетные элементы в другой массив такого же размера:
а) расположив элементы на тех же местах, что и в исходном массиве;
б) расположив элементы подряд с начала массива.
M8.29. Дан массив из 20 элементов. Сформировать два массива размером 10, включив в первый из них элементы заданного массива с четными индексами, а во второй — с нечетными.
M8.30. Дан массив. Переписать его положительные элементы во второй массив, а остальные — в третий. Во втором и третьем массивах значения элементов первого массива должны быть записаны:
а) на тех же местах, что и в исходном массиве;
б) подряд с начала массива.
M8.31. Дан массив. Переписать его элементы в другой массив такого же размера следующим образом: сначала должны идти все отрицательные элементы, а затем все остальные. Использовать только один проход по исходному массиву.
M8.32. Даны два массива одного размера. Получить третий массив, каждый элемент которого равен:
а) сумме элементов с тем же номером в заданных массивах;
б) произведению элементов с тем же номером в заданных массивах;
в) максимальному из элементов с тем же номером в заданных массивах.
M8.33. Даны два массива одного размера, в которых нет нулевых элементов. Получить третий массив, каждый элемент которого равен 1, если элементы заданных массивов с тем же номером имеют одинаковый знак, и равен нулю в противном случае.
M8.34. Регистрация направления ветра на горном плато проводится один раз в день по очереди двумя исследователями. Каждый из них ведет отдельную таблицу. В конце месяца все результаты сводятся в одну таблицу. Составить программу, выполняющую эту операцию для июня. Направление ветра кодируется следующим образом: 1 — северный, 2 — южный, 3 — восточный, 4 — западный, 5 — северо-западный, 6 — северо-восточный, 7 — юго-западный, 8 — юго-восточный.


NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.


Помощь проекту:

Понравилась статья? Поделиться с друзьями:
5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
9 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Не совсем понятно как должна выглядеть таблица, но сделал как то так
M8.34. Регистрация направления ветра на горном плато проводится один раз в день по очереди двумя исследователями. Каждый из них ведет отдельную таблицу. В конце месяца все результаты сводятся в одну таблицу. Составить программу, выполняющую эту операцию для июня. Направление ветра кодируется следующим образом: 1 — северный, 2 — южный, 3 — восточный, 4 — западный, 5 — северо-западный, 6 — северо-восточный, 7 — юго-западный, 8 — юго-восточный.
Не совсем понятно как должна выглядеть таблица, но сделал как то так

static void Main(string[] args)
        {
            int[] firstExplorer = new int[30];
            int[] secondExptorer = new int[30];
            int[] allExplorers = new int[60];
            Random rand = new Random();


            for(int i=0; i<30; i++)
            {
                firstExplorer[i] = rand.Next(1, 9);
                Console.Write(firstExplorer[i] + " ");
            }         
            Console.WriteLine();
            for (int i = 0; i < 30; i++)
            {
                secondExptorer[i] = rand.Next(1, 9);
                Console.Write(secondExptorer[i] + " ");
            }


            int temp = 0;
            for(int i=0; i<allExplorers.Length; i++)
            {
                if (i % 2 == 0)
                {
                    allExplorers[i] = firstExplorer[temp];
                }
                else
                {
                    allExplorers[i] = secondExptorer[temp];
                    temp++;
                }
            }
            Console.WriteLine();


            int day = 1;
            string res = string.Empty;
            for(int i=0; i<allExplorers.Length; i++)
            {
                switch(allExplorers[i])
                {
                    case 1:
                        res = "северный";
                        break;
                    case 2:
                        res = "южный";
                        break;
                    case 3:
                        res = "восточный";
                        break;
                    case 4:
                        res = "западный";
                        break;
                    case 5:
                        res = "северо-западный";
                        break;
                    case 6:
                        res = "северо-восточный";
                        break;
                    case 7:
                        res = "юго-западный";
                        break;
                    case 8:
                        res = "юго-восточный";
                        break;
                    default:
                        res = "No result";
                        break;
                }
                if (i % 2 == 0)
                {
                    Console.WriteLine("День: " + day + " первый иследователь результат ветра: " + res);
                }
                if (i % 2 != 0)
                {
                    Console.WriteLine("День: " + day + " второй иследователь результат ветра: " + res);
                    day++;
                }
            }
            Console.ReadLine();        
        }

M 8.10

class progrm
{
  static void Win(int[] value_1, int[] value_2)
  {

    for (int i = 0; i < value_1.Length; i++)
    {
      if (value_1[i] > value_2[i])
      {
        Console.WriteLine(«В «+(i+1)+» матче Победа ЦСКА! Со счетом : » + value_1[i]+» — » + value_2[i] );
      }

    }

  }

  static void Lose(int[] value_1, int[] value_2)
  {
    for (int i = 0; i < value_1.Length; i++)
    {
      if (value_1[i] < value_2[i])
      {
        Console.WriteLine(«В » + (i + 1) + » матче ЦСКА проиграл со счетом : » + value_1[i] + » — » + value_2[i]);
      }
    }

  }

  static void Draw(int[] value_1, int[] value_2)
  {
    for (int i = 0; i < value_1.Length; i++)
    {
      if (value_1[i] == value_2[i])
      {
        Console.WriteLine(«В » + (i + 1) + » матче ничья со счетом : » + value_1[i] + » — » + value_2[i]);
      }
    }

  }

  static void DrawNO(int[] value_1, int[] value_2)
  {
    for (int i = 0; i < value_1.Length; i++)
    {
      int result = value_1[i] — value_2[i];
      if (result>=3)
      {
        Console.WriteLine(«В » + (i + 1) + » матче команда ЦСКА победила с разрывом больше или равной 3 мяча : » + value_1[i] + » — » + value_2[i]);
      }
       
      
    }
    Console.WriteLine();
    for (int l = 0; l < value_1.Length; l++)
    {
      int result = value_1[l] — value_2[l];
      if (result <= -3)
      {
        Console.WriteLine(«В » + (l + 1) + » матче команда ЦСКА проиграла с разрывом больше или равной 3 мяча : » + value_1[l] + » — » + value_2[l]);
      }
    }

  }
  static void Tabl(int[] value_1, int[] value_2)
  {
    int tablWin = 0, tablLose = 0, tablDraw = 0;
    for (int i = 0; i < value_1.Length; i++)
    {
       
      if (value_1[i] > value_2[i])
      {
        tablWin++;
        tablWin++;
        tablWin++;
      }
      if (value_1[i] < value_2[i])
      {
        tablLose=0;
      }
      if (value_1[i] == value_2[i])
      {
        tablDraw++;
      }
    }
    Console.WriteLine(«За победу очков = » + tablWin);
    Console.WriteLine(«За ничью очков = » + tablDraw);
    int result = tablWin + tablDraw;
    Console.WriteLine(«Команда заработала » + result + » очков за сезон»);
  }
  static void Main(string[] args)
  {
    Random rnd = new Random();
    Console.WriteLine(«Результативность командны ЦСКА за сезон:»);

    int[] Goal = new int[20];
    int[] Foal = new int[20];

    for (int i = 0; i < Goal.Length; i++)
    {
      Goal[i] = rnd.Next(0, 6);
    }

    for (int i = 0; i < Foal.Length; i++)
    {
      Foal[i] = rnd.Next(0, 6);
    }
     

      for (int i = 0; i < Goal.Length; i++)
      {
        Console.Write(«\nВ » + (i + 1) + » игре забито мячей : » + Goal[i]);
        Console.Write(«\n\t\t\t\t\tВ » + (i + 1) + » игре пропущено мячей : » + Foal[i]);
      }
    Console.WriteLine();
    Console.WriteLine();
    Win(Goal, Foal);
    Console.WriteLine();
    Lose(Goal, Foal);
    Console.WriteLine();
    Draw(Goal, Foal);
    Console.WriteLine();
    DrawNO(Goal, Foal);
    Console.WriteLine();
    Tabl(Goal, Foal);
  }
}

М8,5
static void Main(string[] agrs)
{
Random rnd = new Random() ;
int ValueRnd = 0;
int Side = 1;
Console.WriteLine(«Вывод объема 12 параллепипидов»);
Console.WriteLine();

int[] Length = Enumerable.Range(1, 12).ToArray();

for (int i = 0; i < Length.Length; i++)
{
ValueRnd = rnd.Next(1, 40);
Length[i] = ValueRnd;
Console.WriteLine($»Длина {Side} стороны : {Length[i]} см «);
Side++;

}
Console.WriteLine();
Side = 1;
int[] Weigth = Enumerable.Range(1, 12).ToArray();

for (int k = 0; k < Weigth.Length; k++ )
{
ValueRnd = rnd.Next(1, 40);
while (Length[k] == ValueRnd)
{
        ValueRnd = rnd.Next(1, 40);
        continue;
}

      Weigth[k] = ValueRnd;

Console.WriteLine($»Ширина {Side} стороны : {Weigth[k]} см «);
Side++;
    }

Console.WriteLine();
Side = 1;
int[] Heigth = Enumerable.Range(1, 12).ToArray();

for (int m = 0; m < Weigth.Length; m++)
{
ValueRnd = rnd.Next(1, 40);
      Heigth[m] = ValueRnd;

Console.WriteLine($»Высота {Side} стороны : {Heigth[m]} см «);
Side++;

}
Console.WriteLine();
Side = 1;

int[] summ = Enumerable.Range(1,12).ToArray();
for (int e = 0; e < Weigth.Length; e++)
{
summ[e] = Length[e] * Heigth[e] * Weigth[e];
Console.WriteLine($»Объем {Side} параллепипида = {summ[e]} см»);
Side++;

}

  }

namespace Task28
{
    class Program
    {
        static void Main()
        {
            int l = 10;
            int[] arr = new int[l];
            int[] arr1 = new int[l];
            int sum = 0;
            int rev = 0;
            for (int i = 0; i < l; i++)
            {
                arr[i] = new Random().Next(1, 11);
                Console.Write(arr[i] + " ");
            }
            Console.WriteLine();
            for (int j = 0; j < l; j++)
            {
                arr1[j] = new Random().Next(1, 11);
                Console.Write(arr1[j] + " ");
            }
            Console.WriteLine();
            for (int i = 0, j = 0; i < l && j < l; i++, j++)
            {
                if (i % 2 == 0)
                {
                    rev = i;
                    if (j == rev)
                    {
                        Console.Write(arr[i] + " ");
                    }
                }
                else
                { Console.Write(arr1[j] + " "); }
            }
            Console.WriteLine(" - Переписанный массив по п.п а)");
            for (int i = 0; i < l; i++)
            {
                if (i % 2 == 0)
                {
                    rev = i;
                    Console.Write(arr[i] + " ");
                    sum++;
                }
            }
            for (int j = 0; j < sum; j++)
            { Console.Write(arr1[j] + " "); }
            Console.WriteLine(" - Переписанный массив по п.п б)");
        }
    }
}
Последний раз редактировалось 1 год назад Евгений ем

namespace ConsoleApp4
{
  internal class Program
  {
    static void Main(string[] args)
    {

      int[] julyShop1 = { 45, 56, 33, 67, 99 };
      int[] augustShop1 = { 54, 65, 44, 54, 23 };
      int[] julyShop2 = { 123, 453, 22, 68, 45 };
      int[] augustShop2 = { 43, 678, 34, 212, 110 };

      int[] sum1 = new int[5];
      int[] sum2 = new int[5];
      
      int[] totalCost = new int[5];

      Console.Write(«Проданные товары за июль-август (1 shop): «);
      for (int i = 0; i < julyShop1.Length; i++)
      {
        for (int j = 0; j < augustShop1.Length; j++)
        {
          sum1[i] = julyShop1[i] + augustShop1[j];
          Console.Write($»{sum1[i]} «);
          break;
        }
      }
      Console.Write(«\nПроданные товары за июль-август (2 shop): «);
      for (int k = 0; k < julyShop2.Length; k++)
      {
        for (int m = 0; m < augustShop2.Length; m++)
        {
          sum2[k] = julyShop2[k] + augustShop2[m];
          sum2[k] = summ1[5];
          Console.Write($»{sum2[k]} «);
          break;
        }
      }
       

    }
  }
}

Помогите с первой задачей, не могу понять, как мне теперь сложить полученные массивы. Они же находятся внутри циклов, а вытащить я их не могу оттуда.


namespace ConsoleApp4
{
  internal class Program
  {
    static void Main(string[] args)
    {

      int[] julyShop1 = { 45, 56, 33, 67, 99 };
      int[] augustShop1 = { 54, 65, 44, 54, 23 };
      int[] julyShop2 = { 123, 453, 22, 68, 45 };
      int[] augustShop2 = { 43, 678, 34, 212, 110 };

      int[] sum1 = new int[5];
      int[] sum2 = new int[5];
      
      int[] totalCost = new int[5];

      Console.Write("Проданные товары за июль-август (1 shop): ");
      for (int i = 0; i < julyShop1.Length; i++)
      {
        for (int j = 0; j < augustShop1.Length; j++)
        {
          sum1[i] = julyShop1[i] + augustShop1[j];
          Console.Write($"{sum1[i]} ");
          break;
        }
      }
      Console.Write("\nПроданные товары за июль-август (2 shop): ");
      for (int k = 0; k < julyShop2.Length; k++)
      {
        for (int m = 0; m < augustShop2.Length; m++)
        {
          sum2[k] = julyShop2[k] + augustShop2[m];
          sum2[k] = summ1[5];
          Console.Write($"{sum2[k]} ");
          break;
        }
      }
       

    }
  }
}

M 8.2 :
using System;
using System.Linq;

namespace ConsoleApp14
{
class Program
{
static void Main(string[] args)
{
int[] champion1 = new int[27];
int[] champion2 = new int[27];
Random score = new Random();
int Sum = 0, Sum1 = 0;
int SumOfChem = 0;

Console.WriteLine(«Начало первого чемпионата»);
Console.WriteLine();
for (int i = 1; i <= 26; i++)
{
int result = score.Next(1, 5);
champion1[i] = result;
Console.WriteLine("Количество забитых мячей за " + i + " игру равно " + champion1[i]);
Sum += result;
}

Console.WriteLine();

Console.WriteLine("Количество забитых мячей за первый чемпионат равно " + Sum);

Console.WriteLine();
Console.WriteLine();
Console.WriteLine();

Console.WriteLine("Начало второго чемпионата");
Console.WriteLine();
for (int i = 1; i <= 26; i++)
{
int result = score.Next(1, 5);
champion2[i] = result;
Console.WriteLine("Количество забитых мячей за " + i + " игру равно " + champion1[i]);
Sum1 += result;
}

Console.WriteLine();

Console.WriteLine("Количество забитых мячей за первый чемпионат равно " + Sum1);

Console.WriteLine();

SumOfChem = Sum + Sum1;
Console.WriteLine("Сумма всех забитых мячей за два чемпионата равна " + SumOfChem);
}
}
}

M2 :
using System;
using System.Linq;

namespace ConsoleApp14
{
class Program
{
static void Main(string[] args)
{
int[] champion1 = new int[27];
int[] champion2 = new int[27];
Random score = new Random();
int Sum = 0, Sum1 = 0;
int SumOfChem = 0;

Console.WriteLine(«Начало первого чемпионата»);
Console.WriteLine();
for (int i = 1; i <= 26; i++)
{
int result = score.Next(1, 5);
champion1[i] = result;
Console.WriteLine("Количество забитых мячей за " + i + " игру равно " + champion1[i]);
Sum += result;
}

Console.WriteLine();

Console.WriteLine("Количество забитых мячей за первый чемпионат равно " + Sum);

Console.WriteLine();
Console.WriteLine();
Console.WriteLine();

Console.WriteLine("Начало второго чемпионата");
Console.WriteLine();
for (int i = 1; i <= 26; i++)
{
int result = score.Next(1, 5);
champion2[i] = result;
Console.WriteLine("Количество забитых мячей за " + i + " игру равно " + champion1[i]);
Sum1 += result;
}

Console.WriteLine();

Console.WriteLine("Количество забитых мячей за первый чемпионат равно " + Sum1);

Console.WriteLine();

SumOfChem = Sum + Sum1;
Console.WriteLine("Сумма всех забитых мячей за два чемпионата равна " + SumOfChem);
}
}
}

Вот первая задача:
static int[] GetPriceShop()
{
var PriceShop = new int[62];
Random rd = new Random();

for (int i = 0; i < PriceShop.Length; i++)
{
PriceShop[i] = rd.Next(20, 3000);
}

return PriceShop;
}
static void Main(string[] args)
{
var firstShop = GetPriceShop();
var secondShop = GetPriceShop();

int sum = firstShop.Sum() + secondShop.Sum();

Console.WriteLine(sum + "р");
}

Правда, я не очень понял задачу…

9
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x