#include<stdio.h>
#define MAX 1000

#include "tablice.h"

/* definicje funkcji */

/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  wczytaj
 *  Description:  wczytuje ze standardowego wejscia n liczb rzeczywistych do tablicy t[]
 * =====================================================================================
 */
void wczytaj(float t[],int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		printf("t[%i]=",i);
		scanf("%f",&t[i]);
	}
}



/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  wyswietl
 *  Description:  wyswietla n liczb rzeczywistych zawartych w tablicy t
 * =====================================================================================
 */
void wyswietl(float t[],int n)
{
	int i=0;
	printf("Zawartosc tablicy (ilosc elementow=%d)\n",n);
	while(i<n) printf("t[%i]=%f\n",i,t[i++]);

}


/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  suma
 *  Description:  zwraca sume n pierwszych elementow tablicy t
 * =====================================================================================
 */
float suma(float t[],int n)
{
	float s=0;
	while(n>0) s+=t[--n];
	return s;
}



/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  srednia
 *  Description:  zwraca srednia wartosc z n liczb z tablicy t
 * =====================================================================================
 */
float srednia(float t[],int n)
{
	return suma(t,n)/n;

}



/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  maxind
 *  Description:  zwraca indeks (pozycje) elementu tablicy t o najwiekszej wartosci
 * =====================================================================================
 */
int maxind(float tab[],int n)
{
	int m=0,i;

   for(i=0;i<n;i++)  if(tab[m]<tab[i]) m=i;
	return m;
}



/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  maksimum
 *  Description:  zwraca element tablicy o najwiekszej wartosci
 * =====================================================================================
 */
float maksimum(float t[],int n)
{
	return t[maxind(t,n)];
}


/* 
 * ===  function  ======================================================================
 *         name:  sortuj
 *  description:  ustawia elementy tablicy t[] w kolejnosci rosnacej
 * =====================================================================================
 */
void sortuj(float t[],int n)
{
   float tmp;
   int m;

   while(n>0)
   {
      m=maxind(t,n);
      tmp=t[m];
      t[m]=t[n-1];
      t[n-1]=tmp;
      n--;
   }
}


/* 
 * ===  function  ======================================================================
 *         name:  odwroc
 *  description:  odwraca elementy tablicy
 * =====================================================================================
 */
void odwroc(float tablica[],int n)
{  
   int i = 0;
   float t;

   while(i<n/2)
   {
      t = tablica[i];
      tablica[i] = tablica[n-i-1];
      tablica[n-i-1] = t;   
      i++;
   }
}
