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

Московский Государственный Университет Леса

ФЭСТ ВТ-11

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

Программирование на языках высокого уровня

Тема: “ Динамическая память”

Выполнил: студент Музалёв Д.В.

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

Москва 2012.

Написать программы используя функции и динамическую память.

Вариант 12

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

1) номер максимального по модулю элемента массива;

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

элемента.

3)Преобразовать массив таким образом, чтобы сначала располагались все элемен-ты, целая часть которых лежит в интервале [а,Ь], а потом — все остальные.

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

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

{

int i,max,k,N;

int *A;

printf ("Vvesty k-vo elementov massiva ");

scanf ("%d", &N);

A = new int [N];

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

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

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

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

printf("\n");

max=abs(A[0]);

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

if(abs(A[i])>max)

{max=abs(A[i]);k=i;}

printf("max=%i k=%i \n",max,k);

system("pause");

return 0;

}

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

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

int main()

{

int i,s=0,k,N;

int *A;

printf ("Vvesty k-vo elementov massiva ");

scanf ("%d", &N);

A = new int [N];

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

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

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

if(A[i]>0)

{A[i]>0;k=i;break;}

for(i=k+1;i<N;i++)

s+=A[i];

printf("s=%i\n",s);

system("pause");

return 0;

}

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

#include <stdio.h>

#include<stdlib.h>

int main()

{

int N,i;

int *A;

printf ("Vvesty kol-vo elementov massiva ");

scanf ("%d", &N);

A = new int [N];

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

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

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

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

printf("\n");

int B[N];

int a,b,k;

printf ("Vvedite a ");

scanf ("%i", &a);

printf("\n");

printf ("Vvedite b ");

scanf ("%i", &b);

k=0;

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

if (A[i]>=a && A[i]<=b)

{B[k]=A[i];k++;}

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

if( A[i]<a || A[i]>b)

{B[k]=A[i];k++;}

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

printf("%i ",B[i]);

system("pause");

return 0;

}