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