Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Музалев / Лабораторная работа №11
.docМосковский Государственный Университет Леса
ФЭСТ ВТ-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;
}