Está en la página 1de 169

UNIDAD I

INTRODUCCIN A LA CIENCIA DE LA COMPUTACIN Y LA PROGRAMACIN


QUE ES UN COMPUTADOR? Mquina de propsito general que procesa datos de acuerdo con el conjunto de instrucciones que estn almacenadas internamente, bien sea temporal o permanentemente. El computador y todo el equipo conectado a ste se denomina hardware. Las instrucciones que se le dan se llaman software. El conjunto de instrucciones que lleva a cabo una tarea especifica se denomina programa. ORGANIZACIN FSICA DE UN COMPUTADOR (HARDWARE)

DISPOSITIVOS DE ENTRADA

UCP
UNIDAD CONTROL UNIDAD ARITMTICA LGICA

DISPOSITIVOS DE SALIDA
MEMORIA CENTRAL INTERNA

DISPOSITIVOS DE ENTRADA Y SALIDA

MEMORIA EXTERNA ALMACENAMIENTO PERMANENTE

ORGANIZACIN FSICA DE UN COMPUTADOR (MICROPROCESADOR)


MICROPROCESADOR DISPOSITIVOS DE ENTRADA MEMORIA CENTRAL

UNIDAD DE CONTROL

DISPOSITIVOS DE SALIDA

DISPOSITIVO S DE ENTRADA Y SALIDA

UNIDAD ARITMTICA LGICA

COMPUTADORES MULTIMEDIA Los computadores personales que actualmente se comercializan prcticamente todos son multimedia, es decir incorporan caractersticas multimedia (CD-ROM / DVD ROM, tarjetas de sonido, parlantes y micrfono) que permiten integrar texto, sonido, grficos e imgenes en movimiento. CARACTERSTICAS DE UN PC IDEAL PROCESADOR INTEL PIII: 866 ... 933 .... 1Ghz MEMORIA 128MB 256MB CACHE 128KB 256KB DISCO DURO 20GB 30GB 40GB VIDEO 8MB MONITOR 14 ALMACENAMIENTO CD ROM PUERTOS USB SERIALES INTERNET PARALELOS MODEM 56KBPS LOS PROGRAMAS (SOFTWARE) Las operaciones que debe realizar el hardware son especificadas por una lista de instrucciones llamadas programas o software. El software se divide en 2 grandes grupos:

Software del sistema. Software de aplicacin

Software del sistema.- Es el conjunto de programas independientes para la mquina funcione; se denominan tambin programas del sistema. Estos programas son bsicamente sistemas operativos, los compiladores o interpretes, los programas de utilidad. Siendo uno de los ms importantes el sistema operativo.

El sistema operativo sirve para facilitar la escritura y el uso de sus propios programas. El sistema operativo dirige las operaciones globales de la computadora, instruye a esta para ejecutar otros programas y controla el almacenamiento y recuperacin de archivos de cintas y discos. Gracias al sistema operativo es posible que el programador pueda introducir y grabar nuevos programas, as como para instruir a la computadora que las ejecute. Los sistemas operativos pueden ser: Monousuarios y multiusuarios. Compiladores o interpretes (lenguajes de programacin).- Son programas especiales llamados traductores porque convierten las instrucciones escritas en lenguajes de programacin en instrucciones escritas en lenguaje de mquina (0, 1) que esta pueda entender. Programas de utilidad.-Facilitan el uso de la computadora por ejemplo editores de texto (Word), hojas de calculo (Excel), etc. Software de aplicacin.- Estos programas realizan tareas concretas como nminas, roles de pago, anlisis estadstico, etc. si son escritos en lenguaje de alto nivel como por ejemplo C++. LENGUAJES DE PROGRAMACIN Un algoritmo a de expresarse en un formato que se denomina programa. Un programa se escribe en un lenguaje de programacin y las operaciones que conducen a expresar un algoritmo en forma de programa se llama programacin. Los principales tipos son de lenguaje son: Lenguaje de mquina. Lenguaje de bajo nivel Lenguaje de alto nivel.

Lenguaje de mquina.- Los lenguajes de mquina son aquellos que estn escritos en lenguajes directamente inteligibles por la mquina, ya

que sus instrucciones son cadenas binarias (0, 1) que especifican una operacin y las posiciones (direccin) de memoria implicadas en la operacin se denominan instrucciones de mquina o cdigo de mquina. El cdigo de mquina es conocido cdigo binario. El conjunto de instrucciones del lenguaje de mquina depende de la UCP de la computadora. Las ventajas de programar en lenguaje mquina son la posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traduccin posterior a cualquier otro lenguaje de programacin. Las desventajas al utilizar este tipo de lenguajes son: Dificultad y lentitud en la codificacin. Poca fiabilidad Dificultad grande de verificar y poner a punto los programas. Los programas solo son ejecutables en el mismo procesador.

Lenguajes de bajo nivel.- Los lenguajes de bajo nivel son un poco ms fcil de utilizar que los lenguajes mquina, pero al igual que ellos dependen de la mquina en particular. El lenguaje de bajo nivel es por excelencia el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotcnicas. Nemotcnicos tpicos de operaciones aritmticos son: ADD(Suma), SUB(Resta), DIV(divisin). Una instruccin tpica de suma seria ADD P, R, M que significa que el contenido de P + R ponerla en M o es decir M = P + R. Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora, en esto se diferencia esencialmente del lenguaje de mquina sino que requiere de una fase de traduccin al lenguaje de mquina. El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en el lenguaje mquina se conoce como programa objeto.

El traductor del programa fuente a objeto es un programa llamado ensamblador (ASSEMBLER). Los lenguajes ensamblador presentan la ventaja frente a los lenguajes de mquina de su mayor facilidad de codificacin y en general, su velocidad de clculo. Los inconvenientes ms notables en los lenguajes de bajo nivel son: Dependencia total de la mquina, lo que impide la transportabilidad de los programas. Formacin de los programadores es ms compleja que los correspondiente a los programadores de alto nivel, ya que existe no solo las tcnicas de programacin, sino tambin el conocimiento interior de la mquina. En la actualidad estos lenguajes tienen sus aplicaciones muy reducidas y se centran en aplicaciones de tiempo real, control de procesos y de dispositivos electrnicos. Lenguajes de alto nivel.- Son las ms utilizadas por el programador. Estn diseados para que las personas escriban y entiendan programas de un modo mucho ms fcil que los lenguajes de mquina y lenguajes de bajo nivel. Es que razn es que un programa escrito en alto nivel es independiente de la mquina, esto es que las instrucciones del programa no dependen del diseo del hardware. En consecuencia los programas escritos en alto nivel son portables lo que da la posibilidad de poder ser ejecutados en diferentes tipos de computadores. Ventajas El tiempo de formacin de los programas es relativamente corta comparada por los otros lenguajes. Las escritura de los programas se basan en reglas sintcticas similares a los lenguajes humanos. Nombres de las instrucciones tales como IF REPEAT WHILE. Los modificadores puestos a punto de los programas son ms fciles. Reduccin del costo del desarrollo de los programas. Transportabilidad.

Desventajas Aumento de la ocupacin de memoria. No se aprovechan los recursos internos de la mquina que se explotan mucho mejor con los lenguajes de mquina y ensambladores. El tiempo de ejecucin de los programas es mucho mayor. Al igual como sucede en los lenguajes ensambladores los programas fuentes tienen que ser traducidos por programas llamados compiladores. Los lenguajes de alto nivel son numerosos, los ms utilizados seran C/C++, Pascal, Fortran, Visual Fox, Visual Basic, Cobol. TRADUCTORES DE LENGUAJE Los traductores de lenguaje son programas que traducen a su vez los programas fuentes escritos en lenguajes de alto nivel a cdigo de mquina. El traductor ms utilizado es el compilador. Compilador.Un compilador es un programa que traduje los

programas fuentes escritos en lenguajes de alto nivel (C / C++ , pascal) a lenguajes de mquina. Los programas escritos en lenguajes de alto nivel se llaman programas fuentes y el programa traducido se llama programa objeto o cdigo objeto. El compilador traduce sentencia a sentencia el programa fuente. Los lenguajes compiladores tpicos son: C / C++, pascal, Fortran, etc.
PROGRAMA COMPILADOR PROGRAMA OBJETO CDIGO OBJETO PROCESO DE COMPILACIN

Compilacin y sus fases.- La compilacin es el proceso de traduccin de los programas fuentes a programas objetos. El programa obtenido de la compilacin ha sido traducido normalmente a cdigo de mquina. Para conseguir el programa de mquina se debe utilizar un programa llamado Montador o tambin se lo conoce como Enlazador (Linker). El proceso de montaje conduce a un programa en lenguaje de mquina directamente a ejecutable. PROGRAMA
COMPILADOR PROGRAMA ENLAZADOR PROGRAMA EJECUTABLE (CDIGO MAQUINA)

Proceso de ejecucin.- El proceso de ejecucin de un programa escrito en un lenguaje de programacin y mediante un compilador suele tener los siguientes pasos. 1. Escritura del programa fuente con un editor. 2. Introducir el programa fuente en memoria. 3. Compilar el programa. 4. Verificar y corregir errores de compilacin (listado de errores). 5. Obtencin del programa objeto. 6. El enlazador (linker) obtener el programa ejecutable. 7. Se ejecuta el programa y si no existen errores se obtendr la salida de este.
PROGRAMA

MODIFICACIN DEL PROGRAMA SI

COMPILADOR

EXISTEN ERRORES EN LA COMPILACIN NO PROGRAMA ENLAZADOR EJECUCIN

NOTA: En la actualidad casi todas las herramientas de programacin tienen un EID (Entorno integrado de desarrollo). RESOLUCIN DE PROBLEMAS EN COMPUTADORAS El proceso de resolucin de un problema con computadora conduce a la escritura de un programa y a su ejecucin en la misma. Se pueden considerar una serie de fases o pasos comunes que generalmente deben seguir todos los programadores. Las fases de resolucin de un problema utilizando un computador son: 1. Anlisis del problema. 2. Diseo del algoritmo. 3. Prueba de escritorio 4. Codificacin 5. Compilacin y ejecucin 6. Prueba y depuracin. 7. Documentacin y mantenimiento. 1. Anlisis del problema.- Esta fase requiere de una clara definicin donde se contemple exactamente lo que debe hacer el programa con la solucin deseada. Dado que se busca una solucin con computadora se precisan especificaciones detalladas de entrada y salida. Para poder definir bien un problema es conveniente responder a las siguientes preguntas: 1. Qu entradas se requiere?. 2. Cul es la salida deseada?. 3. Qu mtodo produce la salida deseada?.

2. Diseo del algoritmo.- Un algoritmo es un mtodo para resolver un problema mediante una serie de pasos precisos, ordenados, definidos y finitos. La palabra algoritmo se deriva de la traduccin al latn de la palabra Alkhwarzmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el siglo IX. Caractersticas de un algoritmo Preciso (Indicar el orden de realizacin en cada pazo) Definido (Si se sigue dos veces, obtiene el mismo resultado cada vez). Finito (Tiene fin; un nmero determinado de veces).

Los proceso que utilizan algoritmo se llaman mtodos algortmicos, en oposicin a los mtodos que implican algn juicio o interpretacin que se denominan mtodos heursticas. Representacin algoritmos se de los algoritmos.algn Para representar que me los

debe

realizar

mtodo

permita

independizar dicho algoritmo del lenguaje de programacin elegido. Los mtodos usuales para representar un algoritmo son: El diagrama de flujo El diagrama de cajas (N S) (Chapn) Seudocdigo Lenguaje espaol, ingls. Frmulas.

Diagramas de flujo.
SMBOLO FUNCIN

Inicio o terminacin impresora

decisin

proceso leer desde el teclado

bucle de repeticion

secuencia de datos datos operacin manual disco

proceso predefinido presentar en pantalla conector felchas direccionales

EJEMPLO

Se tiene el lado de un cuadrado buscar el rea.


INICIO

A L*L A FIN

Seudocdigo.- Es una herramientas de programacin en el que las instrucciones se escriben en palabras similares al ingls o al espaol, que facilitan tanto la escritura como la lectura de los programas. En esencia el seudocdigo, se puede definir como un lenguaje de especificacin de algoritmos. 3. Prueba de escritorio.- Es un rastreo manual que se aplica a un algoritmo para verificar un correcto funcionamiento. En la prueba de escritorio se ven involucrados todas las variables del algoritmo. L 5 A 25 SALIDA 25

4. Codificacin.- Es la escritura de un algoritmo en un lenguaje de programacin. Para realizar las conversin del algoritmo a un programa se debe sustituir las palabras reservadas por sus homnimos en ingls, en el lenguaje de programacin correspondiente. 5. Compilacin y Ejecucin.- Una vez que el algoritmo se ha convertido en un programa fuente, este debe ser traducido al lenguaje de mquina. Este proceso se realiza con el compilador. Si tras la compilacin se presentan errores (Errores de compilacin) en el programa fuente, es preciso volver editar el programa, corregir los errores y compilar de nuevo. Este proceso se repite hasta que no se produzcan errores, obtenindose el programa objeto que todava no es ejecutable directamente. Luego se debe instruir al sistema operativo para que realice la fase de enlace o montaje, carga el

programa objeto con las libreras del programa del compilador. El proceso de montaje produce un programa ejecutable, cuando el programa ejecutable se ha creado y se puede ya correr. Suponiendo que no existan errores durante la ejecucin (llamados errores en tiempo de ejecucin) se obtendr la salida de resultado del programa. 6. Prueba y Depuracin.- La prueba de un programa es el proceso de ejecucin de este con una amplia variedad de datos de entrada, llamados datos de test o prueba, que determinaran si el programa tiene errores. Para realizar la verificacin se debe desarrollar una amplia gama de datos de test : Valores normales de entrada que comprueba los lmites del programa y valores de entrada que comprueba aspectos del programa. La depuracin es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores. Cuando se ejecuta un programa se pueden producir tres tipos de errores. 1. Errores de compilacin.- Se producen normalmente por uso incorrecto de las reglas del lenguaje de programacin y suelen ser errores de sintaxis. Si existe un error de sintaxis la computadora no puede comprender la instruccin, no se obtendr el cdigo objeto y el compilador imprimir una lista de todos los errores encontrados durante la compilacin. 2. Errores de ejecucin.- Estos errores se producen por instrucciones que la computadora puede comprender pero no puede ejecutar, ejemplos tpicos son: divisiones por cero y races cuadradas de nmeros negativos. En estos casos se obtiene la ejecucin del programa y se imprime un mensaje de error. 3. Errores lgicos.- Se producen en la lgica del programa y la fuente de error suele ser el diseo del algoritmo. Estos errores son los

ms difciles de detectar ya que el programa puede funcionar y no producir errores ni de ejecucin ni de compilacin y solo puede advertirse el error por la obtencin de resultados incorrectos. En este caso se debe volver a la fase de diseo del algoritmo, modificar el algoritmo, cambiar el programa fuente compilar y ejecutar una vez ms. 7. Documentacin y mantenimiento.- La documentacin de un problema consta de las descripciones de los pasos a dar en el proceso de se resolucin. La importancia de la documentacin debe ser destacada por su decisiva influencia en el producto final. Programas pobremente documentados son difciles de leer, ms difciles de depurar y casi imposible de mantener y modificar. La documentacin de un programa puede ser interna y externa. La documentacin interna es la contenida en lneas de comentarios. La documentacin externa incluye anlisis, diagramas de flujo y/o d seudocdigos, resultados. La documentacin es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa. Tales cambios se denominan mantenimiento del programa. Despus de cada cambio la documentacin debe ser actualizada para facilitar cambios posteriores. Es prctico numerara las sucesivas versiones de los programas como 1.0, 1.1, 2.0, 3.0, etc Si los cambios introducidos son importantes se varia el primer dgito, en caso de pequeos solo se varia el segundo dgito. diagramas de objetos, manuales del usuario, como instrucciones para ejecutar el programa y para interpretar los

UNIDAD II
INTRODUCCIN A LA PROGRAMACIN ESTRUCTURADA
PROGRAMACIN ESTRUCTURADA

Significa escribir un programa de acuerdo a las siguientes reglas. El programa tiene un diseo modular. Los mdulos son diseados a manera descendente (Diseo Top down). Cada mdulo se codifica utilizando las tres estructuras de control bsicas: Secuencia, Seleccin y repeticin. El trmino programacin estructurada se refiere entonces a un conjunto de tcnicas: estas tcnicas aumentan considerablemente la productividad del programa reduciendo elevado grado el tiempo para escribir, depurar y mantener los programas. La programacin estructurada utiliza un nmero limitado de estructuras de control que minimizan la complejidad de los programas por consiguiente reducen los errores. Programacin modular.- Es uno de los mtodos de diseo ms flexibles y potentes para mejorar la productividad de un programa. En programacin estos mdulos no son ms que partes independientes, en donde cada uno de los cuales ejecuta una nica actividad o tarea y se codifican independiente de otros mdulos. Cada uno de estos mdulos se analizan, codifican y ponen a punto por separado. Cada programa tiene un mdulo denominado programa principal que controlo todo lo que sucede; se transfiere el control a submdulos (que ms adelante se los conoce como subprogramas) de modo que ellos pueden ejecutar sus funciones; sin embargo cada submdulo devuelve el control al mdulo principal cuando se halla implantado su tarea. Los mdulos son independientes en el sentido de que ningn mdulo puede tener acceso directo a cualquier otro mdulo excepto al mdulo al que llama y sus propios submdulos. Sin embargo los resultados producidos por un mdulo pueden ser utilizados por cualquier otro cuando se transfieren a ellos el control.

Diseo descendente (top down).- El diseo descendente es el proceso mediante el cual un programa se descompone en una serie de niveles o pasos sucesivos de refinamiento. La metodologa descendente consiste en efectuar una relacin entre las sucesivas etapas de estructuracin de modo que se relaciona una con otras mediante entradas y salidas de informacin. Es decir se descompone el problema en etapas o estructuras jerrquicas, de forma que pueda considerar cada estructura desde dos puntos de vista. Qu hace?, Cmo lo hace?. Qu hace? Cmo lo hace?

Estructuras de control.- Las estructuras de control en un lenguaje de programacin son mtodos de especificar el orden en que las instrucciones de un algoritmo se ejecutarn. El orden de ejecucin de las sentencias o instrucciones determinan el flujo de control. Estas estructuras de control por consiguiente son fundamentales en los lenguajes de programacin y en los diseos de algoritmo y especialmente en los seudocdigos. Secunciales simple Selectivas doble

mltiple

Repetitivas

v < -- v i , v f ,v x c o n d ic i n
F

v
s e n t e n c i a (s ) s e n t e n c i a (s ) s e n te n c ia (s ) c o n d ic i n
F

TEOREMA DE LA PROGRAMACIN ESTRUCTURADA En mayo de 1966 Bhm y Jacopini demostraron que un programa propio puede ser escrito utilizando solamente 3 tipos de estructuras de control: Un Secuenciales Selectivas Repetitivas programa se define como propio si cumple las siguiente

caractersticas.

1) Posee un solo punto de entrada y uno de salida o fin para el control del programa. 2) Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por todas las partes del programa. 3) Todas las instrucciones son ejecutables y no existen lazos o bucles infinitos.

Nota: Programar estructuradamente significa programar con la ausencia total de la sentencia GOTO.

UNIDAD III
FUNDAMENTOS DEL LENGUAJE C++
UNA BREVE HISTORIA DE C++ C++ fue desarrollado por Bjaine Stroustrup y de AT&T laboratorios Bell, a principios de la dcada de los 80, es heredero directo del lenguaje C que a su vez se deriva del lenguaje B (desarrollado por Martn Richards como lenguaje de escribir software de sistemas operativos y compiladores en 1967). C se mantiene como un subconjunto de C++. Otra fuente de inspiracin fue el lenguaje simula 67 (Dohl / 1972 del que toma conceptos de clases, con clases derivadas y funciones virtuales. El lenguaje de programacin C fue desarrollado por Denis Ritchie de AT&T laboratorios Bell. Diseado a principios de los aos 70. C es un lenguaje de propsito general que se puede utilizar para escribir cualquier tipo de programas, pero su xito y popularidad esta basado especialmente en el sistema operativo Uns. El desarrollador del lenguaje Stroustrup diseo C++ como un mejor C. La mayora de programas C son tambin programas C++.

C++ adems de aadir propiedades de C presenta caractersticas y propiedades de programacin orientadas a objetos. Se han presentado varias versiones de C++. Las caractersticas ms notables que se han ido notando en C++ son: Herencia mltiple. Plantillas. Funciones virtuales. Excepciones, etc.

ESTRUCTURA GENERAL DE UN PROGRAMA C++ Un programa de C++ puede incluir directivas del preprocesador Declaraciones globales. La funcin main ( ) [obligatoria] Funciones definidas por el usuario Comentarios del programa.

#include <iostream.h> int main () { ....... { #include #define Declaraciones Globales Funciones Variables Prototipos de funciones

Directiva del preprocesador Cabecera de funcin Nombre de la funcin Sentencias

Directivas preprocesador Macros del procesador

Funcin principal main Main ()

{ declaraciones locales Sentencias } Definicin de otras funciones func 1 (....) { ......... } func 2 (....) { ......... } ..........

EJEMPLO DE UN PROGRAMA EN C++ //PROGRAMA DEMO _ UNO #include <iostream.h> #include <conio.h> //Este programa escribe bienvenidos a la programacin C++ main () { clrscr(); cout<<Bienvenidos a la programacin C++ \n; getch(); }

DIRECTIVAS DEL PREPROCESADOR El preprocesador en un programa C o C++ se puede considerar como un editor de texto inteligente que consta de directivas. Las directivas son instrucciones al compilador, las dos directivas ms usuales son: #include #define Todas las directivas del preprocesador comienzan con el signo # que indica al compilador que lea las directivas antes de compilar las instrucciones del programa. La directiva include indica al compilador que lea el archivo fuente que viene a continuacin de ella y su contenido la inserte en la posicin donde encuentra esa directiva. Estos archivos se denominan archivos de cabecera o inclusin. Cuando se instala el compilador estos archivos se almacenan automticamente en la carpeta INCLUDE. Los nombres de estos archivos siempre tienen la extensin .h. Si se quiere incluir un archivo de cabecera que se crea y no esta en el directorio por defecto, se debe encerrar entre comillas dobles ( ) as por ejemplo: #include miprog.h La directiva define indica al preprocesador que define un tem de datos u operacin para el programa C++. As: #define longitud 30 Sustituir el valor de 30 cada vez que el identificador longitud aparezca en el programa. DECLARACIONES GLOBALES Indican al compilador que las funciones definidas por el usuario o variables as declaradas son comunes a todas las funciones de su programa. Las declaraciones globales, se sitan antes de la funcin main. Ej.:

//Declaraciones globales int notas, total main () { ..... } Mientras que las variables y constantes locales se declaran y definen en el cuerpo de la funcin principal. Funcin main.- Cada programa C++ tiene una funcin main que es punto inicial de entrada al programa su estructura es: main () { ....... } Un programa puede tener solo una funcin main si se intenta hacer 2 funciones main se produce un error. Funciones C++.- Adems de la funcin main un programa C++ consta de una coleccin de funciones. Una funcin C++ es un subprograma que devuelve un nico valor, un conjunto de valores o realiza un tarea especfica tal como entrada o salida. En un programa corto el programa completo puede incluirse totalmente en la funcin main. Un programa largo sin embargo tiene demasiados cdigos para incluirlos en esta funcin. Ej.: Main () { obtener _ datos (); clculos (); visualizar (); } Bloque de sentencias

ELEMENTOS DE UN PROGRAMA C++ Identificadores.- Un identificador es en secuencia de caracteres, letras, dgitos y subprogramas. Reglas para la declaracin de identificadores El primer carcter debe ser una letra: Acum. Las letras maysculas y minsculas son diferentes para el efecto del identificador. En C++ el identificador puede ser de cualquier longitud, sin embrago el compilador, ignora cualquier carcter fuera de los 32 primeros. Los identificadores no pueden ser palabras reservadas tales como: if, else, while, etc. Palabras reservadas.- Las palabras reservadas estn asociadas con algn significado especial del lenguaje. Una palabra reservada no puede ser utilizada como nombre de identificador, objeto o funcin. Algunas palabras reservadas en C++ son: break case char const delete do double else float for void while short struct switch if int private public return

Comentarios.- Es cualquier informacin que se puede aadir a su archivo fuente para proporcionar informacin de cualquier tipo. El

compilador ignora los comentarios. Su uso es opcional pero es recomendable. Los comentarios de un programa se pueden introducir de 2 formas. Estilo C estndar Estilo C++ /* // */ varias lneas. una lnea.

Signos de puntuacin y separadores.- Todas las sentencias deben terminar en un punto y coma (;). Los separadores son espacios en blanco, tabulaciones, retornos de carro y avances de lnea. Archivos de cabecera.- Es un archivo especial que contiene las declaraciones de objeto y funciones de biblioteca, se puede utilizar la directiva #include, la mayora de los programas contiene lneas como esta al principio. #include <iostream.h> Tipos de datos en C++.- Los tipos de datos bsicos son: Enteros Reales (nmeros de punto floatnte). Caracteres Lgicos Tipo de datos enteros (int).- Son adecuados para aplicaciones que trabajan con tipos de datos numricos. TIPO DE RANGO DE

DATO int unsigned int short int long int unsigned long

VALORES - 32768 .... 32767 0 .... 65535 - 128 .... 127 - 2147483648 .... 2147483647 0 .... 4294967295

DECLARACIN DE VARIABLES DENTRO DE UN PROGRAMA C++ Formato 1: <tipo de dato> <nombre de variable> = <valor inicial> Formato 2: <tipo de dato> <nom _ var1>, <nom _ var2>, ... <nom _ var n>; Ej.: Formato 2: int valor; int nmero, tem, dato; Formato 1: int valor = 100; Tipos de datos reales (float).- Los tipos de datos de punto o coma floatnte representa nmeros reales que contienen un punto decimal tal como 3,1415916 o nmeros muy grandes tales como 1,85 x 1015. TIPO DE RANGO VALORES 3.4 x 10-38 1.7 x 10-308 3.4 x 10-4932 DE PRECISI N 7 dgitos 15 dgitos 19 dgitos TAMAOS BYTES 4 8 10

DATOS float double long double Ej.: float valor1; float z1, z2, z3;

Tipo de datos carcter.- Un carcter es cualquier elemento de un conjunto de caracteres. El tipo char representa valores en el rango de 0 a 255 que se asocian con el cdigo de caracteres ASCII. Se puede definir una variable carcter escribiendo char letra;

char car1, car2, car3; char dato _ car = A; Internamente los caracteres se almacenan como nmeros por ejemplo, A = con el nmero 65. B = 66 C = 67 Puesto que los caracteres se almacenen internamente como nmero, se pueden realizar operaciones aritmticas con datos tipo char. Ej.: Convertir la letra minscula a, a la letra mayscula A. char letra; letra = a; letra = letra 32; Tipo de datos lgicos (bool).- Este tipo de datos proporciona la capacidad de declarar variables lgicas cuyos valores son verdadero y falso: Verdadero true Falso Ej.: bool sw; sw = true; Simulacin del tipo bool.- Si su compilador C++ no incluye el tipo bool deber utilizar el tipo de dato int para representar el tipo de dato bool. C++ utiliza el valor entero cero (0) para representar falso y cualquier valor entero distinto de cero (0) normalmente 1, para representar verdadero. De esta forma se pueden utilizar enteros para escribir expresiones lgicas de igual forma que se utiliza el tipo bool. Tambin se puede declarar datos lgicos definiendo un tipo enumerado bolean con 2 valores falso y verdadero de la siguiente forma: enum boolean { false, true} false

Esta declaracin hace a bolean un tipo definido por el usuario con valores constantes true y false. CONSTANTES En C++ existen 4 tipos de constantes la primera constantes literales, constantes definidas, constantes enumeradas, y constantes declaradas. Constantes literales.- Son las ms usuales toman valores tales como 23.58; 13; Ingrese sus datos, que se pueden escribir directamente en el texto del programa. Las constantes literales o las constantes en general, se clasifican a su vez en 4 grupos: Constantes enteras. Constantes reales. Constantes caracteres. Constantes cadenas. Constantes literales enteras.- Para la escritura de constantes de este tipo no se deben realizar nunca coma (,) o otros signos de puntuacin en nmeros completos. Constantes literales Ej.: 12.3 0.89 1.25e-4 Constantes literales carcter.- Una constante carcter (char) es un carcter del cdigo ASCII encerrado entre comillas simples ( ) es decir: A 9 reales.- Estas constantes representan un

nmero real, representan aproximaciones en lugar de nmeros exactos.

Adems se puede leer un carcter utilizando una barra oblicua (\) llamado cdigo de escape. Secuencias de cdigo de escape CDIGO DE ESCAPE \n \r \t \v \a \b \f \\ \ Ejemplo // Prueba de cdigos de escape #include <iostream.h> #include <conio.h> main () { clrscr (); char alarma = \a; char lnea = \n; char tabula; tabula = \t; cout << alarma; cout << tabula; //otra forma SIGNIFICADO Nueva lnea Retorno de carro Tabulacin Tabulacin vertical Alerta (pitido sonoro) Retorno de espacio Avance de pgina Barra inclinada inversa Comilla simple

cout << Prueba de cdigos de escape \n \t \a ; getch (); } Aritmtica con caracteres C++.- Dado la correspondencia entre un carcter y su cdigo ASCII, es posible realizar operaciones aritmticas sobre datos carcter: char letra; letra = A; //A = 65 letra = letra + 1 //B = 66 A la inversa se puede almacenar constantes de carcter en variables enteras por ejemplo: int valor; valor = A; cout << valor; Constante cadena.- Es una secuencia de caracteres encerrados entre comillas dobles. Ejemplo de cadena Se puede escribir una cadena en varias lneas terminada cada lnea con el (\) Ej.: Ejemplo de una cadena \ que tiene dos lneas En memoria las cadenas se representan como una serie de caracteres ASCII ms un cero o nulo. El carcter nulo marca el final de la cadena. Recordar que una constante carcter se encierra entre comillas simples, las constantes de cadenas se encierran entre comillas dobles, as por ejemplo: B long 1 y B long1 (0)

Por consiguiente no se debe mezclar constantes tipo char con las de cadena dentro de los programas.

Constantes definidas.- Tambin llamadas constantes simblicas, pueden recibir nombres mediante la directiva define, Ej.: #define PI 3.141592 #define valor 67 #define carcter @ C++ sustituye los valores de 3.141592; 67 y @ por las constantes simblicas PI, valor y cadena. Ej.: cout << El valor de PI es << PI; salida (El valor de PI es 3.141592) Constantes enumeradas.- Estas permiten crear listas de elementos afines. Ej.: enum colores {amarillo, azul, rojo, naranja, violeta}; 0 1 2 3 4 colores color _ favorito; color _ favorito = azul; cout << color _ favorito; //salida 1

enum colores {amarillo, azul, rojo = 5, naranja, violeta}; 0 1 5 6 7

enum boolean {false, true}; 0 1

Constante declaradas (const).- El cualificador const permite dar nombres simblicos a constantes, como lo hacen otros lenguajes. Formato: Const tipo nombre = valor; Si se omite tipo C++ asigna int por defecto. Ejemplos: const int edad = 15;

const char letra = z; const double peso = 35.5; const horas = 100; const char frase[ ] = Esto es una cadena; Las variables const especifica que el valor de una variable no se puede modificar durante el programa, cualquier intento de modificarlo producir un error. LAS VARIABLES En C++ una variable es una posicin con nombre en memoria donde se almacena un valor de un cierto tipo de dato y puede ser modificado durante le ejecucin del programa, las variables pueden almacenar todo tipo de datos, cadenas, nmeros, estructuras. Declaracin.- Una declaracin de una variable es una sentencia que proporciona informacin de la variable al compilador de C++. Formato: tipo variable; Ej.: int aos; long total; char letra; float sueldo; Toda variable utilizada en un programa debe ser declarada previamente. Las declaraciones en C++ pueden situarse en cualquier parte del programa. Inicializacin de variable.- Formato: tipo nombre _ variable = expresin; Donde expresin es cualquier expresin valida cuyos valores es del mismo tipo que tipo. Ej.: int aos = 25; char letra = x;

Duracin de una variable.- Dependiendo del lugar donde se defina las variables de C++, estas se pueden utilizar en la totalidad del programa de una funcin o pueden existir temporalmente dentro de un bloque de una funcin. La zona de un programa de una variable est activa, se denomina mbito o alcance. El mbito de una variable se extiende hasta los lmites de la definicin de sus bloques. Los tipos bsicos son variables locales y variables globales. VARIABLES LOCALES Las variables locales son aquellas definidas en el interior de una funcin y son visibles solo en una funcin especifica. Las reglas por las que se rigen estas son: 1. En el interior de una funcin una variable local no puede ser llamada por ninguna sentencia externa a la funcin. 2. Los nombres de las variables no han de ser nicas. Es decir que 2, 3 o ms funciones pueden definir variables con el mismo nombre. 3. Las variables locales de las funciones no existen en memoria hasta que se ejecuta la funcin. VARIABLES GLOBALES Son variables que se declaran fuera de la funcin y por omisin son visibles a cualquier funcin incluyen main ( ). La memoria asignada a una variable global permanece a travs de la ejecucin del programa. Por esta razn se debe evitar utilizar muchas variables globales dentro de un programa. Nota: Todas las variables locales desaparecen cuando termina su bloque. Una variable global visible desde el punto que se define hasta el final del programa.

ENTRADAS Y SALIDAS En C++ las entradas y salidas se lee y se escribe en flujos (streams). Cuando iostream.h se incluye en un programas diferentes flujos estndar son definidos automticamente. Salida (cout) (console output).- El operador de insercin << inserta datos en el flujo cout que las visualiza en la pantalla de su equipo, as: cout << Este es un ejemplo de salida; j = 25; c = A; x = 40.60; cout << j << c << x; cout << \t Primero \n\t B \n UTM ; Entrada (cin) (console input).- El archivo de cabecera iostream.h de la biblioteca C++ y un operador de extraccin >>, para extraer valores de flujo y almacenarlas en variables. Ej.: int valor; cin >> valor; float numero; cout << Ingrese la nota: ; cin >> nota; Escribir y ejecutar un programa que escriba su nombre y direccin // Programa de ingreso de nombre y direccin
#include <iostream.h> #include <conio.h> void main() { char nombre[40]; char direccion[50]; clrscr();

cout<<"\t\t** PROGRAMA QUE MUESTRA SU NOMBRE Y DIRECCION ** \n\n\n"; cout<<"ESCRIBA SU NOMBRE: "; cin.getline(nombre,40); cout<<"\nESCRIBA SU DIRECCION: "; cin.getline(direccion,50); cout<<"\n\n\n\t SU NOMBRE ES : "<<nombre; cout<<"\n\n\t SU DIRECCION ES: "<<direccion; getch();

OPERADORES Y EXPRESIONES Los programas C++ constan de datos, sentencias de programas y expresiones. Una expresin es normalmente una ecuacin matemtica, es una secuencia de operaciones y operandos que especifican el clculo. Operador de asignacin.- El operador (=) asigna el valor de la expresin derecha a la variable situada a su vez izquierda. cdigo = 1234 Este operador es asociativo por la derecha, eso permite realizar asignaciones mltiples: a = b = c = 256; char q, l, m; q = l = m = @; Operadores aritmticos.- Los operadores aritmticos sirven para realizar operaciones aritmticas bsicas. Los operadores aritmticos C+ + siguen las reglas algebraicas tpicas de jerarqua. Estas reglas especifican la procedencia de las operaciones aritmticas. OPERADO R + * / Suma Resta Multiplicacin Divisin: FUNCIN EJEMPL O 5+2= 7 63=3 4*2=8 10/2 = 5

cociente Divisin: residuo

10%3 =1

Reglas de jerarqua 1. Las expresiones interiores en parntesis se evalan primero. 2. La precedencia de las operadores aritmticos es: PRECEDENCI A 1 2 OPERADORE S *, /, % +, -

3. Operadores de una misma jerarqua en una expresin se evalan de izquierda a derecha. Cul es el resultado de las siguientes expresiones EXPRESIN 5 + 2 * 8 3/2 10 * 2 * (5 + 4 * 2) - 6 8+5*4%3+ RESULTAD O 20 254 17

9-2 Se lee dos nmeros desde el teclado visualizar el resultado de la suma de datos.
#include <iostream.h> #include <conio.h> void main() { int n1, n2, suma; clrscr(); cout<<"\t\t\t *** INGRESAR 2 NUMEROS *** \n\n\n"; cout<<"INGRESE EL PRIMER NUMERO : "; cin>>n1; cout<<"\nINGRESE EL SEGUNDO NUMERO : "; cin>>n2; suma = n1 + n2; cout<<"\n\n\n\t\tEL RESULTADO DE "<<n1<<" + "<<n2<<" = "<<suma; getch(); }

Para escribir nombres con espacios: char nombre [45]; cin.getline [nombre, 45]; cout <<nombre; OPERADORES DE INCREMENTO Y DE DECREMENTO OPERADORES DE INCREMENTO ++ Ej.: ++m m++ n---n Ejemplo Main ( ) { int m = 45, n = 75; cout << m = << m << n = << n; ++m; --n; cout << m = << m << n = << n; m++; n--; cout << m = << m << n = << n; } Cuando estos operadores se utilizan como expresiones tales como: P = ++r = = = = m=m+1 m=m+1 n=n1 n=n1 OPERADORES DE DECREMENTO --

Se pueden comportar de la siguiente manera: ++, - -, estn de prefijos (++k), la operacin del incremento se efecta antes que la operacin de asignacin; si los operadores ++, - - estn de sufijos (k++), la asignacin se efecta en primero lugar y la incrementacin o decrementacin a continuacin. Ej.: int i = 10; int j; j = i++ quedar i = 11 j = 10 OPERADORES DE RELACIN Los operadores relacionales comprueban una relacin entre 2 i = 11 j = 11 int i = 10; int j; j = ++i

operandos, sirven para establecer condiciones, cuando se utilizan estos operadores en una expresin, estos producen un cero o un uno dependiendo del resultado de la condicin: 0 false 1 true Tabla de operadores relacionales OPERADO R == != > < >= <= SIGNIFICAD O Igual que Diferente de Mayor que Menor que Mayor o igual que Menor o igual EJEMPL O a == b a != b a>b a<b a >= b a <= b

que Ejemplos EXPRESI N 8 >= 4 9 != 10 14 <= 14 8 == 10 7>9 3<2 A < B a > A RESULTAD O 1 1 1 0 0 0 1 1

Nota: Los operadores relacionales tienen menor prioridad que los operadores aritmticos. m + 8 >= n * 4 (m + 8) >= (n * 4) Operadores lgicos.- Se denominan tambin operadores booleans, se utilizan en expresiones condicionales, sirven para devolver un valor verdadero o falso. Tabla de operadores lgicos OPERADO R ! && || SIGNIFICAD O not(no) and(y) or(o) EJEMPLO !(m > p) (a < b) && (c > d) (j <= h) || (r >= l) PRECEDENCI A 1 2 3

Tabla de verdad operador not(!) OPERANDO NOT

a T F

a F T

Tabla de verdad operador and(&&). OPERADOR a T T F F OPERADOR b T F T F a && b T F F F

Tabla de verdad del operador or(||) OPERADOR a T T F F OPERADOR b T F T F a || b T T T F

Ejemplo EXPRESIN (a > 4) || (7 <= 7) (10 == 4) && (14 >= 9) !(4 <= 7) || (8 != 10) !((14 >= 20) && (22 == 12)) RESULTAD O T F T T

UNIDAD IV
ESTRUCTURAS DE CONTROL

Las estructuras de control controlan el flujo de ejecucin de un programa o funcin. Las estructuras de control permiten combinar instrucciones o sentencias individuales en una simple unidad lgica con un punto de entrada y un punto de salida. Las instrucciones o sentencias se organizan en tres tipos de estructuras de control que sirven para controlar el flujo de ejecucin; Secuenciales, seleccin y repeticin. Una sentencia compuesta es un conjunto de sentencias encerradas entre llaves { } que se utilizan para especificar un flujo secuencial. ESTRUCTURAS DE CONTROL SECUENCIALES En este tipo de estructuras la ejecucin comienza con la primera sentencia de la funcin y prosigue hasta la ltima sentencias, cada una de las cuales se ejecuta una sola vez. Esta forma de programacin es adecuada para resolver problemas sencillos. Diagrama de Flujo Codificacin Sentencia 1 Sentencia 2 Sentencia 2; Sentencia 3 Sentencia 3; Sentencia n; Sentencia n Ejercicios 1. Enunciado del problema Escribir un programa que solicite al usuario la longitud y la anchura de una habitacin y a continuacin visualice la superficie. } { Sentencia 1; Seudocdigo

2. Anlisis Entrada: largo. Ancho. Proceso: largo * ancho Salida: superficie

3. Definicin de variables largo: ancho: largo de habitacin ancho de habitacin superficie o rea de habitacin

superficie:

4. Diseo del algoritmo 4.1. Diagrama de flujo


IN IC IO

la rg o , a n c h o s u p e rfi c i e < -la rg o * a n c h o s u p e rfic ie F IN

Seudocodigo Inicio Leer(largo) Leer(ancho) Superficie largo*ancho Escribir(superficie) Fin 5. Prueba de escritorio lar go 5 anc ho 4 superfi cie 20 Sali da 20

6.

Codificacin

//PROGRAMA 3 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 12/10/01 #include <iostream.h> #include <conio.h> void main() { float largo, ancho, superficie; clrscr(); cout<<"\t***** PROGRAMA QUE CALCULA LA SUPERFICIE DE UNA HABITACION *****\n\n\n"; cout<<"\t\t\t LARGO \n"; cout<<"\t\t\t \n"; cout<<"\t\t\t \n"; cout<<"\t\t\t ANCHO \n"; cout<<"\t\t\t \n"; cout<<"\t\t\t \n\n\n\n"; cout<<"INGRESE EL LARGO DE LA HABITACION: "; cin>>largo; cout<<"\nINGRESE EL ANCHO DE LA HABITACION: "; cin>>ancho; superficie = largo*ancho; cout<<"\n\n\n \t\t LA SUPERFICIE DE LA HABITACION ES: "<<superficie; getch(); }

PROGRAMA # 4 1. Enunciado del problema

La temperatura Celsius puede ser convertida a una temperatura equivalente Fahrenheit de acuerdo con la siguiente formula: f=(9/5)c + 32. 2. Analisis Celsius (9/5)c+32 Fahrenheit.

Entrada: Proceso: Salida: 3.

Definicin de variables

Celsius

Celsius

Fahrenheit: faren. 4. Diseo de algoritmo 4.1 Diagrama de Flujo

IN IC IO

C e ls iu s fa re n < -- (9 / 5 )* c e l s i u s + 3 2 f a re n F IN

4.2

Seudocodigo inicio leer(Celsius) faren (9/5)*Celsius + 32 escribir(faren) fin.

5.

Prueba de escritorio Celsi us 40 far en 104 Sali da 104

6.

Codificacin

//PROGRAMA 4 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 16/10/01 #include <iostream.h> #include <conio.h> void main() { float celcius,faren;

clrscr(); cout<<"\t\t*** PROGRAMA DE CONVERSION DE CELCIUS A FARENHEIT ***\n\n\n"; cout<<"INGRESE LOS GRADOS CENTIGRADOS: "; cin>>celcius; faren = (9.0/5.0)*celcius+32; cout<<"\nLA CONVERSION A GRADOS FARENHEIT ES = "<<faren<<" F"; getch(); }

PROGRAMA #5 1. Enunciado del problema Un sistema de ecuaciones lineales ax + by = c dx + ey = f se puede resolver con las siguientes formulas: x = (ce - bf)/(ae - bd) ; y = (af - cd)/(ae - bd) ; disear un programa que lea los dos conjuntos de coeficientes (a,b,c,d,e,f) y visualize los valor se x, y. 2. Anlisis a, b, c, d, e, f x = (ce - bf)/(ae - bd) ; y = (af - cd)/(ae - bd) . x, y.

Entrada: Proceso: Salida: 3.

Definicin de variables coeficientes de la primera ecuacin. coeficientes de la segunda ecuacin. variables. Diseo de algoritmo 4.1 Diagrama de Flujo
IN IC IO

a, b, c: d, e, f: x, y: 4.

a ,b ,c ,d ,e ,f x < -- (c e -b f)/ (a e -b d ) y < -- (a f-c d )/ (a e -b d ) x, y F IN

4.2

Seudocodigo inicio leer(a, b, c, d, e, f) x (ce bf)/(ae - bd) y (af - cd)/(ae - bd) escribir(x, y) fin.

5.

Prueba de escritorio a b c d e f x y 0, 4 Sali da 1,4 0,4

2 3 4 3 2 5 1, 4 6. Codificacin

//PROGRAMA 5 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 16/10/01 #include <iostream.h> #include <conio.h> void main () { float a,b,c,d,e,f,x,y; clrscr(); cout<<"\t\t**** RESOLUCION DEL SISTEMA DE ECUACIONES ****\n"; cout<<"\t\t\t1) ax + by = c\n"; cout<<"\t\t\t2) dx + ey = f\n"; cout<<"\nINGRESE LOS COEFICIENTES DE LA PRIMERA ECUACION:\n"; cout<<"a = "; cin>>a; cout<<"b = "; cin>>b; cout<<"c = "; cin>>c; cout<<"INGRESE LOS COEFICIENTES DE LA SEGUNDA ECUACION:\n"; cout<<"d = "; cin>>d; cout<<"e = "; cin>>e; cout<<"f = ";

cin>>f; cout <<"\n\tEL SISTEMA DE ECUACIONES QUEDA REPRESENTADO ASI:\n"; cout <<"\t\t\t"<<a<<"x"<<" + "<<b<<"y"<<" = "<<c<<'\n'; cout <<"\t\t\t"<<d<<"x"<<" + "<<e<<"y"<<" = "<<f<<'\n'; x=(c*e-b*f)/(a*e-b*d); y=(a*f-c*d)/(a*e-b*d); cout<<"\n\tEL RESULTADO ES :\n"; cout<<"\t\t\tX = "<<x; cout<<"\n\t\t\tY = "<<y; getch();

PROGRAMA #6 1. Enunciado del problema

Escribir un programa que lea la longitud de los lados de un triangulo y calcule la hipotenusa. 2. Anlisis a, b h =(a2 + b2) h

Entrada: Proceso: Salida: 3. h: 4.

Definicin de variables hipotenusa Diseo de algoritmo 4.1 Diagrama de flujo


IN IC IO

a, b : lados del tringulo

a, b h < -- ra i z (a ^ 2 + b ^ 2 ) h F IN

4.2

Seudocodigo inicio leer(a,b) h raiz(a^2+b^2) escribir(h) fin

5.

Prueba de escritorio a b h 3 4 5 Sali da 5

6. Codificacin

//PROGRAMA 6 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 16/10/01 #include <iostream.h> #include <conio.h> #include <math.h> void main() { float a,b,h; clrscr(); cout<<"\t **** PROGRAMA QUE CALCULA LA HIPOTENUSA DE UN TRIANGULO ****\n\n"; cout<<"INGRESE LOS LADOS DEL TRIANGULO:\n\n"; cout<<"INGRESE LADO A = "; cin>>a; cout<<"INGRESE LADO B = "; cin>>b; h = sqrt(a*a + b*b); cout<<"\nEL CALCULO QUEDARA : h = "<<a<<""<<" + "<<b<<""; cout<<"\n\nLA HIPOTENUSA ES IGUAL A: "<<h; getch(); }

PROGRAMA #7 1. Enunciado del problema:

El rea de un triangulo cuyos lados son a, b, c puede ser calculado por la formula

a=raiz(p(p-a)(p-b)(p-c)) p = (a + b + c)/2 Escribir un programa que lea la longitud los 3 lados del triangulo y calcule el rea. 2. Anlisis lados p =( a + b + c)/2 ; a = raz (p(p-a)(p-b)(p-c)) rea.

Entrada: Proceso: Salida: 3. lados: rea: 4.

Definicin de variables a, b, c A Diseo de algoritmo 4.1 Diagrama de flujo


IN IC IO

permetro: p

a, b, c P = (a + b + c )/ 2 A = ra i z (p (p -a )(p -b )(p -c )) A F IN

4.2

Seudocodigo inicio leer(a, b, c) p (a+b+c)/2 A raiz(p(p-a)(p-b)(p-c)) Escribir(A) Fin

5.

Prueba de escritorio a b c p A 3 5 4 6 6 Sali da 6

6.

Codificacin

//PROGRAMA 7 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 26/10/01 #include <iostream.h> #include <conio.h> #include <math.h> void main () { float a,b,c,P,A; clrscr(); cout <<"\t\t\t**** CALCULO DEL AREA DE UN TRIANGULO ****\n\n\n"; cout <<"INGRESE LOS 3 LADOS DEL TRIANGULO\n"; cout <<"\nA = "; cin >> a; cout <<"B = "; cin >> b; cout <<"C = "; cin >> c; P=(a+b+c)/2; A=sqrt(P*(P-a)*(P-b)*(P-c)); cout <<"\nEL AREA ES IGUAL A = "<<A; getch(); }

ESTRUCTURAS DE SELECCIN Estructura selectiva simple ( if ).- La estructura de seleccin simple if controla si una sentencia o lista de sentencias se ejecutan en funcin del cumplimiento o no de una condicin. Diagrama de flujo
c o n d ic i n

Seudocodigo Si entonces

V
s e n t e n c i a (s )

(condicin) Sentencia(s)

Codificacin if (condicin) sentencia; Donde: Condicin es una expresin entera Sentencia es cualquier sentencia ejecutable, que se ejecutar solo si la condicin verdadera, es decir si esta toma un valor distinto de cero. PROGRAMA #8 1. Enunciado

Disear un programa que visualice si un numero entero dado es positivo. 2. Anlisis nmero numero > 0 positivo

Entrada: Proceso: Salida: 3.

Definicin de variables n

nmero : 4.

Diseo de algoritmo 4.1 Diagrama de flujo


IN IC IO n n > 0

"p o s itiv o "

F IN

4.2

Seudocodigo inicio leer(n) si (n>0) entonces escribir(n) fin_si fin.

5.

Prueba de escritorio n 3 Sali da 3

6.

Codificacin

//PROGRAMA 8 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 26/10/01 #include <iostream.h> #include <conio.h> void main() { int n; clrscr(); cout <<"\t\t*** PROGRAMA QUE LE INFORMA SI UN NUMERO ES POSITIVO ***\n"; cout <<"\n\nINGRESE UN NUMERO ENTERO: "; cin >> n; if (n > 0) cout <<"\n\n\t\t\tES UN NUMERO POSITIVO"; getch(); }

PROGRAMA #9 1. 2. Enunciado Anlisis n1, n2 n1/n2 Es divisible n1, n2 Disear un programa que pruebe la divisibilidad de dos nmeros Entrada: Proceso: Salida: 3. nmeros: 4.

Definicin de variables

Diseo de algoritmo 4.1 Diagrama de flujo


IN IC IO n 1 ,n 2 n1 m od n2 = 0

v
"E s d iv is ib le "

F IN

4.2

Seudocodigo inicio leer(n1,n2) si (n1 mod n2 = 0) entonces escribir(Es divisible) Fin_si Fin.

5.

Prueba de escritorio n 1 8 n 2 2 Salida Es divisible

6.

Codificacin

//PROGRAMA 9 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 26/10/01 #include <iostream.h> #include <conio.h> void main() { int n1,n2; clrscr(); cout<<" ***** PROGRAMA QUE VERIFICA SI UN NUMERO ES DIVISBLE PARA OTRO *****"; cout<<"\n\n\nINGRESE DOS NUMEROS:"; cout<<"\n\nNUMERO UNO = "; cin>>n1; cout<<"NUMERO DOS = "; cin>>n2; if ((n1%n2) == 0) cout<<"\n\n\t\t\t"<<n1<<" ES DIVISIBLE DE "<<n2; getch(); }

PROGRAMA # 10 1. Enunciado Visualizar el valor absoluto de un numero entero ingresado por teclado. 2. Anlisis un nmero -(-nmero) nmero

Entrada: Proceso: Salida: 3.

Definicin de variables

nmero : n
IN IC IO

4.

Diseo de algoritmo 4.1 Diagrama de flujo


n n < 0

v
n < -- -n n

F IN

4.2

Seudocodigo inicio leer(n) si (n<0) entonces n -n escribir(n) fin_si fin.

5.

Prueba de escritorio n 2 Sali da 2

6.

Codificacin

//PROGRAMA 10 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 26/10/01 #include <iostream.h> #include <conio.h> void main() { int n; clrscr();

cout<<"\t\t** PROGRAMA QUE MUESTRA EL VALOR ABSOLUTO DE UN NUMERO **\n"; cout<<"\n\n\nINGRESE UN NUEMRO ENTERO: "; cin>>n; if (n<0) n=-n; cout<<"\n\n\t\t\tSU VALOR ABSOLUTO ES "<<n; getch(); }

ESTRUCTURAS DE SELECCIN DOBLE ( IF ELSE) La estructura de seleccin doble permite elegir de entre alternativas posibles dependiendo de la respuesta de una condicin. Diagrama de flujo Seudocodigo F v Si (condicin) entonces Sentencia 1 Caso contrario
s e n t e n c i a (s ) s e n t e n c i a (s )

dos

c o n d ic i n

Sentencia 2 Fin_si

Codificacin if (condicin) sentencia 1; else sentencia 2; PROGRAMA #11 1. Enunciado

Calcular el mayor de dos nmeros enteros ledos del teclado y visualizarlo en pantalla.

2.

Anlisis 2 nmeros enteros n1>n2 n1

Entrada: Proceso: Salida: 3.

Definicin de variables

numero 1: n1 numero 2: n2 4. Diseo de algoritmo 4.1 Diagrama de flujo


IN IC IO

n1, n2

n1>n2

n 2 , "E s m a y o r"

n 1 , "E s m a y o r"

F IN

4.2

Seudocodigo inicio leer(n1,n2) si (n1>n2) entonces escribir(n1, es mayor) caso contrario escribir(n2, es mayor) fin_si fin.

5.

Prueba de escritorio

n 1 5

n 2 8

Salida 8 es mayor

6.

Codificacin

//PROGRAMA 11 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 26/10/01 #include <iostream.h> #include <conio.h> void main() { int n1,n2; clrscr(); cout<<"\t **** PROGRAMA QUE VERIFICA CUAL ES EL MAYOR DE 2 NUMEROS ****"; cout<<"\n\n\nINGRESE DOS NUMEROS:"; cout<<"\n\nEL PRIMER NUMERO ES = "; cin>>n1; cout<<"EL SUGUNDO NUMERO ES = "; cin>>n2; if (n1>n2) cout<<"\n\n\t\t"<<n1<<" ES EL MAYOR"; else cout<<"\n\n\t\t"<<n2<<" ES EL MAYOR"; getch(); }

PROGRAMA #12 1. Enunciado

Escribir un programa que visualice la palabra alta si el valor de la variable nota es mayo o igual que 100 y la palabra baja si el valor de esa nota es menor a 100. 2. Anlisis nota nota >=100 alta o baja

Entrada: Proceso: Salida:

3.

Definicin de variables

nota: nota 4. Diseo de algoritmo 4.1 Diagrama de flujo


IN IC IO

n o ta

n o ta > = 1 0 0

b a ja

a l ta

F IN

4.2

Seudocodigo inicio leer(nota) si (nota>=100) entonces escribir(alta) caso contrario escribir(baja) fin_si fin

5.

Prueba de escritorio no ta 12 Sali da alta

6.

Codificacin

//PROGRAMA 12 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 26/10/01 #include <iostream.h> #include <conio.h> void main() { float nota; clrscr(); cout<<"\t**** PROGRAMA QUE VISUALIZA SU LA NOTA ES ALTA O BAJA ****"; cout<<"\n\n\nINGRESE LA NOTA : "; cin>>nota; if (nota >= 100) cout<<"\n\n\t\t\tALTA"; else cout<<"\n\n\t\t\tBAJA"; getch(); }

SECUENCIA DE SENTENCIA IF if (condicin 1) sentencia 1; if (condicin 2) sentencia 2; if (condicin 3) sentencia 3; ANIDAMIENTO DE SENTENCIA IF ELSE if (condicin 1) sentencia 1; else if (condicin 2) sentencia 2; else sentencia 3; PROGRAMA #13

1.

Enunciado

Se ingresa un numero entero del teclado determinar si este numero es positivo, cero o negativo. Nota: en forma de secuencia de sentencia if 2. Anlisis nmero n >0; n=0; positivo, negativo o cero.

Entrada: Proceso: Salida: 3.

Definicin de variables n

Nmero: 4.

Diseo de algoritmo 4.1 Diagrama de flujo

IN IC IO n n>0

"e s p o s iti v o "

v
n<0

"e s n e g a tiv o "

n=0

v
"e s c e ro "

F IN

4.2

Seudocodigo inicio leer(n) si (n>0) entonces escribir(positivo) fin_si si (n<0) entonces escribir(negativo) fin_si si(n=0) entonces escribir(cero) fin_si fin.

5.

Prueba de escritorio n Salid 5 a positi vo

6.

Codificacin

//PROGRAMA 13 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 26/10/01 #include <iostream.h> #include <conio.h> void main() { int n; clrscr(); cout<<"\t*** PROGRAMA QUE INFORMA SI UN NUMERO ES POSITO, NEGATIVO O CERO ***"; cout<<"\n\n\nINGRESE EL NUMERO : "; cin>>n;

if (n > 0) cout<<"\n\n\t\t\tES POSITVO"; if (n < 0) cout<<"\n\n\t\t\tES NEGATIVO"; if (n == 0) cout<<"\n\n\t\t\tES CERO"; getch(); }

PROGRAMA #14 1. Enunciado

Se ingresa un numero entero del teclado determinar si este numero es positivo, cero o negativo. Nota: anidamiento de sentencia if else 2. Anlisis nmero n >0; n =0; positivo, negativo o cero.

Entrada: Proceso: Salida: 3.

Definicin de variables n

Nmero: 4.

Diseo de algoritmo 4.1 Diagrama de flujo


IN IC IO n

f f
n!=0

n>0

v
"e s p o s iti v o "

v
"e s n e g a tiv o "

"e s c e ro "

F IN

4.2

Seudocodigo

inicio leer(n) si (n>0) entonces escribir(positivo) caso contrario si (n!=0) entonces escribir(negativo) caso contrario escribir(es cero) fin_si fin_si fin. 5. Prueba de escritorio n 6. Codificacin 8 Salid a negati vo

//PROGRAMA 14 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 26/10/01 #include <iostream.h> #include <conio.h> void main() { int n; clrscr(); cout<<"\t*** PROGRAMA QUE INFORMA SI UN NUMERO ES POSITO, NEGATIVO O CERO ***"; cout<<"\n\n\nINGRESE EL NUMERO : "; cin>>n; if (n > 0) cout<<"\n\n\t\t\tES POSITVO"; else if (n != 0) cout<<"\n\n\t\t\tES NEGATIVO"; else cout<<"\n\n\t\t\tES CERO"; getch();

PROGRAMA #15 1. Enunciado

Escribir un programa que lea el precio de un articulo calcule su precio neto teniendo en cuenta las siguientes hipotesis: a) si precio es <= 100 sin descuento b) si precio es > 100 y < 250 descuento del 10% c) si el precio es >= 250 descuento del 20% 2. Anlisis precio a) si precio es <= 100 sin descuento b) si precio es > 100 y < 250 descuento del 10% c) si el precio es >= 250 descuento del 20% Salida: 3. precio (descuento)

Entrada: Proceso:

Definicin de variables pr.

precio: 4.

Diseo de algoritmo 4.1 Diagrama de flujo

IN IC IO pr

f
p r< = 1 0 0

v
pr

f
p r < -- p ro * 0 .2 + p r pr

p r> 1 0 0 a n d p r< 2 5 0

v
p r < -- p ro * 0 .1 + p r pr

F IN

4.1

Seudocodigo inicio leer(precio) si (pr<=100) entonces escribir(pr) caso contrario si (pr>100) entonces pr pr*0.1+pr escribir(pr) caso contrario pr pr*0.2+pr escribir(pr) fin_si fin_si fin.

5.

Prueba de escritorio prec io 300 Sali da 240

6.

Codificacin

//PROGRAMA 15 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 31/10/01

#include <iostream.h> #include <conio.h> void main() { float pr; clrscr(); cout<<"\t PROGRAMA QUE MUESTRA EL PRECIO TOTAL DE UN PRODUCTO CON DESCUENTO"; cout<<"\n\n\nINGRESE EL PRECIO DEL PRODUCTO: "; cin>>pr; if (pr <= 100) cout<<"\nEL PRECIO TOTAL ES = "<<pr; else if ((pr > 100) && (pr < 250)) { pr=pr-pr*0.1; cout<<"\nEL PRECIO TOTAL ES = "<<pr; } else { pr=pr-pr*0.2; cout<<"\nEL PRECIO TOTAL ES = "<<pr; } getch(); }

EJERCICIO #16 1. Enunciado

Un solicitante de trabajo es contratado si al menos tiene 18 aos o mas de edad y obtiene mas de 85 puntos en una de dos pruebas. 2. Anlisis Edad, nota 1, nota 2 edad >=18, nota 1 >85, nota 2 >85 contratado, o no. ed n1 n2
e d ,n 1 ,n 2 IN IC IO

Entrada: Proceso: Salida: 3. edad: nota 1: nota 2: 4.

Definicin de variables

Diseo de algoritmo 4.1 Diagrama de flujo f

(e d > = 1 8 )& & (n 1 > 8 5 | | n 2 > 8 5 )

"n o c o n t ra t a d o "

"c o n tra ta d o "

F IN

4.2

Seudocodigo inicio leer(ed, n1. n2) si ((ed>=18)&&((n1>=85)||(n2>=18))) entonces escribir(contratado) caso contrario escribir(no contratado) fin_si fin

5.

Prueba de escritorio e d 1 8 n 1 8 4 n 2 4 2 Salida no contratado

6.

Codificacin

//PROGRAMA 16 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 31/10/01 #include <iostream.h> #include <conio.h> void main() {

int ed,n1,n2; clrscr(); cout<<"\t***** PROGRAMA QUE MUESTRA SI UN SOLICITANTES ES CONTRATADO *****"; cout<<"\n\n\n\tINGRESE LA EDAD : "; cin>>ed; cout<<"\n\tINGRESE LA PRIMERA NOTA : "; cin>>n1; cout<<"\n\tINGRESE LA SEGUNDA NOTA : "; cin>>n2; if ((ed >= 18) && (n1 > 85 || n2 > 85)) cout<<"\n\n\n\t\t\t\tES CONTRATADO"; else cout<<"\n\n\n\t\t\t\tNO CONTRATADO"; getch(); }

PROGRAMA #17 1. Enunciado

Unas camisas se venden a razon de $22 c/u si es que se compran 6 o mas, y en $25 en caso contrario, escribir un programa que tenga como entrada la cantidad de camisas adquiridas y visualice el total de la venta. 2. Anlisis nmero de camisetas camisetas * precio total

Entrada: Proceso: Salida: 3.

Definicin de variables cam tv


IN IC IO

camisas:

total ventas: 4.

Diseo de algoritmo 4.1 Diagrama de flujo f

cam

cam >=6

tv < -- c a m * 2 5

tv < -- c a m * 2 2

tv F IN

4.2

Seudocodigo inicio leer(cam) si (cam>=6) entonces tv cam*22 caso contrario tv cam*25 fin_si escribir(tv) fin.

5.

Prueba de escritorio ca m 5 tv 12 5 Sali da 125

6.

Codificacin

//PROGRAMA 17 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 31/10/01 #include <iostream.h> #include <conio.h>

void main() { int cam,tv; clrscr(); cout<<"INGRESE LA CANTIDAD DE CAMISAS : "; cin>>cam; if (cam >= 6) tv=cam*22; else tv=cam*25; cout<<"EL TOTAL DE VENTAS ES $"<<tv; getch(); }

PROGRAMA #18 1. Enunciado

Escribir un programa que reciva el precio de una carta en onzas como entrada, imprima el costo, franquear una carta con la siguiente regla. La primera onz 1.50 y cada onz adicional cuesta 0.25 2. Anlisis peso peso por el precio costo

Entrada: Proceso: Salida: 3.

Definicin de variables pr

peso: onz precio: 4.

Diseo de algoritmo 4.1 Diagrama de flujo


IN IC IO

onz

f
p r < -- (o n z 1 )* 0 .2 5 + 1 . 5

o n z= 1

p r < -- 1 . 5

pr F IN

4.2

Seudocodigo inicio leer(onz) si (onz=1) entonces pr 1.5 caso contrario pr (onz-1)*0.25+1.5 fin_si fin.

5.

Prueba de escritorio on z 2 pr 1.7 5 Sali da 1.75

6.

Codificacin

//PROGRAMA 18 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 09/11/01 #include <iostream.h> #include <conio.h> void main() { int onz; float pr; clrscr(); cout<<"INGRESE EL PESO DE LA CARTA : "; cin>>onz; if (onz==1)

pr=1.5; else pr=(onz - 1)*0.25 + 1.5; cout<<"\n\n\n\t\tEL PRECIO A COBRAR ES $"<<pr; getch(); }

PROGRAMA #19 1. Enunciado

Se tiene como dato el nombre de un estudiante su nota parcial 1 y la nota parcial 2. Se debe hacer las siguiente consideraciones: notas 7 - 10 aprobado notas 4 - 6 recuperacion notas 1 - 3 reprobado parcial 1 nota hasta 4 parcial 2 nota hasta 6 2. Anlisis nombre, notas verificar notas para aprobar si se aprob.

Entrada: Proceso: Salida: 3.

Definicin de variables n1 n2 nom sum.


IN IC IO

nota 1: nota 2: nombre: suma: 4.

nom , n1, n2 s u m < -- n 1 + n 2

Diseo de algoritmo 4.1 Diagrama de f


"re p ro b a do" sum >=4

f v

sum >=7

flujo

"a p ro b a d o"

"re c u p e r a c i n "

F IN

4.2

Seudocodigo inicio leer(nom, n1, n2) sum n1 + n2 si (sum >= 7) entonces escribir(nom, aprobado) caso contrario si (sum>=4) entonces escribir(nom,recuperacin) caso contrario escribir(nom,reprobado) fin_si fin_si fin.

5.

Prueba de escritorio n 1 6 n 2 4 su m 10 salida aproba do

6.

Codificacin

//PROGRAMA 19 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { float n1,n2,sum; char nom[40]; clrscr(); cout<<"INGRESE EL NOMBRE DEL ESTUDIANTE : "; cin.getline(nom,40); cout<<"INGRESE EL PARCIAL 1 : "; cin>>n1; cout<<"INGRESE EL PARCIAL 2 : "; cin>>n2; sum=n1+n2; if (sum >= 7) cout<<"\n\n\t"<<nom<<" "<<sum<<" APROBADO"; else if (sum >= 4) cout<<"\n\n\t"<<nom<<" "<<sum<<" RECUPERACION"; else cout<<"\n\n\t"<<nom<<" "<<sum<<" REPROBADO"; getch(); }

ESTRUCTURA DE SELECCIN MLTIPLE (SWITCH) La sentencia switch se utiliza para seleccionar una opcin de entre mltiples alternativas, esta sentencia es especialmente til cuando la seleccin se basa en el valor de una variable simple o de una expresin simple denominada selector o expresin de control. Diagrama de flujo

E1

c a s o c o n t ra ri o

S e le c to r
E2 E3 E4

s1

s2

s3

sn

sx

Seudocodigo Segn sea <selector> hacer E1 : s1 E2 : s2 E3 : s3 . . . En : sn En otro caso sx fin_segun_sea

Sintaxis Switch (selector) { case sentencia(s) 1; break; case sentencia(s) 2; break; case sentencia(s) 3; break; case sentencia(s) n; etiqueta n: etiqueta 3: etiqueta 2: etiqueta 1:

La expresin de control o selector se evalua y se compara con cada una de las etiquetas del case. La expresin de control o selector debe ser un tipo ordinal por ejemplo int, char, no puede ser float, no puede ser string, double. Si el valor del selector, es igual a una de las etiquetas case, por ejemplo etiqueta 1 entonces la ejecucin comenzara con la primera sentencia de la secuencia, e decir con sentencia 1, y continuara hasta que se encuentre una sentencia break (o hasta que se encuentre el final de la sentencia switch). El tipo de dato de cada etiqueta debe ser el mismo que el del selector. Aunque la etiqueta default es opcional se recomienda su uso a menos que se este absolutamente seguro de que todos los valores estn incluidos en a etiqueta case. PROGRAMA #20

1.

Enunciado 0 visualizar cero 1 visualizar uno 2 visualizar dos 3 visualizar tres 4 visualizar cuatro

Se tiene como opcin los nmeros del 0 al 4 si es que la opcin es

En caso de ingresar un valor diferente emita un mensaje fuera de rango. 2. Anlisis nmero del 0 al 4 del cero al cuatro op Entrada: Salida: 3. 4. opcin:

Definicin de variables Diseo de algoritmo 4.1 Diagrama de flujo


In i c i o

op

0 1
"c e ro " "u n o "

c a s o c o n tra ri o

S e le c to r

2
"d o s "

4 3
"t re s " "c u a tro f u e ra d e ra n g o

fin

4.2

Seudocodigo inicio leer(op) segn sea (op) hacer 0: 1: escribir(cero) escribir(uno)

2: 3: 4:

escribir(dos) escribir(tres) escribir(cuatro) escribir(fuera de rango)

en otro caso fin_segun_sea 5. Prueba de escritorio o p 3 6. Codificacin Sali da tres

//PROGRAMA 20 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { int op; clrscr(); cout<<"INGRESE UN NUMERO DEL 0 AL 4 : "; cin>>op; switch (op) { case 0 : cout<<"ES CERO"; break; case 1 : cout<<"ES UNO"; break; case 2 : cout<<"ES DOS"; break; case 3 : cout<<"ES TRES"; break; case 4 : cout<<"ES CUATRO"; break; default: cout<<"FUERA DE RANGO"; } getch();

PROGRAMA #21

1.

Enunciado

Se desea convertir las calificaciones alfabticas a, b, c, d a calificaciones numricas 10,9,8,7 respectivamente en el caso de existir un error en el ingreso de datos emitir un mensaje. 2. Anlisis calificaciones alfabticas conversin de alfabtica a numrica calificacin numrica.

Entrada: Proceso: Salida: 3.

Definicin de variables x

calificacin alfabtica: ca mota numrica: 4.

Diseo de algoritmo 4.1 Diagrama de flujo


In ic io ca
'A '

c a s o c o n t ra r i o

S e le c to r
'B ' 'C ' 'D '

x < --1 0 x

x < -- 9 x

x < -- 8 x

x < -- 7 x

"c a l ifi c a c i n n o va lid a "

In ic io

4.2

Seudocodigo inicio leer(ca)

segn sea (ca) hacer A : x 10 escribir(x) B : x 9 escribir(x) C : x 8 escribir(x) D : x 7 escribir(x) en otro caso escribir(Calificacin no valida) fin_segn_sea fin. 5. Prueba de escritorio c a C 6. Codificacin Sali da 8

//PROGRAMA 21 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { int t,x; char ca; clrscr(); cout<<"INGRESE LA NOTA : "; cin>>ca; cout<<"\n\n\n\t\t\t"; switch (ca) { case 'A' : x=10; cout<<ca<<" = "<<x; break;

} getch();

case 'B' : x=9; cout<<ca<<" = "<<x; break; case 'C' : x=8; cout<<ca<<" = "<<x; break; case 'D' : x=7; cout<<ca<<" = "<<x; break; default : cout<<"CALIFICACION NO REGISTRADA";

PROGRAMA #22 1. Enunciado Se desea desplegar los nombres de los das de la semana de acuerdo al ingreso de valores correspondientes del 1 al 7. Emita un mensaje contra un posible error de entrada de datos. 2. Anlisis 1 al 7 Convertir 1 7 a Lunes a Viernes. Da de la semana Entrada: Proceso: Salida: 3. Da: 4.

Definicin de variables da Diseo de algoritmo 4.1 Diagrama de flujo


In ic io

d ia

1 2 3
lu n e s m a rte s m ie rc o le s ju e ve s

c a s o c o n tra ri o

d ia

5 4
v i e rn e s

6
sabado

7
d o m in g o fu e ra d e ra n g o

fin

4.2

Seudocodigo

inicio segn sea (dia) hacer 1: 2: 3: 4: 5: 6: 7: escribir(lunes) escribir(martes) escribir(mircoles) escribir(jueves) escribir(viernes) escribir(sbado) escribir(domingo)

en otro caso escribir (fuera de rango) fin_segn_sea fin 5. Prueba de escritorio di a 3 Salida mircol es 6. Codificacin

//PROGRAMA 22 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { int dia; clrscr(); cout<<"INGRESE EL DIA DE LA SEMANA : "; cin>>dia; cout<<"\n\n\n\t\t\t"; switch (dia) { case 1 : cout<<"LENES"; 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<<"ERROR EN EL INGRESO DEL DIA (1 - 7)"; } getch();

PROGRAMA #23 1. Enunciado a = excelente

Realizar un programa que verifica la nota alfabtica de un estudiante si es ha superado o no la prueba b = notable suficiencia c = aprobado d, e = suspendido 6. Codificacin

//PROGRAMA 23 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { char nota; clrscr(); cout<<"INTRUDZCA LA CALIFICACION A - E : "; cin>>nota; switch (nota) { case 'A' : cout<<"EXCELENTE..EXAMEN SUPERADO\n"; break; case 'B' : cout<<"NOTABLE SUFICIENCIA\n"; break; case 'C' : cout<<"APROBADO\n"; break; case 'D' : case 'E' : cout<<"SUSPENDIDO\n"; break; default : cout<<"NO ES POSIBLE LA NOTA"; break; }

getch(); }

PROGRAMA #24 1. Enunciado

Determinar si un carcter por teclado es una vocal caso contrario emita un mensaje. 6. Codificacin

//PROGRAMA 24 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { char v; clrscr(); cout<<"INGRESE UN CARACTER : "; cin>>v; switch (v) { case 'A' : case 'a' : case 'E' : case 'e' : case 'I' : case 'i' : case 'O' : case 'o' : case 'U' : case 'u' : cout<<"ES VOCAL"; break; default : cout<<"NO ES VOCAL"; } getch(); }

OPERADORES DE ASIGNACIN ESPECIAL Variable contador.- Un contador es una variable que se incrementa o decrementa de manera constante. v.contador = v.contador +/- valor_constante

k=k+1 c=c+5 x=x1 Variable acumulador.- Una variable de tipo acumulador es aquella que se incrementa de una cantidad variable. v.acumulador = v.acumulador + cantidad variable suma = suma + dato ESTRUCTURAS DE REPETICIN Una de las caractersticas de las computadoras que aumentan considerablemente su potencia es una capacidad para ejecutar una tarea muchas veces con gran velocidad, precisin y confiabilidad. Las estructuras repetitivas o iterativas realizan la repeticin de acciones. C+ + soporta 3 tipos de estructura de control de repeticin. 1. while 2. for 3. do _ while Estructura repetitiva while.- Un bucle es cualquier construccin del programa que repite una secuencia de sentencias un nmero de veces. La sentencia o grupo de sentencias que se repiten en un bloque se denomina cuerpo del bucle y cada repeticin del cuerpo del bucle se llama iteracin del bucle. La estructura while es un bucle pre test de modo que cuando se ejecuta el mismo, se evalua la condicin antes de que se ejecute el cuerpo del bucle. La estructura while tiene una condicin del bucle que controla la secuencia de repeticin. Diagrama de flujo Seudocodigo Mientras (condicin) hacer v
s e n te n c ia (s )

Sentencia(s) Fin_mientras

c o n d ic i n
F

Sintaxis While (condicin) Sentencia; While (condicin) { sentencia 1; sentencia 2; sentencia n; } El comportamiento de un funcionamiento de una sentencia whiel es: 1. Se evalua la condicin 2. Si la condicin es verdadera: a) La sentencia o sentencias especificadas como cuerpo del bucle se ejecuta. b) Vuelve el control al paso 1. 3. Si condicin es falsa el control se transfiere a la siguiente sentencia al bucle while (finaliza la estructura). En general existen 2 mtodos para controlar la terminacin de un bucle. 1. Bucles controlados por la variable contador. 2. Bucle controlado por datos centinela. 1. Bucles controlados por la variable contador.- La variable que presenta la condicin del bucle se denomina tambin variable de control del bucle debido a que su valor determina si el cuerpo del bucle se repite. 1. La variable de control (contador) debe ser primero inicializada. 2. Comprobada 3. Actualizada. //ms de una sentencia //una sola sentencia

Si la variable de control no se actualiza, este se ejecutara siempre. Tal bucle se denomina bucle infinito, que se produce cuando la condicin del bucle permanece y no se hace falso en ninguna iteracin. PROGRAMA #25 1. Enunciado

Disee un programa que imprima los nmeros del 1 al 100 utilizando la estructura while. 2. Anlisis 1 100

Salida: 3. c: 4.

Definicin de variables contador Diseo de algoritmo 4.1 Diagrama de flujo


in ic io c < -- 1

c < 101
F

v
c c < -- c + 1

fi n

4.2

Seudocodigo inicio c1 mientras (c<101) hacer escribir ( c )

c c +1 fin_mientrsa fin 6. Codificacin

//PROGRAMA 25 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { int c; clrscr(); c=1; while (c < 101) { cout<<c<<" "; c++; } getch(); }

PROGRAMA #26 1. Enunciado Un curso de 25 estudiantes de programacin a rendido una evaluacin y se tiene las notas de cada uno de ellos: obtener la sumatoria de estas notas. 2. Anlisis notas sumar las notas suma total Entrada: Proceso: Salida: 3. c: n: st:

Definicin de variables contador notas suma total

4.

Diseo de algoritmo 4.1 Diagrama de flujo


in ic io c < -- 0 s t < -- 0

c < 25
F

v
n

st fi n

s t < -- s t + n c < -- c + 1

4.2

Seudocodigo inicio c0 st 0 mientras (c<25) hacer leer(n) st st +n cc+1 fin_mientras escribir(st) fin.

6.

Codificacin

//PROGRAMA 26 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() {

int c=1; float n,st=0; clrscr(); while (c <= 25) { cout<<"INGRESE LA NOTA "<<c<<" : "; cin>>n; st=st+n; c=c+1; } cout<<"SUMA TOTAL "<<st; getch();

PROGRAMA #27 1. Enunciado

Se conoce las estaturas de 30 deportistas, obtener el promedio de dichas estaturas. 2. Anlisis estaturas sumar estaturas promedio

Entrada: Proceso: Salida: 3. est: c: pr: 4.

Definicin de variables estaturas contador promedio Diseo de algoritmo 4.1 Diagrama de flujo
in ic io c < -- 0 p r < -- 0

c < 30
F

v
est p r < -- p r+ e s t c < -- c + 1

p r < -- p r/ 3 0 pr fin

4.2

Seudocodigo inicio c0 pr 0 mientras (c<30) hacer leer(est) pr pr + est c c+1 fin_mientras pr pr/30 escribir(pr) fin.

6.

Codificacin

//PROGRAMA 27 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { int c=1; float pr=0,est; clrscr(); while (c <= 30) { cout<<"INGRESE LA ESTATURA "<<c<<" : "; cin>>est; pr=pr+est; c++; } pr=pr/30; cout<<"\n\n\t\tEL PROMEDIO DE ESTATURAS ES "<<pr; getch(); }

PROGRAMA #28 1. Enunciado

Calcular la suma de la serie donde n es un numero entero ingresado desde el teclado 1+1/2+1/3+...1/n. 2. Anlisis nmeros 1+1/2+1/3+...1/n. suma

Entrada: Proceso: Salida: 3. n: sn: c: 4.

Definicin de variables nmeros suma de nmeros contador. Diseo de algoritmo 4.1 Diagrama de flujo
in ic io n c < -- 0 s n < -- 0

c <= n
F

v
s n < -- s n + 1 / c c < -- c + 1

sn fin

4.2

Seudocodigo inicio leer(n)

c1 sn 0 mientras (c<=n) hacer sn sn + 1/c c c+1 fin_mientras escribir(sn) fin. 6. Codificacin

//PROGRAMA 28 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { int c=1,n; float sn=0; clrscr(); cout<<"INGRESE EL NUMERO DE VECES DE LA SUMA 1+1/2+1/3+..1/n : "; cin>>n; while (c <= n) { sn=sn+1.0/c; c++; } cout<<"\n\n\n\t\tLA SUMA ES "<<sn; getch(); }

PROGRAMA #28 1. Enunciado

Visualizar la tabla de multiplicar del cinco 2. Anlisis Tabla del cinco

Salida:

3. c: m: 4.

Definicin de variables contador multiplicacin Diseo de algoritmo 4.1 Diagrama de flujo


in ic io c < -- 0

c < 12
F

v
m < -- 5 * c c < -- c + 1

fi n

4.2

Seudocodigo inicio c0 mientras (c<129 hacer c c+1 m 5*c escribir(m) fin_mientras fin.

6.

Codificacin

//PROGRAMA 29 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h>

void main() { int c=0,m; clrscr(); cout<<"\n\t\t**** TABLA DE MULTIPLICACION DEL 5 ****\n\n"; while (c < 12) { c++; m=5*c; cout<<"5 x "<<c<<" = "<<m<<"\n"; } getch();

PROGRAMA #30 1. Enunciado

Visualizar los 10 primeros trminos de la serie fibonacci. 2. Anlisis 1, 2, 3, 5, 8 , ... 10 numero fibonacci.

Proceso: Salida: 3. c: n1: n2: nf: 4.

Definicin de variables contador primer nmero segundo nmero nmero fibonacci Diseo de algoritmo 4.1. Diagrama de flujo
in ic io c < -- 0 n 1 < -- 0 n 2 < -- 1

c < 10
F

v
n f < -- n 1 + n 2 c < -- c + 1 nf

fi n

n 1 < -- n 2 n 2 < -- n f

4.2

Seudocodigo inicio c0 n1 0 n2 1 mientras (c<10) hacer c c+1 nf n1 + n2 escribir (nf) n1 n2 n2 nf fin_mientras fin.

6.

Codificacin

//PROGRAMA 30 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //94ROGRAMACIN ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { int c=0,n1=0,n2=1,nf; clrscr(); cout<<\n\t** SERIE DE FIBONACCI LOS 10 PRIMEROS NUMEROS **\n\n\n; while (c < 10) { c++; nf=n1+n2; cout<<nf<< ; n1=n2 ; n2=nf ;

} getch();

BUCLES CONTROLADOS POR DATOS CENTINELA Normalmente no se conoce con exactitud cuantos elementos de datos se procesaran antes de comenzar la ejecucin de un programa. Un medio para manejar esta iteracin es instruir al usuario a introducir un nico dato definido y especificado denominado dato o valor centinela como ltimo dato. La condicin del bucle comprueba cada dato y termino cuando se lee el valor centinela. El valor centinela se debe seleccionar como dato. El dato centinela solo sirve para terminar el proceso del bucle. PROGRAMA #31 1. Enunciado

Obtener la sumatoria de una serie de nmeros positivos terminados con el valor -1 2. Anlisis nmeros positivos Suma de nmeros Suma

Entrada: Proceso: Salida: 3. n: sn: 4.

Definicin de variables nmero positivo suma de nmeros Diseo de algoritmo 4.1 Diagrama de flujo
n ! = -1
F

in ic io s n < -- 0 n

v
s n < -- s n + n n

sn fin

4.2

Seudocodigo inicio sn 0 leer(n) mientras (n!=-1) hacer sn sn + n leer(n) fin_mientras escribir(sn) fin.

6.

Codificacin

//PROGRAMA 31 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { const cen=-1; int con=1; float sn=0,n; clrscr(); cout<<"\n\t\t**SUMA DE NUMEROS HASTA QUE SE INGRESE EL -1**\n\n"; cout<<"INGRESE 1 NUMERO POSITIVO : "; cin>>n; while (n != cen)

{ sn=sn+n; con++; cout<<"INGRESE "<<con<<" NUMERO POSITIVO : "; cin>>n; } cout<<"\n\n\t\tLA SUMA DE "<<con-1<<" NUMEROS POSITIVOS ES "<<sn; getch();

PROGRAMA #32 1. 2. Enunciado Anlisis Encontrar el factorial de un numero. Entrada: Nmero factorial Proceso: 1*2*3*....n Salida: factorial 3. Definicin de variables c: fact: n: 4. contador factorial nmero Diseo de algoritmo 4.1 Diagrama de flujo
in ic io c < -- 0 f a c t < -- 1 n

c < n
F

fa c t fin

c < -- c + 1 f a c t < -- f a c t* c

4.2

Seudocodigo inicio c0 fact 1 leer(n)

mientras (c < n) hacer c c + 1 fact fact*c fin_mientras escribir(fact) fin. 6. Codificacin

//PROGRAMA 32 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01 #include <iostream.h> #include <conio.h> void main() { int c=0,fact=1,n; clrscr(); cout<<"\t***** PROGRAMA QUE REALIZA EL FACTORIAL DE UN NUMERO *****\n\n"; cout<<"INGRESE UN NUMERO : "; cin>>n; if (n != 0) while (c < n) { c++; fact=fact*c; } cout<<"\n\n\t\tEL FACTORIAL DE "<<n<<"!"<<" = "<<fact; getch(); }

ESTRUCTURA REPETITIVA FOR La sentencia For (bucle for) es un mtodo para ejecutar una sentencia o bloque automticamente. La sentencia for requiere que conozcamos por anticipado el nmero de veces porque se ejecutan las sentencias del interior del bucle, el bucle for se diferencia del while en que las operaciones de control del bucle se sitan en un solo lugar (la cabecera de la sentencia) Diagrama de flujo Seudocodigo

v < -- v i , v f ,v x s e n t e n c i a (s )

Desde v vi hasta vf [inc/dec vx] hacer Sentencia(s) Fin_desde

Donde: v vi vf vx : : : : variable ndice o de control valor inicial valor final valor incremento / decremento Sintaxis Formato ascendente For (int v=vi; v<=vf; exp_incremento) Sentencia; Formato descendente For (int v=vi; v <=vf; exp_decremento) for (inicializacin; condicin; incremento) sentencia(s); nota: Los rangos de incremento/decremento de la variable o expresin de control del bucle pueden ser cualquier valor, no siempre 1, es decir, 5, 10, 20, -4, etc., dependiendo de las iteraciones que se necesiten. PROGRAMA #33 1. Enunciado

Imprimir el enunciado "hola mundo" 10 veces.

4.

Diseo de algoritmo 4.1 Diagrama de flujo


in ic io v < -- 1 ,1 0 ,1 "h o l a m undo"

fi n

4.2

Seudocodigo inicio desde v 1 hasta 10 hacer escribir(hola mundo) fin_desde fin.

5.

Prueba de escritorio v 1 2 3 4 Salida hola mundo hola mundo hola mundo hola mundo

6.

Codificacin

//PROGRAMA 33 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 14/11/01

#include <iostream.h> #include <conio.h> void main() { clrscr(); for (int v=1; v <= 10; v++) cout<<"HOLA MUNDO \n"; getch(); }

PROGRAMA #34 1. Enunciado

Imprimir los nmeros del 1 al 10 2. Anlisis 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Salida: 3. n: 4.

Definicin de variables nmero Diseo de algoritmo 4.1 Diagrama de flujo


in ic io n < -- 1 , 1 0 , 1 n

fi n

4.2

Seudocodigo inicio desde n 1 hasta 10 hacer escribir (n) fin_desde

fin. 6. Codificacin
//PROGRAMA 34 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 14/11/01 #include <iostream.h> #include <conio.h> void main() { clrscr(); for (int n=1; n <= 10; n++) cout<<n<<'\n'; getch(); }

PROGRAMA #35 1. Enunciado

Imprimir los nmeros del 10 al 1

2.

Anlisis 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

Salida: 3. n: 4.

Definicin de variables nmero Diseo de algoritmo 4.1 Diagrama de flujo


in ic io n < -- 1 0 ,1 , -1 n

fi n

4.2

Seudocodigo inicio desde n 10 hasta 1 dec 1 hacer escribir(n) fin_desde fin.

5.

Codificacin

//PROGRAMA 35 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 14/11/01 #include <iostream.h> #include <conio.h> void main() { clrscr(); for (int n=10; n >= 1; n--) cout<<n<<'\n'; getch(); }

PROGRAMA #36 1. Enunciado

Escribir los nmeros del 10 - 100 de 10 en 10. 2. Anlisis 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

Salida: 3. n: 4.

Definicin de variables nmero Diseo de algoritmo

4.1 Diagrama de flujo

in ic io n < -- 1 0 ,1 0 0 ,1 0 n

fin

4.2

Seudocodigo inicio desde n 10 hasta 100 inc 10 hacer escribir(n) fin_desde fin.

5.

Codificacin

//PROGRAMA 36 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 14/11/01 #include <iostream.h> #include <conio.h> void main() { clrscr(); for (int n=10; n <= 100; n=n+10) cout<<n<<'\n'; getch(); }

PROGRAMA #37 1. Enunciado

Presentar 9, 6, 3, 0

2.

Anlisis 9, 6, 3, 0

Salida: 4.

Diseo de algoritmo 4.1 Diagrama de flujo


in ic io n < -- 9 ,0 ,-3 n

fin

4.2

Seudocodigo inicio desde n 9 hasta 0 dec 3 hacer escribir(n) fin_desde fin.

5.

Prueba de escritorio n 9 6 3 0 3 Sali da 9 6 3 0

6.

Codificacin

//PROGRAMA 37 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA

//PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 14/11/01 #include <iostream.h> #include <conio.h> void main() { clrscr(); for (int i=9; i >= 0; i=i-3) cout<<i<<'\n'; getch(); }

PROGRAMA #38 1. Enunciado

Obtenga el promedio de las estaturas de 20 deportisas. Utilice para este propsito la sentencia for. 2. Anlisis estaturas suma de estaturas/20 promedio

Entrada: Proceso: Salida: 3. est: pro: c: 4.

Definicin de variables estaturas promedio contador Diseo de algoritmo 4.1 Diagrama de flujo
in ic io p ro < -- 0 c < -- 1 ,2 0 ,1 est p ro < -- p ro + e s t

p ro < -- p ro / 2 0 p ro fin

4.2

Seudocodigo inicio pro 0 desde c 1 hasta 20 hacer leer (est) pro pro + est fin_desde pro pro/20 escribir(pro) fin.

5.

Codificacin

//PROGRAMA 38 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 14/11/01 #include <iostream.h> #include <conio.h> void main() { float pro=0, est; clrscr(); for (int c=1; c <= 20; c++) { cout<<"INGRESE LA ESTATURA "<<c<<" : "; cin>>est; pro=pro+est; } pro=pro/20; cout<<"\n\tEL PROMEDIO TOTAL DE ESTATURAS ES "<<pro; getch(); }

PROGRAMA #39

1.

Enunciado

Imprimir los cuadrados de los enteros del 1 al 20. 2. Anlisis 11 24 20 400 3. n: 4. Definicin de variables contador Diseo de algoritmo 4.1 Diagrama de flujo
in ic io n < -- 1 ,2 0 ,1 c u a < -- n * n cua

cua: cuadrado

fin

4.2

Seudocodigo inicio desde n 1 hasta 20 hacer cua n*n escribir(cua) fin_desde fin.

5.

Codificacin

//PROGRAMA 39 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 14/11/01 #include <iostream.h> #include <conio.h> #include <math.h> void main() { int cua; clrscr(); for (int n=1; n <= 20; n++) cout<<n<<" > "<<pow(n,2)<<'\n'; getch(); }

PROGRAMA #40 1. Enunciado

Escriba un programa que encuentre la suma de la siguiente serie: 1+1/2+1/3+1/4+....1/50. 2. Anlisis 1+1/2+1/3+1/4+....1/50

Salida: 3. n:

Definicin de variables nmeros

sum: suma 4. Diseo de algoritmo 4.1 Diagrama de flujo


in ic io s u m < -- 0 n < -- 1 ,5 0 ,1 s u m < -- s u m + 1 / n

sum fin

4.2

Seudocodigo inicio sum 0 desde n 1 hasta 50 hacer sum sum + 1/n fin_desde escribir(sum) fin.

5.

Codificacin

//PROGRAMA 40 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 16/11/01 #include <iostream.h> #include <conio.h> void main() { float sum=0; clrscr(); for (int n=1; n <= 50; n++) sum=sum+1.0/n; cout<<"LA SUMA DE LA SERIE ES "<<sum; getch(); }

PROGRAMA #41 1. Enunciado

Escribir un programa que imprima una tabla de cuadrados y cubos (1 al 15).

2.

Definicin de variables suma de cuadrados suma de cubos

sum2: sum3:

cua: cuadrados cub: cubos.

3.

Diseo de algoritmo 3.1 Diagrama de flujo

in ic io s u m 2 < -- 0 s u m 3 < -- 0 n < -- 1 , 1 5 , 1 c u a < -c u b < -- c s u m 2 < -- s u s u m 3 < -- s u n *n ua *n m 2+cua m 3+cub

n ,c u a ,c u b

sum 2, sum 3 fi n

3.2

Seudocodigo inicio sum2 0 sum30 desde n 1 hasta 15 hacer cua n*n cub cua*n

sum2 sum2 + cua sum3 sum3 + cub escribir(n, cua, cub) fin_desde escribir(sum2, sum3) fin. 4. Codificacin

//PROGRAMA 41 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 16/11/01 #include <iostream.h> #include <conio.h> #include <math.h> void main() { int sum2=0,sum3=0,cua,cub; clrscr(); cout<<"NUMERO\t\tCUADRADO\t\tCUBO"; for (int n=1; n<=15; n++) { cua=pow(n,2); cub=pow(n,3); sum2=sum2+cua; sum3=sum3+cub; cout<<'\n'<<n<<"\t\t\t"<<cua<<"\t\t "<<cub; } cout<<"\nLA SUMA ES: \t\t"<<sum2<<"\t\t "<<sum3; getch(); }

PROGRAMA #42 1. 3. c: n1: n2: nf: Enunciado Definicin de variables contador primer nmero segundo nmero nmero fibonacci Encontrar la suma de los 10 primeros trminos de la serie de fibonacci

sum: suma de los nmeros

4.

Diseo de algoritmo 4.1 Diagrama de flujo


in ic io n 1 < -- 0 n 2 < -- 1 s u m < -- 0 c < -- 1 , 1 0 , 1 n f < -- n 1 + n 2 s u m < -- s u m + n f n 1 < -- n 2 n 2 < -- n f

sum fi n

4.2

Seudocodigo inicio n1 0 n2 1 sum 0 desde c 1 hasta 10 hacer nf n1+n2 sum sum+nf n1 n2 n2 nf fin_desde escribir(sum) fin.

5.

Codificacin

//PROGRAMA 30 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 9/11/01

#include <iostream.h> #include <conio.h> void main() { int n1=0,n2=1,nf,sum=0; clrscr(); cout<<"\n\t** SERIE DE FIBONACCI LOS 10 PRIMEROS NUMEROS **\n\n\n"; for(int c=1;c <= 10;c++) { nf=n1+n2; sum=sum+nf n1=n2; n2=nf;

} cout<<sum; } getch();

PROGRAMA #43 1. Enunciado

Escriba un proceso para imprimir la siguiente tabla de temperaturas Fahrenheit y Celsius (32 al 100) de 2 en 2 (fahrenheit). 2. cel: f: 3. Definicin de variables Celsius Fahrenheit. Diseo de algoritmo 3.1 Diagrama de flujo
in ic io f < -- 3 2 , 1 0 0 , 2 c e l < -- 5 / 9 (f-3 2 ) f, c e l

fin

3.2

Seudocodigo inicio desde f 32 hasta 100 inc 2 hacer cel 5/9(f 32) escribir(f, cel) fin_desde fin.

4.

Codificacin

//PROGRAMA 43 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 16/11/01 #include <iostream.h> #include <conio.h> void main() { float cel; clrscr(); cout<<"FAHRENHEIT\t\t\tCELCIUS\n"; for (int f=32; f<=100; f=f+2) { cel=5.0/9.0*(f-32); cout<<'\n'<<f<<"\t\t\t\t"<<cel; } getch(); }

SENTENCIA DO_WHILE La sentencia do_while se utiliza para especificar un bucle condicional que se ejecuta al menos una vez. Esta situacin se suele dar en algunas circunstancias en las que se ha de tener la seguridad de que una determinada accin se ejecuta una o varias veces, pero al menos una. Diagrama de flujo Seudocodigo

Hacer Sentencia(s)
s e n t e n c i a (s ) c o n d ic i n
F

Mientras (condicin)

Sintaxis do sentencia; while(condicin); do { sentencia 1; sentencia 2; sentencia n; } while (condicin); Nota: Esta estructura comienza ejecutando la sentencia. A continuacin se evala la condicin. Si la condicin es verdadera, entonces se repite la ejecucin de la sentencia. Este proceso continua hasta que la condicin es falsa. CUADRO COMPARATIVO No s cuantas veces se repite (dato centinela) conocemos el nmero de veces a iterar El proceso se ejecuta una vez al menos

while for do_wh ile PROGRAMA #44

1.

Enunciado

Visualizar los nmeros del 1 al 10 utilizando la estructura do_while. 2. Anlisis 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

Salida: 3. c: 4.

Definicin de variables contador Diseo de algoritmo 4.1 Diagrama de flujo

in ic io c < -- 0

c < -- c + 1 c c < 10 fin

4.2

Seudocodigo inicio c0 hacer c c+1 escribir(c) mientras (c < 10) fin.

5.

Codificacin

//PROGRAMA 44 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 20/11/01 #include <iostream.h> #include <conio.h> void main() { int c=0; clrscr(); do { c++; cout<<c<<'\n'; } while (c<10); getch(); }

PROGRAMA #45 1. Enunciado

Encuentre el promedio de n calificaciones de un curso de informtica donde n es proporcionado por el usuario. 2. c: pro: n: 3. Definicin de variables contador. promedio nota. Diseo 3.1 de Diagrama de

num: nmero de alumnos


in ic io c < -- 1 p ro < -- 0 num

algoritmo flujo

n p ro < -- p ro + n c < -- c + 1

v
c <= num p ro < -- p ro /n u m p ro fi n

3.2

Seudocodigo inicio c1 pro 0 leer(num) hacer leer(n) pro pro + n cc+1 mientras (c <= num) pro pro/num escribir(pro) fin.

4.

Codificacin

//PROGRAMA 45 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 20/11/01 #include <iostream.h> #include <conio.h> void main() { int c=1,num; float pro=0,n; clrscr(); cout<<"INGRESE EL NUMERO DE ESTUDIANTES : "; cin>>num;

cout<<"\n\n"; do { cout<<"INGRESA LA NOTA DEL ESTUDIANTE "<<c<<" : "; cin>>n; pro=pro+n; c++; } while (c<=num); pro=pro/num; cout<<"\n\n\t\tEL PROMEDIO DE LAS NOTAS ES "<<pro; getch();

PROGRAMA #46 1. Enunciado

Se pide la nota de 50 estudiantes de un curso de informtica determinar cuantas de estas notas son notables (notables>=7).

2. an: n: c:

Definicin de variables notas notables notas. contador

3.

Diseo de algoritmo 3.1 Diagrama de flujo


in ic io a n < -- 0 c < -- 1 , 5 0 ,1 n n >= 7
F

v
a n < -- a n + 1

an fin

3.2

Seudocodigo inicio an 0 desde c 1 hasta 50 hacer leer(n) si (n>=7) entonces an an + 1 fin_si fin_desde escribir(an) fin.

4.

Codificacin

//PROGRAMA 46 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 21/11/01 #include <iostream.h> #include <conio.h> void main() { int an=0; float n; clrscr(); for (int c=1;c<=50;c++) { cout<<"INGRESE LA NOTA DEL ESTUDIANTE "<<c<<" : "; cin>>n; if (n>=7) an++; } cout<<"\n\n\tEL NUMERO DE NOTAS NOTABLES ES "<<an; getch(); }

PROGRAMA #47 1. Enunciado

Ingresar el nombre del jugador, edad, altura(cm), peso(lb) goles hechos en la ultima temporada. el ingreso de datos termina cuando lea la palabra fin en lugar del nombre del jugador, la formula a evaluar es: (goles + (altura + peso)/5 - edad)/4 Al final de la lista deber presentar el nombre y el puntaje que haya obtenido la mas alta puntuacin.

2.

Definicin de variables

gaev: evaluacin del ganador ev: ed: evaluacin edad


in ic io g a e v < -- 0 nom

gano: nombre del ganador pes: peso nom: nombre g: alt:: nmero altura del

del jugador de goles del jugador jugador v de


e d , a l t, p e s , g

3.

Diseo 3.1

n o m ! = "fin "

algoritmo
g a n o ,g a e v

e v < -- (g + (a l t + p e s )/ 5 -e d )/ 4 ev > gaev

Diagrama

de
fi n

v
g a n o < -- n o m gaev <- ev

flujo

ev nom

3.2

Seudocodigo inicio gaev 0 leer(nom) mientras (nom = fin) hacer leer(ed, alt, pes, g) ev (g +(alt+pes)/5 ed)/4 si (ev > gaev) hacer gano nom gaev ev fin_si escribir(ev) leer(nom) fin_mientras escribir(gano, gaev) fin.

4.

Codificacin

//PROGRAMA 47 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 21/11/01 #include <iostream.h> #include <conio.h> #include <string.h> void main() { char nom[30]; char gano[30]; int g,ed; float alt,pes,ev,gaev=0; clrscr(); cout<<"NOMBRE\tEDAD\tALTURA\tPESO\tGOLES\tEVALUACION\n"; cin>>nom; while (strcmp(nom,"FIN") != 0) { cin>>ed; cout<<"\t";cin>>alt;cin>>pes;cout<<"\t"; cin>>g;cout<<"\t"; ev=(g+(alt+pes)/5-ed)/4.0; if (ev > gaev) { strcpy(gano,nom); gaev=ev; } cout<<ev<<"\n"; cin>>nom; } cout<<"\n\n"<<gano<<" "<<gaev; getch(); }

PROGRAMA #48 1. Enunciado

Se hace un aumento de salario a 30 jugadores de acuerdo al siguiente cuadro: sueldo actual aumento 0 - 900 901 - 1300 1301 - 1800 sobre 1800 2. Definicin de variables 5% 0% 20% 10%

acac: acumulacin del sueldo actual

acau: acumulacin del sueldo aumentado nom: nombre sa: c: 3. sueldo actual contador Diseo de algoritmo 3.1 Diagrama de flujo
in ic io a c a c < -- 0 a c a u < -- 0 c < -- 1 ,3 0 ,1 n o m ,s a a c a c < -- a c a c + s a sa <= 900 sa <=1300 sa <=1800 s a u < -- s a

sau: sueldo actual aumentado

v
s a u < -- s a * 0 .2 + s a

v
s a u < -- s a * 0 .1 + s a

s a u < -- s a * 0 .0 5 + s a

a c a u < -- a c a u + s a u sau

acac, acau fin

3.2

Seudocodigo inicio acac 0 acau 0 desde c 1 hasta 30 hacer leer(nom, sa) acac acac + sa si (sa <= 900) hacer sau sa*0.2+sa caso contrario si (sa <= 1300) hacer sau sa*0.1+sa caso contario si (sa <= 1800) hacer sau sa*0.05+sa caso contario sau sa fin_si fin_si fin_si acau acau + sa escribir(sau) fin_desde escribir(acac, acau) fin.

4.

Codificacin

//PROGRAMA 48 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 21/11/01

#include <iostream.h> #include <conio.h> void main() { float sa,sau,acac=0,acau=0; char nom[30]; clrscr(); for (int c=1;c<=30;c++) { cout<<"INGRESE EL NOMBRE DEL JUGADOR "<<c<<" : "; cin>>nom; cout<<"INGRESE EL SUELDO : "; cin>>sa; acac=acac+sa; if (sa<=900) sau=sa*0.2+sa; else if (sa<=1300) sau=sa*0.1+sa; else if (sa<=1800) sau=sa*0.05+sa; else sau=sa; acau=acau+sau; cout<<"EL SUELDO AUMENTADO ES "<<sau<<"\n\n"; } cout<<"\n\n"; cout<<"TOTAL DEL SUELDO ACTUAL "<<acac; cout<<"\n\nTOTAL SUELDO AUMENTADO "<<acau; getch(); }

PROGRAMA #49 1. Enunciado

Se lee una serie de n datos que representa el peso de los nios internados en la maternidad cigea feliz: 0,000 y 10,000 kg .... nios 10,001 y 20,000 kg hay .... nios 20,001 y 30,000 kg hay .... nios mas de 30,000 kg hay .... nios determinar el promedio de los pesos de los nios de acuerdo a la tabla anterior y el promedio total. 2. c: Definicin de variables contador

pes: n: n1, n2, n3, n4:

peso nmero de nios nmero de nios por pesos acumulador de pesos por seccin de acuerdo a promedio de pesos por seccin promedio de pesos total

ap1, ap2, ap3, ap4: la tabla p1, p2, p3, p4: pt:

3.

Diseo de algoritmo 3.1 Diagrama de flujo

in ic io c < -- 1 0 ap1 < 0 ap2 < 0 ap3 < 0 ap4 < n

n n n n

1 2 3 4

< < < <

-----

-----

0 0 0 0

c <= n p p p p p t < --(a p 1 1 2 3 3 + < --a < --a < --a < --a ap2 p1 p2 p3 p4 +a

/n 1 /n 2 /n 3 /n 4 p 3 + a p 4 )/n

pes

pes <=10 pes <=20 pes <=30

v
n 1 < -- n 1 + 1 a p 1 < -- a p 1 + p e s

n 1 ,p 1 ,n 2 ,p 2 n 3 ,p 3 ,n 4 ,p 4 pt fin n 4 < -- n 4 + 1 a p 4 < -- a p 4 + p e s

n 2 < -- n 2 + 1 a p 2 < -- a p 2 + p e s

n 3 < -- n 3 + 1 a p 3 < -- a p 3 + p e s

c < -- c + 1

4.2

Seudocodigo inicio c1 n1,n2,n3,n4 0 ap1,ap2,ap3,ap3 0 leer(n) mientras (c<=n) hacer leer(pes) si (pes <= 10) hacer n1 n1+1 ap1 ap1+pes caso contrario si (pes <=20) hacer n2 n2 + 1 ap2 ap2+pes caso contrario si (pes <= 30) hacer n3 n3+1 ap3 ap3+pes caso contrario n4 n4+1 ap4 ap4+pes fin_si fin_si fin_si c c+1

fin_mientras p1 ap1/n1 p2 ap2/n2 p3 ap3/n3 p4 ap4/n3 pt (ap1+ap2+ap3+ap4)/n escribir(n1,p1,n2,p2,n3,p3,n4,p4,pt) fin. 4. Codificacin


//PROGRAMA 49 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 28/11/01 #include <iostream.h> #include <conio.h> void main() { int c=1, n1=0,n2=0,n3=0,n4=0,n; float ap1=0, ap2=0, ap3=0, ap4=0,pes,p1,p2,p3,p4,pt; clrscr(); cout<<"INGRESE EL NUMERO DE NIOS : ";cin>>n; while (c <= n) { cout<<"INGRESE EL PESO DEL NIO "<<c<<" : "; cin>>pes; if (pes <= 10) { n1++; ap1=ap1+pes; } else if (pes <= 20) { n2++; ap2=ap2+pes; } else if (pes <= 30) { n3++; ap3=ap3+pes; } else { n4++; ap4=ap4+pes; } c++; }

p1=ap1/n1; p2=ap2/n2; p3=ap3/n3; p4=ap4/n4; pt=(ap1+ap2+ap3+ap4)/n; cout<<"\n\nENTRE 0,000 Y 10,000 KG HAY "<<n1<<" NIO(S)";cout<<" PRO= "<<p1; cout<<"\nENTRE 10,001 Y 20,000 KG HAY "<<n2<<" NIO(S)";cout<<" PRO= "<<p2; cout<<"\nENTRE 20,001 Y 30,000 KG HAY "<<n3<<" NIO(S)";cout<<" PRO= "<<p3; cout<<"\nMAS DE 30,000 HAY "<<n4<<" NIO(S)";cout<<" PRO= "<<p4; cout<<"\n\nEL PROMEDIO TOTAL DE PESOS ES "<<pt<<" KG "; getch(); }

UNIDAD V
FUNCIONES
Una funcin es un mini programa, dentro de un programa. Las funciones contienen varias sentencias bajo un solo nombre, un programa puede utilizar una o ms veces para ejecutar dichas sentencias. Las funciones ahorran espacio, reduciendo repeticiones y haciendo ms fcil la programacin, proporcionando un medio de dividir un proyecto grande en mdulos pequeos ms manejables. ESTRUCTURA DE UNA FUNCIN En C++ todas las funciones son externas o globales es decir pueden ser llamadas de cualquier parte del programa. Las funciones no se pueden anidar. Esto significa que una funcin no se puede declarar dentro de otra funcin. Tipo de retorno { cuerpo de la funcin return expresin } donde: nombre funcin(lista de parmetros)

Tipo de retorno: Es el tipo de valor devuelto por la funcin como por ejemplo: int, float, char, un puntero o struc, y si la funcin no devuelve ningn la palabra reservada void. Nombre de la funcin: o identificador. Lista de parmetros: Lista de declaraciones de los parmetros de la funcin separados por coma (,). Expresin: Valor que devuelve la funcin Ejemplo: float suma(float num, float num2) { float resp; resp=num1+num2; return resp; } nota: - Las constantes, tipo de datos y variables declaradas dentro de la funcin son locales a la misma y no perduran fuera de ella. - Dentro de la palabra reservada return se puede devolver el valor de la funcin. - El paso de parmetros puede ser por valor y por referencia. Tipos de dato por retorno.- Muchas funciones no devuelven resultados. Para indicar al compilador que una funcin no devuelve resultado se utiliza el tipo de retorno void (considerado como un tipo de dato especial). Ej: Void visualizar(float total, int dato) Si se omite el tipo de retorno para una funcin el compilador asume que es un tipo de retorno int. Ej: Superficie(int largo, int ancho)

Resultados de una funcin Una funcin puede devolver un nico valor. El valor revuelto puede ser cualquier tipo de dato excepto una funcin o un array. Llamada a una funcin Las funciones para poder ser ejecutadas han de ser llamadas o invocadas. Cualquier expresin puede contener una llamada a una funcin que redirija el control del programa a la funcin encontrada. Normalmente la llamada a una funcin se realiza desde la funcin principal funciones. Prototipos de las funciones Se requiere que una funcin se declare o defina antes de si uso. La declaracin de una funcin se denomina prototipo. Los prototipos de una funcin contienen la misma cabecera de la funcin con la diferencia que los prototipos terminan en (;). Sintaxis Tipo_de_retorno parmetros); Donde tipo_de_retorno es el tipo de valor devuelto por la funcin. Nombre_de_funcin: nombre de la funcin Lista de declaraciones de parmetros: Estos nombre de parmetros son opcionales pero es buena prctica incluirlos para indicar los parmetros que representan. PROGRAMA #50
//PROGRAMA 50 //UNIVERSIDAD TECNICA DE MACHALA

main(),

aunque

tambin

puede

hacrselo

desde

otras

nombre_de_funcin(lista de declaraciones de

//ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 04/12/01 #include <iostream.h> #include <conio.h> float suma(float num1, float num2); void main() { clrscr(); float x,y,total; cout<<"INGRESE EL VALOR DE X : "; cin>>x; cout<<"\n\nINGRESE EL VALOR DE Y : "; cin>>y; total=suma(x,y); cout<<"\n\n\t\tEL VALOR DE LA SUMA ES : "<<total; getch(); } float suma(float num1, float num2) { float resp; resp = num1+num2; return resp; }

PROGRAMA #51 1. Enunciado

Disee la funcin que devuelve el valor mayor de dos enteros adems disee el programa llamador 2. Codificacin

//PROGRAMA 51 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 04/12/01 #include <iostream.h> #include <conio.h> int mayor(int, int); void main() { int n1,n2; clrscr(); cout<<"INGRESE EL #1 : "; cin>>n1; cout<<"\nINGRESE EL #2 : "; cin>>n2;

} int mayor(int num1,int num2) { int res; if (num1 > num2) res=num1; else res=num2; return res; }

cout<<"\n\n\n\t\t\tEL MAYOR ES : "<<mayor(n1,n2); getch();

PROGRAMA #52 1. Enunciado

Escribir una funcin que tenga un argumento de tipo entero que devuelva la letra p si es positivo y la letra n si es cero o negativo. 2. Codificacin

//PROGRAMA 52 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 04/12/01 #include <iostream.h> #include <conio.h> char numpnc(int); void main() { int a; clrscr(); cout<<"INGRESE UN NUMERO : "; cin>>a; cout<<"\n\n\n\t\tEL NUMERO ES : "<<numpnc(a); getch(); } char numpnc(int pnc) { char r; if (pnc > 0) r='P'; else r='N'; return r; }

PROGRAMA #53

1.

Enunciado

Realizar una funcin que me convierta de grados Celsius a Fahrenheit 2. Codificacin

//PROGRAMA 53 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 04/12/01 #include <iostream.h> #include <conio.h> float farh(float); void main() { clrscr(); float c; cout<<"INGRESE CELCIUS : "; cin>>c; cout<<"\n\n\tA GRADOS FARHENHEIT ES : "<<farh(c); getch(); } float farh(float cel) { float f; f=(9/5.0)*cel + 32; return f;

PROGRAMA #54 1. Codificacin

//PROGRAMA 54 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 12/10/01 #include <iostream.h> #include <conio.h> void farh(); void main() { clrscr(); farh(); getch(); } void farh()

{ float c,f; cout<<"INGRESE CELCIUS : "; cin>>c; f=(9/5.0)*c + 32; cout<<"\n\n\n\tA GRADOS FARHENHEIT ES : "<<f;

PROGRAMA #55 1. Enunciado

Elegir de un men la posibilidad de realizar el rea de un cuadrado, rectngulo, triangulo, utilizando funciones que no devuelvan valores. 2. Codificacin

//PROGRAMA 55 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 04/12/01 #include <iostream.h> #include <conio.h> void cua(); void rec(); void tri(); void main() { int op; clrscr(); cout<<"ELIGA CUALQUIERA DE LAS 3 OPCIONES\n\n"; cout<<"(1) AREA DEL CUADRADO\n(2) AREA DEL RECTANGULO\n(3) AREA DEL TRIANGULO"; cout<<"\n\n\t\tLA OPCION ES : "; cin>>op;cout<<"\n\n"; switch(op) { case 1: cua(); break; case 2: rec(); break; case 3: tri(); break; default: cout<<"VALOR FUERA DE RANGO"; } getch(); } void cua() { float l,A; cout<<"INGRESE EL LADO DEL CUADRADO : "; cin>>l;

} void rec() { float l,a,A; cout<<"INGRESE AL cout<<"INGRESE EL A=l*a; cout<<"\n\n\t\tEL } void tri() { float b,h,A; cout<<"INGRESE LA cout<<"INGRESE LA A=(b*h)/2; cout<<"\n\n\t\tEL }

A=l*l; cout<<"\n\n\t\tEL AREA ES : "<<A;

LARGO DEL RECTANGULO : ";cin>>l; ANCHO DEL RECTANGULO : ";cin>>a; AREA ES : "<<A;

BASE DEL TRIANGULO : ";cin>>b; ALTURA DEL TRIANGULO : ";cin>>h; AREA ES : "<<A;

PASO DE PARMETROS DE UNA FUNCIN C++ proporciona 2 mtodos para pasar variables (parmetros) entre funciones. Parmetros por valor. Parmetros por referencia.

O puede no tener parmetros. Parmetros por valor.- Llamado tambin paso por copia, significa que cuando C++ compila la funcin, la funcin recibe una copia de los parmetros. Se cambia el valor de un parmetro variable local, el cambio solo afecta a la funcin y no tiene efecto fuera de esta. En esta tcnica la funcin receptora no puede modificar la variable de la funcin (parmetro pasado). Se puede modificar la variable del parmetro en la funcin pero su modificacin no puede salir al exterior. Nota: El mtodo por defecto por pasar parmetros en C++ es por valor, a menos que se pasen array que se pasa siempre por direccin. PROGRAMA #56

//PROGRAMA 56 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/12/01 //ENUNCIADO: PROGRAMA REALIZANDO LA FUNCION POR PARAMETROS POR VALOR #include <iostream.h> #include <conio.h> void func_local (int valor); void main() { clrscr(); int n=10; cout<<"ANTES DE LLAMAR A func_local n = "<<n; func_local (n); cout<<"\nDESPUES DE LLAMAR A func_local n = "<<n; getch(); } void func_local (int valor) { cout<<"\nDENTRO DE func_local, valor = "<<valor; valor=999; cout<<"\nDENTRO DE func_local, valor = "<<valor; }

PROGRAMA #57
//PROGRAMA 57 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/12/01 /*ENUNCIADO: ESCRIBIR UNA FUNCION QUE CONVIERTA UNA TEMPERATURA DADA DE GRADOS CELCIUS A FAHRENHEIT NOTA: UTILICE PARAMETROS DE TIPO VALOR*/ #include <iostream.h> #include <conio.h> void conversion(float cel); void main() { clrscr(); float c; cout<<"INGRESE LOS GRADOS CELCIUS : "; cin>>c; conversion(c); getch(); } void conversion(float cel) { float fahren; fahren=(9/5.0)*cel+32;

cout<<"GRADOS FAHRENHEIT = "<<fahren; }

Paso de parmetros por referencia.- Cuando una funcin debe modificar el valor del parmetro pasado y devolver este valor modificado a la funcin llamadora, se ha de utilizar el mtodo de paso de parmetros por referencia o direccin. En este mtodo el compilador pasa la direccin de memoria del valor del parmetro a la funcin. Cuando se modifica el valor del parmetro (variable local), este valor queda almacenado en la misma direccin de memoria por lo que al retornar a la funcin llamadora la direccin de la memoria donde se almacena el parmetro contendr el valor modificado. Para declarar una variable parmetro como paso de referencia, el smbolo (&) debe preceder al nombre de la variable. PROGRAMA #58
//PROGRAMA 58 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/12/01 //ENUNCIADO: PROGRAMA REALIZADO CON FUNCION DE PARAMETROS POR REFERENCIA #include <iostream.h> #include <conio.h> void conversion(float cel, float& fahre); void main() { clrscr(); float c,f; cout<<"INGRESE LOS GRADOS CELCIUS : "; cin>>c; conversion(c,f); cout<<"\nLOS GRADOS FAHRENHEIT SON : "<<f; getch(); } void conversion(float cel, float& fahre) { fahre=(9/5.0)*cel+32; }

PROGRAMA #59

//PROGRAMA 59 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/12/01 /*ENUNCIADO: ESCRIBIR UN PROGRAMA QUE LEA 2 ENTEROS X,N Y CALCULE LA SUMA DE LA PROGRESION GEOMETRICA 1 + X + X^2 + X^3 +...+ X^n NOTA: HACER DOS FUNCIONES, POR PARAMETROS POR VALOR Y REFERENCIA*/ #include <iostream.h> #include <conio.h> #include <math.h> void suma(int,int); void main() { clrscr(); int x,n; cout<<"INGRESE EL NUMERO : "; cin>>x; cout<<"INGRESE EL NUMERO DE EXPONENTE : "; cin>>n; suma(x,n); getch(); } void suma(int num, int exp) { int suma=0; for (int c=0; c<=exp; c++) suma=suma+pow(num,c); cout<<"LA SUMA DE LA PROGRESION ES : "<<suma; }

PROGRAMA #60
//PROGRAMA 60 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/12/01 //ENUNCIADO: POR REFERENCIA #include <iostream.h> #include <conio.h> #include <math.h> void suma(int,int,int&); void main() { clrscr(); int x,n,s; cout<<"INGRESE EL NUMERO : ";

} void suma(int num, int exp, int& suma) { suma=0; for (int c=0; c<=exp; c++) suma=suma+pow(num,c); }

cin>>x; cout<<"INGRESE EL NUMERO DE EXPONENTE : "; cin>>n; suma(x,n,s); cout<<"LA SUMA DE LA PROGRESION ES : "<<s; getch();

PROGRAMA #61
//PROGRAMA 61 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/12/01 /*ENUNCIADO: HACER UN PROGRAMA QUE ENCUENTRE EL FACTORIAL DE 20 NUMEROS UTILICE PARA ELLO UNA FUNCION LLAMADA FACTORIAL CUYA FUNCION DEBE MANEJAR PARAMETROS TIPO VALOR Y REFERENCIA*/ #include <iostream.h> #include <conio.h> void factorial(int n, float& fact); void main() { clrscr(); int num; float f; for(int c=1; c<=5; c++) { cout<<"INGRESE EL NUMERO A FACTORIAR : "; cin>>num; factorial(num,f); cout<<"EL FACTORIAL ES : "<<f<<"\n\n"; } getch(); } void factorial(int n, float& fact) { fact=1; for(int cf=1; cf<=n; cf++) fact=fact*cf; }

PROGRAMA #62

//PROGRAMA 62 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/12/01 /*ENUNCIADO: HACER UN PROGRAMA QUE ENCUENTRE EL FACTORIAL DE 20 NUMEROS UTILICE PARA ELLO UNA FUNCION LLAMADA FACTORIAL CUYA FUNCION DEBE MANEJAR PARAMETROS TIPO VALOR*/ #include <iostream.h> #include <conio.h> void factorial(int n); void main() { clrscr(); int num; for(int c=1; c<=20; c++) { cout<<"INGRESE EL NUMERO A FACTORIAR : "; cin>>num; factorial(num); } getch(); } void factorial(int n) { float fact=1; for(int cf=1; cf<=n; cf++) fact=fact*cf; cout<<"EL FACTORIAL ES : "<<fact<<"\n\n"; }

PROGRAMA #63
//PROGRAMA 63 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/12/01 /*ENUNCIADO: HACER UN PROGRAMA QUE ENCUENTRE EL FACTORIAL DE 20 NUMEROS UTILICE PARA ELLO UNA FUNCION LLAMADA FACTORIAL CUYA FUNCION DEBE MANEJAR PARAMETROS SIN VALOR*/ #include <iostream.h> #include <conio.h> void factorial(void); void main() { clrscr(); for(int c=1; c<=5; c++) { factorial(); }

getch(); } void factorial() { float fact=1; int n; cout<<"INGRESE EL NUMERO A FACTORIAR : "; cin>>n; for(int cf=1; cf<=n; cf++) fact=fact*cf; cout<<"EL FACTORIAL ES : "<<fact<<"\n\n"; }

PROGRAMA #64
//PROGRAMA 64 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/12/01 /*ENUNCIADO: HACER UN PROGRAMA QUE ENCUENTRE EL FACTORIAL DE 20 NUMEROS UTILICE PARA ELLO UNA FUNCION LLAMADA FACTORIAL CUYA FUNCION DEBE MANEJAR PARAMETROS CON UNICO VALOR*/ #include <iostream.h> #include <conio.h> float factorial(int); void main() { clrscr(); int num; for(int c=1; c<=5; c++) { cout<<"INGRESE EL NUMERO A FACTORIAR : "; cin>>num; cout<<"EL FACTORIAL ES : "<<factorial(num)<<"\n\n"; } getch(); } float factorial(int n) { float fact=1; for(int cf=1; cf<=n; cf++) fact=fact*cf; return fact; }

UNIDAD VI
ARREGLOS(ARRAYS)

Un arreglo es una secuencia de objetos del mismo tipo en posiciones de memoria contiguas a las que se puede acceder directamente. Un arreglo puede contener por ejemplo las edades de los alumnos de una clase, las temperaturas de cada da de un mes de una ciudad determinada, etc.. Un arreglo se caracteriza por: 1. 2. Almacenar los elementos del array en posiciones de memoria Tienen un nico nombre de variable por ejemplo, temperatura, contigua. que representa la temperatura de cada da del mes, cuyos elementos a su vez se diferencian por un ndice. 3. array. Los arreglos pueden ser: Unidimensionales (vector o lista). Arreglos bidimensionales (matrices o tablas). Arreglos multidimensionales(ms de 2 dimensiones). ARREGLOS UNIDIMENSIONALES(VECTORES O LISTAS) Es un tipo de dato estructurado compuesto de un nmero finito de elementos, tamao fijo y elementos homogneos, y que se define de una sola dimensin. Ej.: precios 24. 5 0 Nombre: Tipo: sub-ndices: precios float 5 04 39. 82 1 2.2 5.4 7.8 3 2 4 3 4 4 Sub ndice Tienen acceso directo o aleatorio a los elementos individuales del

# elementos:

contenido: 24.5; 39.82; 2.23; 5.44; 7.84

Declaracin de u array.- Al igual que cualquier tipo de variable, un array debe ser declarado antes de utilizarlo. Un array debe ser declarado antes de utilizarlo de modo similar a otro tipo de datos excepto que se debe indicar al compilador el tamao o longitud del array. Para indicar el tamao o longitud del array se debe seguir al nombre, el tamao encerrado entre corchetes. Sintaxis Tipo nombre_arreglo[nmero de elementos del arreglo]; Ej.: float precios[5]; Subndice de un array.- El ndice de una array se denomina con frecuencia subndice del arreglo. El mtodo de numeracin del elemento i-simo. Con el ndice o subndice (i-1) se denomina indexacin basada en cero. Ej.: float precio[5]; precio[2] 2.23 Asignacin de valores a los elementos de un array.- A los componentes de un array se puede asignar valores de igual forma que a cualquier otra variable con la nica condicin de que sean del mismo tipo del cual fue definido. Ej.: int edad[50]; edad[0]=21; edad[49]=15; Operaciones con vectores.- los vectores se pueden leer o escribir con una sola operacin o sentencia. La lectura o escritura de una array se debe hacer elemento a elemento y para, realizar estas operaciones se deben leer o visualizar las componentes de este mediante estructuras repetitivas.

Lectura de un vector int nmero[8]; lectura del vetor for(int i=0; i<8; i++) cin>>nmeros[i]; escritura del vector for (int i=0; i<8; i++) cout<<nmeros[i]; PROGRAMA #65
//PROGRAMA 65 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 18/12/01 /*ENUNCIADO: ALMACENAR LAS CALIFICACIONES DE 50 ESTUDIANTES DE UN CURSO DE C++ DENTRO DE UN VECTOR Y LUEGO IMPRIMIR DICHO VECTOR*/ #include <iostream.h> #include <conio.h> void main() { clrscr(); float cali[50]; for (int i=0; i<10; i++) { cout<<"INGRESE LA CALIFICACION : "; cin>>cali[i]; } for (i=0; i<10; i++) cout<<"\nLAS CALIFICACIONES SON : "<<cali[i]; getch(); }

PROGRAMA #66
//PROGRAMA 66 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/18/01 /*ENUNCIADO: SE TIENE UNA LISTA DE 25 NUMEROS ENTEROS, DISEAR UN PROGRAMA QUE IMPRIMA LOS NUMEROS DE ESTA LISTA EN ORDEN INVERSO*/

#include <iostream.h> #include <conio.h> void main() { clrscr(); int lista[25]; for (int i=0; i<10; i++) { cout<<"INGRESE UN NUMERO : "; cin>>lista[i]; } for (i=9; i>=0; i--) cout<<"\nEL NUMERO ES : "<<lista[i]; getch(); }

PROGRAMA #67
//PROGRAMA 67 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/18/01 /*ENUNCIADO: ELABORE UN PROGRAMA QUE OBTENGA EL PROMEDIO DE LAS ESTATURAS DE UN GRUPO DE 10 DEPORTISTAS. LAS ESTATURAS DE LOS DEPORTITAS DEBEN ESTAR ALMACENADOS EN UN ARREGLO*/ #include <iostream.h> #include <conio.h> void main() { clrscr(); float est[10], pro=0; for (int i=0; i<10; i++) { cout<<"INGRESE LA ESTATURA : "; cin>>est[i]; } for (i=0; i<10; i++) pro=pro+est[i]; cout<<"\n\n\t\tEL PROMEDIO DE ESTATURAS ES : "<<pro/10; getch(); }

PROGRAMA #68
//PROGRAMA 68 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/18/01 /*ENUNCIADO: DISEE UN PROGRAMA QUE ALMACENE EN UN ARREGLO DE UNA DIMENSION

LOS 10 PRIMEROS TERMINOS DE LA SERIE DE FIBONACCI*/ #include <iostream.h> #include <conio.h> void main() { clrscr(); int fibo[10], n1=0,n2=1,nf; for (int c=0; c<10; c++) { nf=n1+n2; n1=n2; n2=nf; fibo[c]=nf; } for (c=0; c<10; c++) cout<<"\nEL "<<c+1<<" NUMERO FIBONACCI ES : "<<fibo[c]; getch();

PROGRAMA #69
//PROGRAMA 69 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/18/01 /*ENUNCIADO: SE TIENE UNA LISTA DE 50 CALIFICACIONES ALMACENADAS EN UN ARREGLO CALCULAR SU PROMEDIO Y DETERMINAR CUANTAS CALIFICACIONES SON MAYORES O IGUALES AL PROMEDIO Y CUANTAS SON MENORES QUE ESTE*/ #include <iostream.h> #include <conio.h> void main() { clrscr(); int may=0, men=0; float cali[50], pro=0; for (int c=0; c<10; c++) { cout<<"INGRESE LA CALIFICACION : "; cin>>cali[c]; } for (c=0; c<10; c++) pro=pro+cali[c]; pro=pro/10; for (c=0; c<10; c++) { if (cali[c] >= pro) may++; else men++; }

cout<<"\n\n\t\t\tEL PROMEDIO ES : "<<pro; cout<<"\n\nLAS NOTAS MAYORES AL PROMEDIO SON : "<<may; cout<<"\n\nLAS NOTAS MENORES AL PROMEDIO SON : "<<men; getch();

PROGRAMA #70
//PROGRAMA 70 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/18/01 /*ENUNCIADO: LEER UN VECTOR DE N ELEMENTOS QUE REPRESENTEN LOS PROCIOS DE VARIOS ARTICULOS, COPIAR EL CONTENIDO DE CADA ELEMENTO A OTRO VECTOR IDENTICO*/ #include <iostream.h> #include <conio.h> void main() { clrscr(); int num; float precios[500], cpre[500]; cout<<"CUANTOS PRODUCTOS VA A INGRESAR : "; cin>>num; cout<<"\n\n"; for (int i=0; i<num; i++) { cout<<"INGRESE EL PRECIO : "; cin>>precios[i]; } for (i=0; i<num; i++) cpre[i]=precios[i]; cout<<"\n\n\t\tPRECIOS COPIADO"; getch(); }

PROGRAMA #71
//PROGRAMA 71 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/18/01 /*ENUNCIADO: ESCRIBA UN VECTOR DE 100 ELEMENTOS ENTEROS Y VISUALIZAR LA SUMA DE ESTES ELEMENTOS*/ #include <iostream.h>

#include <conio.h> void main() { clrscr(); int num[100]; for (int c=0; c<10; c++) { cout<<"INGRESE UN NUMERO : "; cin>>num[c]; } int sum=0; for (c=0; c<10; c++) sum=sum+num[c]; cout<<"\n\n\t\t\tLA SUMA ES : "<<sum; getch(); }

PROGRAMA #72
//PROGRAMA 72 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/18/01 /*ENUNCIADO: DE UN VECTOR DE 100 ELEMENTOS ENTEROS. DETERMINE EL VALOR MAYOR DEL ARREGLO*/ #include <iostream.h> #include <conio.h> void main() { clrscr(); int num[100], m; for (int c=0; c<10; c++) { cout<<"INGRESE UN NUMERO : "; cin>>num[c]; } m=num[0]; for (c=1; c<10; c++) { if (num[c] > m) m=num[c]; } cout<<"\n\n\t\t\tEL MAYOR ES : "<<m; getch(); }

PROGRAMA #73
//PROGRAMA 73

//UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //FECHA: 11/18/01 /*ENUNCIADO: ESCRIBIR UN PROGRAMA QUE TENGA UN VECTOR DE 60 ELEMENTOS ENTEROS, ESTOS PUEDEN CONTENER ELEMENTO DUPLICADOS. SUSTITUIR CADA VALOR REPETIDO POR -5 Y VISUALIZAR EL NUEVO VECTOR*/ #include <iostream.h> #include <conio.h> void main() { clrscr(); int num[60], c2; for (int c=0; c<10; c++) { cout<<"INGRESE UN NUMERO : "; cin>>num[c]; } for (c=0; c<9; c++) { for (c2=c+1; c2<10; c2++) { if (num[c]==num[c2]) num[c2]=-5; } } for (c=0; c<10; c++) cout<<"\nEL NUMERO QUEDA : "<<num[c]; getch(); }

ARREGLOS BIDIMENSIONALES(MATRICES) Al igual que un vector un arreglo bidimensional es una variable nica con dos subndices, el primero especifica el nmero de filas y el segundo nmero de columnas. Es decir un arreglo de 2 dimensiones o una tabla con mltiples filas y mltiples columnas. 0 0 1 2 3 4 1 [1] [1] [2] [1] Matriz [5][4] 2 3

Este tipo de arreglos son muy comunes y son tambin conocidos como matrices o tablas. Siendo el nmero total de elementos del arreglo, el producto del nmero del total de filas por el total de columnas. Al igual que los vectores las matrices deben tener elementos de la misma naturaleza. Declaracin de una matriz int matriz[5][4]; char cadenas[10][30]; Inicializacin de matrices.- Las matrices se pueden inicializar igual que los vectores cuando se declaran. int edades[2][3]={10, 11, 12, 13, 14, 15}; 10 13 11 14 12 15

int edades [2][3]={{10,11,12} {13,14,15}}; float precios [5][2]={0.0}; //todo cero

Acceso a los elementos de una matriz.- Se lo hace de igual forma que a los elementos de un vector. La diferencia reside en que los elementos bidimensionales debe especificarse los ndices de las filas y las columnas. Formato: Insercin de elementos <nombre_array>[ndice_fila][ndice_columna]=valor elemento; Extraccin de elementos <variable>=<nombre_array>[ndice_fila][ndice_columna];

Ej.: Insercin Edades[1][1]=8; Edades[0][2]=4; Extraccin Entero=edades[1][1]; Lectura y escritura de un elemento bidireccional.- Se puede acceder a los elementos de los arreglos bidireccionales mediante bucles anidados utilizando la sentencia de entrada y salida cin y cout. PROGRAMA #74
//PROGRAMA #74 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //CURSO: PRIMER QUIMESTRE "B" //FECHA: 4 DE ENERO DEL 2002 /*ENUNCIADO: REALIZAR UNA MATRIZ DE FILA 3 COLUMNA 2. */ #include <iostream.h> #include <conio.h> void main() { int matriz [3][2]; int fila,col; clrscr(); cout<<"\n\tINGRESE LOS ELEMENTOS DE LA MATRIZ\n"; for (fila=0; fila<3; fila++) for (col=0;col<2;col++) { cout<<"\t\t\t"; cin>>matriz [fila][col]; } cout<<"\n\tLOS ELEMENTOS DE LA MATRIZ SON:\n"; for (fila=0;fila<3;fila++) { cout<<"\n"; for (col=0;col<2;col++) cout<<"\t\t"<<matriz [fila][col]; } getch(); }

PROGRAMA #75

//PROGRAMA #75 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //CURSO: PRIMER QUIMESTRE "B" //FECHA: 4 DE ENERO DEL 2002 /*ENUNCIADO: DEFINIR UNA MATRIZ CUADRADA A DE 16 ELEMENTOS LEERLA Y ESCRIBIRLA. */ #include <iostream.h> #include <conio.h> void main() { int A[4][4]; int fila,col; clrscr(); cout<<"\tINGRESE LOS ELEMENTOS DE LA MATRIZ\n"; for (fila=0; fila<4; fila++) for (col=0;col<4;col++) { cout<<"\t\t\t"; cin>>A[fila][col]; } cout<<"\n\n\tLOS ELEMENTOS DE LA MATRIZ SON:\n"; for (fila=0;fila<4;fila++) { cout<<"\n"; for (col=0;col<4;col++) cout<<"\t\t"<<A[fila][col]; } getch(); }

PROGRAMA #76
//PROGRAMA #76 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //CURSO: PRIMER QUIMESTRE "B" //FECHA: 4 DE ENERO DEL 2002 /*ENUNCIADO: SE TIENE UNA MATRIZ DE M FILAS Y N COLUMNAS, ELEMENTOS REALES, OBTENGA LA SUMA DE TODOS LOS ELEMENTOS DE DICHA MATRIZ. */ #include <iostream.h> #include <conio.h> void main() { float A[100][100]; int fila,col,nf,nc; float s=0.0; clrscr(); cout<<"\n\tINGRESE EL NUMERO DE FILAS: ";cin>>nf; cout<<"\tINGRESE EL NUMERO DE COLUMNAS: ";cin>>nc;

cout<<"\n\tINGRESE LOS ELEMENTOS DE LA MATRIZ\n\n"; for (fila=0; fila<nf; fila++) for (col=0;col<nc;col++) { cout<<"\t\t\t"; cin>>A[fila][col]; } cout<<"\n\tLOS ELEMENTOS DE LA MATRIZ SON:\n"; for (fila=0;fila<nf;fila++) { cout<<"\n"; for (col=0;col<nc;col++) cout<<"\t\t"<<A[fila][col]; } for (fila=0; fila<nf; fila++) for (col=0;col<nc;col++) s=s+A[fila][col]; cout<<"\n\n\tLA SUMA DE LA MATRIZ ES: "<<s; getch(); }

PROGRAMA #77
/*PROGRAMA # 77. UNIVERSIDAD TECNICA DE MACHALA. ESCUELA DE INFORMATICA. PROGRAMACION ESTRUCTURADA. AUTOR: MIR FECHA : 01/03/02 ENUNCIADO :GENERAR UNA MATRIZ DE 4*4 QUE PRESENTE LO SIGUIENTE*/ #include<iostream.h> #include<conio.h> void main() { int matriz[4][4]; clrscr(); cout<<"\n\n\tGENERA LA SIGUIENTE MATRIZ\n"; for(int f=0;f<4;f++) for(int c=0;c<4;c++) if(f==c) matriz[f][c]=1; else matriz[f][c]=0; for(f=0;f<4;f++) { cout<<"\n"; for(c=0;c<4;c++) cout<<"\t"<<matriz[f][c]; } getch(); }

PROGRAMA #78

/*PROGRAMA # 78 UNIVERSIDAD TECNICA DE MACHALA ESCUELA DE INFORMATICA PROGRAMACION ESTRUCTURADA AUTOR: MIR CURSO: PRIMERO "B". FECHA: ENERO 2 DEL 2002 ENUNCIADO: DADO UN ARREGLO BIDIMENSIONAL CUADRADA DE 16 ELEMENTOS ESCRIBIR UN PROGRAMA QUE ENCUENTRE LA SUMA DE TODOS LOS ELEMENTOS QUE NO PERTENECEN A LA DIAGONAL PRINCIPAL.*/ #include<iostream.h> #include<conio.h> void main() { clrscr(); int matriz [4][4]; int fil,col,suma=0; cout<<"\n\n\t Ingrese los elementos de la matriz:\n"; for (fil=0;fil<4;fil++) for(col=0;col<4;col++) { cout<<"\t\t"; cin>>matriz[fil][col]; } //Escribe los elementos de la matriz for (fil=0;fil<4;fil++) { cout<<"\n"; for(col=0;col<4;col++) cout<<"\t"<<matriz[fil][col]; } suma=0; cout<<"\n\n\t\tLa suma de la matriz es: "; for (fil=0;fil<4;fil++) for(col=0;col<4;col++) if(fil!=col) suma=suma+matriz[fil][col]; cout<<suma; getch(); }

PROGRAMA #79
//PROGRAMA 79 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURAD //AUTOR: MIR //CURSO: PRIMERO "B" //FECHA: 7 DE ENERO DEL 2002 /*ENUNCIADO:ESCRIBIR UN PROGRAMA QUE LEA LAS DIMENCIONES DE UNA MATRIZ LEA Y VISUALISE LOS ELEMENTOS DE ESTAY A CONTINUACION ENCUENTRE EL VALOR DEL MAYOR, VALOR MENOR Y SUS POCICIONES CORRESPONDIENTES.*/ #include <iostream.h> #include <conio.h> void main()

{ int A[50][50]; int f,c,x,y,aux1,aux2,pos1,pos2,pos3,pos4; clrscr(); cout<<"\t\t\tINGRESE EL NUMERO FILAS "; cin>>x;cout<<"\n"; cout<<"\t\t\tINGRESE EL NUMERO COLUMNAS "; cin>>y;cout<<"\n"; for(f=0;f<x;f++) for (c=0; c<y;c++) { cout<<"\t\t\t"; cin>>A[f][c]; } cout<<"\n\n"; for(f=0;f<x;f++) { cout<<"\n"; for (c=0; c<y;c++) { cout<<"\t\t"<<A[f][c]; aux1=A[0][0]; aux2=A[0][0]; } } for(f=0;f<x;f++) for (c=0;c<y;c++) { if (A[f][c]>=aux1) { aux1=A[f][c]; pos1=f; pos2=c; } } for(f=0;f<x;f++) for (c=0;c<y;c++) { if (A[f][c]<=aux2) { aux2=A[f][c]; pos3=f; pos4=c; } } cout<<"\n\n"; cout<<"\n\t\tEL NUMERO DE FILAS ES "<<x; cout<<"\n\t\tEL NUMERO DE COLUM ES "<<y; cout<<"\n\t\tEL V.MAYOR ES "<<aux1<<" POCICCION <"<<pos1<<">"<<"<"<<pos2<<">"; cout<<"\n\t\tEL V.MENOR ES "<<aux2<<" POCICCION <"<<pos3<<">"<<"<"<<pos4<<">"; getch(); }

PROGRAMA #80
//PROGRAMA N: 80 //UNIVERSIDAD TECNICA DE MACHALA

//ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR:MIR //CURSO: PRIMER QUIMESTRE "B" //FECHA: 04/01/02 //ENUNCIADO: SE TIENE UNA MATRIZ DE P*Q SE PIDE OBTENER //LA SUMA DE LAS FILAS Y ALMACENAR EN UN VECTOR LLAMADO //VECTOR FILA,OBTENER LA SUMA DE LAS COLUMNAS Y ALMACENAR //EN UN VECTOR LLAMADO COLUMNA #include<iostream.h> #include<conio.h> main() { int matriz[100][100]; int fila[100]={0}; int columna[100]={0}; int m,n,c2=-1; clrscr(); cout<<"\tINGRESE EL NUMERO DE FILAS DE LA MATRIZ ==> "; cin>>m; cout<<"\tINGRESE EL NUMERO DE COLUMNAS DE LA MATRIZ ==> "; cin>>n; cout<<"\n\tINGRESE LOS ELEMENTOS DE LA MATRIZ\n"; for(int f=0;f<m;f++) for(int c=0;c<n;c++) { cout<<"\t\t"; cin>>matriz[f][c]; } cout<<"\tLA NUEVA MATRIZ ES \n"; for(f=0;f<m;f++) { cout<<"\n"; for(c=0;c<n;c++) cout<<"\t"<<matriz[f][c]; } for(f=0;f<m;f++) { c2++; for(c=0;c<n;c++) fila[c2]=fila[c2]+matriz[f][c]; } c2=-1; for(c=0;c<n;c++) { c2++; for(f=0;f<m;f++) columna[c2]=columna[c2]+matriz[f][c]; } cout<<"\n\n\t\tLA SUMA DE LAS FILAS ES "; cout<<"\n"; for(f=0;f<m;f++) cout<<"\n\t\t\t"<<fila[f]; cout<<"\n\n\t\tLA SUMA DE LAS COLUMNAS ES";

cout<<"\n\n\t\t"; for(c=0;c<n;c++) cout<<"\t"<<columna[c]; getch(); }

UNIDAD VII
ESTRUCTURAS
Los arrays son estructuras de datos que contienen un nmero determinado de elementos y todos los elementos han de ser del mismo tipo. Esto caracterstica supone una gran limitacin cuando se requiere grupos de elementos con tipo diferentes de datos cada uno. Por ejemplo dispone de una lista de estaturas, es muy til un arreglo; sin embargo se necesita una lista de informacin de clientes que contenga elementos tales como: El nombre, la edad. La direccin, el nmero de la cuenta, etc. los arreglos no son los ms adecuados. La solucin a este problema es utilizar un tipo de dato estructurado. Una estructura es una coleccin de una o ms tipos de elementos denominados miembros, cada uno de los cuales pueden ser un tipo de dato diferente. Cada miembro (elemento) de una estructura puede contener datos de un tipo diferente a los otros miembros. Una estructura puede contener cualquier nmero de miembros, cada uno de los cuales tienen un nombre nico como denominado nombre del miembro. Supongamos que se desea almacenar los datos de una coleccin de discos compactos (cd de msica). Estos datos pueden ser: 1. 2. 3. 4. 5. Titulo Artista Nmero de canciones Precio Fecha de campo.

Estructura coleccin_cd miembro titulo artista nmero de canciones precio fecha de compra Declaracin de una estructura Es un tipo de dato definido por el usuario que se debe declarar antes que se pueda utilizar, el formato es: Struct <nombre de la estructura> { <tipo de dato miembro 1> <nombre miembro 1>; <tipo de dato miembro 2> <nombre miembro 2>; <tipo de dato miembro n> <nombre miembro n>; }; Ej.: struct coleccin_cd { char titulo[30]; char artista[3]; int nmero_de_cancines; float precio; char fecha_de_compra[10]; }; Definicin de variables de estructuras tipo de dato char[30] char[30] int float char[10] ejemplo Solo Alejandro Alejandro Sanz 12 18 08-01-2002

Las variables de una estructura se pueden definir de 2 formas. 1. struct coleccin_cd { char titulo[30]; char artista[3]; int nmero_de_cancines; float precio; char fecha_de_compra[10]; } cd1, cd2, cd3; 2. struct coleccin_cd { char titulo[30]; char artista[3]; int nmero_de_cancines; float precio; char fecha_de_compra[10]; }; coleccin_cd cd1, cd2, cd3; Ej.: Declarar y definir una estructura en C++ que contenga la informacin referente a un inventario en una ferretera. Struct inventario { char nombre_herramienta[30]; float precio; } herr1, herr2; Inicializacin de una declaracin de estructuras Se puede inicializar una estructura dentro de la seccin de cdigo de su programa o bien se puede inicializar la estructura como parte de la

declaracin. Cuando se inicializa una estructura como parte de la declaracin se especifica los valores iniciales entre llaves, despus de la declaracin el formato general es: Inicializacin struct <nombre variable estructura> = { valor miembro 1; valor miembro 2; valor miembro n; }; Ej.: struct cd1= { solo alejandro; alejandro sanz; 12; 18; 08-01-2002}; Acceso a las estructuras Cuando se accede a una estructura, o bien se almacena informacin en ella o se recupera la informacin de esta, se lo hace utilizando el operador punto (.). Almacenamiento de informacin en estructuras Se hace mediante: 1. 2. 3. 2. Inicializacin Asignacin directa Lectura Asignacin directa

formato:

<nombre variable esructura>.<nombre miembro>=dato; Ej.: Cd1.titulo=azul; Cd1.precio=18; Cd1.nmero_de_canciones=12; 3. Lectura

Basta con emplear sentencias de entrada utilizando el operador punto (.) as por ejemplo. cout<<introduzca el titulo del cd; cin>>cd1.titulo; cout<<introduzca el precio; cin>>cd1.precio; cout<<ingrese el nmero de canciones; cin>>cd1.nmero_de_canciones; Recuperacin de la informacin de una estructura Se recupera la informacin de una estructura utilizando el operador de asignacin o una sentencia cout. Formato: 1. 2. Ej.: auxtit = cd1.titulo; cout<<cd1.titulo; PROGRAMA #81 Realice las declaracin y definicin de una estructura inventario que tenga como miembro a cdigo, nombre del articulo, precio, nmero de articulo. Realice la lectura desde el teclado y a continuacin visualice los datos de la estructura. <nombre de variable>=<nom_var_est>.<nom_miembro>; cout<< <nom_var_est>.<nom_miembro>; escritura

//PROGRAMA 81 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR #include <iostream.h> #include <conio.h> void main() { clrscr(); struct inventario { char codigo[10]; char nomart[30]; float precio; int numart; } inv; cout<<"INGRESE EL CODIGO cin>>inv.codigo; cout<<"INGRESE EL NOMBRE cin>>inv.nomart; cout<<"INGRESE EL PRECIO cin>>inv.precio; cout<<"INGRESE EL NUMERO cin>>inv.numart; cout<<"\n\n"; cout<<inv.codigo; cout<<"\n"<<inv.nomart; cout<<"\n"<<inv.precio; cout<<"\n"<<inv.numart; getch(); }

DEL ARTICULO : "; DEL ARTICULO : "; : "; DE ARTICULOS : ";

ARRAYS DE ESTRUCTURAS Se puede crear un arrays de estructuras tal como se crea un array de otros tipos. Los array de estructuras les permiten almacenar juntos diversos valores de diferentes tipos agrupados como estructuras. Ej.: inventario inv[100]; for (int i=0; i<100; i++) { cin>>inv[i].codigo; cin>>inv[i].nomart; cin>>inv[i].precio; cin>>inv[i].numart;

} for(int c=0; c<100; c++) { cout<<inv[i].codigo<<\n; cout<<inv[i].nomart<<\n; cout<<inv[i].precio<<\n; cout<<inv[i].numart<<\n; } PROGRAMA #82 En una librera se desea ingresar un inventario de libros con la siguiente informacin, titulo del libro, fecha de publicacin, autor, nmero de libros, precio de ventas al pblico. Visualizar el nmero total de libros (de acuerdo al titulo de este).
//PROGRAMA 82 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR #include <iostream.h> #include <conio.h> void main() { clrscr(); struct inventario { char titulo[30]; char fecha[10]; char autor[30]; int numero; float precio; } registro[100]; int cont=0; char op; do { cin>>registro[cont].titulo; cin>>registro[cont].fecha; cin>>registro[cont].autor; cin>>registro[cont].numero; cin>>registro[cont].precio; cont++; cout<<"DESEA INGRESAR OTRO LIBRO S/N : "; cin>>op,

} while(op!='N'); cout<<"El total de libros es : "<<cont; getch();

PROGRAMA #83
//PROGRAMA DEMO.83 #include <iostream.h> #include <conio.h> struct infopersona { char nombre[20]; char calle[30]; char ciudad[25]; char provincia[20]; } void verinfo(infopersona datos) { cout<<"\n"<<datos.nombre; cout<<"\n"<<datos.calle; cout<<"\n"<<datos.ciudad; cout<<"\n"<<datos.provincia; } void main() { infopersona registrodatos; clrscr(); cout<<"ingrese el nombre de la persona :\t"; cin>>registrodatos.nombre; cout<<"ingrese calle :\t"; cin>>registrodatos.calle; cout<<"ingrese ciudad :\t"; cin>>registrodatos.ciudad; cout<<"ingrese provincia :\t"; cin>>registrodatos.provincia; verinfo(registrodatos); getch(); }

ARCHIVOS EN C++ Un archivio es una secuencia de bits almacenados en algunos dispositivos externos tal como un disco o una cinta magnetica. En C++; un archivo es simplemente un flujo externo; una secuencia de bit almacenado en disco. La biblioteca de flujo contiene 3 clases. ifstream fstream

Y metodos asociados para crear archivos y manejo de entrada y salida de esta. Estas 3 clases se declaran en el archivo de cabecera fstream.h. C++ soporta 2 tipo de archivos de texto almacenando datos como codigos ASCI. Los valores simples tales como nmeros y caracteres nicos estan separados por espacios. Los archivos binarios almacenan flujo de bits sin prestar atencin al cdigo asci o a la separacin de especio. Sin embargo el uso de este tipo de archivos requieren utilizar la direccin de una posicin de almacenamiento. PROGRAMA #84 Archivos tipo texto.- Realice un programa que visualice un entero, un valor de coma flotante y una cadena en un archivo llamado demo.
#include <iostream.h> #include <conio.h> #include <fstream.h> void main() { ofstream.salida("demo") salida<<10<<endl; salida<<12.45<<endl; salida<<"ESTE ES SOLO UN EJEMPLO"; salida.close(); }

PROGRAMA #85 Disee un programa que lea un nmero entero, flotante y una cadena de un archivo creado llamado demo.
#include <iostream.h> #include <conio.h> #include <fstream.h> void main() { clrscr();

int i; float f; char cadena[10]; ifstream.entrada("demo"); entrada>>i; entrada>>f; entrada>>cadena; entrada.close(); cout<<i<<"\n"; cout<<f<<"\n"; cout<<cadena<<"\n"; salida.close(); getch(); }