Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 1 учебной практики для 11-10.doc
Скачиваний:
3
Добавлен:
24.11.2019
Размер:
358.91 Кб
Скачать

3. Примеры программных реализаций

Пример 1. На плоскости даны 20 точек, они попарно соединены отрезками. Написать программу вычисления длины наибольшего из отрезков. Считать, что координаты заданы последовательностью действительных чисел х 0, у 0, х 1, у 1, ... х 19, у 19.

#include<stdio.h>

#include<math.h>

#include<conio.h>

int Rasst(int x1,int

y1,

int x2,int y2,int kl)

{

static double max_r =

= 0;

double r;

if(kl==1){printf("%f",

max_r);

return 0; }

r=sqrt(pow(x1-x2,2) +

pow(y1-y2,2));

if(r > max_r)

{

max_r = r;

printf("\t %f",

max_r);

return 1;

}

return 0;

}

void main()

{ int с[40], i,j, n,x1,

x2;

clrscr();

printf("\nВведи кол-во

точек:");

scanf ("%d",&n);n*=2;

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

{printf("\n введи

координаты точки:");

scanf("%d%d",&с[i],

&с[i+1]);

}

x1=0;x2=0;

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

for( j=i+2;j<n; j+=2)

if(Rasst(с[i],с[i+1],

с[j],с[j+1],0)>0)

{ x1=i; x2=j;}

printf("\n Наибольшее расстояние между точками %d и %d равно", х1,

х2);

Rasst(0,0,0,0,1);

}

Пример 2. Даны длины a, b, c сторон некоторого треугольника. Найти медианы треугольника, сторонами которого являются медианы исходного треугольника. Длина медианы, проведенной к стороне a, равна

0.5 *(2*b2+2*c2-a2)1/2.

#include<stdio.h>

#include<conio.h>

#include<math.h>

float Med(float a,

float b,

float c)

{return((sqrt (2*b*b +

+ 2*c*c- a*a))/2);

}

void main()

{

clrscr();

float a,b,c,a1,a2,a3;

printf("Введи a,b, c:\ n");

scanf("%f %f %f", &a,

&b,&c);

a1=med(a,b,c);

a2=med(b,c,a);

a3=med(c,a,b);

printf("Медиана к стороне а равна: %f",

Med(a1,a2,a3));

printf("\n Медиана к стороне b равна:%f",

med(a2,a3,a1));

printf("\n Медиана к стороне с равна:%f",

Med(a3,a2,a1));

getch();

}

Пример 3. Поиск минимального и максимального элементов матрицы, вычисление суммы элементов.

#include<conio.h>

#include<stdio.h>

void Min_max( int& min,

int& max, int n, int

a[][5])

{

int i,j;

min = max = a[0][0];

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

for(j=0;j<n;j++)

{

if(a[i][j]<min)

min = a[i][j];

if(a[i][j]>max)

max = a[i][j];

}

}

int Summa (int n, int*

pnt[], int ss[])

{

int i, j, sum = 0;

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

{

ss[i] = 0; //Вес

строки

for( j=0; j<n; j++)

ss[i] += pnt[i]

[j];

sum+=ss[i]; //Сумма

элементов

}

return sum;

}

void main()

{

int ks,i,j,m[5][5],

s,s_str[5];

clrscr();

printf("\nВведи

разм-сть:");

scanf("%d", &ks);

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

{

printf("Введи % dстроку

: ",i);

for( j=0; j<ks; j++)

scanf("%d",&m[i][j]);

}

Min_max(i,j,ks,m);

printf("\n Максимальный

элемент:%d", j);

printf("\n Минимальный

элемент:%d", i);

printf("\n Сумма

элем-в:%d",

Summa(ks,p,s_str));

printf("\n Вес строки

\t Матрица»);

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

{printf(“\n\t%d\t”,s_str[i]);

for( j=0; j<ks; j++)

printf(“%3d “,m[i][j]);

}

getch();

}