56. C++ || Arrays ejercicios



91. Escribir un programa en C++ donde se pueda ingresar los datos de tres personas, como el nombre, apellido, edad y DNI.

#include <iostream>
using namespace std;

void datosCliente();//Prototipo de función
void mostrarDatos(char[][20],char[][15],char[][15],int[]);

int main(){

 cout << "\t\t PROGRAMA DE CARGA DE DATOS";
 cout << "\n\t\t ==========================";
 datosCliente();//Llamada a la funci¢n
 return 0;
}

void datosCliente(){ //implementación de la función 
 char apell[3][15],nom[3][20],dni[3][15];
 int edad[3];
 int f;
 
 for(f = 0; f < 3; f++){
  cout <<"\nIngrese Apellido: ";
  cin >> apell[f];
  cout << "\nIngrese Nombre: ";
  cin >> nom[f];
  cout << "\nIngrese Edad: ";
  cin >> edad[f];
  cout << "\nIngrese DNI: ";
  cin>>dni[f];
 }
 mostrarDatos(nom,apell,dni,edad);

}

void mostrarDatos(char nom[][20],char apell[][15],char dni[][15],int edad[]){
 cout << "\n\nLos datos ingresados fueron: ";
 int f;
 
 for(f = 0; f < 3; f++){
  cout << "\nApellido: ";
  cout << apell[f];
  cout << "\nNombre: ";
  cout << nom[f];
  cout << "\nEdad: ";
  cout << edad[f];
  cout << "\nDNI: ";
  cout << dni[f];
 }
}

/*Luego veremos que esto puede ser hecho de una manera más eficiente con estructuras
 * y funciones de cadena. 
 */

92. Escribir una función que reciba por valor los catetos de un triángulo rectángulo y devuelva la hipotenusa del mismo.

#include <iostream>
#include <cmath>
using namespace std;

float pitagoras(float,float); //Prototipo de función

int main(){
 float cat1,cat2,hipo=0;
 cout << "Ingrese cateto 1: ";
 cin >> cat1;
 cout << "Ingrese cateto 2: ";
 cin >> cat2;
 hipo = pitagoras(cat1,cat2);
 cout<<"La hipotenusa del triangulo es: ";
 cout << hipo;
 return 0;
}

float pitagoras(float x, float y){
 float result = 0;
 //sqrt = raíz de un número. pow = potencia de 
 //un número elevado a otro. Ambas funciones
 //Se encuentran en la biblioteca cmath.
 result = sqrt(pow(x,2)+pow(y,2));
 return result;
}


93. Hacer una array unidimensional que acepte ocho números enteros. Luego le pregunte al usuario que ingrese un número a buscar, implementar una función que busque ese número, si lo encuentra, debe retornar un valor de verdaderos, en caso contrario, retornar falso.

#include <iostream>
using namespace std;
const int dim = 8;

bool BuscaVal(int v[], int);//prototipo de función
int main(){
 int vector[dim],x,valor;
 
 cout<<"Ingresar 8 N enteros: ";
 for(int i = 0; i < dim; i++){
  cin >> vector[i];
 }
 cout << "Ingrese un N a buscar en el vector: ";
 cin >> x;
 valor = BuscaVal(vector,x);
 if(valor){ cout << "Valor encontrado!!!"; }
 else{ cout<<"No se encontro valor!!!"; }
 return 0;
}

bool BuscaVal(int v[],int val){
 for(int i = 0; i < dim; i++){
 if(val == v[i]){ return true; }
 }
 return false;
}


94. Hacer un array 4x3 que acepte números enteros ingresados por el usuario. Al final, debe mostrar la suma de todos los números que estén en una fila par.

#include <iostream>
using namespace std;

void CargarMat();
int SumaFilaPar(int mat[][3]);

//Declaración de variables globales. A pesar de colocarlas, no 
//se recomienda para nada su uso, el objetivo en este ejercicio es mostrar
//cómo trabajar con este tipo de variables declaradas de esta manera. 
int mat[4][3],f,c; 

int main(){
 CargarMat();
 cout << "La sumatoria de las filas pares es: " << SumaFilaPar(mat);
 return 0;
}
void CargarMat(){
 cout<<"Ingrese 12 enteros: ";
 for(f = 0; f < 4; f++){
  for(c = 0; c < 3; c++){ cin >> mat[f][c]; }
 }
}

int SumaFilaPar(int mat[][3]){
 int suma = 0;
 for(f = 0;f < 4;f += 2){
  for(c = 0; c <3 ; c++){ suma += mat[f][c]; }
 }
 return suma;
}


95. Hacer un programa en C++ que lea dos palabras en dos arrays unidimensionales de caracteres, y luego verifique si ambas palabras tienen la misma cantidad de letras.

#include <iostream>
#include <cstring>
using namespace std;
const int dim = 10;

void CargaVec();
int Compara(char vec1[], char vec2[], int, int);
char v1[dim],v2[dim];
int l1,l2; //longitudes

int main(){
 int x;
 CargaVec();
 x = Compara(v1,v2,l1,l2);//Se pasa v1, v2 y las longitudes de ambos
 if (x==0){ cout<<"Las palabras no son iguales"; }
 else{ cout<<"Palabras iguales"; }
 return 0;
}

void CargaVec(){
 cout << "Ingrese una palabra (maximo 10 caracteres c/u): ";
 cin >> v1;
 cout << "\nIngrese otra palabra: ";
 cin >> v2;
 //strlen, funcion que calcula la longitud de un array. 
 //se encuentra en la biblioteca cstring. 
 l1 = strlen(v1);
 l2 = strlen(v2);
}

int Compara(char vec1[], char vec2[], int len1, int len2){
 int cuenta=0;
 if (len1 == len2){ // Se comparan para ver si la longitud es la misma
  for(int i = 0; i <= len1; i++){
   if(vec1[i]==vec2[i]){ cuenta++; }
  }
 }else{
  return 0;
 }
 return cuenta;
}

10 comentarios:

  1. podrian ayudarme son este problema que es Crear una función que se llame: Cubos en donde se pase como parámetro un arreglo unidimensional de 10 elementos enteros, dicha función debe calcular el cubo de cada uno de los elementos del arreglo y mostrarlos en pantalla.
    Crea una función que se llame: Temperaturas en donde pase como parámetro un arreglo bidimensional de 3 filas y 7 columnas, en donde obtenga la temperatura promedio por día y promedio general, en donde los resultados deben mostrarse en la función.
    Diseñar una función que muestre un menú con las funciones

    ResponderEliminar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Eliminar
    2. #include
      #include
      using namespace std;
      int cant, arr[500], resultado[500];
      int cubo(int arr[],int cant){
      for (int i=0;i ";cin>>arr[i];
      }
      cout<<" Ahora mostraremos los cubos de esos numeros\n\n";
      for(int i=0;i> ";cin>>cant;
      cubo(arr,cant);
      getch();
      return 0;
      }

      Eliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. #include
    #include
    using namespace std;
    int cant, arr[500], resultado[500];
    int cubo(int arr[],int cant){
    for (int i=0;i ";cin>>arr[i];
    }
    cout<<" Ahora mostraremos los cubos de esos numeros\n\n";
    for(int i=0;i> ";cin>>cant;
    cubo(arr,cant);
    getch();
    return 0;
    }

    ResponderEliminar
  4. En un juego de tower defence se necesita un array con 30 enemigos, del cual sabemos que dentro del array un 30% pueden ser unidades aéreas y el 70% unidades terrestres.
    A su vez sabemos que las unidades Aéreas se pueden dividir en dos tipos teniendo cada una un 50% de chance de ser Helicopteros, y un 50% de chances de ser Aviones.
    Construir un método que no reciba nada por parámetro pero internamente genere el array en cuestión y lo devuelva, no sin antes indicar lo siguiente:

    a. Cuantas unidades terrestres hay.
    b. Cuantas unidades aéreas hay.
    c. De las unidades aéreas, cuantas son Helicópteros y cuantas son Aviones.

    ResponderEliminar
  5. Lea un número X. Coloque esta X en la primera posición de una matriz N
    [100]. En cada posición posterior (1 hasta 99) ponga la mitad del número
    insertado en la posición anterior, según el ejemplo siguiente. Imprime todo el
    vector N. La entrada y salida contiene números de precisión doble con cuatro
    lugares decimales.
    Ejemplo de Entrada Ejemplo de Salida
    200.0000 N[0] = 200.0000
    N[1] = 100.0000
    N[2] = 50.0000
    N[3] = 25.0000
    N[4] = 12.5000
    ...

    ResponderEliminar
  6. Su trabajo en este problema es leer un número que es una columna de una
    matriz donde se realizará una operación, un carácter en mayúsculas, que
    indica la operación a realizar y todos los elementos de una matriz
    bidimensional M[12][12]. Luego, debes calcular e imprimir la suma o
    promedio de todos los elementos dentro del área verde según sea el caso. La
    siguiente figura ilustra el caso cuando se ingresa el número 5 a la columna
    del arreglo, mostrando todos los elementos que deben ser considerados en la
    operación. La primera línea de la entrada contiene un entero simple C (0 ≤ C
    ≤ 11) que indica la columna a considerar en la operación. La segunda línea
    de la entrada contiene un solo carácter T mayúscula ('S' o 'P'), que indica la
    operación Suma o Promedio a realizar con los elementos del arreglo.
    Seguido de 144 números reales de la matriz.

    ResponderEliminar
  7. Ayuda con este problema, por favor :(

    Hacer un programa en c++ que permita capturar en un arreglo de
    cinco (5) posiciones, el sueldo básico del empleado y la profesión, se
    debe tener en cuenta:
    o Si el empleado es médico recibe una bonificación del 20%
    del básico
    o Si el empleado es ingeniero recibe una bonificación del 10%
    del básico
    o Si el empleado es docente recibe una bonificación del 5%
    del básico
    o Todos los empleados pagan una cuota mensual equivalente
    al 5% del básico, por concepto de préstamo.
    Al final se debe imprimir un reporte donde se detalle la profesión del
    empleado, el básico que se le paga, el valor de la bonificación recibida,
    el valor del descuento realizado y el sueldo neto que se paga.
    También se debe imprimir el total pagado por la empresa por concepto
    de sueldo a los cinco empleados.

    ResponderEliminar
  8. 1. Un juego consiste en lanzar un par de dados si la suma de los dados es 7 el jugador gana el juego obteniendo una ganancia del triple de lo que aposto, si la suma no es 7 dicha suma se llamara “puente”, el usuario se puede retirar con su apuesta o puede decidir volver a tirar los dados, para ganar en el segundo intento debe sacar lo resta a “puente” para llegar a 12 puntos y ganaría 5 veces su apuesta en caso contrario pierde su dinero apostado.
    Solicite al usuario la apuesta, muestre los resultados de los dados y determine si el usuario gano o perdió.

    ResponderEliminar