Задание №2
Описание элементов синтаксиса языка, используемых в задаче:
double.Perse() – преобразует строковое представление числа в эквивалентное ему число двойной точности с плавающей запятой.
if () – выбирает оператор для выполнения на основе логического выражения.
Math.Sqrt() – возвращает квадратный корень из указанного числа.
Даны действительные числа a, b, c. Выяснить, имеет ли уравнение . Если действительные корни имеются, то найти их.
Решение:
Формулы, используемые в алгоритме:
; Неравенства:
Входные данные: А, B, C – коэффициенты уравнения , тип переменных double.
Выходные данные: X – первый корень уравнения и Y – второй корень уравнения, или Z – единственны корень уравнения.
Блок-схема алгоритма:
Листинг программы:
double A, B, C, D, X, Y, Z;
Console.WriteLine("Введите значение первой перменной :");
A = double.Parse(Console.ReadLine());
Console.WriteLine("Введите значение второй перменной :");
B = double.Parse(Console.ReadLine());
Console.WriteLine("Введите значение третьей перменной :");
C = double.Parse(Console.ReadLine());
D = B * B - 4 * A * C;
if (D > 0)
{
X = (-B + (Math.Sqrt(D))) / 2 * A;
Y = (-B - (Math.Sqrt(D))) / 2 * A;
Console.WriteLine("Первый корень уравнения {0}" ,X );
Console.WriteLine("Второй корень уравнения {0}" ,Y );
Console.ReadKey();
}
else if ( D == 0)
{ Z = ( -B )/ 2 * A;
Console.WriteLine("Единственный корень уравнения {0}" ,Z );
Console.ReadKey();
}
else if ( D < 0)
{ Console.WriteLine("Уравнение не имеет действительных корней");
Console.ReadKey()
}
Контрольные примеры:
Дано: входные значения A = 1, B = 2, C = -8; Ожидаемые значения на выходе:
Рисунок 4 – Контрольный пример №1
Дано: входное значение A = 1, B = -4, C = 4; Ожидаемые значения на выходе:
Рисунок 5 – Контрольный пример №2
Дано: входное значение A = 2 ,B = 5,C = 98; Ожидаемые значения на выходе:
Рисунок 6 – Контрольный пример №3
Задание №3.
Описание элементов синтаксиса языка, используемых в задаче:
int[] array1 = new int[n] - создание массива размерностью n.
for() {} – цикл
while() – цикл
Заданы два одномерных массива действительных чисел различных размеров. Объединить их в одни массив, включив второй массив между К-м и (К+1)-м элементами первого.
Входные данные:
m, n – действительные числа, в значении размерностей первого и второго массива, тип переменных int.
Выходные данные:
array3[m+n] – одномерный массив действительных чисел, размерности (m+n), тип чесел int.
Блок-схема алгоритма:
Листинг программы:
Console.WriteLine("Введите размерность 1-ого массива: ");
int n = Convert.ToInt16(Console.ReadLine());
int[] array1 = new int[n];
for (int i = 0; i <= n-1; i++)
{
Console.Write("элемент[" + i + "]= ");
array1[i] = Convert.ToInt16(Console.ReadLine());
}
Console.WriteLine("Введите значение 2-ого массива: ");
int m = Convert.ToInt16(Console.ReadLine());
int[] array2 = new int[m];
for (int j = 0; j <= m-1; j++)
{
Console.Write("элемент[" + j + "]=");
array2[j] = Convert.ToInt16(Console.ReadLine());
}
int[] array3 = new int[n + m];
int k=0;
int p=0;
while ( p<=n-1 )
{
array3[k] = array1[p];
k+=2;
p++;
}
k=1;
int t=0;
while ( t<=m-1 )
{
array3[k] = array2[t];
k+=2;
t++;}
Console.WriteLine("array3= ");
for (int i = 0; i <= n + m - 1; i++)
{
Console.WriteLine(array3[i]);
}
Console.ReadKey();
}
}
Контрольные примеры:
Дано: входные значения n=3, m=2. Ожидаемые значения на выходе: array3[m+n] = array3[4] – одномерный массив действительных чисел размерностью 5 чисел.
array1[0]=1, 0<=n-1, 0<=2→ array1[1]=3, 1<=2→array1[2]=5, 2<=2→массив заполнен. array1={1,3,5}
array2[0]=2, 0<=1→array2[1]=4, 1<=1→массив заполнен. array2={2,4}
Получили массив array3={1,2,3,4,5}
Рисунок 7 – Контрольный пример №1
Дано: входные значения n=4, m=3. Ожидаемые значения на выходе: array3[m+n] = array3[6] – одномерный массив действительных чисел размерностью 7 чисел.
array1[0]=4, 0<=3→ array1[1]=5, 1<=3→array1[2]=6, 2<=3→array1[3]=7, 3<=3 →массив заполнен. array1={4,5,6,7}
array2[0]=1, 0<=2→array2[1]=2, 1<=2→array2[2]=3, 2<=2→ массив заполнен. array2={1,2,3}
Получили массив array3={4,1,5,2,6,3,7}
Рисунок 8 – Контрольный пример №2