M1. Задачи инициализации массива и вывода его на экран

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

Задачи

M1.1. Заполнить массив из восьми элементов следующими значениями: первый элемент массива равен 37, второй — 0, третий — 50, четвертый — 46, пятый — 34, шестой — 46, седьмой — 0, восьмой —13.
М1.2. Заполнить массив из десяти элементов значениями, вводимыми с клавиатуры в ходе выполнения программы.
М1.3. Заполнить массив из пятнадцати элементов случайным образом:
а) вещественными значениями, лежащими в диапазоне от 0 до 1;
б) вещественными значениями х (22 <= х < 23);
в) вещественными значениями х (0 <= х < 10);
г) вещественными значениями х (–50 <= х < 50);
д) целыми значениями, лежащими в диапазоне от 0 до 10 включительно.
М1.4. Массив предназначен для хранения значений роста двенадцати человек. С помощью датчика случайных чисел заполнить массив целыми значениями, лежащими в диапазоне от 163 до 190 включительно.
М1.5. Массив предназначен для хранения значений весов двадцати человек. С помощью датчика случайных чисел заполнить массив целыми значениями, лежащими в диапазоне от 50 до 100 включительно.
М1.6. Заполнить массив из двенадцати элементов так: 1 2 … 12.
М1.7. Заполнить массив из двадцати элементов так:  20 19 … 1.
М1.8. Заполнить массив из восьми элементов таким образом, чтобы значения элементов при просмотре массива слева направо образовывали:
а) убывающую последовательность;
б) возрастающую последовательность.
Варианты, представленные в задачах М1.6 и М1.7, не использовать.
М1.9. Заполнить массив:
а) десятью первыми членами арифметической прогрессии с известным первым членом прогрессии а и ее разностью р;
б) двадцатью первыми членами геометрической прогрессии с известным первым членом прогрессии а и ее знаменателем z;
в) двенадцатью первыми членами последовательности Фибоначчи (последовательности, в которой первые два члена равны 1, а каждый следующий равен сумме двух предыдущих).
М1.10. Дано натуральное число n (n <= 999999). Заполнить массив его цифрами, расположенными в обратном порядке (первый элемент равен последней цифре, второй — предпоследней и т. д.). Незаполненные элементы массива должны быть равны нулю. Элементы массива, являющиеся цифрами числа n, вывести на экран.
М1.11. Используя датчик случайных чисел, заполнить массив из двадцати элементов не повторяющимися числами.
М1.12. Заполнить массив:
а) двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и находящимися в интервале, левая граница которого равна 300;
б) тридцатью первыми простыми числами (простым называется натуральное число, большее 1, не имеющее других делителей, кроме единицы и самого себя).
М1.13. Составить программу вывода на экран любого элемента массива по его индексу.
М1.14. Вывести элементы массива на экран в обратном порядке.


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


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

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

using System;
namespace LesArray
{
  class Array
  {
    public string? [] array;
    public int n;
    public Array (string? [] array, int n)
    {
      this.array = array;
      this.n = n;
    }
  public void Get()
    {
      int z = 0;
      for (int i = array.Length-1; i>=0; i—)
      {
        z++;
        if (z<=n)
        {
          Console.WriteLine(array[i]);
        }
        else
        {
          array[i] = «0»;
          Console.WriteLine(array[i]);
        }
      }
    }
  }
  class Program
  {
    static void Main(string[] args)
    {
      Console.Write(«Enter to array: «);
      string? arr = Console.ReadLine();
      Console.Write(«Enter to n<=99999: «);
      int n = Convert.ToInt32(Console.ReadLine());
      string[] numbers = arr.Split(new char[] { ‘ ‘ }, StringSplitOptions.RemoveEmptyEntries);
      Array X = new Array(numbers, n);
      X.Get();
    }
  }
}

Последний раз редактировалось 1 год назад Евгений ем

#1.1
using System;
class Program
{
   string nums;
   public Program (string nums)
   {
      this.nums = nums;
   }
   public void Get()
   {
      string[] num = nums.Split(new char[] { ‘ ‘ }, StringSplitOptions.RemoveEmptyEntries);
      foreach (string s in num)
         Console.WriteLine(s);
   }
}
class Array
{
 static void Main(string[] args)
 {
     Console.Write(«Enter values by spaces:»);
     string nums = Console.ReadLine();
    Program X = new Program(nums);
    X.Get();
 }
}

правильно ли, подскажите?

ну вообще там трёх строчек достаточно

Console.WriteLine(«M1.1. Заполнить массив из восьми элементов следующими значениями:п» + «\nервый элемент массива равен 37, второй — 0, третий — 50,» + «\nчетвертый — 46, пятый — 34, шестой — 46,» + «\nседьмой — 0, восьмой —13.»); int[] arrayInts = { 37, 0, 50, 46, 34, 46, 0, 13 }; for (int i = 0; i < arrayInts.Length; i++) { Console.WriteLine($»{i + 1}) {arrayInts[i]}»); }

#1.9 в)
using System;

class Array
{
  static void Main(string[] args)
  {
    Console.Write(«Enter to n: «);
    int n = Convert.ToInt32(Console.ReadLine());
    int[] num = new int[n];
    num[0] = 1;
    num[1] = 1;

    for (int i = 2; i < num.Length; i++)
    {
      num[i]= num[i — 2] + num[i-1];
    }
    for (int i = 0; i < num.Length; i++)
      Console.WriteLine(num[i]);
  }
}

//М1.11.Используя датчик случайных чисел, заполнить массив из двадцати элементов не повторяющимися числами.

      int[] nums = new int[20];

      Random r = new Random();
      nums[0] = r.Next(21);
     
      for (int i = 1; i < nums.Length; i++)
      {
        nums[i] = r.Next(21);
        int a = nums[i];
       
        for(int j = i; j != 0; j—)
        {
          if (a == nums[j-1])
          {
            i = 1;
          }  
        }    
      }

      for(int i = 0; i < nums.Length;i++)
      {
        Console.WriteLine(nums[i]);
      }

М1.12. Заполнить массив:
а) двадцатью первыми натуральными числами, делящимися нацело на 13 или на 17 и находящимися в интервале, левая граница которого равна 300;

public void ArrayInputA()
        {
            int number = 300;
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    if (number % 13 == 0 || number % 17 == 0)
                    {
                        a[i] = number;
                        number++;
                        break;
                    }
                    else
                    {
                        number++;
                    }
                }
            }
        }

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

public void ArrayInputB()
     {
         int number = 2;
         int i = 0;
         while (true)
         {
             if (IsSimple(number) == true)
             {
                 a[i++] = number;
             }
             if (i == 30)
             {
                 break;
             }
             number++;
         }
     }
public bool IsSimple(int num)
     {
         for (int i = 2; i < num; i++)
         {
             if (num % i == 0)
             return false;
         }
         return true;
     }

a)

Console.WriteLine("M1.12");
var array = new int[20];
            var leftBorder = 299;
            for (int i = 0; i < array.Length; i++)
            {
                leftBorder++;
                do
                    {
                    if (leftBorder % 13 == 0 || leftBorder % 17 == 0)
                    {
                        array[i] = leftBorder;
                    }
                    else leftBorder++;
                } while (array[i] != leftBorder);
                
                
            }
            foreach (var e in array)
            {
                Console.Write($"{e} ");
            }

М1.11. Используя датчик случайных чисел, заполнить массив из двадцати элементов не повторяющимися числами.

for (int i = 0; i < n; i++)
            {
                a[i] = rnd.Next(0, 20);
            }
 
            for (int i = 0; i < n; i++)
            {
                for (int j = i + 1; j < n; j++)
                {
                    if (a[j] == a[i])
                    {
                        a[i] = rnd.Next(0, 20);
                        i = 0;
                        j = 0;
                    }
                }
            }
Последний раз редактировалось 2 лет назад Александр К. ем

М1.14. Вывести элементы массива на экран в обратном порядке.

for (int i = arr.Length-1; i >= 0; i—)
{
Console.Write(arr[i]+" ");
}

М1.14. Вывести элементы массива на экран в обратном порядке.

static void Main(string[] args)
        {
            int[] array = new int[10];
            Random rand = new Random();
            for(int i=0; i<array.Length; i++)
            {
                array[i] = rand.Next();
                Console.Write(array[i] + " ");
            }
            Console.WriteLine();
            for(int i=array.Length-1; i>=0; i--)
            {
                Console.Write(array[i] + " ");
            }


        }

М1.11. Используя датчик случайных чисел, заполнить массив из двадцати элементов не повторяющимися числами.

Random random = new Random();
int[] matrix = new int[20];
for(int i = 0; i<matrix.Length; i++) {
matrix[i] = random.Next(0, 50);
for (int ii = 0; ii<matrix.Length;ii++)
{
if (matrix[i] == matrix[ii]) matrix[i] = random.Next(0,50);
}
Console.WriteLine(matrix[i]);
}

//M1.13
int [] arr = new int[5] { 4, 6, 2, 6, 2 };
Console.WriteLine(«Введите индекс, для получения данных»);
int mem = int.Parse(Console.ReadLine());
Console.WriteLine(arr[mem]);
//M1.14
for (int i = arr.Length-1; i >= 0; i—)
Console.Write(arr[i]+» «);

M1.11
Random rnd = new Random();
int [] arr = new int [20];
arr[0] = rnd.Next(21);
for (int i = 1; i < arr.Length; i++)
{
int num = rnd.Next(21);
int num2 = num;
if (num!=arr[i-1])
{
arr[i] = num2;
Console.Write(arr[i] + " ");
}
}

сделать «if(num!=arr[i])» и будет работать

M1.10
Random rnd = new Random();
int numRnd = rnd.Next(1000000);
int num = numRnd;
int count = 0;
while (num>0)
{
count++;
num /= 10;
}
Console.WriteLine(numRnd);
int[] arr = new int [count];
for (int i = 0; i < arr.Length; i++)
{
arr[i]=numRnd%10;
numRnd = numRnd / 10;
Console.Write(arr[i]+" ");
}

М1.8. Заполнить массив из восьми элементов таким образом, чтобы значения элементов при просмотре массива слева направо образовывали:
a) убывающую последовательность;
б) возрастающую последовательность.

Random rnd = new Random();
int[] number = new int[8];
// 1.8 A
for (int i = 0; i < number.Length; i++)
    number[i] = rnd.Next(3, 24);
Array.Sort(number);
Array.Reverse(number);
for (int i = 0; i < number.Length; i++)
    Console.Write(number[i]+" ");
Console.WriteLine();
// 1.8 Б
for (int i = 0; i < number.Length; i++)
   number[i] = rnd.Next(3, 24);
Array.Sort(number);
for (int i = 0; i < number.Length; i++)
   Console.Write(number[i] + " ");
Важно: Вы можете поддержать проект и автора.

M1.3

Random random = new Random();
double[] nums = new double[15] {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.11, 0.12, 1.14, 0.15, 0.66};
for (int i = 0; i < nums.Length; i++)
    nums[i] = random.Next(0, 1);
foreach(double n in nums)
   Console.WriteLine(n);
Console.ReadKey();
Важно: Вы можете поддержать проект и автора.

По идее такой рандомайз одни нули выдавать должен, разве нет?

М1.4. Массив предназначен для хранения значений роста двенадцати человек. С помощью датчика случайных чисел заполнить массив целыми значениями, лежащими в диапазоне от 163 до 190 включительно.

Random rnd = new Random();
int[] rndNumbers = new int[12];
for (int i = 0; i < rndNumbers.Length; i++)
    rndNumbers[i] = rnd.Next(163, 191);
foreach (int index in rndNumbers)
   Console.WriteLine(index);
Важно: Вы можете поддержать проект и автора.

М1.7. Заполнить массив из двадцати элементов так:  20 19 … 1.

int[] array2 = new int[20];
for (int i = 0; i < 20; i++)
   array2[i] = 20 - i;
foreach (int indexOfArray in array2)
   Console.WriteLine(indexOfArray);
Важно: Вы можете поддержать проект и автора.

М1.6. Заполнить массив из двенадцати элементов так: 1 2 … 12.

int[] array = new int[12];
for (int i = 0; i < 12; i++)
   array[i] = i + 1;
foreach (int indexOfArray in array)
   Console.WriteLine(indexOfArray);
Важно: Вы можете поддержать проект и автора.

М1.3. Заполнить массив из пятнадцати элементов случайным образом.
Для решения a)-г) понадобилось написать подобный класс для вещественных чисел.
а) вещественными значениями, лежащими в диапазоне от 0 до 1

ArrayDouble1 double1 = new ArrayDouble1(15, 0, 1);
double1.ArrayDouble_Out("double1 (0 <= х < 1): ");

б) вещественными значениями х(22 <= х < 23);

ArrayDouble1 double2 = new ArrayDouble1(15, 22, 23);
double2.ArrayDouble_Out("double2 (22 <= х < 23): ");

в) вещественными значениями х(0 <= х < 10);

ArrayDouble1 double3 = new ArrayDouble1(15, 10);
double3.ArrayDouble_Out("double3 (0 <= х < 10): ");

г) вещественными значениями х(–50 <= х < 50);

ArrayDouble1 double4 = new ArrayDouble1(15, -50, 50);
double4.ArrayDouble_Out("double4 (–50 <= х < 50): ");

д) целыми значениями, лежащими в диапазоне от 0 до 10 включительно.

ArrayIntOne arrayInt = new ArrayIntOne(15, 10);
arrayInt.ArrayInt_Out("arrayInt (0 <= х < 10): ");

Вывод (возможный) результатов на консоль:

double1 (0 <= х < 1):
0,27    0,72    0,14    0,26    0,2     0,49    0,47    0,13    0,84    0,35    0,91    0,4     0,91    0,8     0,24

double2 (22 <= х < 23):
22,63   22,41   22,33   22,67   22,42   22,47   22,63   22,16   22,82   22,25   22,7    22,89   22,91   22,12   22,44

double3 (0 <= х < 10):
6,28    4,15    3,28    6,71    4,21    4,68    6,34    1,6     8,15    2,52    6,98    8,92    9,08    1,23    4,43

double4 (-50 <= х < 50):
12,84   -8,52   -17,17  17,15   -7,87   -3,2    13,41   -34,01  31,52   -24,77  19,76   39,21   40,82   -37,74  -5,74

arrayInt (0 <= х < 10):
6       4       3       7       4       5       6       1       8       2       7       9       9       1       4
Важно: Вы можете поддержать проект и автора.

Ну вообще думаю что нет. В поле класса ArrayIntOne расположен массив целых чисел. Только если дописать в него нужные методы, поле и конструктор, но легче это все вынести в отдельный класс. Можно еще в Main класса Program создать массив типа double, а в ArrayIntOne дописать статический метод с генерацией чисел с плавающей точкой.

M1.1. Заполнить массив из восьми элементов следующими значениями: первый элемент массива равен 37, второй — 0, третий — 50, четвертый — 46, пятый — 34, шестой — 46, седьмой — 0, восьмой —13.

namespace Tasks2
{
class Program
{
static void Main(string[] args)
{
   ArrayIntOne array = new ArrayIntOne(8, "37 0 50 46 34 46 0 13");
   Console.Write("Исходные данные: ");
   array.ArrayInt_Out("array");
}
}
}
Важно: Вы можете поддержать проект и автора.

M1.1. Заполнить массив из восьми элементов следующими значениями: первый элемент массива равен 37, второй — 0, третий — 50, четвертый — 46, пятый — 34, шестой — 46, седьмой — 0, восьмой —13.

var numbers = new int[] { 37, 0, 50, 46, 34, 46, 0, 13 };
for (int i = 0; i < number.Length; i++)
   Console.WriteLine(numbers[i]);

М1.2. Заполнить массив из десяти элементов значениями, вводимыми с клавиатуры в ходе выполнения программы.

var number = new int[5];
Console.WriteLine("введите массив 1= ");
number[0] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите массив 2= ");
number[1] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите массив 3= ");
number[2] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите массив 4= ");
number[3] = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("введите массив 5= ");
number[4] = Convert.ToInt32(Console.ReadLine());
foreach (int i in number)
{
   Console.WriteLine(i);            
}

сделал более лучшим способом
M1.2

var number = new int[10];
for (var n = 0; n < 10; n++)
{
   Console.WriteLine("Введите число = ");
   number[n] = int.Parse(Console.ReadLine());
}
foreach (int i in number)
   Console.WriteLine("число = {0}",i);
Важно: Вы можете поддержать проект и автора.

В таком формате ссылается на //конструктор с генератором случайных чисел от 0 до max

Последний раз редактировалось 1 год назад Евгений ем
37
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x