Guia de Array

11
Estructuras de datos. Programación en Visual C++.NET UNIVERSIDAD DE ORIENTE FACULTAD DE ECONOMIA GUIA DE EJERCICIOS #2. ARREGLOS UNIDIMENSIONALES Y BIDIMENSIONALES. ASIGNATURA: ESTRUCTURAS DE DATOS. FECHA: 24/07/2012. ALUMNO/A: ___________________________________________________ 1. Dado el nombre de una serie de estudiantes y las calificaciones obtenidas en un examen, calcular e imprimir la calificación media así como cada calificación y su diferencia con la media. 2. Se dispone de n temperaturas de un determinado lugar y se desea calcular su media y determinar entre todas ellas cuáles son superiores o iguales a esa media. 3. Escribir un programa que lea las dimensiones de una matriz, lea y visualice la matriz y a continuación encuentre el mayor y menor elemento de la matriz y sus posiciones. 4. Si Χ representa la media de los números x 1 , x 2 , …, x n , entonces la varianza es la media de los cuadrados de las desviaciones de los números de la media Varianza = 1/n (x i – x) 2 Y la desviación estándar es la raíz cuadrada de la varianza. Escribir un programa que lea una lista de números reales, los cuente y a continuación calcule e imprima su media, varianza y desviación estándar. Utilizar funciones para 1

description

guia c++

Transcript of Guia de Array

Page 1: Guia de Array

Estructuras de datos. Programación en Visual C++.NET

UNIVERSIDAD DE ORIENTEFACULTAD DE ECONOMIA

GUIA DE EJERCICIOS #2.

ARREGLOS UNIDIMENSIONALES Y BIDIMENSIONALES.

ASIGNATURA: ESTRUCTURAS DE DATOS. FECHA: 24/07/2012.

ALUMNO/A: ___________________________________________________

1. Dado el nombre de una serie de estudiantes y las calificaciones

obtenidas en un examen, calcular e imprimir la calificación media así

como cada calificación y su diferencia con la media.

2. Se dispone de n temperaturas de un determinado lugar y se desea

calcular su media y determinar entre todas ellas cuáles son superiores

o iguales a esa media.

3. Escribir un programa que lea las dimensiones de una matriz, lea y

visualice la matriz y a continuación encuentre el mayor y menor

elemento de la matriz y sus posiciones.

4. Si Χ representa la media de los números x1, x2, …, xn, entonces la

varianza es la media de los cuadrados de las desviaciones de los

números de la media

Varianza = 1/n ∑(xi – x)2

Y la desviación estándar es la raíz cuadrada de la varianza. Escribir un

programa que lea una lista de números reales, los cuente y a

continuación calcule e imprima su media, varianza y desviación

estándar. Utilizar funciones para realizar estos cálculos.

5. Calcular las medias de notas de las asignaturas de una clase. Deducir

cuántas son más altas que la media y cuántas más bajas que dicha

media.

6. Una empresa tiene 10 almacenes y necesita crear un programa que

lea las ventas mensuales de los 10 almacenes. Calcule la media de

1

Page 2: Guia de Array

Estructuras de datos. Programación en Visual C++.NET

ventas y obtenga un listado de los almacenes cuyas ventas mensuales

son superiores a la media.

7. Una matriz cuadrada A se dice que es simétrica si A(i,j) = A(j,i) para

todo i, j dentro de los límites de la matriz. Escribir un programa que

decida si una matriz dada es o no simétrica.

8. Leer una matriz de 3 por 3 elementos y calcular la suma de cada una

de sus filas y columnas, dejando dichos resultados en dos vectores,

uno la suma de filas y otro de las columnas.

9. Calcular la suma de los elementos de la diagonal principal de una

matriz cuatro por cuatro (4x4).

10. Hallar en un vector An, los valores mayores y menor con sus

respectivas posiciones.

11. Se introduce por teclado una secuencia de calificaciones de

estudiantes en un curso de estructura de datos. Escribir un programa

que obtenga e imprima los siguientes datos estadísticos: Media

aritmética y desviación típica.

12. Los resultados de las últimas elecciones a alcalde en el pueblo x

han sido los siguientes:

Distrito Cadidato Candidato Candidato Candidato

A B C D

1 194 48 206 45

2 180 20 320 16

3 221 90 140 20

4 432 50 821 14

5 820 61 946 18

Escribir un programa que haga las siguientes tareas:

a) Imprimir la tabla anterior con cabeceras incluidas.

b) Calcular e imprimir el número total de votos recibidos por cada

candidato y el porcentaje del total de votos emitidos. Así mismo,

visualizar el candidato más votado.

c) Si algún candidato recibe más del 50% de los datos, el programa

2

Page 3: Guia de Array

Estructuras de datos. Programación en Visual C++.NET

imprimirá un mensaje declarándolo ganador.

d) Si ningún candidato recibe más del 50% de los datos, el programa

debe imprimir el nombre de los dos candidatos más votados, que

serán los que pasen a la segunda ronda de las elecciones.

13. La tabla siguiente representa las ventas totales hechas por

diferentes vendedores de una empresa, en miles de dólares a lo largo

de la semana.

VENDEDOR LUN MAR MIER JUE VIER

SAB

1 35 12 70 50 72 90

2 64 80 60 80 70 11

3 72 13 40 10 74 90

4 90 14 30 95 76 12

Escriba un programa que calcule e imprima lo siguiente:

a) La venta semanal de cada vendedor.

b) La mayor de estas ventas, y su vendedor correspondiente.

c) La venta total efectuada cada día por todos los vendedores.

d) La mayor de estas ventas, y el día correspondiente.

e) La venta semanal conjunta, de los cinco vendedores.

14. Una agencia de venta de vehículos automotores distribuye quince

modelos diferentes y tiene en su planilla diez vendedores. Se desea un

programa que escriba un informe mensual de las ventas por vendedor

y modelo, así como el número de automóviles vendidos por cada

vendedor y el número total de cada modelo vendido por los

vendedores. Así mismo, para entregar el premio al mejor vendedor,

necesita saber cuál es el vendedor que más coches ha vendido.

MODELOS

──────────────────────────────────────────────────────────────

VENDEDOR 1 2 3 ... 15

1 4 8 5 10

2 12 5 25 14

3

Page 4: Guia de Array

Estructuras de datos. Programación en Visual C++.NET

3 15 3 18 7

.

.

15. Pedir dos matrices de m filas por n columnas y obtener una tercera

matriz que sea la suma de ambas. La suma de una matriz con otra

consiste en sumar cada uno de los elementos de una matriz con cada

uno de los elementos de la otra:

C(1,1) = a(1,1) + b(1,1),. . ., C(m,n) = a(m,n) + b(m,n).

16. Dadas dos matrices Amxh, Bhxn, calcular su producto Cmxn;

imprimiendo las tres matrices. Se sabe que:

C(i,j) = a(i,j) * b(i,j), i=1,2,...m, y j=1,1,..,n.

Solución al ejercicio #10.

// mayorymenor.cpp: define el punto de entrada de la aplicación de consola.// Ejercicio #10, guia #2

#include "stdafx.h"#include <iostream>#include <conio.h>#include <stdlib.h>#define n 100using namespace std;void lectura(int numeros[], int x);void calcular(int numeros[], int &mayor, int &menor, int x);void salida(int &mayor, int &menor);int _tmain(int argc, _TCHAR* argv[]){

int numeros[n];int k, mayor, menor;cout << "Cuantos numeros desea almacenar => ";cin >> k;lectura(numeros, k);

4

Page 5: Guia de Array

Estructuras de datos. Programación en Visual C++.NET

calcular(numeros, mayor, menor, k);salida(mayor, menor);return 0;

}// Funcion de lectura del arreglovoid lectura(int numeros[], int x){

int i;for(i=0;i<x;i++){

cout << "ingrese un numero" << (i+1)<< "= ";cin >> numeros[i];

}return;

}void calcular(int numeros[], int &mayor, int &menor, int x){

int i;// Encontrando el mayor de los numerosmayor = numeros[0];for(i=1;i<x;i++){

if (numeros[i] > mayor)mayor = numeros[i];

}// Encontrando el menor de los numerosmenor = numeros[0];for(i=1;i<x;i++){

if (numeros[i] < menor)menor = numeros[i];

}return;

}// Definicion d ela funcion salidavoid salida(int &mayor, int &menor){

system("cls");

5

Page 6: Guia de Array

Estructuras de datos. Programación en Visual C++.NET

cout << "el numero mayor es " << mayor << "\n";cout << "el numero menor es "<< menor << "\n";system("pause");return;

}

6

Page 7: Guia de Array

Estructuras de datos. Programación en Visual C++.NET

Solución al ejercicio 13.

// ejer13_guia2.cpp: define el punto de entrada de la aplicación de consola.//

#include "stdafx.h"#include <iostream>#include <stdlib.h>#define m 10#define n 10using namespace std;void lectura(double ventas[][n], int x, int y);void calcular(double ventas[][n], double vvende[], double vdia[], double &vmayven,

double &vmaydia, int &vende, int &dia, double &vt,int x, int y);void salida(double &vmayven, double &vmaydia, int &vende, int &dia, double &vt);int _tmain(int argc, _TCHAR* argv[]){

double ventas[m][n], vvende[m], vdia[n];int k, l;double vmayven, vmaydia, vt=0; int vende, dia;cout << "Cuantos vendedores desea procesar? => ";cin >> k;cout << "Cuantos dias desea procesar? => ";cin >> l;lectura(ventas, k,l);calcular(ventas, vvende, vdia, vmayven, vmaydia,

vende, dia, vt, k, l);salida(vmayven, vmaydia, vende, dia, vt);return 0;

}// Definicon de la funcion lecturavoid lectura(double ventas[][n], int x, int y)

7

Page 8: Guia de Array

Estructuras de datos. Programación en Visual C++.NET

{int i,j;for (i=0; i < x; i++){

for (j=0; j < y; j++){

cout << "Ventas[" << i << "," << j << "]= ";

cin >> ventas[i][j];}

}return;

}// Definicion de la funcion calcularvoid calcular(double ventas[][n], double vvende[], double vdia[], double &vmayven,

double &vmaydia, int &vende, int &dia, double &vt, int x, int y){

int i, j;double suma = 0;// Creando el arreglo ventas porvendedor=vvendefor (i=0; i < x; i++){

suma = 0;for (j=0; j < y; j++){

suma = suma + ventas[i][j];}vvende[i] = suma;vt = vt + suma;

}// Creando el arreglo ventas diairias = vdiafor (j=0; j < y; j++){

suma = 0;for (i=0; i < x; i++){

suma = suma + ventas[i][j];

8

Page 9: Guia de Array

Estructuras de datos. Programación en Visual C++.NET

}vdia[j] = suma;

}// Calculando el vendedor que mas vendiovmayven = vvende[0];vende = 0;for (i=1; i < x; i++){

if (vvende[i] > vmayven){

vmayven = vvende[i];vende = i;

}}// Calculando el dia que mas se vendio y que dia

fuevmaydia = vdia[0];dia = 0;for (j=1; j < y; j++){

if (vdia[j] > vmaydia){

vmaydia = vdia[j];dia = j;

}}return;

}void salida(double &vmayven, double &vmaydia, int &vende, int &dia, double &vt){

system("cls");cout << "El valor de la venta mayor por vendedor

es => " << vmayven << endl;cout << "La posicion del vendedor que mas vendio

es => " << vende << endl;cout << "El valor de la venta mayor por dia es =>

" << vmaydia << endl;

9

Page 10: Guia de Array

Estructuras de datos. Programación en Visual C++.NET

cout << "La posicion del dia que mas vendio es => " << dia << endl;

cout << "La venta total general es de => " << vt << endl;

system("pause");return;

}

10