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

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

ФЭСТ ВТ-11

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

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

Тема: “Библиотеки программ”

Выполнил студент Шадлова Н.А.

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

Москва 2012.

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

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

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

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

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

Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных.

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

#include "stdafx.h"

#include <math.h>

#include <stdio.h>

#include "func06.h"

#define YES 1

#define NO 0

int findmax(float* array,int n)

{

int i,imax = 0;

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

if (fabs(array[i]) > fabs(array[imax]))

imax = i;

return imax;

}

int findfirstplus(float* array,int n)

{

int i;

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

if (array[i] > 0)

return i;

}

int findsecplus(float* array,int first,int n)

{

int i;

for (i = first + 1;i < n;i++)

if (array[i] > 0)

return i;

}

void sort(float* array,int n)

{

int i,j,k = 0;

int is_zero = 1;

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

{

if (array[i] == 0)

{

for(j = n - k - 1;j > i;j--)

{

if (array[j] != 0)

{

for(int m = j;m >= 0;m--)

if (array[m] == 0)

{

is_zero = YES;

break;

}

else

is_zero = NO;

}

if (is_zero == NO) break;

if (array[j] != 0 && is_zero == YES)

{

printf("!\n");

array[i] = array[j];

array[j] = 0;

k++;

break;

}

}

}

}

}