Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Галкин / Лабораторная работа N11
.docxМОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА
Факультет электроники и системотехники.
Лабораторная работа № 11
по программированию на языке высшего уровня С
Тема: «Динамическая память.»
Выполнил студент: Галкин И.В. ВТ-11
Проверил: Ларионов Н.В.
Москва 2011
Написать программы используя функции и динамическую память.
Вариант 19
в одномерном массиве, состоящем из п вещественных элементов, вычислить:
1) произведение отрицательных элементов массива;
2) сумму положительных элементов массива, расположенных до максимального
элемента.
Изменить порядок следования элементов в массиве на обратный.
#include <iostream>
#include <windows.h>
#include <time.h>
using namespace std;
char *rus;
char *printrus(char *text, char *rus)
{
try
{
rus = new char[255];
}
catch(bad_alloc xa)
{
exit(1);
}
CharToOem(text, rus);
return rus;
}
int main()
{
cout << printrus("Одномерный массив", rus)
<< endl;
srand(time(NULL));
int a[10];
int max_value = 1;
int max_index = 0;
int p = 1;
for(int i = 0; i < 10; i++)
{
a[i] = rand() % 200 - 100;
if(max_value < a[i] && a[i] > 0)
{
max_value = a[i];
max_index = i;
}
if(a[i] < 0)
{
p *= a[i];
}
cout << a[i]
<< " ";
}
cout << endl;
int sum = 0;
for(int i = 0; i < 10; i++)
{
if(i < max_index && a[i] > 0)
{
sum += a[i];
}
}
cout << printrus("Произведение: ", rus)
<< p
<< endl
<< printrus("Сумма: ", rus)
<< sum
<< endl;
delete [] rus;
system("pause");
return 0;
}