Anda di halaman 1dari 40

Codificacin en Borland C++ #include<conio>

Explicacin

Como se habrn podido dar cuenta las secuencias son rdenes que se le dan al monitor, archivos o a la impresora. Las #include<iostream> secuencias que se han nombrado se incrustan en un flujo de datos. De ahora en int main() adelante usaremos constantemente las secuencias en nuestros programas. Creo yo { que ms explicacin de no puede haber. Para no desperdiciar espacio voy a explicar cout<<"\n\tSECUENCIAS DE algunas cosas por aqu. Anteriormente ESCAPE\n"; hemos visto a endl que incrustado en el flujo de datos abiertos por cout realiza el cout<<"\t--------------------\n"; mismo trabajo que \n. Esto quiere decir que cout<<" \\n: Mueve el cursor al inicio del se puede usar indistintamente ambos. Ya estamos viendo muy a menudo la palabra sgte renglon\n"; return al final de nuestro cdigo. Esta es una palabra clave de Borland C++ cout<<" Presione una tecla para ver el heredado de C++. Cuando nosotros efecto"; escribimos la instruccin: return 10; por poner un ejemplo le decimos al compilador getch();cout<<"\n";getch(); que tome el valor 10 y lo almacene en cout<<"\n \\r: Mueve el cursor al inicio del algn lugar de la memoria. Este valor ser llamado cada vez que se invoque a una renglon actual\n"; funcin. Ms adelante veremos como aprovechar este valor que se almacena en cout<<" Presione una tecla para ver el algn lugar de la memoria. Voy efecto"; adelantarles un poco de informacin con respecto a las funciones. getch();cout<<"\r";getch(); cout<<"\n\n \\t: Mueve el cursor una distancia a la derecha\n"; cout<<" Presione una tecla para ver el efecto"; Las funciones son un tema que se va a tratar ms adelante. Toda funcin diseada por el usuario tendr una estructura o prototipo.

La sintaxis para declararar funciones es: tipoDeDato nombreDeLaFuncin getch();cout<<"\t";getch(); (argumentos); Ejemplo: int Suma(int a, int b); En este ejemplo se declarado una cout<<"\n\n \\a: Enciende un pitido del funcin. Esta funcin devuelve un valor sonido del sistema\n"; entero. El nombre de la funcin es Suma. Los parmetros o argumentos que recibe cout<<" Presione una tecla para ver el son dos; a y b, ambos de tipo entero. Ahora efecto"; dejamos de lado lo que son las funciones para hablar un poco del lenguaje Borland getch();cout<<"\a";getch(); C++. Algunos pueden estar dudando de la cout<<"\n\n \\\': Muestra un apostrofe en la potencia del lenguaje y estar pensando que hasta ahora no han aprendido nada. Deben pantalla\n"; considerar que ahora estamos desarrollando

cout<<" Presione una tecla para ver el efecto";

aplicaciones para el sistema operativo MSDOS o plataforma similar. En este tipo de aplicaciones no es muy fcil mostrar palabras tildadas en la consola como ya se getch();cout<<" \'";getch(); han dado cuenta. S estn preguntando cout<<"\n\n \\\": Muestra una comilla en la cuando vamos a empezar a desarrollar juegos y todo lo dems, entonces debern pantalla\n"; ponerse las pilas para poder avanzar rpidamente en su aprendizaje del lenguaje cout<<" Presione una tecla para ver el Borland C++ con el paradigma de efecto"; programacin: Programacin Estructurada (PE) que es lo que estamos haciendo getch();cout<<" \"";getch(); actualmente. cout<<"\n\n \\\\: Muestra una barra invertida en la pantalla\n"; cout<<" Presione una tecla para ver el efecto"; getch();cout<<" \\";getch(); cout<<"\n\n Press any key to go out"; getch();return 800; } Operadores aritmticos En Borland C++ se definen 5 operadores bsicos que nos servirn para construir operaciones ms complejas. Operador - (menos) + (mas) * (por) / (divisin) % (mdulo) Accin Este el smbolo menos y se usar para restar nmeros de cualquier tipo. Este smbolo se usar para sumar dos nmeros de cualquier tipo. Este smbolo se usar para multiplicar dos nmeros de cualquier tipo. Este smbolo se usar para dividir dos nmeros de cualquier tipo. Este smbolo se usar para hallar el resto de la divisin de dos nmeros enteros.

Las reglas de agrupacin y jerarqua de los operandos es como nosotros acostumbramos. Por ejemplo: En la operacin 4+6x7 el compilador primero multiplicar y luego sumar,

Programa 8 Desarrollar un programa que opere 2 nmeros y obtenga los resultados sgtes: resta, suma, producto, cociente y el resto de dividir el primer nmero con el segundo. Codificacin en Borland C++ #include<iostream> #include<conio> int main(int a,int b) { cout<<"\n\tBORLAND C's BASIC OPERATIONS\n"; cout<<"\t----------------------------\n"; cout<<"\nIngrese numero: ";cin>>a; cout<<"Ingrese otro numero: ";cin>>b; cout<<"\nLa resta es: "<<(a-b)<<endl; cout<<"La suma es: "<<(a+b)<<endl; cout<<"El producto es: "<<(a*b)<<endl; cout<<"La division es: "<<(a/b)<<endl; cout<<"El resto es: "<<(a%b)<<endl; cout<<"\nPress a key to finalize\n"; getch(); return 36; } Para poder hacer algo, primero debemos tener una necesidad. En nuestro campo (informtica) tambin ser as. No podemos poder desarrollar ni un solo programa nuevo sino no tenemos necesidad alguna por algn software. Como ya sabemos, "programar" es encontrar una solucin adecuada y ptima a un problema. Las principales caractersticas de un programa son: tamao (medido en mltiplos de un byte), estabilidad o solidez (el programa no se "cuelga") y versatilidad o eficacia (el programa es muy bueno en lo que hace). Estas caractersticas son las que harn exitoso a nuestros programas. La relacin entre estas caractersticas es: Explicacin La novedad en este cdigo fuente es el haber declarado dos varianbles; a y b en la zona de argumentos de la funcin main y no en la el cuerpo del mismo. Las variables declaradas son de tipo int por que el operador mdulo (%) solo se aplica a los nmeros de tipo int (entero). Si nos vamos a la instruccin: cout<<"La resta es: "<<(ab); podemos notar como hemos incrustado a travs del flujo el valor resultante de restar la variable a con b. Lo mismo hemos hecho con todos los dems resultados. Podramos haber declarado una variable c de tipo int con la intencin de hacer: c=a-b; para luego mostrarlo en pantalla con la instruccin: cout<<"La resta es: "<<c; Hacer esto sin embargo por ahora no tiene mucha importancia ya que dicho valor solamente servira para mostrarlo en pantalla.

Esta la relacin perfecta para cualquier programa. Osea menor tamao, alta solidez y eficacia. Por que bajo tamao? La respuesta a eso est la ganancia de velocidad a la hora de cargarse en la memoria el programa. Las otras dos caractersticas se responda solas verdad?. Para implementar estas caractersticas en nuestros programas ser necesario disciplinarmos un poco y volvernos muy analistas. Un programa refleja en algo el carcter del programador. Ahora hablaremos un poco de las variables. Las variables pueden clasificarse en variables de entrada y/o salida. Es muy importante tener la capacidad de anticipar (en el mejor de los casos) las variables que podamos necesitar para poder elaborar nuestros programas. Tambin es til utilizar identificar el tipo de la variable. Ms adelante veremos con ms detalle las ventajas de usar variables de un tipo con respecto a otro. Recordando... En algebra estamos acostumbrados a trabajar con ecuaciones verdad? Observe la ecuacin siguiente: X=4 Qu podemos deducir? Lo podemos deducir es que la variable x tiene un valor igual a 4. Osea que s sumamos X+8 el resultado ser 12 cierto?. Ahora, tambin estamos acostumbrados a esto: 2Y=Y+6 verdad? Si resolvemos la ecuacin hallaramos que la variable Y tiene un valor igual 6. Ahora, Qu pasa s propongo la ecuacin: Z=Z+6? La respuesta a esto en algebra no tiene solucin o en todo caso la solucin es el conjunto vaco. Cuando programemos usaremos la expresin Z=Z+10 (por poner un ejemplo) muchas veces con la finalidad de ahorrar la declaracin de variables en exceso. Ahora voy a proponer la instruccin sgte: A=10; A=A+5; Como entendemos esto? Primeramente hay que entender la computadora no sabe resolver ecuaciones. En la instruccin: a=10; le decimos al compilador que almacena el valor 10 en la variable A. En la segunda instruccin le decimos al compilador que almacene en la variable A la suma de del valor de A con 5. En otras palabras la instruccin: A=A+5; es lo mismo que escribir: A=10+5; Programa 9 Elabore un programa que muestre todo los submltiplos de una cantidad de dinero dado.

Las monedas existentes son: 1 sol, 2 soles y 5 soles Los billetes existentes son: 10 soles, 20 soles, 50 soles, 100 soles y 200 soles Ejemplo: S el dinero fuese 45 soles entonces el programa deber mostrar que existen 2 billetes de 20, 2 monedas de 2 soles y 1 moneda de un sol. Codificacin en Borland C++ #include<conio> Explicacin

En este programa solo hemos declarado la variable dinero. Como ya se habr podido dar cuenta este es una manera de poder #include<iostream> desarrollar el programa solicitado. Tal vez usted tenga otra idea diferente de como float main() desarrollar el programa. S ese fuera el caso entonces usted deber compararlos y { analizarlos para aprovechar lo mejor de ambos cdigos. El valor del dinero que es int dinero; ingresado por el usuario se guarda en la variable dinero. Lo primero que hice fue cout<<"\n\tSUBMULTIPLOS DE MI calcular cuantos billetas existen de 200. DINERO\n"; Esto se logra en la instruccin: cout<<"Hay "<<dinero/200<<"..."; En la instruccin: cout<<"\t-------------------------\n"; dinero=dinero%200; lo que se hace es guardar el resto de dividir el valor de la cout<<"\nCantidad de dinero: variable dinero con 200. Esto es necesario ";cin>>dinero; puesto que se desea que el programa halle los submltiplos del dinero en forma cout<<"\nCalculando submultiplos...\n"; decreciente. Una vez hecho esto la variable cout<<"\nHay "<<dinero/200<<" billetes dinero ahora almacena un nuevo valor que ser interpretado como dinero restante que de S/.200\n"; no es mltiplo de 200. Como esta cantidad no es mltiplo de 200 entonces tendr que dinero=dinero%200; serlo de 100, de no serlo se ver reflejado cout<<"Hay "<<dinero/100<<" billetes de en el resultado de dividirlo por 100. S este fuera el caso el resultado de dividir por 100 S/.100\n"; sera 0. En la instruccin siguiente se logra esto: cout<<"Hay "<<dinero/100<<"..."; dinero=dinero%100; Como puede notar se ha seguido el mismo paso para poder hallar los submltiplos cout<<"Hay "<<dinero/50<<" billetes de menores. Debe recordar que el operador % S/.50\n"; (mdulo) no se aplica a nmeros enteros. Adems tambin debe notar que cuando se dinero=dinero%50; divide un nmero de tipo int con otro tambin de tipo int, el resultado es un cout<<"Hay "<<dinero/20<<" billetes de nmero de tipo int. S/.20\n"; dinero=dinero%20; cout<<"Hay "<<dinero/10<<" billetes de Cuando una variable de tipo int se vea en "peligro " de almacenar un decimal este se redonde al menor entero posible. Ejemplo:

S/.10\n"; dinero=dinero%10; cout<<"\nHay "<<dinero/5<<" monedas de S/.5\n"; dinero=dinero%5; cout<<"Hay "<<dinero/2<<" monedas de S/.2\n"; dinero=dinero%2; cout<<"Hay "<<dinero<<" monedas de S/.1\n"; cout<<"\nPress any key to finish\n"; getch();return 19.87; }

int A=13/5; En este caso 13/5 es 2,6. Este valor ser redondeado a 2 por que la variable A es de tipo int (entero).

La funcin miembro getline()


Hasta ahora hemos visto la utilizacin del objeto cin con su acompaante >> (operador de extraccin). Para entender lo que voy a tratar de explicar voy a declar una variable as: char nombre[100]; Como ya saben, esta variable de tipo char ser capz de almacenar 99 caracteres. Ahora voy a escribir otra instruccin: cin>>nombre; En esta instruccin se hace una parada y se empieza a extraer lo que se pulse en el teclado. Suponga que yo escriba: Carlos Torres Torres. Ahora s escribo esta otra instruccin: cout<<nombre; que creen que mostrar en la pantalla? Lo que se mostrar ser tan solo: Carlos y lo dems no se mostrar. Eso es por que el operador >> incrustar todos los caracteres hasta encontrar el primer espacio en blanco o el simbolo \0. Lo dems no ser guardado en la variable. Para poder guardar espacios en blanco se usar la funcin miembro getline(). La sintaxis es: cin.getline(nombreDeLaVariable,tamaoDeLaVariable); Ejemplo: cin.getline(nombre,100); Programa 10 Elabore un programa que registre datos del usuario. Estos datos son al gusto del mismo. Codificacin en Borland C++ Explicacin En el cdigo fuente de este programa se ve

#include<iostream> #include<conio> double main() { char nomApe[200],fechNac[60]; char sex[15]; float est,pes; int eda; cout<<"\n\tREGISTRO DE DATOS\n"; cout<<"\t-----------------\n"; cout<<"Apellidos y Nombres: ";cin.getline(nomApe,200); cout<<"Fecha de nacimiento: ";cin.getline(fechNac,60); cout<<"Sexo: ";cin.getline(sex,15); cout<<"Estatura (metros): ";cin>>est; cout<<"Peso (kilogramos): ";cin>>pes; cout<<"Edad: ";cin>>eda; cout<<"\nMostrando datos del usuario actual...\n"; cout<<"\nApellidos y Nombres: "<<nomApe<<endl; cout<<"Fecha de nacimiento: "<<fechNac<<endl; cout<<"Sexo: "<<sex<<endl; cout<<"Estatura (metros): "<<est<<endl; cout<<"Peso (kilogramos): "<<pes<<endl;

el uso de la funcin miembro getline(). Se le llama funcin miembro por que es una funcin y adems est en el interior de una clase [vase clase en el ANEXO]. Con el uso de cin y su funcin miembro getline() se acabaron los problemas de ingreso de datos a travs del teclado. Sin embargo se debe aclarar que hay un pequeo problemite cuando se usa getline despus de cin. Para explicar este problema voy a escribir 4 instrucciones seguidas. As: int A; ... Instruccin 1 char B[5]; ... Instruccin 2 cin>>A; ... Instruccin 3 cin.getline(B,5); ... Instruccin 4 cout<<"Chau!!!"; ... Instruccin 5 Cuando llegue a la instruccin 3 como ya saben se har un paro para poder ingresar datos a travs del teclado. Cuando ya no se desee ingresar ms datos se presionar la tecla Enter para finalizar. Luego no se har un paro en la instruccin 4 como debera suceder. Esto se debe a que getline capta el ltimo caracter almacenado en el buffer [vase buffer en el ANEXO] de la memoria. Este ltimo caracter viene a ser ms que nada el null (nulo) o smbolo especial \0. Esto hace que se finalice el parado en la instruccin dando como resultado que se efectue la instruccin 5. Para evitar este pequeo error se usar otra funcin miembro llamada ignore(). La sintaxis que usar ser: cin.ignore(); Esto evitar que getline capte el ltimo caracter especial haciendo que trabaje correctamente.

cout<<"Edad: "<<eda<<endl; cout<<"\nPress any key to finish"<<endl; getch();return 12.63; }

Manipulacin y formateo de los datos en la salida por pantalla


Para mejorar el aspecto de los datos en la salida se usarn los manipuladores y formateadores. Estos sern incrustados en el flujo abierto por cout. Manipulador dec hex oct endl ends flush setbase(int n) Descripcin Convierte nmero a base decimal. Convierte nmero a base hexadecimal. Convierte nmero a base octal. Inserta una nueva lnea y limpia el flujo. Inserta un cero nulo (/0) al final de la cadena. Limpia el flujo de salida. Convierte nmero a base n. Este n puede ser 0 (por defecto) o 10 para el decimal, 8 para el octal y 16 para el hexadecimal. Limpia el formato especificado por el indicador f. Establece el formato determinado por el indicador f. Coloca c el campo establecido por setw(). Especifica la cantidad de decimales de un real. Establece un ancho de campo.

resetiosflags(long) setiosflags(long f) setfill(int c) setprecision(int n) setw(int n)

Tabla de indicadores de formato usados por setiosflags Indicador ios::left ios::right ios::scientific Accin Justifica la salida a la izquierda dentro del campo especificado por setw(). Justifica la salida a la derecha dentro del campo especificado por setw(). Muestra nmeros de coma flotante en notacin cientfica.

ios::fixed ios::dec ios::hex ios::oct ios::uppercase ios::showbase ios::showpos ios::showpoint Programa 11

Muestra en formato de punto fijo los nmeros de coma flotante. Formatea (modifica) los nmeros a base 10 Formatea los nmeros a base 16 Formatea los nmeros a base 8 -

Desarrollar un programa que muestre el uso de los manipuladores de Borland C++. Codificacin en Borland C++ #include<iostream> Explicacin

En este programa es necesario el uso de la biblioteca iomanip pues en #include<conio> ella se encuentran los prototipos de las 5 #include<iomanip.h> //Para usar manipuladores de datos funciones; setiosflags(), setw(), setbase(), setfill(), int main() setprecision() y resetiosflags(). Espero que { con este programa sean capaces de entender la int Z=86400; //Variable solo para muestra importancia de dominar el uso de estas herramientas. float W=62.5126; //Variable solo para muestra El efecto de dominar estas herramientas se vern cout<<"\n\tMANIPULACION Y FORMATEO DE reflejadas visualmente en DATOS\n"; los programas que desarrollen. El aspecto de cout<<"\t--------------------------------\n"; sus programas sern ms profesional y el cdigo cout<<setiosflags(ios::left); /*Justifica la salida por la fuente ms sofisticado. Sin izquierda embargo en este programa no se ha mostrado el uso dentro del ancho de campo de setw()*/ de los manipuladores cout<<"\n"<<setw(17)<<"Manipulador"<<"Descripcion\n"; setiosflags() ni de resetiosflags(). Esto es porque hacer esto hara el cout<<setw(18)<<"\nsetw(int n)";cout<<"Establece un cdigo fuente ms extenso campo de ancho n\n"; de lo que es. Sin embargo cout<<"\n"<<setw(17)<<"dec"<<"Convierte numero a base de ahora en adelante los usaremos. Ud. podrn ver

decimal\n"; cout<<"Ejemplo: Z = 0x0"<<hex<<Z<<" en base hexadecimal"; cout<<" a Z = "<<dec<<Z<<" en base decimal\n"; cout<<"\n"<<setw(17)<<"hex"<<"Convierte numero a base hexadecimal\n"; cout<<"Ejemplo: Z = "<<Z<<" en base decimal"; cout<<" a Z = 0x0"<<hex<<Z<<" en base hexadecimal\n"; cout<<"\n"<<setw(17)<<"oct"<<"Convierte numero a base octal\n"; cout<<"Ejemplo: Z = "<<dec<<Z<<" en base decimal"; cout<<" a Z = "<<oct<<Z<<" en base octal\n"; cout<<"\n"<<setw(17)<<"endl"<<"Inserta una nueva linea y limpia el flujo\n"; cout<<"Presione una tecla para ver sus efectos"; getch();cout<<endl;getch(); cout<<"\n"<<setw(17)<<"ends"<<"Inserta un cero nulo (\\0) al final de la cadena\n"; cout<<"Nota: este caracter no es visible\n"; cout<<"Presione una tecla para ver sus efectos"; getch();cout<<ends;getch(); cout<<"\n\n"<<setw(23)<<"flush"<<"Limpia el flujo de salida\n"; cout<<"Presione una tecla para ver sus efectos"; getch();cout<<flush;getch(); cout<<"\n\n"<<setw(23)<<"setbase(int n)"<<"Formatea numero a base n\n"; cout<<"Ejemplo Z = "<<Z<<" en base octal";

su utilizacin en el cdigo fuente de nuestros prximos programas. Hay algunos manipuladores un tanto especiales como por ejemplo el ends, flush y setfill(). El manipulador ends inserta como ya se dijo el smbolo null (\0) al final de la cadena que escribamos. Recuerde que toda cadena debe (no es obligatorio) por razones de efectividad tener al final el null. Antiguamente era necesario insertar manualmente este smbolo. En los lenguajes modernos como Borland C++ esto se hace automticamente. El caracter null no tiene representacin grfica (no es visible). Ahora, qu pasa con el manipulador flush? La verdad es que yo tampoco s cual es su utilizacin prctica. Cuando lo sepa les digo para que sirve. El manipulador setfill(int n) inserta el caracter de cdigo ASCII n [vase ASCII en el ANEXO] en el campo establecido por setw(). Ms explicacin creo que ya no es necesario puesto que usted est experimentando con el cdigo fuente que se le est dando as que no hay problema. Lamentablemente no puede dejar vaco esta parte de la tabla. Es por eso que vamos a ser una pequeo reflexin filosfica. Seguramente usted estimado lector busca el tan ansiado ttulo de hacker (en el mejor de los

cout<<" a Z = "<<setbase(10)<<Z<<" en base decimal\n"; cout<<"\n"<<setw(23)<<"setfill(int c)"<<"Coloca c en el campo de setw()\n"; cout<<"Ejemplo: "<<setfill(2)<<setw(10)<<"HOLA"; cout<<"\n\n"<<setw(23)<<"setprecision(int n)"<<"Determina la precision de punto flotante\n"; cout<<"Ejemplo: INICIO W = "<<W<<" LUEGO W = "<<setprecision(5)<<W; cout<<"\n\nPress any key to finish\n"; getch();return 1821; }

casos) que le har sentirse bien consigo mismo y sobre todo le dar confianza en todo lo que haga. Seguramente es por eso que se esfuerzo mucho en investigar y experimentar. Con eso puedo adivinar que sus campos preferidos son la informtica y la electrnica. As es no podemos ser completos si ignoramos por completo la parte hardware. Como muchos han dicho es ms fcil aprender experimentando que leyendo. En el caso del ser humano las personas aprenden ms con la prctica que con teora. Lamentablemente en el campo de la informtica solo vamos a poder experimentar con cdigos. En el campo de la electrnica se experimenta con transistores. Qu pasa si vamos acumulando conocimientos tanto informticos como electrnicos? La respuesta a eso es que est naciendo un hombre que puede resolverlo todo (es un decir) o almenos va a tener un mundo de posibilidades ms amplios de visin. Ahora, muchos de ustedes dirn pero aprendar tantas cosas es muy difcil. Eso es absolutamente verdadero pero si siempre continuamos investigando el exito est asegurado. Recuerdo que usted tiene un invencible aliado: La Globalizacin. La globalizacin ha hecho

posible el poder conectarnos de forma indirecta con miles de personas en el mundo. Le recomiendo no buscar respuestas a preguntas simples. Qu son preguntas simples? Las preguntas simples son aquellas sin ninguna importancia. Por ejemplo: encontrar la solucin a una ecuacin de de grado 8. Estas preguntas son simples por que a todo rato en el mundo se est estudiando. En cambio s usted va preguntndose por ah como aprovechar al mximo los conocimientos que posee? entonces eso ya es otra cosa. Ud. es un hombre temible, que sabe lo que est haciendo y sabe el camino que le espera. Para terminar estimado lector quiero decirle que no busque abundante conocimiento sino busque aplicarlos. Los inteligentes buscan un deseo antes, los tontos buscan hacer algo pero no saben que. Bueno!. Estimados lectores, ha llegado la hora de decirles que estn ustedes capacitados para elaborar programas. Ha llegado la hora de hacer un montn de programas!!!

FULL PRCTICA
Programa 12 Desarrolle un programa que halle la suma de los N primeros nmeros naturales. Solucin Lo primero que debemos hacer es entender el problema. S no entendemos el problema deberemos buscar a alguien que s los pueda entender. S despus de buscar no encontramos a alguien que los entienda pasamos al siguiente problema. En un programa

tambin es lo mismo. Lo primero es entender qu es lo que se supone que har el programa? S ya se sabe lo que va a ser el programa entonces ya todo est resuelto. Para poder resolver este problema lo primero que hay que hacer es reconocer los datos que tenemos. S observamos con atencin la parte "los N primeros nmeros naturales" encontramos a N. Quin es N? Este valor se supone ser ingresado por el usuario. Entonces N es una variable de Entrada. Ahora qu hacemos luego de pedir el valor de N? Exacto!, tendremos que encontrar un algoritmo que halle la suma con el dato N. Grficamente lo que piden es esto: 1 + 2 + 3 + ... + N. A continuacin nos ponemos pequeos ejemplos. Qu pasa s N es 3. Lo que nos piden sera: 1 + 2 + 3 que sera igual a 6. Ahora, qu pasa se N fuese 5. En este caso lo se nos pide sera: 1 + 2 + 3 + 4 + 5. Todos sabemos que esta suma la podemos hacer hasta contando con los dedos. Ahora qu pasa s N fuese 100? En este terrible caso nos estara pidiendo sumar: 1 + 2 + 3 + ... + 100 que no lo podramos sumar (es un decir) ni con papel y lpiz y s lo hicisemo demoraramos tanto que olvidaramos hasta casarnos. Nosotros solo hemos tomado solo 3 posibles valores de los infinitos que podra haber tomado N. Entonces tendremos que hallar una frmula que permita representar la suma para cualquier valor de N. Para hallar la frmula (algoritmo) hacemos:

Creo que todos ya conocan la frmula de esta suma y Carl Friedrich Gauss; gran matemtico quien fue su descubridor a los 6 aos de edad.

Codificacin en Borland C++ #include<iostream> #include<conio> void main(int N,int S) { cout<<"\n\tSUMA DE LOS N PRIMEROS NUMEROS NATURALES\n";

Diagrama Nassi / Scheiderman (N/S)

cout<<"\t---------------------------------------\n"; Como ya observaron el uso de diagramas N/S se basa en el uso de cajas o rectngulos cout<<"\n1 + 2 + 3 + ... + N\n"; para representar el algoritmo de un programa. cout<<"\nIngrese un valor para N: ";cin>>N; //ALGORITMO QUE HALLA LA SUMA S=N*(N+1)/2; cout<<"La suma es: "<<S<<endl; cout<<"\nPress any key to finish\n"; getch(); } Programa 13 En la empresa Denver un trabajador cuenta con seguro obligatorio y es libre hacer horas extras. Por el seguro al obrero se le descuenta el 5% de su sueldo. El pago por hora extra es 30% ms que el de una hora normal. Adems la empresa ofrece una bonificacin igual al 30% del ingreso total del trabajador. Con todo esto se pide desarrollar un programa que elabore la boleta de pago de un trabajador.

Codificacin en Borland C++


#include<conio> //Para usar getch() y gotoxy() #include<iostream>

#include<iomanip> //Para usar setw() void main() { char cod[60]; int horE,horN; float pagHorE,pagHorN,sueE,sueN,sueNet; float bonifi,ingTotal,seguro; gotoxy(35,2);cout<<"BOLETA DE PAGO"; gotoxy(35,3);cout<<"--------------"; gotoxy(3,6);cout<<"Codigo del trabajador........: ";cin.getline(cod,60); gotoxy(3,8);cout<<"Horas normales trabajadas....: ";cin>>horN; gotoxy(3,9);cout<<"Pago x hora (S/.)............: ";cin>>pagHorN; gotoxy(40,8);cout<<"Horas extras trabajadas...: ";cin>>horE; gotoxy(1,11);cout<<"-----------------------------------------------------------------------"; sueN=pagHorN*horN; gotoxy(3,13);cout<<"Sueldo Normal...: "<<sueN; pagHorE=pagHorN+(3*pagHorN)/10; sueE=pagHorE*horE; gotoxy(3,14);cout<<"Sueldo Extra....: "<<sueE; ingTotal=sueE+sueN; bonifi=(3*ingTotal)/10; gotoxy(3,15);cout<<"Bonificacion....: "<<bonifi; seguro=sueN/20; gotoxy(40,13);cout<<"Costo del seguro...: "<<seguro; gotoxy(1,17);cout<<"-----------------------------------------------------------------------";

sueNet=ingTotal+bonifi-seguro; gotoxy(24,19);cout<<"SUELDO NETO: "<<sueNet; gotoxy(19,20);cout<<"---------------------------"; gotoxy(3,22);cout<<"Press any key to finish"; getch(); return; //Main no devuelve ningn valor (void) } Qu significa inicializar una variable? Inicializar una variables es la posibilidad de darle un valor a la misma a la hora de declararlo. Ejemplo: int A=8,B=0,C=-60; char SAL[]="Hola",OPC='S',pal[10]={'A','M','O','R'}; Programa 14 A una reunin asisten N personas. Desarrolle un programa que muestre la cantidad de apretones de manos que habr. Solucin Este problemita se resuelve muy fcil. Lo primero como ya dijimos es hallar los datos que nos dan. En este caso ser el nmero de personas que asistirn a la reunin. Dicha cantidad la representaremos con la variable N. Ahora s nos ponemos a pensar y usamos la forma inductiva para resolver el problema... sera bueno plantearnos pequeos casos: Caso 1: Asisten N=1 personas a la reunin. En este caso no hay saludo puesto que para que haya saludo debe haber de por lo menos 2 personas. N=1, #saludo=0, #apretones=0 Caso 2: Asisten N=2 personas a la reunin. En este caso hay 2 saludos y un apretn de mano. N=2, #saludos=2, #apretones=1 Caso 3: Asisten N=3 personas a la reunin. En este caso hay 6 saludos y 3 apretones de mano.

N=3, #saludos=6, #apretones=3 Caso 4: Asisten N=4 personas a la reunin. En este caso hay 12 saludos y 6 apretones de manos. N=4, #saludos=12, #apretones=6 Los resultados anteriores lo hemos determinado por experiencia pero no vamos a estar experimentando para ms casos puesto que sera muy agotador e innecesario. Analizando otra vez tenemos: N = 1 entonces #saludos = 0 = 1 * 0 y #apretones = 0 = #saludos/2 N = 2 entonces #saludos = 2 = 2 * 1 y #apretones = 1 = #saludos/2 N = 3 entonces #saludos = 6 = 3 * 2 y #apretones = 3 = #saludos/2 N = 4 entonces #saludos = 12 = 4 * 3 y #apretones = 6 = #saludos/2 N = m entonces #saludos = m * ( m - 1 ) y #apretones = m * ( m - 1 ) / 2 Otra forma de resolver sera pensando as: Como en la reunin asisten N personas es obvio que cada persona saludar a las restantes personas. Entonces el nmero de saludos (incluidos los repetidos) ser N*(N-1) y como en cada saludo intervienen 2 personas eso quiero decir que s el primero saludo al segundo tambin se est incluyendo el saludo del segundo al primero. #saludos=2#apretones. Despejando tenemos la solucin: #apretones=#saludos/2=N*(N-1)/2. Codificacin en Borland C++ #include<conio> #include<iostream> int main() { int N,apreTot; cout<<"\n\tCUANTOS APRETONES DE MANOS HAY?\n"; cout<<"\t-------------------------------\n"; cout<<"Numero de personas: ";cin>>N; //ALGORITMO PRINCIPAL Diagrama N/S

apreTot=N*(N-1)/2; cout<<"Hay "<<apreTot<<" apretones de manos\n"; cout<<"\nPress any key to finish\n"; getch();return-45; } Programa 15 Se tiene un cuadrado de lado X cuyos puntos medios se han unido para formar otro cuadrado. Ahora, los puntos medios se han vuelto a unir para volver a formar otro cuadrado. La acto de unir los puntos medios de los nuevos cuadrados es contnuo. Desarrolle un programa que calcule la suma de las reas de todos los cuadrados as formados. Solucin Graficando... St: Suma de las reas totales

St = S1+ S2+S3+...+Sn S1: Area del 1er cuadrado S2: Area del 2do cuadrado S3: Area del 3er cuadrado Sn: Area del cuadrado S1=X*X, ahora, para calcular el S2 se necesita conocer la medida de su lado. Para conocer su lado hay observar ... El lado de ese cuadrado viene a ser la hipotenusa del tringulo rojo cuyo catetos miden X/2 y X/2. Ahora falta calcular la hipotenusa. La

hipotenusa lo calcularemos aplicando el teorema de Pitgoras. Que la medida de la hipotenusa sea H. Entonces tenemos: H2 = (X/2)2 + (X/2)2 = X2/4 + X2/4 = X2/2. Despejando ... H=X/2. Ahora toca calcular el S3. Esto se lograr conociendo su lado. En este caso como en la anterior el lado viene a coincidir con la hipotenusa del trangulo amarillo. Llamemos L a la hipotenusa. L2 = (H/2)2 + (H/2)2 = H2/2 = X2/4. S hallamos el rea del cuadrado siguiente comprobaramos que el resultado sera X2/8. Veamos nuevamente los resultados obtenidos: S1=X2 S2=X2/2 S3=X2/4 S4=X2/8 St = X2 + X2/2 + X2/4 + X2/8 + ... St = X2 + 1/2 ( X2 + X2/2 + X2/4 + ... ) St = X2 + 1/2 ( St ) St - St/2 = X2 Por tanto St = 2*X2 Codificacin en Borland C++ #include<iostream> #include<conio> int main() { int X,S; cout<<"\n\tPROGRAMA 15\n"; cout<<"\t-----------\n"; cout<<"Ingrese el lado del cuadrado: ";cin>>X; S=2*X*X; cout<<"La suma de las areas de todo los cuadrados es: "<<S<<endl; cout<<"\nPresione una tecla para Diagrama N/S

finalizar\n";getch(); }

Constantes
Todo el mundo sabe lo que es una constante o almenos sabe interpretarlo verdad?. Una constante es algo que no cambia nunca. Para declarar una constante en Borland C++ se sigue la sintaxis sgte: const tipoDeDato Nombre; Ejemplo: const int pi=3.1415; Programa 16 Desarrolle un programa que calcule el rea de la superfice definido por una circunferencia de radio conocido. Solucin Todos nosotros sabemos por geometra bsica que el crculo es el producto de la constante pi=3,1415 multiplicado por el radio al cuadrado. Definiendo Entrada/Salida (E/S) de datos: Entrada: El radio de la circunferencia (radio) Salida: El crculo (circulo) Codificacin en Borland C++ #include<conio> #include<iostream> void main() //FUNCION PRINCIPAL { //Declaracin de variables y constantes int radio; float circulo; Pseudocdigo Inicio ingresar radio calcular circulo=3.1415*radio*radio mostrar circulo Fin Aqu vemos la utilizacin del pseudocdigo para representar a nuestro programa. Este pseudocdigo bsicamente muestra la estructura (esqueleto) de nuestro

const float pi=3.1415; cout<<"\n\tCALCULA EL CIRCULO\n";//Escribe o muestra (imprime) mensaje cout<<"\t------------------\n"; //Ingreso de datos

programa. Observaciones:

cout<<"\nIngrese el radio: ";cin>>radio; //Calcula el crculo circulo=pi*radio*radio; //Escribe resultado cout<<"\nEl circulo es: "<<circulo<<endl; cout<<"\nPress any key to finsh"; getch();//Pausa para ver los resultados } Programa 17

Cualquier pseudocdigo bien diseado puede fcilmente codificarse en cualquier lenguaje de programacin. Hay tantos de programas como problemas existen en el mundo. Como hay problemas que no se pueden resolver eso quiere decir que no existen algoritmos capacez de resolverlos!!!

Desarrolle un programa que calcule la suma de los N primeros nmeros pares. Solucin Definiendo E/S de datos: Entrada: nmero N Salida: suma de los nmeros (suma) suma = 2 + 4 + 6 +...+ N suma = 2 ( 1 + 2 + 3 +...+ N/2 ) Recuerde... N es par suma = 2 N/2 ( N/2 + 1 )/2 = N ( N/2 + 1 )/2 Codificacin en Borland C++ #include<conio> Pseudocdigo Inicio

#include<iostream> void main() { //Declarando variables int N,suma; cout<<"\n\tSUMA DE LOS N PRIMEROS PARES\n"; cout<<"\t----------------------------\n"; cout<<"\n2 + 4 + 6 +...+ N\n"; //Ingreso datos cout<<"\nIngrese N: ";cin>>N; //Calcula suma suma=N*(N/2+1)/2; //Escribe resultados cout<<"\nLa suma es: "<<suma<<endl; //Pausa cout<<"\nPress any key to finish\n";getch(); }

Lee N Calcular suma=N*(N/2+1)/2 Imprimir suma Fin Diagrama N/S

Programa 18 Lea dos nmeros. El primero vendr a ser la unin del dia y mes de su nacimiento. Ejemplo s su fecha de nacimiento es: 14 de septiembre o 14 del 09 la unin sera: 1709. El segundo nmero ser la edad que usted tiene. Luego realice los clculos siguientes:

Multiplique al primer nmero 2 Smele 5 al nuevo resultado Multiplquelo por 50 al resultado anterior Al resultado anterior rstele 250

Una vez hecho esto el resultado tendr un valor igual a la union del primer nmero con el segundo. Este juego es conocido en los crculos matemticos como "Juego de sociedades". Solucin Definiendo E/S de datos: Entrada: nmero n1 y n2 Salida: calcular resultado=(((n1*2)+5)*50+n2)-250 Codificacin en Borland C++ #include<conio> #include<iostream> void main() { int n1,n2,resultado; cout<<"\n\tJUEGO DE SOCIEDAD\n"; cout<<"\t-----------------\n"; //Ingreso de datos cout<<"Ingrese numero: ";cin>>n1; cout<<"Ingrese otro numero: ";cin>>n2; //Calcula resultado resultado=(((n1*2)+5)*50+n2)-250; //Imprime resultado cout<<"El resultado es: "<<resultado; getch();//Pause } Aunque no he explicado muy bien como usar los diagramas de flujo, almenos pueden notar como se usan los diagramas. Cada diagrama tiene un significado especial. Diagramas de flujo de dato

Como usar los diagramas de flujo de datos?

A m en lo particular me gusta realizar mis programas usando diagramas de flujo. Con ellos puede darle un aspecto ms agradable a mi algoritmo a parte de que la lgica del mismo es facilmente apreciable. S quieren saber de forma ms clara lo que son los diagramas de flujo all les va esto: Los diagramas de flujo sirven para representar grficamente a cualquier algoritmo. Los diagramas que se usan han sido normalizados por el Instituto Norteamericano de Normalizacin (ANSI). Utilizando adecuadamente los diagramas o smbolos podemos graficar la lgica de nuestro programa. Cada smbolo tiene una accin bien definida. Tabla de digramas y sus acciones Diagrama o smbolo Nombre: Accin Carcter de parada o Terminal: Representa al Inicio o Fin un programa. Representa adems una parada o interrupcin. Datos o Entrada/Salida (E/S): Sirve para leer o imprimir datos. Proceso: Este smbolo se usar cuando queramos procesar cualquier dato. Conector: Sirve para enlazar dos partes cualesquiera de un diagrama de flujo a travs de un conector en la salida y otro en la salida. Conector off-page o Conector fuera de pgina: Se utiliza cuando se quiera conectar dos flujos lgicos. Decisin: Esto se utilizar cuando el programa tenga dos posibilidades da salida que dependern del valor de una condicin lgica. Estos no son los nicos smbolos que existen, hay muchos ms!!!. Sin embargo estos son los que usaremos por ahora. Conversiones de tipos de dato Cuando declaramos dos variable, por ejemplo: int A; y float B; sabemos muy bien lo que estamos haciendo verdad?. S eso es cierto entonces no podemos tratar de guardar el valor de 3.5 (real) en la variable A de tipo int pues ella almacenar solo enteros. Sin embargo podemos cometer esta imprudencia en forma incosciente. S esto sucediese los resultados no seran de nuestro agrado. Cuando estemos obligados a esto usaremos el mtodo cast (moldear). Ejemplo: int A; ...instruccin 1 float B=12.5; ...instruccin 2

A=int(B); A=int(B); ...instruccin 3 En la instruccin 1 declaramos la variable A de tipo int. En la instruccin 2 declaramos e inicializamos la variable B de tipo float con el valor de 12.5 En la instruccin 3 almacenamos en A el valor de B (tipo float) que es obligado a transformarse en un entero. Recuerde que los valores con decimales sern redondeados al menor entero. En nuestro caso ser redondeado a 12. Sin embargo la conversin es automtica cuando se trata de variables de tipo nmero pero no en el caso del tipo char. Como es esto? En la instruccin 3 pudimos poner: A=B; En este el compilador reconoce primero a la variable A. Como A es de tipo int entonce el valor de B ser transformado en un valor de tipo int. Programa 19 Desarrolle un programa cualquiera. Cdificacin en Borland C++ #include<conio> #include<iostream> void main() { //Declaracin de variables int A; float B=12.5; //Se inicializa B con el valor 12.5 //Conversin de tipos (mtodo cast) A=(int)B; cout<<A; getch(); //Pause } Programa 20 En la facultad de Informtica e Sistemas de la universidad UNAS (Tingo Mara-Per) se aprueba el curso con la nota mnima de 11. Esta nota viene a ser el promedio final representado por PF.

PF=( 0.3*NT+0.8*NP+0.9*PROY+9 )/3, donde NT es Nota Terica, NP es Nota Prctica y PROY es Proyecto. Desarrolle un programa que ayuda a calcular el promedio final de los alumnos preocupados. Codificacin en Borland C++ #include<conio> #include<iostream> void main() { //Declaracin de variables int NP,NT,PROY; float PF; cout<<"\n\tHALLE SU PROMEDIO FINAL\n"; cout<<"\t-----------------------\n"; //Ingreso de datos cout<<"\nIngrese Nota teorica: ";cin>>NT; cout<<"Ingrese Nota practica: ";cin>>NP; cout<<"Ingrese Nota de su proyecto: ";cin>>PROY; //Proceso de datos PF=(0.3*NT+0.8*NP+0.9*PROY+9)/3; //Salida de la informacin cout<<"\nSu promedio final es: "<<PF<<endl; cout<<"\nPresione una tecla para finalizar\n";getch(); } Bueno... estimados lectores hasta aqu termina la parte introductoria a Borlad C++. Espero que hayan podido seguirme en el avance del "curso". Todo los programas que hasta ahora hemos desarrollado siguen un proceso secuencial [vase Programacin Estructurada (PE) en el ANEXO]. Osea que las instrucciones que contiene el cdigo son ejecutados uno a continuacin de otro. En otras palabras hemos abarcado todo el captulo de procesos secuenciales y nosotros ni cuenta nos hemos dado!!!.

En esta ltima parte usted encontrar 10 problemas propuestos que ud. deber solucionar y luego implementarlos en un programa. Deber ser muy justo ya que aunque estos problemas son propuestos han sido resueltos para que el lector pueda comparar sus resultados obtenidos.

JU MO PO
#include <iostream> using namespace std; int main() { int opcion1; int opcion2; int opcion3; int costetotal; cout<< "Bienvenido!!\n\n"; cout<< "1->Brochas de cerca: 15-20%\n2->Rodillos: 13-15%\n3>Compra los 2\n\n"; cout<< "Que desea? "; cin >>opcion1; switch (opcion1) { case 1: system("cls"); cout << "Cuantas unidades quiere llevarse? "; cin >> opcion2; cout << "\nSi paga con credito le cuesta: "<<(opcion2*15)-((20/100)*(opcion2*15)); cout << "\nY si paga al contado le cuesta: "<<(opcion2*15)-((20/100)*(opcion2*15))-((7/100)*(opcion2*15)); break; case 2: system("cls"); cout << "Cuantas unidades quiere llevarse? "; cin >> opcion3; cout << "\nSi paga con credito le cuesta: "<<(opcion3*12)-((20/100)*(opcion3*12)); cout << "\nY si paga al contado le cuesta: "<<(opcion3*12)-((20/100)*(opcion3*12))-((7/100)*(opcion3*12)); break; case 3: system("cls"); cout << "Cuantas unidades quiere llevarse de brochas de cerda? "; cin >> opcion2; cout << "\nSi paga con credito le cuesta: "<<(opcion2*15)-((20/100)*(opcion2*15)); cout << "\nY si paga al contado le cuesta: "<<(opcion2*15)-((20/100)*(opcion2*15))-((7/100)*(opcion2*15)); cout <<"\n\n\n"; cout << "Cuantas unidades quiere llevarse de rodillos? "; cin >> opcion3; cout << "\nSi paga con credito le cuesta: "<<(opcion3*12)-((15/100)*(opcion3*12)); cout << "\nY si paga al contado le cuesta:

"<<(opcion3*12)-((15/100)*(opcion3*12))-((7/100)*(opcion3*12)); cout << "\nEn total le cuesta (con credito): " <<((opcion3*12)-((15/100)*(opcion3*12)))+((opcion2*15)((20/100)*(opcion2*15))); cout << "\nEn total le cuesta (al contado): " <<((opcion3*12)-((15/100)*(opcion3*12))((7/100)*(opcion3*12)))+((opcion2*15)-((20/100)*(opcion2*15))((7/100)*(opcion2*15))); break; default: system("cls"); cout << "Opcion Incorrecta, Elija de nuevo"; break; } }

#include <iostream> using namespace std; int mayor(float a, float b, float c); int main() { float nota1, nota2, nota3; cout << "Bienvenidos!!\n\n En este programa sacaremos la nota mayor en grupos de 3 alumnos"; cout << "Ingrese 3 notas: "; cin >>nota1>>nota2>>nota3; cout <<"\nLa nota mayor es: "<< mayor(nota1, nota2, nota3); return 0; } int mayor(float a, float b, float c) { if(a>b,c) { return a; } if(b>a,c) { return b; } if(c>b,a) { return c; } }

Ejercicio # 1: Condiciones Condiciones sencillas -->El maestro de la clase de Matemticas quiere determinar cual es la calificacin ms alta de su grupo, forma grupos de tres calificaciones y las captura. Desarrollar un programa en C++, el cual determine el mayor de las tres calificaciones, el programa debe mostrar en pantalla la calificacin mayor.

Ejercicio # 2: Condiciones Condiciones sencillas Un cliente ordena cierta cantidad de brochas de cerda, rodillos y sellador; las brochas de cerda tienen un 20% de descuento y los rodillos un 15% de descuento. Los datos que se tienen por cada tipo de artculo son: la cantidad pedida y el precio unitario. Adems, si se paga de contado todo tiene un descuento del 7%. Elaborar un programa en C++ que calcule y muestre en pantalla el costo total de la orden, tanto para el pago de contado como para el caso de pago de crdito.

Ejercicio # 3 Condiciones Condiciones sencillas En la tienda de mayoreo San Juanita el impuesto que se debe pagar por los artculos adquiridos se calcula de la siguiente manera: los primeros $30 no causan impuesto, los siguientes $30 tienen un 30% de impuesto y el resto el 40% de impuesto, pero si el costo del producto es mayor a $400, entonces se cobra el 50%. Desarrollar un programa en C++ que lea el costo bsico de un artculo y calcule el costo total. Muestre en pantalla el artculo y su costo total.

Ejercicio # 4 Condiciones Condiciones anidadas El departamento de Recursos Humanos de la empresa caf Combate quiere desarrollar un calendario en lnea para sus empleados, para calendarizar el nmero de das hbiles de trabajo de tal manera que el empleado introduzca un nmero de mes (1 a 12), y visualice el nmero de das de ese mes. Debe considerar que el mes 2 corresponde a febrero que pude tener 29 o 28 das dependiendo de si es o no bisiesto, el ao correspondiente. Desarrolle un programa en C++ que cumpla con las especificaciones mencionadas y muestre en pantalla el mes, el numero de das y en el caso de que sea ao bisiesto mostrar el mensaje de que es ao bisiesto.

Ejercicio # 5 Condiciones Condiciones anidadas El jefe del departamento de construccin de la constructora Pagasa, desea que se le desarrolle un programa en C++ para sus empleados, el cual calcule el sueldo de un empleado, de tal manera que el sueldo se calcular de la siguiente manera: si el nmero de horas trabajadas es mayor a 40, el excedente de 40 hrs. se paga al doble de la cuota por hora, en caso de no ser mayor a 40 hrs. se paga la cuota normal por hora, si las horas exceden a 50 hrs. el excedente de 50 hrs. se paga al triple de la cuota por hora, se les descontara un impuesto del 12% sobre su sueldo. Se pedir el nombre del empleado, el nmero de horas trabajadas y la cuota por hora. mostrar en pantalla el nombre del empleado, el nmero de horas trabajadas y su suelto.

Ejercicio # 6 Condiciones Estatuto SWITCH En la clase de aritmtica de la escuela secundaria tcnica No. 35, el maestro les solicita al departamento de sistemas que se le desarrolle un

programa que pida al usuario un nmero entero decimal entre 1 y 99, incluyendo los extremos y obtenga la correspondiente representacin en el sistema romano y su decimal, con el objetivo de poder explicar mediante el programa visualmente el sistema de conversin a sus alumnos. El programa mostrar en pantalla el nmero decimal y su conversin el el sistema romano.

Ejercicio # 7 Condiciones Estatuto SWITCH La empresa comercializadora Solva vende escobas, recogedores y aromatizantes, clasifica a sus clientes de a acuerdo a la frecuencia de compras con las condiciones siguientes: Si el cliente es de la categora 1 se le descuenta el 5% Si el cliente es de la categora 2 se le descuenta el 8% Si el cliente de de la categora 3 se le descuenta el 12% Si el cliente es de la categora 4 se le descuenta el 15%

Cuando el cliente realiza una compra se generan los siguientes datos:

Nombre del cliente Tipo de cliente Cantidad comprada de escobas, recogedores y aromatizantes

Desarrollar un programa en C++ que lea estos datos y calcule y muestre en pantalla:

Nombre del cliente Subtotal a pagar

Descuento Total a pagar

Ejercicio # 8 Repeticiones Estatuto WHILE La compaa aseguradora del pacifico paga $5,000 semanales a sus vendedores ms una comisin de 9% del total de ventas realizadas. La compaa aseguradora solicita al departamento de sistemas que se le desarrolle un programa en C++ que pida al usuario el monto de ventas y determine el pago que deber realizarse a cada vendedor. Una vez que ha calculado el pago de cada vendedor la compaa genera un reporte de la cantidad de vendedores cuyo pag excedi los $8,000.

Ejercicio # 9 Repeticiones Estatuto WHILE En una empresa comercializadora, se tienen las compras del da de varios clientes, y por cada cliente los datos, nombre del cliente y cada cliente cantidad de artculos comprados con su precio unitario. Desarrollar un programa en C++ que obtenga al final del da un reporte de ventas por cliente (Nombre del cliente, Cantidad de artculos comprados y el total a pagar) y el total general de las ventas del da, donde se lea los datos de cada uno de los clientes y por cada cliente, los datos de cada uno artculos que compr.

Ejercicio # 10 Repeticiones Estatuto DO/WHILE

Un alumno de la clase de lgica matemtica desea desarrollar un programa en el cual introduzca un nmero entero positivo e invierta los dgitos del nmero. Mostrar en pantalla el nmero invertido.

Ejercicio # 11 Repeticiones Estatuto DO/WHILE El maestro del grupo 01 del primer semestre de la preparatoria Bosco desea obtener un reporte final de los alumnos de su grupo, que obtuvieron un promedio por encima del promedio general del grupo con el fin de tomar en cuenta el nmero de alumnos que estuvieron por encima del promedio general del grupo par formar los grupos para el siguiente semestre. Desarrollar un programa en C++ que pida al usuario los n promedios de los alumnos y calcule el nmero de alumnos que estuvieron por encima del promedio general y el total de reprobados. Mostrar en pantalla el promedio general del grupo, el total de alumnos que estuvieron por encima del promedio general y el total de alumnos reprobados.

Ejercicio # 12 Repeticiones Estatuto FOR El maestro de Matemticas necesita desarrollar un programa en C++ que le permita obtener los resultados correspondientes al clculo del mnimo comn mltiplo para poder avanzar ms rpido al revisar y comprobar los resultados que los alumnos le dan como respuesta en su examen, el maestro ingresar los dos nmeros enteros positivos que les pide a sus alumnos para dicho clculo. El programa mostrar en pantalla el mnimo comn mltiplo.

Ejercicio # 13 Funciones

Variables globales En la clase de programacin C++ se tienen 35 alumnos al iniciar el semestre, el maestro aplic cinco exmenes parciales durante el semestre y al termino del semestre realiza los clculos correspondientes para obtener el promedio de de cada alumno. Desarrolle un programa en C++ en el cual, el maestro de cmo entrada la matricula del alumno y sus correspondientes calificaciones para obtener por medio de funciones el promedio de cada alumno as como el nmero de alumnos reprobados. Mostrar en pantalla la matrcula del alumno y su promedio, as como el nmero de alumnos reprobados.

Ejercicio # 14 Funciones Variables locales En la facultad de Sistemas de la Universidad de Carolina, se quiere conformar al equipo representativo juvenil varonil de Bsquet bol para las olimpiadas intrauniversitarias, para esto se tiene los registros con las caractersticas fsicas de los n alumnos de la facultad y se desea conocer la lista de los alumnos con aptitudes para practicar y formar parte del equipo representativo de Bsquet bol. Desarrollar un programa en C++ por medio de funciones para obtener: la lista de alumnos con aptitudes fsicas con una altura mayor o igual a 1.83 metros y un peso entre 73 y 110 kilos y la edad entre 15 y 18 aos. Para cada alumno se ingresa su nombre, sexo, edad, peso y altura. Mostrar en pantalla a cada alumno (Nombre, Sexo, Edad, Peso y Altura), que cumplen con estos requerimientos.

Ejercicio # 15 Funciones Variables locales El departamento de sistemas de la empresa de Textiles se gan un automvil por ser el departamento de mayor productividad, se desarrollo un concurso entre sus empleados para determinar quien se quedaba con el automvil y al final quedaron solamente tres empleados. Ahora el procedimiento para

determinar quien se adjudica el automvil es al siguiente, cada empleado tomara un nmero que debe ser entero y positivo y el que obtenga el nmero mayor se queda con el automvil. Desarrollar un programa en C++ el cual debe utilizar una funcin para leer el nmero de empleado y un nmero, una funcin para calcular y devolver el nmero de empleado con el nmero mayor y una funcin para mostrar en pantalla al empleado ganador del automvil (Su nmero de empleado y el nmero mayor).

#include <stdio.h> # include <iostream.h> # include <conio.h> int main() { int n, mayormult, mayorant; int se2=0, se3=0, con=0, neg=0, contmayor=0; float promneg; do { cin >> n; if ( n<0 ) { neg= neg + n; con= con + 1; promneg = neg / con ; } if ((n%3 == 0) && (n!=0) ) { if ((n> mayormult) || (se2==0) ) { mayormult = n; se2== 1; } } if ((n>mayorant) && (se3== 1)) { contmayor = contmayor + 1 ; } mayorant = n; se3==1 ;

} while (promneg >= -31) ; cout << "\n el mayor de los multiplos " << mayormult; cout<< "\n cant de veces q un num fue mayor q el anterior " <<contmayor ; getche(); return 0; }

1) Imprimir los primeros 3 numeros PERFECTOS. # include <iostream.h> # include <conio.h> # include <string.h> int main() { int n=0, sum=0 ,cont=0, i; do { n ++ ; for (i=1 ; i<n ; i++) { if ((n % i) == 0) { sum = sum + i ; } } if ( sum == n) { cout<< "El numero "<<n<< " es perfecto "<<endl ; cont = cont + 1; } sum=0; } while (cont < 3); getche(); return 0;

} 2) Cargar 2 vectores con nros enteros, uno de 100 y el otro de 200, sin repetir los nros dentro de cada vector. Se pide realizar una funcion q devuelva un tercer vector con los elementos repetidos de los vectores ingresados al principio. # include <iostream.h> # include <conio.h> # include <string.h> # include <iomanip.h> void carga1 (int v[]); void carga2 (int v[]); void busqueda (int v[],int c[],int d[],int &ct); void impre (int v[],int &ct); int main() { int a[100],b[200],c[100],ct=0; carga1 (a); carga2 (b); busqueda (a,b,c,ct); impre(c,ct); getche(); return 0; } void carga1 (int v[]) {int i; cout<<"Ingrese los componentes del 1 vector "<<endl; for (i=0;i<100;i++) { cout<<"ingrese el valor de la posicion "<<i<<endl; cin>>v[I]; } } void carga2 (int v[]) {int i; cout<<"Ingrese los componentes del 2 vector "<<endl; for (i=0;i<200;i++) { cout<<"ingrese el valor de la posicion "<<i<<endl; cin>>v[i]; } }

void busqueda (int v[],int c[],int d[],int &ct) { int a=0,i,j; for (i=0;i<100;i++) {for (j=0;j<200;j++) {if (v[i]==c[j]) { d[a++]=v[i]; ct++; } } } } void impre (int v[],int &ct ) { int i; cout<<"el vector con los elementos q se repiten \n"; for (i=0;i<ct;i++) cout<<setw(7)<<setprecision(2)<<v[i]<<endl; } 3)Este programa resuelve y comprueba la multiplicacion de matrices. # include <stdio.h> # include <conio.h> # include <iomanip.h> void carga (int v[][1000],int a,int b); void carga2 (int v[][1000],int a,int b); void mult(int x[][1000],int y[][1000],int c[][1000],int a,int b); void impre (int v[][1000],int a,int b); int main() { int a[1000][1000],c[1000][1000],d[1000][1000]; int na,ma,nc,mc; cout<<"ingrese el nro de filas de la 1 matriz : \n"; cin>>na; cout<<"ingrese el nro de columnas de la 1 matriz : \n"; cin>>ma; cout<<"ingrese el nro de filas de la 2 matriz : \n"; cin>>nc; cout<<"ingrese el nro de columnas de la 2 matriz : \n"; cin>>mc; carga (a,na,ma); carga2 (c,nc,mc); if (ma==nc)

{ mult(a,c,d,na,mc); impre(d,na,mc);} else cout<<" no se puede realizar la multiplicacion.."; getche(); return 0; } void carga (int v[][1000],int a,int b) {int i,j; for (j=0;j<a;j++) for (i=0;i<b;i++) { cout<<"ingrese el valor de la posicion "<<j<<" "<<i<<endl; cin>>v[j][i]; } } void carga2 (int v[][1000],int a,int b) {int i,j; for (j=0;j<a;j++) for (i=0;i<b;i++) { cout<<"ingrese el valor de la posicion "<<j<<" "<<i<<endl; cin>>v[j][i]; } }

void mult(int x[][1000],int y[][1000],int c[][1000],int a,int b) { int i,j,k; for (i=0;i<a;i++) {for (j=0;j<b;j++) {c[i][j]=0; for (k=0;k<a;k++) {c[i][j]=c[i][j]+(x[i][k])*(y[k][j]);} } } } void impre (int v[][1000],int a,int b) { int i,j,c; c=b-1; cout<<"la matriz resultante es \n";

for (i=0;i<a;i++) {for (j=0;j<b;j++) {cout<<setw(7)<<setprecision(2)<<v[j]; if(c==j) cout<<endl;}} }