Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачник_Главы 5-6.doc
Скачиваний:
2
Добавлен:
15.08.2019
Размер:
665.09 Кб
Скачать

1 Выполнение программы:

Введите стороны треугольника MNK:3 4 5

Треугольник существует.

Площадь треугольника MNK=6.000000

Введите стороны треугольника PLF:6 7 3

Треугольник существует.

Площадь треугольника PLF=8.944272

Значение z=-1

2 Выполнение программы:

Введите стороны треугольника MNK:3 4 5

Треугольник существует.

Площадь треугольника MNK=6.000000

Введите стороны треугольника PLF:2 4 7

Треугольник не существует.

Пример 6.2

Написать программу, вычисляющую корни квадратного уравнения

ax2+bx+c=0, где a – максимальный элемент массива a[n]; b – максимальный элемент массива b[m]; с – максимальный элемент массива с[k].

Ввод, вывод массива, вычисление максимального элемента массива, вычисление корней квадратного уравнения оформить с помощью функций.

/***************************************************/

/* Функции и массивы */

/* Найти корни квадратного уравнения. */

/* Где a - максимальный элемент массива a[n], */

/* b - максимальный элемент массива b[m], */

/* c - максимальный элемент массива c[k]. */

/***************************************************/

#include <stdio.h>

#include <conio.h>

#include <math.h>

#define size 50

void vvod(float x[],int &r,char sym);

void vivod(float x[],int r,char sym);

float max_mas(float x[],int r);

void kv_ur(float a,float b,float c);

// Функция ввода массива

// Входные параметры:

// float x[] -массив

// int &r - размер массива

// char sym - имя массива

void vvod(float x[],int &r,char sym)

{

int i;

printf("\n \t Введите размер массива %c: ",sym);

scanf("%d",&r);

printf("\t Введите элементы массива: ");

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

scanf("%f",&x[i]);

}

// Функция вывода массива

void vivod(float x[],int r,char sym)

{

int i;

printf("\n\t Массив %c:",sym);

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

{

if(i%10==0) printf("\n\t");

printf("%.2f ",x[i]);

}

}

// Поиск максимального элемента массива

float max_mas(float x[],int r)

{

float max;

int i;

max=x[0];

for(i=1;i<r;i++)

if(x[i]>max)

max=x[i];

return max;

}

// Нахождение корней квадратного уравнения

void kv_ur(float a,float b,float c)

{

float x1,x2,d;

d=b*b-4*a*c;

if (d<0)

printf("\n Корней нет");

else

{

x1=(-b+sqrt(d))/(2*a);

x2=(-b-sqrt(d))/(2*a);

printf("\n \n \t Корни: x1=%f x2=%f",x1,x2);

}

}

// Основная программа

void main()

{

clrscr();

int m,n,k;

float a[size],b[size],c[size];

float ma,mb,mc;

// Ввод массивов

vvod(a,n,'A');

vvod(b,m,'B');

vvod(c,k,'C');

// Вывод массивов

printf("\n\t Вывод сформированных массивов: \n");

vivod(a,n,'A');

vivod(b,m,'B');

vivod(c,k,'C');

// Нахождение максимального элемента массива A

ma=max_mas(a,n);

printf("\n\tМаксимальный элемент массива A: %f",ma);

// Нахождение максимального элемента массива A

mb=max_mas(b,m);

printf("\n\tМаксимальный элемент массива B: %f",mb);

// Нахождение максимального элемента массива A

mc=max_mas(c,k);

printf("\n\tМаксимальный элемент массива C: %f",mc);

// Нахождение корней квадратного уравнения

printf("\n\n\t Нахождение корней кв.уравнения");

printf("\n\t-------------------------------------");

printf("\n \t коэффициент а = %f",ma);

printf("\n \t коэффициент b = %f",mb);

printf("\n \t коэффициент c = %f",mc);

// вызов функции нахождения корней

kv_ur(ma,mb,mc);

getch();

}

Результат работы программы

Введите размер массива A: 5

Введите элементы массива: 2 3 4 5 1.8

Введите размер массива B: 6

Введите элементы массива: 4 9 8.5 2.8 5 6

Введите размер массива C: 7

Введите элементы массива: 2 1 3 0.4 -0.45 -4 2.8

Вывод сформированных массивов:

Массив A:

2.00 3.00 4.00 5.00 1.80

Массив B:

4.00 9.00 8.50 2.80 5.00 6.00

Массив C:

2.00 1.00 3.00 0.40 -0.45 -4.00 2.80

Максимальный элемент массива A: 5.000000

Максимальный элемент массива B: 9.000000

Максимальный элемент массива C: 3.000000

Нахождение корней кв.уравнения

--------------------------------------

коэффициент а = 5.000000

коэффициент b = 9.000000

коэффициент c = 3.000000

Корни: x1=-0.441742 x2=-1.358258