Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи.
Внимание! При решении задач на одномерные массивы обязательно учтите рекомендации по оформлению вашего результата!
Решены задачи 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: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.
![]() |
![]() |
![]() |
![]() |
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
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;
б) тридцатью первыми простыми числами (простым называется натуральное число, большее 1, не имеющее других делителей, кроме единицы и самого себя).
a)
М1.11. Используя датчик случайных чисел, заполнить массив из двадцати элементов не повторяющимися числами.
М1.14. Вывести элементы массива на экран в обратном порядке.
М1.14. Вывести элементы массива на экран в обратном порядке.
М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) убывающую последовательность;
б) возрастающую последовательность.
Чуть исправил по убыванию. Если используете методы класса Array, то и метод Reverse() пригодится.
M1.3
Куржанжан! Это, как понимаю, решение задачи M1.3a. Во 2 операторе инициализация массива числами лишняя.
По идее такой рандомайз одни нули выдавать должен, разве нет?
М1.4. Массив предназначен для хранения значений роста двенадцати человек. С помощью датчика случайных чисел заполнить массив целыми значениями, лежащими в диапазоне от 163 до 190 включительно.
Верно.
М1.7. Заполнить массив из двадцати элементов так: 20 19 … 1.
Верно.
М1.6. Заполнить массив из двенадцати элементов так: 1 2 … 12.
Верно.
М1.3. Заполнить массив из пятнадцати элементов случайным образом.
Для решения a)-г) понадобилось написать подобный класс для вещественных чисел.
а) вещественными значениями, лежащими в диапазоне от 0 до 1
б) вещественными значениями х(22 <= х < 23);
в) вещественными значениями х(0 <= х < 10);
г) вещественными значениями х(–50 <= х < 50);
д) целыми значениями, лежащими в диапазоне от 0 до 10 включительно.
Вывод (возможный) результатов на консоль:
Владислав! Спасибо за внимательность. В этой задаче кроме варианта д) напрямую класс ArrayIntOne использовать нельзя (в нем только работа с целочисленным массивом). Верю, что Вы создали по аналогии класс ArrayDouble1 — это полезное упражнение.
Вопрос, а если лень переписывать класс, можно ли подзадачи а)-г) решить с помощью класса ArrayIntOne?
Ну вообще думаю что нет. В поле класса ArrayIntOne расположен массив целых чисел. Только если дописать в него нужные методы, поле и конструктор, но легче это все вынести в отдельный класс. Можно еще в Main класса Program создать массив типа double, а в ArrayIntOne дописать статический метод с генерацией чисел с плавающей точкой.
M1.1. Заполнить массив из восьми элементов следующими значениями: первый элемент массива равен 37, второй — 0, третий — 50, четвертый — 46, пятый — 34, шестой — 46, седьмой — 0, восьмой —13.
Владислав! Вы сделали все правильно!
Конечно, такая краткость возможна при подключении класса ArrayIntOne. Думаю, что Вы прочитали мои комментарии к решению Олегом задачи M1.2. И смогли воспользоваться функциональностью класса (с учетом конструктора, добавленного Эдом).
Это означает, что мыслите в объектах!
M1.1. Заполнить массив из восьми элементов следующими значениями: первый элемент массива равен 37, второй — 0, третий — 50, четвертый — 46, пятый — 34, шестой — 46, седьмой — 0, восьмой —13.
М1.2. Заполнить массив из десяти элементов значениями, вводимыми с клавиатуры в ходе выполнения программы.
сделал более лучшим способом
M1.2
Конечно, в первом варианте сил хватило только на 4 элемента! Поэтому родился цикл. Получилось кратко, а если еще ввести N и написать: for (var n = 0; n < N; n++) - то вообще хорошо. Теперь про рекомендации:
Если Вы используете класс ArrayIntOne, то для решения 2 задачи достаточно написать:
Попробуйте! Учимся работать с классами.
В таком формате ссылается на //конструктор с генератором случайных чисел от 0 до max