Planxa Lista 2

Post on 24-Jul-2015

95 views 1 download

Transcript of Planxa Lista 2

• Estructura de Datos - Arreglos

Tema:

• Algoritmos y Lenguaje de Programación

Curso:

• Ramos Lama Cesar Adan

Alumno:

• Marte, 19 de Julio del 2011

Fecha de presentacion:

1. Escribir un programa para calcular el promedio de prácticas de un curso de matemáticas. Considerar las siguientes actividades

previamente:

a) Leer las notas y duplicar la ultima.

b) Eliminar la nota menor.

c) Calcular el promedio.

2. Escribir un programa que permita almacenar N elementos de tipo entero a un vector y determinar lo siguiente:

a) La suma de los elementos del vector.

b) El promedio de los elementos del vector.

c) Mostrar los elementos mayores al promedio.

3. Escribir un programa que permita almacenar elementos positivos en un vector y determinar lo siguiente:

a) Número de elementos almacenados.

b) Número de elementos repetidos.

4. Escribir un algoritmo que permita almacenar y ordenar de menor a mayor sus 50 elementos del vector.

5. Escribir un programa para que cree una matriz de dimensiones nxm cuyos elementos seas los que a continuación se detallan. El valor de

los elementos de la primera fila deberán ser el número de la columna correspondiente. El valor de los elementos de la primera columna

será el número de la fila correspondiente. El valor del resto de los elementos es igual a la suma del valor del elemento que se encuentra

por encima de él y el valor del elemento que se encuentra a su izquierda. Cuando se ejecuta el programa debe pedir al usuario que

introduzca la dimensión (my n) de la matriz en cuestión.

6. Diseñar un programa para leer una matriz de nxn elementos y calcular la suma de los elementos de su diagonal.

7. Diseñar un programa para leer una matriz de nxn elementos y calcular la suma de sus elementos por fila y por columna.

*Problema 1 Desarrollar un algoritmo para imprimir un listado con los numeros de 1 a 1000,cada uno con

su respectivo cuadrado

y cubo.Los numeros con sus respectivos cuadrados y cubos deben ir en una misma linea

#include<iostream.h>

#include<conio.h>

#include<math.h>

void main()

{int i;

float c,v;

for(i=1;i<=1000;i++)

{

c=pow(i,2);

v=pow(i,3);

cout<<i<<" su cuadrado es: "<<c<<" su cubo es: "<<v<<endl;

}

getch();

}

*Problema 2

Desarrollar un algoritmo para resolver la funcion f(x)=x3+x2-5 para "x" tomando valores de

0 a 10 y en incrementos de 1.

#include<iostream.h>

#include<conio.h>

#include<math.h>

void main()

{int i;

float f;

for(i=0;i<=10;i++)

{

f=(pow(i,3))+(pow(i,2))-5;

cout<<"para "<<i<<" la funciones es: "<<f<<endl;

}

getch();

}

*Problema 3

Escriba un programa que permita leer "n" numeros entero positivos,el programa debe determinar cuantos

de ellos

son pares y cuantos son impares

#include<iostream.h>

#include<conio.h>

#include<math.h>

void main()

{int n,i,p=0,j=0,m[200];

cout<<"escriba la cantidad de numeros\n";

cin>>n;

for(i=1;i<=n;i++)

{cout<<"escriba el "<<i<<" numero\n";

cin>>m[i];

if (0<=m[i])

{

if(m[i]%2==0)

{p++;}

else

{j++;}

}

else

{

do

{cout<<"escriba otro numero\n";

cin>>m[i];}

while(m[i]<0);

if(m[i]%2==0)

{p++;}

else

{j++;}

}

}

cout<<"la cantidad de numeros pares es: "<<p<<" y la cantidad de impares es: "<<j;

getch();

}

*Problema 4

Escribir un programa para calcular y visualizar el mas grande,el mas pequeño y la media de los "n"

numeros. El valor de "n" se solicita al inicio del programa.

#include<iostream.h>

#include<conio.h>

#include<math.h>

void main()

{int i,s=0,n,men,may,m[200];

cout<<"escribir la cantidad de datos"<<endl;

cin>>n;

for (i=1;i<=n;i++)

{cout<<"escribir los datos"<<endl;

cin>>m[i];

s=s+m[i];

men=m[1];

may=m[1];

if(m[1]>m[i])

{men=m[i];}

if(m[1]<m[i])

{may=m[i];}

}

cout<<"el menor es: "<<men<<endl;

cout<<"el mayor es: "<<may<<endl;

cout<<"el promedio es: "<<s/n;

getch();

}

*Problema 6

Escriba un programa que calcule la suma, el promedio, el producto, el mayor y el menor valor de "N"

numeros.

#include<iostream.h>

#include<conio.h>

#include<math.h>

void main()

{int i,p=1,s=0,n,men,may,m[200];

cout<<"escribir la cantidad de datos"<<endl;

cin>>n;

for (i=1;i<=n;i++)

{cout<<"escribir los datos"<<endl;

cin>>m[i];

s=s+m[i];

p=p*m[i];

men=m[1];

may=m[1];

if(m[1]>m[i])

{men=m[i];}

if(m[1]<m[i])

{may=m[i];}

}

cout<<"la suma es: "<<s<<endl;

cout<<"el producto es: "<<p<<"\n";

cout<<"el menor es: "<<men<<endl;

cout<<"el mayor es: "<<may<<endl;

cout<<"el promedio es: "<<s/n;

getch();

}

*Problema 7

Escriba un programa que permita leer una serie de enteros,contar el numero de valores introducidos y la

suma de sus cuadrados.

En este programa se utilizara un valor centinela que detecte el final de la entrada de datos(numero

negativo)

#include<iostream.h>

#include<conio.h>

#include<math.h>

void main()

{int i,p=0,n=0,cua;

while (n>=0)

{cout<<"escribe el datos"<<endl;

cin>>n;

if (n>=0)

{cua=cua+pow(n,2);

p++;}

}

cout<<"la cantidad de datos es: "<<(p-1)<<endl;

cout<<"la suma de sus cuadrados es:"<<cua<<endl;

getch();

}

Funciones

1.Diseñar un programa que permita ingresar la cantidad de números enteros y luego para cada numero

ingresado,mostrar su cantidad de dígitos

#include <iostream.h>

#include <conio.h>

void leer();

float sumatoria();

void imprimir();

int n;

void leer()

{gotoxy(2,3);

cout<<"Ingrese numero de terminos de la serie: "; cin>>n;}

float sumatoria()

{ int i=1; // variable local

float s=0;

do { s=s + float (i)/(i+1); i++;}

while (i<=n);

return (s);}

void imprimir ()

{gotoxy(2,5); cout<<"La suma es "<<sumatoria()<<endl;}

void main()// Funcion principal

{

leer();// Llama a la Funcion leer

sumatoria(); // Llama a la Funcion sumatoria

imprimir(); // Llama a la funcion imprimir

getche();}

2. Diseñar un programa usando funciones que permita calcular la suma acumulada de la serie:

= ½ + 2/3 + ¾ + ……..+ n/(n+1)

• El usuario ingresa el número de términos de la serie

a sumar.

#include <iostream.h>

#include <conio.h>

void leer();

float sumatoria ();

void imprimir();

int n;

void leer ( )

gotoxy(2,3);

cout<<“Ingrese numero de terminos de la serie: ”; cin>>n;}

float sumatoria ( )

{ int i =1; // variable local

float s = 0;

do { s = S + float (i)/(i+1); i++;}

while (i<=n);

return (s);}

void imprimir ( )

{gotoxy(2,5);cout<<“La suma es "<<sumatoria()<<endl;}

void main() // Funcion principal

{

leer ( ); // Llama a la Funcion leer

sumatoria ( ); // Llama a la Funcion sumatoria

imprimir ( ); //Llama a la funcion imprimir

getch();}

// Programa 86

// Propósito : Funciones

#include<iostream.h>

#include<conio.h>

// función calcula menor de tres números

int menor(int x, int y, int z);

int main()

{

int a,b,c;

clrscr();

cout<<"\nIngrese el primer numero .... : ";

cin >> a;

cout<<"Ingrese el segundo numero ... : ";

cin >> b;

cout<<"Ingrese el tercer numero .... : ";

cin >> c;

// llama a la función menor y le pasa los tres números ingresados

cout << "\n\nEl numero menor es : " << menor(a,b,c) << endl;

getch();

return 0;

}

// la función recibe 3 argumentos de tipo enteros

int menor(int a, int b, int c)

{

int min;

min=a;

// hallar el menor número

if (b < min)

min = b;

if (c < min)

min = c;

// retorna el menor número una vez realizado el calculo

return min;

}

// Programa 87

// Propósito : Funciones

#include <iostream.h>

#include <conio.h>

void intercambiar(int &num1, int &num2);

int main()

{

int a, b;

cout << "Ingrese primer numero: "; cin >> a;

cout << "Ingrese segundo numero: "; cin >> b;

cout << "\nEl valor de a es: " << a;

cout << "\nEl valor de b es: " << b;

intercambiar (a, b);

cout << "\n\nEl nuevo valor de a es: " << a;

cout << "\nEl nuevo valor de b es: " << b;

getch();

return 0;

}

void intercambiar(int &num1, int &num2)

{

int aux;

aux = num1;

num1 = num2;

num2 = aux;

}

// Programa 88

// Propósito : Funciones

#include <iostream.h>

#include <conio.h>

void calcular(float radio, float &area, float &longitud);

const float PI = 3.14;

int main()

{

float radioCirculo, areaCirculo, perCirculo;

cout << "\nIngrese radio de la circunferencia : "; cin >> radioCirculo;

calcular(radioCirculo, areaCirculo, perCirculo);

cout << "\n\nEl radio de la circunferencia es : " << radioCirculo;

cout << "\nEl area de la circunferencia es : " << areaCirculo;

cout << "\nLa longitud de la circunferencia : " << perCirculo;

getch();

return 0;

}

void calcular(float radio, float &area, float &longitud)

{

area = PI * radio * radio;

longitud = 2 * PI * radio;

}

// Programa 89

// Propósito : Funciones

#include<iostream.h>

#include<conio.h>

float calculoIGV(float numero, float IGV = 0.18);

int main()

{

char tipoCompra;

int cantidad;

float precio, importe, recargoIGV, tPagar;

cout << "\nSuministros A&C";

cout << "\n---------------\n\n";

cout << "Cual de los siguientes desea comprar";

cout << "\n [1]Diskettes, [2]CD-ROM, [3]Libros";

cout << "\nElija su opcion : "; cin >> tipoCompra;

cout << "\nCantidad ..... : "; cin >> cantidad;

cout << "Precio ....... : "; cin >> precio;

// Calcula importe

importe = cantidad * precio;

switch (tipoCompra)

{

case '1' :

recargoIGV = calculoIGV(importe);

break;

case '2' :

recargoIGV = calculoIGV(importe);

break;

case '3' :

recargoIGV = calculoIGV(importe,0.0);

break;

}

// Calculo del total a pagar

tPagar = importe + recargoIGV;

// Salida de datos

cout << "\n\nRecargo IGV : " << recargoIGV;

cout << "\nEl Total a pagar es : " << tPagar; getch();

return 0;

}

float calculoIGV(float numero, float IGV)

{

return (numero * IGV);

}

// Programa 90

// Propósito : Funciones

#include<iostream.h>

#include <conio.h>

inline float Cubo(const float valor)

{

return valor * valor * valor;

}

int main()

{

float lado;

cout << "\nIngrese la longitud de lado de su cubo : "; cin >> lado;

//Salida de Datos

cout << "El volumen es : " << Cubo(lado) << endl;

getch();

return 0;

}

// Programa 91

// Propósito : Funciones

#include <iostream.h>

#include <conio.h>

#include <iomanip.h>

const int cantidad = 5;

int numero [cantidad];

// Funciones de usuario

void leerArreglo(int numero[], int elementos);

void imprimirArreglo(int numero [], int elementos);

void ordenar(int numero [], int elementos);

int main()

{

cout << "\nORDENAMIENTO DE ARREGLOS\n";

cout << "------------------------\n";

cout << "(5 elementos)\n\n";

leerArreglo (numero, cantidad);

cout << "\nEl arreglo ordenado es\n\n";

ordenar (numero, cantidad);

clrscr();

imprimirArreglo(numero, cantidad);

getch();

return 0;

}

void leerArreglo (int numero [], int elementos)

{

int i = 0;

do

{

i++;

cout << "Leer numero [" << i << "] : ";

cin >> numero [i] ;

}

while (i < elementos);

}

void ordenar (int numero [], int elementos)

{

int aux, i,j;

clrscr();

for (i = 0; i <= elementos - 1; i++)

for (j = i + 1; j <= elementos;j++)

{

if (numero [i] < numero [j])

{

aux = numero [j];

numero [j] = numero [i];

numero [i] = aux;

}

}

}

void imprimirArreglo (int numero [], int elementos)

{

int i = 0;

do

{

cout << "Elemento [" << i << "] : " << setw (6) << numero[i] << endl ;

i++;

}

while (i < elementos);

}

// Programa 92

// Propósito : Funciones

#include<iostream.h>

#include <stdio.h>

#include <conio.h>

//Funcion tipo_editorial

double tipo_editorial (char editorial, char tipo, double compra)

{

double descuento;

descuento = 0;

switch (editorial)

{

case 'A':

switch (tipo)

{

case 'E' : descuento = compra * 0.10; break;

case 'P' : descuento = compra * 0.05; break;

}

break;

case 'B':

switch (tipo)

{

case 'E' : descuento = compra * 0.25; break;

case 'P' : descuento = compra * 0.10; break;

}

break;

case 'C':

switch (tipo)

{

case 'E' : descuento = compra * 0.50; break;

case 'P' : descuento = compra * 0.20; break;

}

break;

}

return descuento;

}

int main()

{

double comp, desc, montoT;

char nombre[20];

char tip;

char edit;

cout << "\nEDITORIAL NUEVA LUNA\n";

cout << "--------------------\n\n";

cout << "Nombre del comprador.....: "; cin >> nombre;

cout << "Tipo de comprador (E/P)..: "; cin >> tip;

cout << "Monto compra.............: "; cin >> comp;

cout << "Tipo editorial(A/B/C)....: "; cin >> edit;

// enviando valores para la funcion tipo_editorial

desc = tipo_editorial(edit, tip, comp);

// calculo del monto compra

montoT = comp - desc;

// salida de resultados

cout << "\nTotal de descuento es....: " << desc << " Nuevos Soles" <<endl;

cout << "Total de compra es.......: " << montoT << " Nuevos Soles";

getch();

return 0;

}

// Programa 93

// Propósito : Funciones

#include<iostream.h>

#include<conio.h>

#include<stdlib.h>

// Funciones de usuario

void menu();

void gMontoCuenta();

void retiro();

void ingreso();

void reporte();

void pausa();

// declaración de variables

int cantidad_inicial, cantidad_final, cantidad;

int retiros, ingresos, u_ret, u_ing = 0;

char mov_cuenta;

const int MAX = 1200; // cantidad máxima

void main ()

{

int salir = 0;

// Llamada a la función genera monto de cuenta

gMontoCuenta();

while (salir != 1)

{

menu();

switch (mov_cuenta)

{

case '1':

ingreso();

break;

case '2':

retiro();

break;

case '3':

reporte();

break;

case '4':

salir = 1;

break;

}

}

}

// Función menú

void menu ()

{

clrscr();

cout << "\n MOVIMIENTO DE CUENTA BANCARIA\n";

cout << " -----------------------------\n";

cout << "\n [1] Ingreso";

cout << "\n [2] Retiro";

cout << "\n [3] Reporte";

cout << "\n [4] Salir";

cout << "\n\n Ingrese su opcion : ";

do

{

mov_cuenta = getch();

} while (mov_cuenta < '1' || mov_cuenta == '5' );

cout << mov_cuenta;

}

// Función genera monto de cuenta

void gMontoCuenta()

{

randomize();

cantidad_final = cantidad_inicial = random(MAX + 1);

}

// Función retiro de dinero

void retiro()

{

clrscr();

cout << "\nOPERACION DE RETIRO";

cout << "\n-------------------\n";

cout << "\nCantidad actual ............. : " << cantidad_final << " soles";

cout << "\nCuanto dinero desea retirar.. : "; cin >> cantidad;

while ( cantidad < 1 || cantidad > cantidad_final)

{

cout << "\nError unicamente cuenta con.. : " << cantidad_final << " soles";

cout << "\nCuanto dinero desea retirar.. : "; cin >> cantidad;

}

cantidad_final -= cantidad;

ingresos++;

u_ret += cantidad;

cout << "\nRetiro efectuado";

cout << "\nCantidad actual ................ : " << cantidad_final << " soles";

pausa();

}

// Función ingreso de dinero

void ingreso()

{

clrscr();

cout << "\nOPERACION DE INGRESO";

cout << "\n-------------------\n";

cout << "\nCantidad actual ............. : " << cantidad_final << " soles";

cout << "\nCuanto dinero desea ingresar. : "; cin >> cantidad;

while ( cantidad < 1 || cantidad > cantidad_final)

{

cout << "\nError unicamente cuenta con.. : " << cantidad_final << " soles";

cout << "\nCuanto dinero desea ingresar. : "; cin >> cantidad;

}

cantidad_final += cantidad;

ingresos++;

u_ing += cantidad;

cout << "\nIngreso efectuado";

pausa();

}

// Función imprime reporte de cuenta

void reporte()

{

clrscr();

cout << "\n\nREPORTE DE ESTADO DE CUENTA";

cout << "\n---------------------------\n";

cout << "\nCantidad de dinero al iniciar la transaccion..: ";

cout << cantidad_inicial << " soles";

cout << "\nCantidad de Dinero ingresado...................: ";

cout << u_ing << " soles";

cout << "\nCantidad de Dinero retirado....................: ";

cout << u_ret << " soles\n";

cout << "\nUsted tiene un saldo de........................: ";

cout << cantidad_final << " soles";

pausa();

}

// Función pausa

void pausa()

{

cout << "\n\nPulse una tecla";

getch();

}

3. Diseñar un programa que permita leer un número entero y luego este debe pasar como parámetro en una

función sumar() y transformarlo sumando la unidad al valor ingresado.

#include <iostream.h>

#include <conio.h>

void sumar (int*dato)

{ *dato= *dato + 1; return;}

void main (void)

{int valor_inicial;

gotoxy (3,3); cout<<“Favor Ingrese un número: “; cin>>valor_inicial;

sumar(&valor_inicial);

gotoxy(4,5); cout<<“Nuevo Valor”<<valor_inicial;

getch(); }

4. Diseñar un programa que contenga dos funciones:

Resta (param1,param2) : permite calcular la resta de 2 numeros enteros

Multiplica (parem1,param2) : permite calcular el producto de 2 números enteros

#include <iostream.h>

#include <conio.h>

void resta (int, int); // Prototipo de procedimiento

int multiplica (int, int); // Prototipo de funciones

int num1, num2, resultado;

void resta ( int a, int b)

{ int restan; // variable local

restan = a-b;

gotoxy(3,7);

cout<<"La resta de "<<a<<"-"<<b<<“ es ="<<restan<<endl;}

int multiplica (int a, int b)

{ int producto; // variable local

producto = a*b; return producto; }

void main() // Funcion principal

{

gotoxy(3,2); cout<< "Ingresa dos numeros:" <<endl;

gotoxy(3,4); cout<< "Ingrese numero 1 ="; cin>>num1;

gotoxy(3,5); cout<< "Ingrese numero 2 ="; cin>>num2;

resta (num1, num2); // Llama a la Funcion resta

resultado = multiplica (num1,num2); gotoxy(3,9);// Llama a la Funcion resultado

cout<<"El producto de "<<num1<<“ * "<<num2<<“ es ="<<resultado<<endl;

getch();}

1. Diseñar un programa que permita lee notas eliminando la menor y determinar el promedio.

2.Diseñar un programa que permita leer un número del 1 al 7 como selector de los días de la semana y

escriba el día de la semana correspondiente al día.

#include <iostream.h>

#include <conio.h>

#include <string.h>

void main()

{ int dia;

clrscr ();

cout << endl<< "INGRESE DIA: " ; cin >> dia;

switch (dia) {

case 1: cout<<"Lunes" ; break ;

case 2: cout<<"Martes" ; break ;

case 3: cout<<"Miercoles" ; break ;

case 4: cout<<"Jueves" ; break ;

case 5: cout<<"Viernes" ; break;

case 6: cout<<"Sabado" ; break ;

case 7: cout<<"Domingo" ; break ;

default: cout<<"No es un dia de la semana" ;

}

cout << " Es " << dia ;

getch ();}

3 .Diseñar un programa que permita leer un número n enteros positivo, luego calcular su factorial e

imprimir

4. Diseñar un programa que permita determinar el promedio de prácticas luego de eliminar la menor nota.

#include <iostream.h>

#include <conio.h>

#include <stdlib.h>

void main ()

{

int pc1,pc2,pc3,menor,nc=0;

float pp;

char resp = 's';

while (resp =='s')

{nc++ ;

clrscr();

gotoxy(40,5);cout<<"ud. es el visitante numero="<<nc;

gotoxy(15,4);cout<<"Bienvnido";

gotoxy(15,6);cout<<"pc1="; cin>>pc1;

gotoxy(15,7);cout<<"pc2="; cin>>pc2;

gotoxy(15,8);cout<<"pc3="; cin>>pc3;

menor = pc1;

if (menor > pc2)

{ menor = pc2 ;

}

if (menor > pc3)

{ menor = pc3 ;

}

gotoxy (10,10);

cout<<"menor nota="<<menor;

pp= ((pc1+pc2+pc3)-menor)/2;

gotoxy(10,12);

cout<<"promedio="<<pp;

gotoxy(20,20); cout<<"sr. desea continuar......? (s/n)" ;

cin>>resp ;

}

if (resp == 'n')

{ clrscr();

gotoxy(20,12); cout<<"gracias por consultar" ;

gotoxy(20,14); cout<<"ud ha realizado = "<< nc<< " consultas";

}

getch();

}

5. Escribir un programa que lea un número compuesto por más de un dígito y luego mostrar:

Total de dígitos, Total de dígitos pares e impares, Número invertido, Total de suma de dígitos pares e impares respectivamente