Skip to content
Snippets Groups Projects
Commit 37fd2716 authored by Nicolas Mantilla Molina's avatar Nicolas Mantilla Molina
Browse files

Trabajos en clase Busqueda Binaria - Suma Riemann

parent 63b41397
No related branches found
No related tags found
No related merge requests found
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int main()
{
// Se genera la lista alleatoriamente sobre la cual se va a ordenar y buscar
int n;
cout << "Ingrese el número de elementos para generar el array: "; cin >> n;
int a[n];
// Utilizamos una semilla distinta en cada ejecución usando el tiempo
srand(time(0));
for (int i = 0; i<n; i++) a[i] = rand() % 100;
// Ordenamos el vector
int temp;
for (int i = 0; i<n; i++)
{
for (int j=i+1; j<n; j++)
{
if (a[i]>a[j])
{
temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
}
// Imprimimos el vector y preguntamos el valor a buscar
cout << "El vector en el que se busca es:" << endl << "[ ";
for (int i:a) cout << i << " ";
int T;
cout << "]" << endl << "Ingrese el valor entero que se desea buscar en el array: "; cin >> T;
// Iniciamos la busqueda asignando los límites izq y der en el array
int L=0, R=n-1;
// Mientras el limite izq sea menor al der, comparamos el valor en la mitad y verificamos si
// el numero a encontrar esta en el bloque izquierdo o derecho, reseteamos el limite lateral
// necesario y repetimos el proceso
while (L<R)
{
int m = floor((L+R)/2);
if (a[m] < T)
{
L = m+1;
if (a[L]==T)
{
cout << "El número T = " << T << " se encuentra en la posición " << L;
exit(0);
}
} else if (a[m] > T)
{
R = m-1;
if (a[R]==T)
{
cout << "El número T = " << T << " se encuentra en la posición " << R;
exit(0);
}
} else if (a[m] == T)
{
cout << "El número T = " << T << " se encuentra en la posición " << m;
exit(0);
}
}
cout << "El valor T = " << T << " no se encuentra en el vector";
}
File added
#include <iostream>
#include <cmath>
#include <fstream>
#include <vector>
using namespace std;
// Definimos la función para aproximar su integral
double f(double x)
{
return pow(x,2);
}
int main()
{
// Pedimos los límites de integración y el número de particiones
double a, b;
int n;
cout << "Ingrese los límites de integración:" << endl << "a: ";
cin >> a;
cout << "b: ";
cin >> b;
cout << "Ahora ingrese el número de particiones:" << endl << "n: ";
cin >> n;
double dx = (b-a)/n;
// Creamos el vector para alojar las áreas de cada rectángulo
vector <double> areas;
// Ahora iniciamos la sumatoria y calculamos las áreas
for (int i=0; i<n; i++)
{
areas.push_back(f(a+dx*i)*dx);
}
// Imprimimos el valor de la suma
double suma=0;
for (int i=0; i<areas.size(); i++) suma += areas[i];
cout << "El valor de la aproximación a la integral es: " << suma << endl;
// (opcional) Imprimimos el valor de las áreas (pa que sirva de algo el vector)
// cout << "El vector de las áreas es:" << endl;
// cout << '[' << ' ';
// for (double v:areas)
// {
// cout << v << ' ';
// }
// cout << ']' << endl;
}
\ No newline at end of file
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment