Práctica N° 6: Valor Máximo, Mínimo y Media

Algoritmos | October 12th

Elaborar tres funciones en C++ para buscar el valor máximo, mínimo y la media de un conjunto de números enteros y positivos.

Teniendo un conjunto de números ordenados, sabemos que la media es el valor que deja el mismo número de datos antes y después que él.

Análisis

Considerando el siguiente conjunto de números enteros y positivos:

33, 703, 4, 11, 2, 8, 20, 10

Determinamos que el valor máximo es 703; el valor mínimo es 2 y la media es 10.

Solución

Máximo

Para obtener el valor máximo del conjunto, es necesario recorrer todo el arreglo y comparar sus elementos y asignar el valor más grande a la variable m.

int maximo (int conjunto[], int size) {
	int m = 0;

	for (int i = 1; i < size; i++) {
		if (conjunto[i] > conjunto[m]) {
			m = i;
		}
	}

	return conjunto[m];
}

Mínimo

Para determinar el valor mínimo solo tenemos que cambiar el signo > por <.

int minimo(int conjunto[], int size) {
	int m = 0;

	for (int i = 1; i < size; i++) {
		if (conjunto[i] < conjunto[m])
			m = i;
	}

	return conjunto[m];
}

Media

La mediana es el valor de la variable que deja el mismo número de datos antes y después que él estando los datos ordenados.

int media (int conjunto[], int size) {
	int i = 0;
	int j = 0;
	int m = 0;
	int count = 0;

	for (; (j < size) && (count != size/2); j++) {
		count = 0;
		m = j;

		for (i = 0; i < size; i++) {
			if (conjunto[i] > conjunto[m])
				count++;
		}
	}

	return conjunto[m];
}

Código completo

#include <iostream>

using namespace std;

int minimo(int conjunto[], int size) {
	int m = 0;

	for (int i = 1; i < size; i++) {
		if (conjunto[i] < conjunto[m])
			m = i;
	}

	return conjunto[m];
}

int maximo (int conjunto[], int size) {
	int m = 0;

	for (int i = 1; i < size; i++) {
		if (conjunto[i] > conjunto[m]) {
			m = i;
		}
	}

	return conjunto[m];
}

int media (int conjunto[], int size) {
	int i = 0;
	int j = 0;
	int m = 0;
	int count = 0;

	for (; (j < size) && (count != size/2); j++) {
		count = 0;
		m = j;

		for (i = 0; i < size; i++) {
			if (conjunto[i] > conjunto[m])
				count++;
		}
	}

	return conjunto[m];
}

int main (int argc, char *argv[])
{
	int conjunto[] = {33,703,4,11,2,8,20,10};

	cout << minimo(conjunto, 8) << endl;
	cout << maximo(conjunto, 8) << endl;
	cout << media(conjunto, 8) << endl;
}
$ g++ -o Conjunto Conjunto.cpp
$ ./Conjunto
2
703
10

Comentarios

  1. laura says:

    en realidad no estoy segura pero si sale y esta bueno no hay opcion

Deja tu comentario