Вы находитесь на странице: 1из 49

Programacin en C y C++ PROYECTO I En la unidad de hoy se mostrarn los pasos fundamentales para programar en C y C++, se ver cmo se debe

entrar en la aplicacin Microsoft Visual Studio, desde la que se trabajar en el transcurso del curso, la configuracin que se debe mantener para que funcionen correctamente los programas que realicemos de ahora en adelante, etc; al final se realizar un programa bastante simple, que sirva como ejemplo y preludio de los que vendrn en el futuro. Es importante que memorice o mantenga a la mano la siguiente configuracin, necesaria para el correcto funcionamiento de los programas que se realizaran, sino se le hace fcil en las primeras unidades no se preocupe, con la prctica y el paso del tiempo lo ser. En el escritorio de su computador vaya a: 1. Inicio 2. Todos los programas 3. Microsoft Visual Studio 2008

De esta forma se ejecutar el programa y usted se encontrar en un entorno similar al de la siguiente imagen, en este caso se trabajara con la versin 2008 de Microsoft Visual Studio.

Antes de empezar a trabajar es necesario configurar Microsoft Visual Studio; siga los siguientes pasos: 1. Archivo 2. Proyecto (click)

Se abrir una ventana auxiliar con varias opciones para un nuevo proyecto; vaya a: 1. Visual C++ 2. CLR 3. Proyecto vacio de CLR

Se cierra la ventana auxiliar, y de esta forma se habilita una nueva pestaa en el men principal (proyecto). Ahora vaya a: 1. Proyecto 2. Agregar nuevo elemento

Se abrir una ventana auxiliar similar a la que se abri para (nuevo proyecto), pero est se llamar agregar nuevo elemento. Es necesario ponerle un nombre al documento sobre el que trabajaremos y tener claro en donde se almaceno. Siga los siguientes pasos: 1. Cdigo 2. Archivo C++ 3. (Digite el nombre del documento y elija la ubicacin en la que se almacenar)

Y a estamos listos para empezar a programar; en esta oportunidad se realizar un programa elemental. Este le pedir al usuario que digite su nombre y despus de presionar cualquier tecla mostrar un mensaje. A continuacin se muestra el lenguaje exacto que se uso para realizar el programa.

#include<iostream> #include<iomanip> #include<conio.h> using namespace System; using namespace std; void main () { //Mi primer programa C++ cout<<"\nDigite su nombre: "; char NOM[35]; cin>>NOM; cout<<"\PROCESANDO INFORMACIN...POR FAVOR OPRIMA UNA TECLA PARA CONTINUA..."; getch(); cout<<"\n su nombre es: "<<NOM; cout<<"\n Soy muy rpido e inteligente... ya me aprend su nombre... jejeje"; getch(); } As finalizamos la primera unidad. LIBRERAS Antes de iniciar la siguiente unidad es necesario introducir un concepto fundamental a la hora de programar; Se debe tener en cuenta que el lenguaje de programacin C y C++ tiene ya varios aos de haber sido creado y que muchas personas han trabajado con l, aportando a su avance. Las libreras son paquetes de funciones pre-programadas, que agilizan el trabajo del programador, puesto que solo es necesario escribir un par de palabras para que un programa este en la capacidad de realizar ciertas operaciones, entre las ms importantes, las matemticas. Los compiladores C++ incluyen un amplio repertorio de clases, funciones y macros que permiten realizar una amplia variedad de tareas, incluyendo entradas/salidas de bajo y alto nivel; manipulacin de cadenas alfanumricas y ficheros; control de procesos (incluyendo multiproceso); manejo de memoria; clculos matemticos y un largo etctera. Este repertorio de recursos es denominado colectivamente como "Rutinas de librera"; "Libreras de ejecucin" RTL ("Runtime Librarys") o simplemente "Libreras". Puede decirse que el lenguaje aislado (tal cual) no tiene prcticamente ninguna utilidad sin la concurrencia de estas utilidades. El Estndar C++ las clasifica segn su utilidad:

y y y y y y y y y y

Soporte del lenguaje [7] Diagnstico Utilidades generales Cadenas alfanumricas ("Strings") Localizacin Contenedores Iteradores Algoritmos Clculo numrico Entrada/Salida

Para poner un poco de orden, el Estndar C++ define la denominada Librera Estndar [3] que debe acompaar a cada implementacin del compilador que se adhiera al estndar. Es decir: la norma determina cuales son, como se llaman y como se utiliza este conjunto de algoritmos que deben acompaar (como mnimo) a cada implementacin del compilador que quiera llamarse "Estndar". La ltima versin, ISO/IEC 14882 del ao 1998, especifica que se compone de 32 ficheros de cabecera de nombres fijos y conocidos agrupados segn la funcionalidad de los algoritmos. Son los siguientes: Ficheros Funcionalidad/funciones

<algorithm> Parte de la STL que describe los algoritmos. <bitset> Parte de la STL relativa a contenedores tipo bitset . Set de valores booleanos. Parte de la librera numrica de la STL relativa a los complejos. Parte de la STL relativa a contenedores tipo deque; un tipo de colas: "Double-ended-queue" .

<complex> <deque>

<exception> Parte de la librera de diagnstico relativa al manejo de excepciones <fstream> Flujos hacia/desde ficheros.

<functional> Parte de la STL relativa a Objetos-funcin <iomanip> Manipuladores.

<ios> <iosfwd>

Supreclases para manejo de flujos de E/S. Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estndar. Por ejemplo ostream. Parte del a STL que contiene los algoritmos estndar de E/S. Algoritmos estndar de flujos de entrada. Parte de la STL relacionada con iteradores , un tipo de puntero que permite utilizar los algoritmos de la Librera con las estructuras de datos representadas por los contenedores. Descripcin de propiedades dependientes de la implementacin que afectan a los tipos fundamentales. Parte de la STL relativa a contenedores tipo list; listas doblemente enlazadas Parte de la STL relativa a la internacionalizacin. Parte de la STL relativa a contenedores tipo map. Utilidades relativas a la gestin de memoria, incluyendo asignadores y punteros inteligentes. Manejo de memoria dinmica Parte de la librera numrica de la STL relativa a operaciones numricas. Algoritmos estndar para los flujos de salida. Parte de la STL relativa a contenedores tipo queue; colas de objetos. Parte de la STL relativa a contenedores tipo set. Flujos hacia/desde cadenas alfanumricas. Parte de la STL relativa a contenedores tipo stack; pilas de objetos.

<iostream> <istream> <iterator>

<limits>

<list>

<locale> <map> <memory>

<new> <numeric>

<ostream> <queue>

<set> <sstream> <stack>

<stdexcept> Parte de la STL relativa a las clases de las que derivan los objetos lanzados por las excepciones ocasionadas en los algoritmos de la propia STL y otras expresiones. Estas clases son utilizadas para reportar errores detectados durante runtime. Los usuarios tambin pueden utilizar excepciones para reportar errores en sus propios programas. <streambuf> Parte de la STL relativa al Almacenamiento de flujos de E/S ("Stream buffers"). Define los tipos que controlan la capa de transporte. <string> Parte de la STL relativa a contenedores tipo string; una generalizacin de las cadenas alfanumricas para albergar cadenas de objetos. Mecanismo de identificacin de tipos en tiempo de ejecucin. Parte de la STL que contiene elementos auxiliares como operadores y pares (pairs). Parte de la librera numrica de la STL relativa a manejo de matrices numricas () Parte de la STL relativa a los contenedores tipo vector; una generalizacin de las matrices unidimensionales C/C++ .

<typeinfo> <utility>

<valarray>

<vector>

Es digno de mencin que aunque generalmente las libreras no aportan ninguna caracterstica al lenguaje (se supone que son utilidades auxiliares que no forman parte del lenguaje propiamente dicho), una pequea porcin de la Librera Estndar C++ s aporta caractersticas que se consideran pertenecientes a este, de forma que deben estar presentes los ficheros de cabecera correspondientes si se desea usarlas. En concreto se refieren a los siguientes elementos:
y y y y

Operadores new, new[], delete y delete[] . Clase type_info que corresponde al mecanismo RTTI de identificacin de tipos en tiempo de ejecucin representado por el operador typeid. Rutinas de inicio y terminacin. Las excepciones estndar lanzadas por los algoritmos anteriores.

PROYECTO II En la unidad de hoy se realizar un programa que realizar sencillos clculos matemticos, se utilizarn algunas libreras. El programa le pedir al usuario que introduzca dos valores numricos, y imprimir en pantalla los siguientes valores: 1. 2. 3. 4. El logaritmo natural del primer dato. El logaritmo decimal del segundo dato. El primer dato elevado al segundo. El segundo dato elevado al primero.

Lo fundamental en el momento de realizar el programa es comprender que al programar se tienen que almacenar cada uno de los datos en celdas, separadas, con un nombre propio, para que posteriormente el programador le pueda dar las pautas al ordenador sobre lo que se debe hacer con cada variable. Siguiendo este orden de ideas se nombrar K al primer dato que introduzca el usuario y Q al segundo. El logaritmo natural del primer dato se llamar X y el del segundo H. El primer dato elevado al segundo se almacenar como P y el segundo dato elevado al primero como R. Teniendo claro lo anterior se puede realizar el programa, enseguida se adjuntas los pantallazos del programa realizado en visual studio y en DFC como diagrama de flujo.

As concluye la segunda unidad de trabajo. PROYECTO IV En esta unidad se realizar un programa un poco ms complejo que los anteriores, permitir hallar las soluciones en el conjunto de los nmeros reales a una ecuacin de segundo grado. Para esto hay que tener en cuenta que el usuario tendr que introducir los coeficientes de la ecuacin, estos se almacenarn en las celdas A, B, C de acuerdo con la ecuacin Posteriormente el ordenador tendr que analizar la expresin (usando las variables que el usuario le introdujo anteriormente), si el valor dentro del radical es mayor o igual a cero el ordenador imprimir en la pantalla la ecuacin tiene dos soluciones de lo contrario el ordenador imprimir en pantalla la ecuacin no tiene solucin en el conjunto de los reales.

Para calcular las soluciones (en caso de tenerlas) el ordenador se valdr de las ecuaciones ordenador las ecuaciones por separado y no con el (es importante indicarle al que se acostumbra.

Despus el ordenador imprimir en la pantalla las soluciones. A continuacin se exponen los pantallazos del programa realizado en Visual Studio y en DFC como diagrama de flujo para que sirva como gua.

El programa se realiz en visual Studio con el siguiente lenguaje.

#include <iostream> #include <iomanip> #include <conio.h> #include <math.h> using namespace System; using namespace std; void main() { //ENTRADA DE DATOS double A, B, C; cout<<"\n"<<"Por favor digite el primer coeficiente: "; cin>>A; cout<<"\n"<<"Por favor digite el segundo coeficiente: "; cin>>B; cout<<"\n"<<"Por favor digite el tercer coeficiente: "; cin>>C; //PROCESAMIENTO DE DATOS double X, Y; X= (-B+sqrt(pow(B,2)-4*A*C))/(2*A); Y=(-B-sqrt(pow(B,2)-4*A*C))/(2*A); //SALIDA DE INFORMACION cout<<"\n"<<A<<"X +"<<B<<"X +"<<C<<" = 0"; cout<<"\n"<<" la primera solucin es X1 = "<<X; cout<<"\n"<<" la segunda solucin es X2 = "<<Y; getch(); }

As concluye esta unidad de trabajo.

PROYECTO V En esta unidad se realizar un programa sencillo que incluir una nueva e importante herramienta, imponer una condicin en un programa de tal forma que el ordenador decida y clasifique la informacin almacenada en una celda, y realice cierta tarea de acuerdo al grupo en que se clasifique la informacin. Nuestro programa le pedir al usuario que introduzca dos valores numricos enteros que se encuentren en el intervalo [1,5], inmediatamente calcular el promedio de estos valores y los mostrar en pantalla; Si el valor promedio es mayor que 5, el programa restara el valor de X (el primer valor que introdujo el usuario) y Y (el segundo valor que introduzca el usuario), de lo contrario el ordenador tendr que tomar otra decisin, si el promedio es mayo a tres el ordenador dividir el valor de X en Y; Si el valor promedio es menor que 3 el ordenador multiplicar los dos valores.

Este es el diagrama de flujo del programa realizado en DFC.

De esta forma concluimos esta unidad.

I Parcial
/*Realizar un programa C++, que permita para un grupo de E empleados: 1. Ingresar nombre, salario bsico y tipo de vinculo; 2. Para cada empleado Calcular el salario neto a pagar bajo las siguientes condiciones: a. Si salario bsico es mayor a dos smmlv (dato entrada) se le hace un descuento del cuatro punto treinta y tres por ciento sobre el basico b. Si est entre 1 y 2 smmlv se le hace una bonificacion equivalente a la quinta parte del basico c. De lo contrario, la bonificacion es del 2% y el descuento del 1.33% 3. Calcular e imprimir el total neto pagado, total de descuentos y total de bonificaciones que hizo la empresa. 4. Imprimir el nombre del empleado que gana menos salario neto. 5. cALCULAR EL PROMEDIO DE SALARIOS BASICOS DE LA EMPRESA nota: deben usar la libreria stirng.h */

#include<iostream> #include<conio.h> #include<iomanip> #include<math.h> #include<string.h> using namespace System; using namespace std; void main() { int N,NE; double S,SB,SD,W,X,Y,Z,TOTALS=0,TOTALB=0,TOTALD=0,PROMS, MENOR=999999999999999; char NOM[10],NOMMEN[10]; cout<<"\n\n\n Cuatos empleados tiene su empresa?: "; cin>>N; cout<<"\n\n\n Cual es el valor del salario minimo legal vigente?: cin>>S; for(NE=1; NE<=N; NE=NE+1) { cout<<"\n\n\n Ingresando datos para el empleado numero:

";

" <<NE;

cout<<"\n\n\n por favor digite el nombre del empleado: cin>>NOM; cout<<"\n\n\n Salario que de devenga el empleado: "; cin>>SB; if (SB>(2*S)) { W=(SB*4.33)/100; SD=SB-W; } else { if ((S)<=SB<=(2*S)) { X=((SB)/5)+SB; SD=SB+X; } else { Y=((SB*2)/100); Z=((SB*1.33)/100); SD=(SB+Y-Z); } } if (SD<MENOR) { MENOR=SD; strcpy (NOMMEN,NOM); } es:

";

cout<<"\n\n\n El valor a cancelar a nombre de "<<NOM<<" Por salario "<<SD; getch();

TOTALS=SD+TOTALS; TOTALB=(X+Y)+TOTALB; TOTALD=(W+Z)+TOTALD; } PROMS=((TOTALS)/N); "<<TOTALS; cout<<"\n\n\n el valor total pagado por salario es: getch(); cout<<"\n\n\n el valor total pagado por bonificaciones es: "<<TOTALB; getch(); "<<TOTALD; cout<<"\n\n\n el valor total descontado de los salarios es: getch(); cout<<"\n\n\n el salario promedio en la empresa es: "<<PROMS; getch(); cout<<"\n\n\n el empleado que cobro el menor salario fue: "<<NOMMEN<<" Su salario fue: "<<MENOR; getch(); }

PROYECTO VI

Proyecto VII

#include<iostream> #include<iomanip> #include<conio.h> using namespace System; using namespace std; void main() { int E; cout<<"\n"<<" Cuantos estudiantes tiene su curso: "; cin>>E; int EN; double SUMAD=0; for (EN=1; EN<=E; EN++) { cout<<"\n"<<" PROCESANDO EL ESTUDIANTE NUMERO: "<<EN; char COD[10]; cout<<"\n\n"<<" Digite el codigo: "; cin>>COD;

double X; cout<<"\n\n"<<" Digite la primera nota: "; cin>>X; double Y; cout<<"\n\n"<<" Digite la segudna nota: "; cin>>Y; double Z; cout<<"\n\n"<<" Digite la tercera nota: "; cin>>Z; double PROM=(X+Y+Z)/3; double DEF; if(PROM>4.5) { DEF=5.0; } else { if (PROM>=4.0) { DEF=PROM+0.3; } else { if(PROM>=3.0) { DEF=PROM; } else { DEF=PROM-0.2; } } } cout<<"\n"<<" EL estudiante con codigo: " <<COD<<"\n"<<" Obtuvo un promedio de: "<<PROM<<"\n"<<" Definitva: "<<DEF; SUMAD=SUMAD+DEF; } double PROMG=SUMAD/E; cout<<"\n\n"<<" El promedio general del curso es: "<<PROMG; getch(); }

PROYECTO VIII
#include<iostream> #include<iomanip> #include<conio.h> using namespace System; using namespace std; void main()

{ //PRIMER PASO:: Ingresar la cantidad de listas a procesar int L; cout<<"\n Cuantas listas desea procesar?"; cin>>L; //SEGUNDO PASO: Recorrer lista por lista para poder ingresar y porcesar los datos double SUMDP=0; for(int NL=1; NL<=L; NL=NL+1) { cout<<"\n\n\n Procesando la lista nmero: "<<NL; //TERCER PASO: Ingresar la cantidad de datos por lista int N; cout<<"\n\n Cuantos datos tiene esta lista? "; cin>>N; //CUARTO PASO: Recorrer los pasos de cada lista double SUMDL=0; double mayor=0; double menor=9999999; for(int ND=1; ND<=N; ND=ND+1) { //QUINTO PASO: Ingresar el dato que se va procesar int DATO; cout<<"\n De la lista nmero: "<<NL<<"ingrese el dato nmero: "; "<<ND<<" cin>>DATO; if (DATO>mayor) { mayor=DATO; } if(DATO<menor) { menor=DATO; } SUMDL=SUMDL+DATO; } cout<<"\n\n El promedio de los datos de la lista: "<<NL<<" es: "<<SUMDL/N; cout<<"\n\n El mayor dato de la lista: "<<NL<<" es "<<mayor; SUMDP+=SUMDL/N; getch(); } cout<<"\n\n\n El promedio de los datos de todas las listas es: "<<SUMDP/L; cout<<"\n\n El menor dato de todas las listas es: "<<menor; getch(); }

PROYECTO IX
#include <iostream> #include<iomanip> #include<conio.h> #include<string.h> using namespace System; using namespace std; void main() { float BON, DES, SNETO, SUMANETO=0, SUMABON=0, SUMADES=0, MENORSALARIO=9999999; char NOMEMPMG[50]; int E; cout<<"\n Digite el numero de empleados? "; cin>>E; float SMMLV; cout<<"\n Digite el SMMLV: cin>>SMMLV; "<<"\n";

for(int Y=E; Y>=1; Y=Y-1) { char NOMBRE[50]; cout<<"\n Por favor digite el nombre del empleado numero: "<<Y; cin.ignore(); cin.getline(NOMBRE, 50 ); float SALARIO; cout<<"\n Digite el salario de: cin>>SALARIO; "<<NOMBRE;"\n";

if(SALARIO>2*SMMLV) { DES=(SALARIO*4.33)/100; BON=0; } else { if(SALARIO>=SMMLV) { BON=SALARIO/5; DES=0; } else { BON=(SALARIO*2)/100; DES=(SALARIO*1.33)/100; } } SNETO=SALARIO+BON-DES; SUMANETO=SUMANETO+SNETO; SUMABON=SUMABON+BON; SUMADES=SUMADES+DES; cout<<"\n a"<<NOMBRE<<" Se le paga $ "<<SNETO;

cout<<"\n Descuento de $ "<<DES; cout<<"\n Bonificacion de $ "<<BON; getch(); if(SNETO<MENORSALARIO) { MENORSALARIO=SNETO; strcpy(NOMEMPMG,NOMBRE); } else { } } cout<<"\n El seor (a): "<<NOMEMPMG<<" Es el peor pago de la empresa y gana $ "<<MENORSALARIO; cout<<" Por favor ayudemoslo con una rifa"; cout<<"\n La nomina total de la empresa asciende a una suma de $ "<<SUMANETO; cout<<"\n El total de bonificaciones asciende a $ "<<SUMABON; cout<<"\n El total de descuentos asciende a $ "<<SUMADES; getch(); }

PROYECTO X
/* NOTAS _________________________________________________________________________ _______________________________________ 3.1 3.5 5 4.8 3.6 2.7 NOTAS[0] NOTAS[4] MATRIX 50000000 100000000 756894 562347 NOTAS[1] NOTAS[5] NOTAS[2] NOTAS[3]

3562400 7500500 1265894 2365456

1245678 5200000 6750200 5632144

2365448 3564895 2365498 2365895

Numero de filas=4 Numero de columnas=4 MATRIX [2][2]=6750200 MATRIX [2][1]=1265894 MATIRX[3][3]=2365895 ARREGLO: Conjunto de datos que tiene el mismo tipo, tienen caracteristicas similares.

TIPOS DE ARREGLOS: UNIDIMENSIONALES (vectores), BIDIRECCIONALES (matrices) TRIDIMENSIONALES (CUBOS),.. OPERACIONES CON ARREGLOS: 1. Crear el arreglo (Apartar las posiciones de Memoria) ej: float NOTAS[6]; double MATRIX[4][4];char EST[5][30]; 2. Ingresar datos al arreglo int NP; cout<<"\n Digite el numero de posiciones del arreglo : "; cin>>NP; for (int IND=0; IND<=NP-1; IND++) { cout<<"\n NOTAS["<<IND+1<<"]= "; cin>>NOTAS[IND]; } 3. Consultar la informacin del arreglo for(int X=NP-1; X>=0; X--) { cout<<"\n NOTAS["<<X+1<<"] ="<<NOTAS[X]; } 4.Actualizar informacin 5.Eliminar informacin 6.Sumar los datos del arreglo 7.Hallar el mayor, el menor, el datos central... 8. Ordenar ascendente o descendentemente 9. Realizar operaciones con otros arreglos etc . . . */ #include <iostream> #include <iomanip> #include <conio.h> #include <math.h> using namespace System; using namespace std; void main() { int NP, NOTAS; cout<<"\n Digite el numero de posiciones del arreglo : cin>>NP; for (int IND=0; IND<=NP-1; IND++) { cout<<"\n NOTAS["<<IND+1<<"]= "; cin>>NOTAS[IND]; } for(int X=NP-1; X>=0; X--) { cout<<"\n NOTAS["<<X+1<<"] ="<<NOTAS[X]; } }

";

PROYECTO XI
/*Realizar un programa que permita ingresar datos a dos arreglos llamados EMPLEADOS y SALARIOS: Suponer que la empresa tiene E empleados. Ordenar los arreglos en orden decendente del mayor al menor salario. Calcular el procentaje de empleados que gana mas del promedio de sueldos. Calcular el porcentaje de empleados que ganan menos o igual al promedio de sueldos. imprimir: los arreglos ordenados y los calculos realizados. */ #include <iostream> #include<iomanip> #include<conio.h> #include<string.h> using namespace System; using namespace std; void main() { int E; cout<<"\n Digite el numero de empleados de la empresa: 15) "; cin>>E; char EMPLEADOS [15][30]; float SALARIOS[15]; int y=0; while(y<=E-1) { cout<<"\n Digite el nombre para el empleado cin.ignore(); // evita retorno de carro cin.getline(EMPLEADOS[y], 30);

(m\xA0ximo

"<<y+1<<"

";

cout<<"\n Digite el salario de "<<EMPLEADOS[y]<<"\n"; cin>>SALARIOS[y]; y++; } //ORDENAMIENTO DEL VECTOR for(int A=0; A<=E-2; A++)//Indice para los datos que se comparan contra .los dems datos { for(int B=A+1; B<=E-1; B++)//Indice para los datos contra se compara { if(SALARIOS[A]<SALARIOS[B]) { float TEMPORAL=SALARIOS[B]; SALARIOS[B]=SALARIOS[A]; SALARIOS[A]=TEMPORAL; char TEMP[15][30]; strcpy(TEMP,EMPLEADOS[B]); strcpy(EMPLEADOS[B], EMPLEADOS[A]; strcpy(EMPLEADOS[A], TEMP;

} } } for(int g=0; g<=E-1; g++) { cout<<"\n t"<<EMPLEADOS[g]<<" gana $ "<<SALARIO[g]; } getch(); }

PROYECTO XIII
/* Realizar un programa que permita crear un vector llamado DATOS de K posiciones. se pide: 1. Ingresar datos al arreglo DATOS 2. Calcular e imprimir la suma de los datos Pares del arreglo DATOS 3. Calcular el promedio de elos datos que estan en POSICIONES PARES (para el usuario) del arreglo DATOS 4. Hallar el mayor y el menor dato del arreglo DATOS 5. Imprimir todos los calculos y hallasgos */ #include<iostream> #include<iomanip> #include<conio.h> using namespace System; using namespace std; #define NP 18 void main() { int K; cout<<"\nCu\xA0ntos datos va a procesar\?\t";// \xA0 es para sacar le tilde a "'" cin>>K; int DATOS[NP]; cout<<"\n\n"; int i=0; while (i<=K-1) { cout<<"\nDATO["<<i+1<<"] = "; cin>>DATOS[i]; i++; } int y=0; float SUMADATOSPAR=0; float SUMAPOSPAR=0; float POSPAR =0; int MAYOR=DATOS[0], MENOR=DATOS[0]; do {

if (DATOS[y]%2==0) { SUMADATOSPAR=SUMADATOSPAR+DATOS[y]; } if(y%2!=0) { SUMAPOSPAR+=DATOS[y]; POSPAR++; } if (DATOS[y]>MAYOR) { MAYOR=DATOS[y]; } if(DATOS[y]<MENOR) { MENOR=DATOS[y]; } y++; } while (y<=K-1); cout<<"\n\n\n"; cout<<"\n\nLa suma de los datos pares es "<<SUMADATOSPAR; cout<<"\n\nEl promedio de los datos en posiciones pares es "<<SUMAPOSPAR/POSPAR; cout<<"\n\nEL menor dato es\t "<<MENOR; cout<<"\n\nEL mayor dato es\t "<<MAYOR; getch(); }

PROYECTO IXV /* Para el ordenamiento de vectores se utilizo el metodo de ORDENAMIENTO HEAP SORT en cual exije que el arreglo se inicialice en 1 y no en cero*/ #include<iostream> #include<iomanip> #include<conio.h> using namespace System; using namespace std; #define T 100 void main() { int S; cout<<"\nCu\xA0ntos datos va a procesar\?\t"; cin>>S; int K[T]; cout<<"\n\n\nPor favor ingrese los datos\n"; getch(); int i=1; while (i<=S) { cout<<"\nDATO["<<i<<"] = "; cin>>K[i]; i++; } float SDPPP=0, SDPPI=0, SDIPP=0, SDIPI=0; int x=1; while(x<=S) { if(K[x]%2==0) { if(x%2!=0) { SDPPI+=K[x]; } else { SDPPP+=K[x]; } } else { if(x%2!=0) { SDIPI+=K[x]; } else { SDIPP+=K[x]; } } x++; } cout<<"\n\n\nLa suma de los datos pares que est\xA0n en posiciones pares es:\t\t"<<SDPPP;

cout<<"\n\nLa suma de los datos pares que est\xA0n en posiciones impares es:\t\t"<<SDPPI; cout<<"\n\nLa suma de los datos impares que est\xA0n en posiciones pares es:\t\t"<<SDIPP; cout<<"\n\nLa suma de los datos impares que est\xA0n en posiciones impares es:\t"<<SDIPI; getch(); int item, j ,temp; for(int k=S;k>0;k--) { for(i=1;i<=k;i++) { item=K[i]; j=i/2; while(j>0 && K[j]<item) { K[i]=K[j]; i=j; j=j/2; } K[i]=item; } temp=K[1]; K[1]=K[k]; K[k]=temp; } cout<<"\n\n\nEl orden de los datos en foma descendente es:\n\n\n"; for(int i=S;i>0;i--) { cout<<"\t"<<K[i]; } getch(); }

PROYECTO XV

/* Realizar un programa que permita ingresar..... suponer que la empreza tienen E empleaados ordemnar los salarios en orden descendentes calcular el prcentaje de enpleados que ganan mas o igua del promedio y menos del promedio imprimir los calculos */ #include<iostream> #include<iomanip> #include<conio.h> #include<string.h> using namespace System; using namespace std; void main() {

char EMPLEADOS[50][100]; float SALARIOS[50]; int E; cout<<"\n\nDigite el numero de empleados\t"; cin>>E; int t=0; while(t<E) { cout<<"\n\n\nDigite el nombre del empleado "<<t+1; cin.ignore();// evita el retorno de carro cin.getline(EMPLEADOS[t],30); cout<<"\n\nDigite el salario de "<<EMPLEADOS[t]; cin>>SALARIOS[t]; t++; } // ORDENAMIENTOS DE VECTOR //POR SELECCION /*int temp; int H; for (int p=0; p<E; p++) { temp=SALARIOS[p]; for (int n=p; n<E; n++) { if(SALARIOS[n]<temp) { temp=SALARIOS[n]; H=n; } } SALARIOS[H]=SALARIOS[p]; SALARIOS[p]=temp; cout<<"\n"<<SALARIOS[p]; } */ //POR BURBUJA for(int A=0; A<=E-2; A++) { for (int B=A+1; B<=E-1; B++) { if(SALARIOS[A]<SALARIOS[B]) { float TEMPORAL=SALARIOS[B]; SALARIOS[B]=SALARIOS[A]; SALARIOS[A]=TEMPORAL; char temp[30]; strcpy(temp,EMPLEADOS[B]); strcpy(EMPLEADOS[B],EMPLEADOS[A]); strcpy(EMPLEADOS[A],TEMP); } } } for (int g=0; g<E; g++) { cout<<"\n\t"<<EMPLEADOS[g]<<" gana $"<<SALARIOS[g]; } getch();

getch(); }

PROYECTO XVI

/* Realizar un programa que permita ingresar datos a una MATRIX A de A filas y B columnas ingresar los datos por filas de la primera a la ultima recorriendo cada fila de izquierda a derecha. Sumar los datos de la matrix X y hallar su promedio */ #include<iostream> #include<iomanip> #include<conio.h> #include<math.h> #include<string.h> #define l 50 using namespace System; using namespace std; void main() { int X[l][l]; cout<<"\nCuantas filas tiene la matriz ?\t\t"; int A, B; cin>>A; cout<<"\nCuantas columnas tiene la matriz ?\t"; cin>>B; cout<<"\n\n\n\n"; int sumadesumas=0; for(int y=0; y<A; y++) { int suma=0; for(int z=0; z<B; z++) { cout<<"\nPor favor ingrese el dato A["<<y+1<<"]["<<z+1<<"]\t"; cin>>X[y][z]; suma+=X[y][z]; } cout<<"\n\nLa suma de la fila ["<<y+1<<"] es:\t"<<suma; cout<<"\n\n\n"; sumadesumas+=suma; } cout<<"\n\n\nLa suma de los datos de la matriz es:\t"<<sumadesumas; cout<<"\n\nEl promedio de los datos de la matriz es:\t"<<(sumadesumas)/(A*B); getch(); }

PROYECTO XVII

/*Realizar un programa que para una cadena de (NA) almacenes llamada ABC que vende (NP) productos calcule: 1. El total de ventas de cada almacn. 2. El total de ventas de cada producto. 3. El promedio de ventas de la cadena de almacenes.*/ #include<iostream> #include<iomanip> #include<conio.h> //#include<math.h>

//#include<string.h> #define l 50 using namespace System; using namespace std; void main() { int NA, NP; float MVM[l][l]; float VA[l]; float PROD[100]; Console::Clear(); cout<<"\n CADENA DE ALMACENES ABC"; cout<<"\n\n Digite el No de almecenes de la empreza ABC: \t"; cin>>NA; cout<<"\n\n Digite el numero de productos que vende la empreza ABC:\t"; cin>> NP; cout<<"\n\n\n DATOS DE VENTAS MENSUALES\n\n"; cout<<"\n Ingrese el valor de la venta por almacenes\n\n "; getch (); float SVAT=0; for (int a=0; a<=NA-1; a++) { float SVA=0; for(int b=0; b<=NP-1; b++) { cout<<"\n\n Ventas en el almacen "<<a+1<<" Producto No"<<b+1<<"\t$"; cin>>MVM[a][b]; SVA+=MVM[a][b]; } VA[a]=SVA; SVAT+=VA[a]; cout<<"\n\n\n El almacen "<<a+1<<" tuvo un total de ventas de\t$"<<VA[a]; getch (); cout<<"\n\n\b____________________________________________________________ ____________________"; } getch (); for (int d=0; d<=NP-1; d++) { float SUMAP=0; for (int e=0; e<=NA-1; e++) { SUMAP+=MVM [e][d]; } PROD[d]=SUMAP; cout<<"\n\n Del Producto: "<<d+1<<" se vendio en total: "<<PROD[d]; } cout<<"\n\n\n El promedio de ventas de los almacenes de la empreza ABC es de\t$"<<SVAT/NA; getch (); }

PROYECTO XVIII

/*Realizar un programa que permita ingresar datos a una matriz llamada NOTAS de A Filas y M columnas. Cada fila de la matriz representa un alumno y cada columna representa una materia que cursa cada alumno. En un vector llamdado ALUMNOS se almacenaran los nombres de los alumnos y en un vector llamado MATERIAS se almacenaran los nombres de las asignaturas cursadas por cada alumno. (ver hoja de excel) Calcular el promedio de notas de cada alumno y el resultado almacenarlo en un vector llamado PROMEST Calcular el promedio de notas de cada materia y el resultado almacenarlo en un vector llamado PROMASI Imprimir el nombre del alumno mas sobresaliente junto con su promedio definitivo. Imprimir el nombre de la materia cuyo promedio fu el mas bajo y cuanto fu. PROMASI Imprimir el nombre del alumno mas sobresaliente junto con su promedio definitivo. Imprimir el nombre de la materia cuyo promedio fu el mas bajo y cuanto fu.*/ #include<iostream> #include<iomanip> #include<conio.h> //#include<math.h> //#include<string.h> #define l 50 using namespace System; using namespace std; void main() { int A, M; float NOTAS[l][l]; char ALUMNOS[20][l];

char MATERIAS[20][l]; float PROMEST[l]; float PROMASI[l]; Console::Clear(); cout<<"\n\n Por favor ingrese el numero de estudiantes a procesar: \t"; cin>>A; cout<<"\n\n Por favor digite la cantida de matrias de los estudiantes:\t"; cin>> M; cout<<"\n\n\n Materias estudiantes y notas:"; getch (); int r=0; while(r<M) { cout<<"\n\n Por vafor digite el nombre de la materia: "<<r+1<<"\t"; cin.ignore(); cin.getline(MATERIAS[r],20); r++; } for (int a=0; a<=A-1; a++) { cout<<"\n\n\n\n Por favor ingresar el nombre del estudiante "<<a+1<<"\n "; cin.ignore(); cin.getline(ALUMNOS[a], 20); float SUMANOTAS=0; for(int b=0; b<=M-1; b++) { cin.ignore(); cout<<"\n\n Por vafor digite la nota del estudiante "<<ALUMNOS[a]<<"\n"; cout<<"en la materia \""<<MATERIAS[b]<<"\"\t"; cin>>NOTAS[a][b]; SUMANOTAS+=NOTAS[a][b]; } PROMEST[a]=SUMANOTAS/M; cout<<"\n\n\n El promedio del estudiante "<<ALUMNOS[a]<<" es: "<<PROMEST[a]; getch (); cout<<"\n\n\b____________________________________________________________ ____________________"; } getch (); for (int d=0; d<=M-1; d++) { float SUMAMATERIAS=0; for (int e=0; e<=A-1; e++) { SUMAMATERIAS+=NOTAS[e][d]; } PROMASI[d]=SUMAMATERIAS/A; cout<<"\n\n EL promedio de la materia \""<<MATERIAS[d]<<"\" es de: "<<PROMASI[d]; getch (); } float nemor=PROMASI[0]; int v; for (int o=0; o<M; o++)

{ if(PROMASI[o]<nemor) { nemor=PROMASI[o]; v=o; } } float mayor=PROMEST[0]; int q; for (int w=0; w<A; w++) { if(PROMEST[w]>nemor) { mayor=PROMEST[w]; q=w; } } cout<<"\n\n\nEL alumno mas sobresaliente es "<<ALUMNOS[q]<<" con un promedio de "<<mayor; cout<<"\n\n\n La materia con promedio mas baja fue "<<MATERIAS[v]<<" con un promedio de "<<nemor; getch (); } PROYECTO IXX

/*Realizar el programa que indica el profesor para recordar lo visto anterior mente*/ #include <iostream> #include <iomanip> #include <conio.h> #define j 6 using namespace System; using namespace std; void main() { // Declaramos arreglos int X[j], Y[j], Z[j]; //Ingresar la cantidad de datos a los arreglos X e Y cout<<"\n Digite cuantos datos desea ingreasar (max 6) : "; int P; cin>>P; //Ingresar datos a los arreglos X e Y for (int ind=P-1; ind>=0; ind--) { cout<<"\n X["<<ind+1<<"] =\t"; cin>>X[ind]; cout<<"\n Y["<<ind+1<<"] =\t"; cin>>Y[ind]; cout<<"\n"; } //Procesar los datos y realizar las las operasiones del vector Z int Q=P-1; for (int r=0; r<=P-1; r++)

{ Z[r]=X[r]*Y[Q]; Q--; } int W[j]; int s=P-1; int t=0; while(t<P) { W[t]=X[t]+Y[s]+Z[t]; t++; s--; } //Salida de informacion cout<<"\n\n"; for (int k=0; k<=P-1; k++) { cout<<"\n"<<X[k]<<"\t"<<Y[k]<<"\t"<<Z[k]<<"\t"<<W[k]; } getch(); }

PROYECTO XX
/*Realizar una matrix H de r filas y t columnas. De igual manera, ingresar datos a un vector K de r posiciones. Crer un vector w de t posiciones el cual dede contener la operacion:*/ #include<iostream> #include<iomanip> #include<conio.h> using namespace System; using namespace std; void main () { // Paso uno: Apartar los espacios en memoria (declarar arreglos) long float H[4][3], K[4], W[3]; // Paso dos: Permitir que el usuario digite el numero de posiciones en la matriz cout<<"\n Digite el orden de la matriz : Maximo 4 filas y 3 columnas \n"; int r,t; cin>>r; cout<<" X \n"; cin>>t; // Paso tres: Ingresar datos a la matriz H y al vector K cout<<"\nIngresar datos a la matriz H y al vector K\n\n"; for (int i=0; i<=r-1; i++ ) { for(int j=0; j<=t-1; j++) { cout<<"\n H["<<i+1<<"]["<<j+1<<"] = "; cin>>H[i][j]; } cout<<"\n K["<<i+1<<"] = "; cin>>K[i]; } // Paso cuatro: Crear el vector w con la operacion respectiva for (int z=0; z<=t-1; z++) { for (int =0; <=r-1; ++) { W[z]+=K[]*H[][z]; } } //Paso cinco: Imprimir arreglos cout<<"\n\n\n Matirz H\n\n"; for(int q=0; q<=r-1; q++) { cout<<"\n\n"; for(int e=0; e<=t-1; e++) { cout<<"\t"<<H[q][e]; } cout<<"\t\t"<<K[q]; } cout<<"\n\n Vector W\n\n"; for (int u=0; u<=t-1; u++) { cout<<"\t\t"<<W[u]; } getch();

PROYECTO XXI

/*Realizar un programa que permita ingresar los datos a dos vectores F y G de t y u posiciones (t+u=par) respectivamente. *Crear un vector H con los elementos de F y G. *Crear un vector I con datos que estan en pociciones pares (para el usuario) de H. *Crear un vector J con datos que estan en posiciones impares (para el usuario) de H. *Crear un vector K con la multiplicacin cruzada de I y J empezando con la ultima posicion de I y la primera de J. Imprimir todos los arreglos.*/ #include<iostream> #include<iomanip> #include<conio.h> using namespace System; using namespace std; void main() { float F[20], G[20], H[20], I[20], J[20], K[20]; int T, U; do { cout<<"\n Por favor ingrese el numero de elementos que tiene cada vector \n (F, G; respectivamente). Tenga en cuenta que la suma de \n las cantidades de elementos sea par: "; cout<<"\n\n vector F: "; cin>>T; cout<<"\n Vector G: "; cin>>U; } while ((T+U)%2!=0); //Se ingresan datos ( en este caso utilizando mientras que) cout<<"\n"; int f=0; while (f<=T-1) { cout<<" F["<<f+1<<"]: "; cin>>F[f]; f++; } //Ingresar datos al vector G (empleando hacer mientras) cout<<"\n"; int g=0; do { cout<<" G["<<g+1<<"]: "; cin>>G[g]; g++; } while (g<=U-1); //Crear el vector H

int i; for (i=0; i<=T-1; i++) { H[i]=F[i]; } int r=0; for (int j=i; j<=i+U-1; j++) { H[j]=G[r]; r++; } //Vector I (datos en las posiciones pares de H) y el vector J (datos en las posiciones impares de H) int y=0, z=0; for (int h=0; h<=T+U-1; h++) { if (h%2!=0) { I[y]=H[h]; y++; } else { J[z]=H[h]; z++; } } //Impresion del arreglo H cout<<"\n\n Vector H"; for (int w=0; w<=T+U-1; w++) { cout<<"\n "<<H[w]; } //Imprimir I y J cout<<"\n\n Vector I"; for (int t=0; t<=y-1; t++) { cout<<"\n"<<I[t]; } cout<<"\n\n Vector J"; for (int u=0; u<=y-1; u++) { cout<<"\n"<<J[u]; } // Crear el vector K multiplicar cruzado con un ciclo while int q=y-1; int o=o; while (q>=0) { K[o]=I[q]*J[o]; o++; q--; } //Imprimir el vector K cout<<"\n\n Vector K\n"; for (int v=0; v<=y-1; v++) {

cout<<"\nK["<<v+1<<"]=\t"<<K[v]; } getch(); }