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

Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Рудов / лабораторная работа №11

.doc
Скачиваний:
19
Добавлен:
17.04.2015
Размер:
30.72 Кб
Скачать

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА

Факультет электроники и системотехники.

Лабораторная работа № 11

Тема: «Динамическая память»

Выполнил студент: Рудов К. А. ВТ-11

Проверил: Ларионов Н.В.

Москва 2011 г.

  1. Условия задания:

В одномерном массиве, состоящем из n вещественных элементов, вычислить:

1)max элемент массива;

2)сумму элементов массива, расположенных до последнего положительного элемента;

Сжать массив, удалив из него все элементы, модуль которых находится в интервале [a,b]. Освободившиеся в конце массива элементы заполнить нулями.

  1. Данные:

Входные данные: i, a[10]

Рабочие данные: max, s.

  1. Схема программы:

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

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int maxi(int *a,int n);

int sum(int *a,int n);

void sort(int *a,int n);

main(){

const int N=10;

int *A;

A = new int [N];

int m,ss,i;

///////////////////////vvod

printf ("Vvesti a[n]\n");

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

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

//////////////////////max

m=maxi(A,N);

printf("max=%d\n",m);

//////////////////////sum

ss=sum(A,N);

printf("sum=%d\n",ss);

////////////////////

sort(A,N);

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

printf("%d ",A[i]);

//////////////////

delete A;

system("pause");

return 0;

}

//////////////////////////

int maxi(int *a,int n){

int max=0;

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

if (a[i]>max)

max=a[i];

return max;

}

//////////////////////////

int sum(int *a,int n){

int s=0;

int i;

int k;

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

if( a[i]>0)k=i;

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

s=s+a[i];

return s;

}

////////////////////////////

void sort(int *a,int n){

int *temp;

temp=new int [n];

int j=0;

int i;

int c,b;

printf("vvedite b,c\n");

scanf("%d%d",&b,&c);

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

temp[i]=0;

if ((fabs(a[i])<b)||(fabs(a[i])>c)){

temp[j]=a[i];

j++;

}

}

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

a[i]=temp[i];

}

delete temp;

}