
4 курс (заочка) / Лабораторные работы / ЛР5 (B) - ТП
.docxОрдена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики»
Центр заочного обучения по программам бакалавриата
Кафедра «Математической кибернетики и информационных технологий»
Дисциплина: Технологии программирования
Лабораторная работа №5
Определение характеристик одномерных массивов
Выполнил: Иванов И.И,, студент группы БСТ17XX Вариант №7
Проверил: Клешнин Н.Г.
Москва, 2021
Введение
В данной лабораторной работе мы изучаем создание программы, позволяющей произвести проверку попадания точки в область на плоскости. Необходимо написать программу, которая будет удовлетворять заданным условиям, указанным в варианте задания.
Задание
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от A до B, где A и B задаются в директивах #define) или ввести его элементы с клавиатуры и определить его характеристики в соответствии с вариантом.
Программа должна содержать следующие функции:
инициализация элементов массива случайными числами или вводимыми с клавиатуры;
вывод массива на экран.
Вариант задания
Уровень B
Требуется определить массив целых чисел (например, размера 30), заполнить его случайными числами (в диапазоне от A до B, где A и B задаются в директивах #define) или ввести его элементы с клавиатуры и определить его характеристики в соответствии с вариантом.
Программа должна содержать следующие функции:
инициализация элементов массива случайными числами или вводимыми с клавиатуры;
вывод массива на экран.
B7. Напечатать все те элементы массива, сумма цифр в которых находится в интервале от L до R.
Код программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace lab5
{
class Program
{
static void Main(string[] args)
{
const int A = -100;
const int B = 100;
Console.Write("Введите длину массива: ");
int size = Convert.ToInt32(Console.ReadLine());
int[] arr = new int[size];
Console.WriteLine("Введите: \t1 - для заполнения массива случайными числами \n\t\t2 - для ручного заполнения массива ");
int choice = 0;
do
{
choice = Convert.ToInt32(Console.ReadLine());
if (choice == 1)
randArray(ref arr, A, B);
else
{
if (choice == 2)
inputArray(ref arr);
else
choice = 0;
}
}
while (choice == 0);
showArray(arr);
Console.Write("Введите значение L: ");
int L = Convert.ToInt32(Console.ReadLine());
Console.Write("Введите значение R: ");
int R = Convert.ToInt32(Console.ReadLine());
indTask(arr, L, R);
Console.ReadKey();
}
static void randArray(ref int[] arr, int A, int B)
{
Random r = new Random();
for (int i = 0; i < arr.Length; i++)
{
arr[i] = r.Next(A, B);
}
}
static void inputArray(ref int[] arr)
{
for (int i = 0; i < arr.Length; i++)
{
Console.Write($"Введите {i}-й элемент массива: ");
arr[i] = Convert.ToInt32(Console.ReadLine());
}
}
static void showArray(int[] arr)
{
Console.WriteLine("Получившийся массив:");
for (int i = 0; i < arr.Length; i++)
Console.Write($"{arr[i]} ");
Console.WriteLine();
}
static void indTask(int[] arr, int L, int R)
{
Console.WriteLine("Элементы массива, сумма цифр в которых находится в интервале от L до R:");
for (int i = 0; i < arr.Length; i++)
{
int currentElement = Math.Abs(arr[i]);
int len = currentElement.ToString().Length;
int summ = 0;
for (int j = 1; j <= len; j++)
{
summ += (currentElement % 10);
currentElement = (int)(currentElement / 10);
}
if (summ > L && summ < R)
Console.Write($"{arr[i]} ");
}
}
}
}
Результаты работы программы
Заключение
В ходе выполнения лабораторной работы была написана программа, содержащая циклический вычислительный процесс, с помощью которой мы смогли выполнить поставленную перед нами задачу.