- •Блок контроля освоения дисциплины
- •4.1.1.2. Методические указания к выполнению контрольной работы 1
- •Задача 1
- •Задача 2
- •4.1.2. Контрольная работа 2
- •4.1.2.1. Задание на контрольную работу 2
- •Задача 1 Использование функций в языке си, возвpащающих одно значение
- •Задача 2 Использование функций в языке си, получающих и возвpащающих pазличное количество аpгументов
- •4.1.2.2. Методические указания к выполнению контрольной работы 2
- •Задача 1
- •Задача 2
Задача 2
Условие задачи - даны вещественные массивы A[3,4], D[3,4]. Для каждого массива определить сумму положительных элементов, расположенных в четных столбцах и сумму положительных элементов, расположенных в нечетных столбцах.
В данной задаче должны быть реализованы:
1. Ввод исходных массивов.
2. Расчет суммы положительных элементов в четных столбцах массива и
суммы положительных элементов в нечетных столбцах массива.
3. Вывод на экран исходного массива и полученного результата.
Каждую операцию оформим в виде отдельной функции.
Пусть:
input() - функция ввода массива
schetsum() - функция расчета сумм положительных элементов в четных и
нечетных столбцах массива
output() - функция вывода исходного массива и полученных результатов
using System;
class Mas
{
private float [, ] m = new float [3, 4];
float sum_ch, sum_nch;
public void input (char name)
{
int i, j;
Console.WriteLine("Вводим массив " + name);
for (i=0; i<3; i++)
for (j=0; j<4; j++)
{
Console.Write("Введите {0}[{1},{2}]= " ,name, i, j);
m[i,j] = Convert.ToSingle(Console.ReadLine());
}
}
public void schetsum ()
{
int i,j;
sum_ch = 0;
sum_nch = 0;
// будем считать четными столбцы с индексами 0 и 2,
// а нечетными - с индексами 1 и 3
// расчет суммы в четных столбцах
for (j=0; j<4; j+=2)
for (i=0; i<3; i++)
if ( m[i,j] > 0 )
sum_ch += m[i,j];
// расчет суммы в нечетных столбцах
for (j=1; j<4; j+=2)
for (i=0; i<3; i++)
if ( m[i,j] > 0 )
sum_nch += m[i,j];
}
public void output (char name)
{
int i,j;
Console.WriteLine("Исходный массив {0}: ",name);
for (i=0; i<3; i++)
{
for (j=0; j<4; j++)
Console.Write("{0,8:########.###}",m[i,j]);
Console.WriteLine();
}
Console.WriteLine("Сумма положительных элементов в четных столбцах массива " +
name + " равна " + sum_ch);
Console.WriteLine("Сумма положительных элементов в нечетных столбцах " +
name + " равна " + sum_nch);
}
}
class Prog
{
static void Main()
{
Mas a = new Mas();
Mas d = new Mas();
a.input ('a');
d.input ('d');
a.schetsum();
d.schetsum();
a.output('a');
d.output('d');
Console.ReadLine();
}
}
Вариант 2
using System;
class Mas
{
private float [, ] m = new float [3, 4];
public void input (char name)
{
int i, j;
Console.WriteLine("Вводим массив " + name);
for (i=0; i<3; i++)
for (j=0; j<4; j++)
{
Console.Write("Введите {0}[{1},{2}]= " ,name, i, j);
m[i,j] = Convert.ToSingle(Console.ReadLine());
}
}
public void schetsum (out float sum_ch, out float sum_nch)
{
int i,j;
sum_ch = 0;
sum_nch = 0;
// будем считать четными столбцы с индексами 0 и 2,
// а нечетными - с индексами 1 и 3
// расчет суммы в четных столбцах
for (j=0; j<4; j+=2)
for (i=0; i<3; i++)
if ( m[i,j] > 0 )
sum_ch += m[i,j];
// расчет суммы в нечетных столбцах
for (j=1; j<4; j+=2)
for (i=0; i<3; i++)
if ( m[i,j] > 0 )
sum_nch += m[i,j];
}
public void output (char name, float sum_ch, float sum_nch)
{
int i,j;
Console.WriteLine("Исходный массив {0}: ",name);
for (i=0; i<3; i++)
{
for (j=0; j<4; j++)
Console.Write("{0,8:########.###}",m[i,j]);
Console.WriteLine();
}
Console.WriteLine("Сумма положительных элементов в четных столбцах массива " +
name + " равна " + sum_ch);
Console.WriteLine("Сумма положительных элементов в нечетных столбцах " +
name + " равна " + sum_nch);
}
}
class Prog
{
static void Main()
{
Mas a = new Mas();
Mas d = new Mas();
float sum_cha, sum_ncha, sum_chd, sum_nchd;
a.input ('a');
d.input ('d');
a.schetsum(out sum_cha, out sum_ncha);
d.schetsum(out sum_chd, out sum_nchd);
a.output('a', sum_cha, sum_ncha);
d.output('d', sum_chd, sum_nchd);
Console.ReadLine();
}
}