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

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

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

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

по программированию на языке высшего уровня С

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

Выполнил студент: Суковатова Л.Н.

ВТ-11

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

Москва 2012 г.

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

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

Примечание. Размерности массивов задаются именованными константами.

Вариант 10

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

1) минимальный по модулю элемент массива;

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

равного нулю.

Преобразовать массив таким образом, чтобы в первой его половине располагались элементы, стоявшие в четных позициях, а во второй половине — элементы, стоявшие в нечетных позициях.

2. Данные: а) Исходные: a[i]

б) Рабочие: k

в) Выходные:min, s, a[i]

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

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#include <conio.h>

#include <time.h>

#define N 10

void generate_elements(int a[]);

void print_elements(int a[]);

int find_min(int a[]);

int find_summ(int a[]);

void sort(int a[]);

int* a;

int main()

{

int result,i;

char str[10];

a = new int[N];

generate_elements(a);

print_elements(a);

result = find_min(a);

printf("Minimalny element massiva raven %d\n",a[result]);

result = find_summ(a);

printf("Summa elementov massiva posle pervogo nulya ravna %d\n",result);

sort(a);

printf("===========SORTED=================\n");

print_elements(a);

delete a;

getch();

return 0;

}

void generate_elements(int a[])

{

int i;

time_t t;

srand(time(&t));

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

a[i] = rand() % 100;

}

void print_elements(int a[])

{

int i;

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

printf("%d\t",a[i]);

}

int find_min(int a[])

{

int i;

int min,index;

min = fabs(a[0]);

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

if (fabs(a[i]) < min)

{

min = fabs(a[i]);

index = i;

}

return index;

}

int find_summ(int a[])

{

int i,first_zeroi = N;

int summ = 0;

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

if (a[i] == 0)

{

first_zeroi = i;

break;

}

// printf("first_zeroi = %d\n",first_zeroi);

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

{

summ += fabs(a[i]);

// printf("!");

}

return summ;

}

void sort(int a[])

{

int a2[N];

int i,j = 0;

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

if (((i+1) % 2) == 0)

{

a2[j] = a[i];

j++;

}

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

if (((i+1) % 2) != 0)

{

a2[j] = a[i];

j++;

}

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

a[i] = a2[i];

}

Соседние файлы в папке Суковатова