Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
прогр 4 лаба.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
134.9 Кб
Скачать

Задание 3

Дана целочисленная последовательность a1, a2, ..., aN. Пусть m - наименьшее из этих чисел, а M - наибольшее. Получите в порядке возрастания все числа в диапазоне от m до M, которые не входят в заданную последовательность.

Пример входа:

1 5 -2 4 5 -2 4 5 8

Пример вывода

-1 0 2 3 6 7

using System;

u sing System.Collections.Generic;

using System.Linq;

using System.Text;

namespace _4._3

{

class Program

{

static void Main(string[] args)

{

Console.Write("Введите размер массива:");

int n = Convert.ToInt32(Console.ReadLine()); // n - размер массива

int[] mass = new int[n];

int i = 0;

for (i = 0; i < n; i++) // поочередно вводим элементы массива

{

Console.Write("Введите {0} элемент массива:", i + 1);

mass[i] = int.Parse(Console.ReadLine());

}

int m = mass[0], M = mass[0]; // задаем перменные наибольшего и наименьшего значения; записываем в них первый эл-т

for (i = 1; i < n; i++) // Ищим m и M;

{

if (m > mass[i]) m = mass[i];

if (M < mass[i]) M = mass[i];

}

for (i = m; i <= M; i++) // Выводим на экран последовательность от m до M

Console.Write(i + " ");

}

}

}

Задание 4

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

Пример входа

6 3 2 1 2

Пример вывода

2 1

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace _4._4

{

class Program

{

static void Main(string[] args)

{

Console.Write("Введите размер массива:");

int n = Convert.ToInt32(Console.ReadLine()); // n - размер массива

int[] mass = new int[n];

int i = 0;

for (i = 0; i < n; i++) // поочередно вводим элементы массива

{

Console.Write("Введите {0} ({1}) элемент массива:", i + 1, i);

mass[i] = (int)Math.Sqrt(Math.Pow(int.Parse(Console.ReadLine()), 2)); // записываем элемент в массив, предварительно избавляясь от минуса

}

int sum1, sum2, raznica = 2 * (int)Math.Pow(10, 9), j, iskomiy_index = 0; // переменные: суммы "до" и "после", разность сумм по модулю, опеделитель элемента массива, искомый индекс

for (i = 0; i < n; i++)

{

sum1 = 0;

sum2 = 0;

for (j = i - 1; j >= 0; j--)//сумма элементов до i-того

{

sum1 += mass[j];

}

for (j = i + 1; j < n; j++) // сумма элементов после i-того

{

sum2 += mass[j];

}

if ((int)Math.Sqrt(Math.Pow(sum1 - sum2, 2)) < raznica)

{

raznica = (int)Math.Sqrt(Math.Pow(sum1 - sum2, 2)); // в raznica записываем наименьшую разницу двух сумм

iskomiy_index = i;

}

}

Console.Write("Индекс оптимального элемента: {0} (индесация от нуля)", iskomiy_index);

}

}

}