Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lr_c#_14.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
107.01 Кб
Скачать

Постановка задания

Таблица 14.1.

п.п

Задание

1

Даны два одномерных массива. В одном хранятся данные о росте(Р) ученика, в другом – о весе(V). Определить индекс массы тела каждого ученика и вывести на экран всех, у кого вес превышает норму.

2

Даны два одномерных массива А и В одинакового размера. Вывести на экран среднее арифметическое (А[i]+В[i])/2

3

Даны два одномерных массива одинакового размера, в которых хранятся значения сопротивлений R1 и R2. Вывести на экран значения общего сопротивления, учитывая, что R1 и R2 соединены параллельно( (R1[i]+R2[i])/R1[i]*R2[i])

4

Даны два одномерных массива А и В одинакового размера, хранящие данные о катетах прямоугольного треугольника. Вывести на экран значения гипотенузы для каждой пары А[i] и В[i]

5

Даны два одномерных массива А и В одинакового размера. Вывести на экран для каждой пары А[i] и В[i] значения А[i] * А[i] - В[i]

Таблица 14.2.

п.п

Задание

1

Дан двумерный массив, хранящий сведения N курсантов по M предметам. Найти, кто из курсантов имеет максимальный средний балл. Если таких несколько, вывести на экран их номера по списку.

2

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

3

Дан двумерный массив размером N х M. Найти, в каком столбце наибольшее количество четных элементов. Если таких несколько, вывести на экран их номера по списку.

4

Дан двумерный массив размером N х M. Найти, в каком столбце сумма элементов наибольшая. Если таких несколько, вывести на экран их номера по списку.

5

Дан двумерный массив размером N х M. Найти, в какой строке сумма элементов наименьшая. Если таких несколько, вывести на экран их номера по списку.

Пример выполнения работы

Дан одномерный массив. Найти максимальный элемент.

Дан двумерный массив размером N х M. Найти, в каком столбце наименьшее количество положительных элементов. Если таких несколько, вывести на экран их номера по списку.

ПРОГРАММА

1-е задание:

using System;

// Использование индексатора для создания отказоустойчивого массива

using System;

class FailSoftArray

{

int[] a; // Ссылка на массив.

public int Length; // Length - открытый член.

public bool errflag; // Индикатор результата

// последней операции.

// Создаем массив заданного размера,

public FailSoftArray(int size)

{

a = new int[size];

Length = size;

}

// Это - индексатор для класса FailSoftArray.

public int this[int index]

{

// Это - get-аксессор.

get

{

if (ok(index))

{

errflag = false;

return a[index];

}

else

{

errflag = true;

return 0;

}

}

// Это - set-аксессор.

set

{

if (ok(index))

{

a[index] = value;

errflag = false;

}

else errflag = true;

}

}

// Метод возвращает значение true, если

// индекс - в пределах границ,

private bool ok(int index)

{

if (index >= 0 & index < Length) return true;

return false;

}

}

// Демонстрируем отказоустойчивый массив,

class Zada4a

{

Random rnd = new Random();

const int n = 12;

FailSoftArray a = new FailSoftArray(n);

public void formir()

{

Console.WriteLine("Исходный массив:");

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

{

a[i] = rnd.Next(100);

Console.Write("{0,4}", a[i]);

}

Console.WriteLine();

}

public void max()

{

int max = a[0];

for (int i = 1; i < n; i++)

{

if (a[i] > max) max = a[i];

}

Console.WriteLine("max={0,4}", max);

}

public static int Main()

{

Zada4a z1 = new Zada4a();

z1.formir();

z1.max();

Console.ReadKey();

return 0;

}

}

РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Введите кол-во элементов массива:");

int[] a = FillArray(Int32.Parse(Console.ReadLine()));

Console.WriteLine("Массив после заполнения:"); PrintArray(a);

Console.WriteLine("\n\nМинимальный элемент: " + Min(a));

Console.WriteLine("\nСумма четных элементов массива: " + Sum(a));

Console.WriteLine("\nСписок положительных элементов массива: "); PrintArray(Positiv(a));

Console.ReadKey();

}

static int[] FillArray(int length)

{

Random random = new Random();

int[] a = new int[length];

for (int i = 0; i < length; i++)

a[i] = random.Next(-100, 100);

return a;

}

static void PrintArray(int[] a)

{

foreach (int i in a)

Console.Write(i + " ");

}

static int Min(int[] a)

{

int min = a[0];

for (int i = 1; i < a.Length; i++)

if (min > a[i]) min = a[i];

return min;

}

static int Sum(int[] a)

{

int sum = 0;

for (int i = 0; i < a.Length; i++)

if (a[i] % 2==0) sum += a[i];

return sum;

}

static int[] Positiv(int[] a)

{

List<int> PositivElements = new List<int>();

for (int i = 0; i < a.Length; i++)

if (a[i] >0)

PositivElements.Add(a[i]);

return PositivElements.ToArray();

}

}

}

2-е задание:

using System;

class FailSoftArray2D

{

static int[,] a; // Ссылка на базовый двумерный массив.

int rows = 6, cols = 7;// размерности

public int Length; // Length - открытый член.

public bool errflag; // Индикатор результата

// последней операции.

// Создаем массив заданного размера,

public FailSoftArray2D(int n, int m)

{

rows = n;

cols = m;

a = new int[n, m];

Length = n * m;

}

// Это индексатор для класса FailSoftArray2D.

public int this[int index1, int index2]

{

// Это -- get-аксессор.

get

{

if (ok(index1, index2))

{

errflag = false;

return a[index1, index2];

}

else

{

errflag = true;

return 0;

}

}

// Это — set-аксессор.

set

{

if (ok(index1, index2))

{

a[index1, index2] = value;

errflag = false;

}

else errflag = true;

}

}

// Метод возвращает значение true, если индексы

// находятся внутри границ,

private bool ok(int index1, int index2)

{

if (index1 >= 0 & index1 < rows &

index2 >= 0 & index2 < cols)

return true;

return false;

}

public void formir()

{

Random rnd = new Random();

Console.WriteLine("Исходный массив:");

for (int i = 0; i < rows; i++)

{

for (int j = 0; j < cols; j++)

{

a[i, j] = rnd.Next(100) - 50;

Console.Write("{0,4}", a[i, j]);

}

Console.WriteLine();

}

}

public int min_kol()

{

int min = 0, kol;

for (int j = 0; j < cols; j++)

{

kol = 0;

for (int i = 0; i < rows; i++)

{

if (a[i, j] > 0) kol++;

}

if (j == 0) min = kol;

if (min > kol) min = kol;

}

return min;

}

public void rez()

{

int min = min_kol();

Console.WriteLine("Результат(номера столбцов):");

for (int j = 0; j < cols; j++)

{

int kol = 0;

for (int i = 0; i < rows; i++)

{

if (a[i, j] > 0) kol++;

}

if (min == kol) Console.Write("{0,4}", j);

}

}

}

class Zada4a

{

public static int Main()

{

const int n = 5, m = 6;

FailSoftArray2D z1 = new FailSoftArray2D(n, m);

z1.formir();

z1.rez();

Console.ReadKey();

return 0;

}

}

РЕЗУЛЬТАТ РАБОТЫ ПРОГРАММЫ:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]