Planxa Lista 2

49
• 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:

Transcript of Planxa Lista 2

Page 1: 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:

Page 2: Planxa Lista 2

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.

Page 3: Planxa Lista 2

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.

Page 4: Planxa Lista 2

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.

Page 5: Planxa Lista 2

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

Page 6: Planxa Lista 2

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.

Page 7: Planxa Lista 2

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

Page 8: Planxa Lista 2

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

Page 9: Planxa Lista 2

*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();

}

Page 10: Planxa Lista 2

*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();

}

Page 11: Planxa Lista 2

*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++;}

}

Page 12: Planxa Lista 2

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();

}

Page 13: Planxa Lista 2

*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];}

}

Page 14: Planxa Lista 2

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];

Page 15: Planxa Lista 2

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();

}

Page 16: Planxa Lista 2

*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();

}

Page 17: Planxa Lista 2

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;}

Page 18: Planxa Lista 2

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;}

Page 19: Planxa Lista 2

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()

Page 20: Planxa Lista 2

{

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)

Page 21: Planxa Lista 2

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;

Page 22: Planxa Lista 2

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;

}

Page 23: Planxa Lista 2

// 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;

Page 24: Planxa Lista 2

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

Page 25: Planxa Lista 2

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)

{

Page 26: Planxa Lista 2

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;

}

Page 27: Planxa Lista 2

// 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();

Page 28: Planxa Lista 2

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])

Page 29: Planxa Lista 2

{

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

Page 30: Planxa Lista 2

#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;

Page 31: Planxa Lista 2

}

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;

Page 32: Planxa Lista 2

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

Page 33: Planxa Lista 2

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

Page 34: Planxa Lista 2

gMontoCuenta();

while (salir != 1)

{

menu();

switch (mov_cuenta)

{

case '1':

ingreso();

break;

case '2':

retiro();

break;

case '3':

reporte();

break;

Page 35: Planxa Lista 2

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";

Page 36: Planxa Lista 2

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

Page 37: Planxa Lista 2

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;

Page 38: Planxa Lista 2

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";

Page 39: Planxa Lista 2

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..: ";

Page 40: Planxa Lista 2

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();

}

Page 41: Planxa Lista 2

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

Page 42: Planxa Lista 2

#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;

Page 43: Planxa Lista 2

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();}

Page 44: Planxa Lista 2

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

Page 45: Planxa Lista 2

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 ();}

Page 46: Planxa Lista 2

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

imprimir

Page 47: Planxa Lista 2

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;

Page 48: Planxa Lista 2

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

Page 49: Planxa Lista 2