- •Глава 5. Строки
- •Пример составления программы на языке с.
- •Задания
- •Глава 6. Функции.
- •Примеры составления программ на языке с.
- •1 Выполнение программы:
- •2 Выполнение программы:
- •Задания
- •6.1 Простейшие функции, определенные пользователем.
- •6. 2 Обработка одномерных массивов с использованием функций.
- •6.3. Обработка двумерных массивов с помощью функций.
- •6.4 Рекурсии
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