Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Тумор / Лабораторная №7
.docxМосковский Государственный Университет Леса
ФЭСТ ВТ-11
Лабораторная работа №7.
Программирование на языках высокого уровня
Тема: “ Функции и указатели ”
Выполнил студент Тумор С.В.
Проверил Ларионов Н.В.
Москва 2012.
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
int f1(double *, int n);
int f2(double *, int n);
void f3(double *,double *, int n);
int main()
{
const int n=16;
double s[]={1.2, -1.8, -4.5, 8.5, -0.1, -0.9, 9.7, -9.8, 0.2, 3.5, 5.7, -3.8, -6.0, 4.2, 4.3, -5.1};
int KL, sum, x, *pKL=&KL, *psum=&sum, *px=&x;
double *a;
KL=f1(s, n);
sum=f2(s, n);
f3(s, a, n);
delete[] a;
getch();
system(“”)
return 0;
}
int f1(double s1[], int n)
{
int Z=0, i, c=1, *pi=&I;
for(pi=s; pi<s+n; pi++)
{
if(*pi<c) // s1[i]
{
Z++;
}
}
printf("Z=%i \n", Z);
}
int f2 (double s2[], int n)
{
int H=0, i, y, *pi=&I, *py=&y;
for(pi=s; pi<s+n; pi++)
{
if(*pi<0)
*py=*pi;
}
for(pi=py; pi<s+n; pi++)
{
H=H+int(*pi);
}
printf("H=%i \n", H);
}
void f3(double s3[],double g[], int n)
{
int i, u, cnt=0;
double pr;
g = new double[sizeof(s3)/sizeof(s3[0])];
pr = s3[0];
u = 0;
for(i=0; i<n; i++)
{
if(s3[i]>pr)
{
pr=s3[i];
u=i;
}
}
for(i=0; i<n; i++)
{
if(fabs(s3[i])-fabs(0.8*s3[u])>=0)
g[cnt++]=s3[i];
}
for(i=0; i<n; i++)
{
if(fabs(s3[i])-fabs(0.8*s3[u])<0)
g[cnt++]=s3[i];
}
printf("g[]= ");
for(i=0;i<n;i++)
printf("%4.1lf ", g[i]);
}