Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОАиП 2 Семестр / 8 подпрограммы

.doc
Скачиваний:
34
Добавлен:
21.03.2016
Размер:
49.15 Кб
Скачать

Составить графическую схему алгоритма и программу для вычисления значений переменных в соответствии с условием, приведенном в табл.1.1.

Вычисление значений переменных оформить в виде подпрограммы, в которую передать исходные данные в виде входных параметров через заголовок функции. Один из результатов передать из функции через заголовок как выходной параметр, а второй результат возвратить из функции по оператору return.

Исходные данные для отладки программы подобрать самостоятельно.

11

Площадь основания и объем цилиндра с радиусом основания r и высотой h.

S = r 2 V=Sh

float Formuli(float r, float h, float &v); // Объявление функции

#include <stdio.h>

#include <math.h>

main()

{

float rr,hh,ss,vv;

puts("vvedite radius osnovania cilindra");

scanf("%f",&rr);

puts("vvedite visoty cilindra");

scanf("%f",&hh);

ss=Formuli(rr,hh,vv);

printf("S=%.5f,V=%.5f\n",ss,vv);

fflush(stdin);

getchar();

}

/* Описание функции Formuli(float r, float h, float &v) */

float Formuli(float r, float h, float &v)

{

float S;//площадь

S=M_PI*r*r;

v=S*h;//объём

return (S);

}

S=M_PI*r*r

v=S*h

2.2 Задача 2. Передача одномерных массивов в функцию

Листинг программы и результаты её выполнения:

11

Вычислить значение функции Q = ln a -2 b + sin c, где a, b, c - суммы отрицательных элементов массивов X, Y и P, соответственно.

Листинг программы:

#include <stdio.h>

#include <conio.h>

#include <math.h>

//Вычислить значение функции

//Q = ln a -2 b + sin c, где a, b, c - суммы отрицательных элементов массивов X, Y и P, соответственно.

/*Описание функции vvodm*/

void vvodm(int *p,int *n,char simv)

{

int i;

printf("Vvedite kolichestvo elementov massiva %c ",simv);

scanf("%d",n);

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

{

printf("Vvedite %c[%2d]= ",simv,i+1);

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

}

}

/*Описание функции vivodm*/

void vivodm(int *p, int *n, char simv)

{

int i;

printf("Massiv %c:\n",simv);

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

printf("%c[%2d] = %d\n",simv,i+1,p[i]);

}

int SummOtr(int *p,int *n)//сумма отрицательных элементов массива

{

int i,j,sum;

sum=0;

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

{

if(p[i]<0)

{

sum=sum+p[i];

}

}

return(sum);

}

//ф-ция для расчёта Q = ln a -2 b + sin c

float Q(int a,int b,int c)

{

return (log(fabs(a))-2*b+sin(c));

}

main()

{

int X[50];

int Y[50];

int P[50];

int m,n,k,//размеры массивов

a,b,c;

float q;//результат вычисления выражения

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

vvodm(X,&n,'X');

vvodm(Y,&m,'Y');

vvodm(P,&k,'P');

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

vivodm(X,&n,'X');

vivodm(Y,&m,'Y');

vivodm(P,&k,'P');

a=SummOtr(X,&n);

b=SummOtr(Y,&m);

c=SummOtr(P,&k);

printf("\nSummi otricatelnix chisel massiva = %d, %d, %d",a,b,c);

if(a!=0)

{

q=Q(a,b,c);

printf("\nRezultat vichislenia = %.5f",q);

}

else printf ("\n Znachenie funkcii ne moget bit vichisleno!");

getch();

return(0);

}

Соседние файлы в папке ОАиП 2 Семестр