Programacion Estructurada

205
UNIDAD I INTRODUCCIÓN A LA CIENCIA DE LA COMPUTACIÓN Y LA PROGRAMACIÓN QUE ES UN COMPUTADOR? Máquina de propósito general que procesa datos de acuerdo con el conjunto de instrucciones que están 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. ORGANIZACIÓN FÍSICA DE UN COMPUTADOR (HARDWARE) ORGANIZACIÓN FÍSICA DE UN COMPUTADOR (MICROPROCESADOR) UNIDAD CONTROL UNIDAD ARITMÉTICA LÓGICA MEMORIA CENTRAL INTERNA U C P DISPOSITIVOS DE ENTRADA DISPOSITIVOS DE ENTRADA Y SALIDA DISPOSITIVOS DE SALIDA MEMORIA EXTERNA ALMACENAMIENTO PERMANENTE UNIDAD DE UNIDAD ARITMÉTICA LÓGICA DISPOSITIVOS DE ENTRADA DISPOSITIVOS DE SALIDA MEMORIA CENTRAL DISPOSITIVO S DE ENTRADA MICROPROCESADOR

Transcript of Programacion Estructurada

Page 1: Programacion Estructurada

UNIDAD I

INTRODUCCIÓN A LA CIENCIA DE LA COMPUTACIÓN

Y LA PROGRAMACIÓN

QUE ES UN COMPUTADOR?

Máquina de propósito general que procesa datos de acuerdo con el

conjunto de instrucciones que están 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.

ORGANIZACIÓN FÍSICA DE UN COMPUTADOR (HARDWARE)

ORGANIZACIÓN FÍSICA DE UN COMPUTADOR

(MICROPROCESADOR)

UNIDADCONTROL

UNIDAD ARITMÉTICA LÓGICA

MEMORIACENTRAL

U C PDISPOSITIVOSDE ENTRADA

DISPOSITIVOS DE ENTRADA Y SALIDA

DISPOSITIVOSDE SALIDA

MEMORIA EXTERNA ALMACENAMIENTO

UNIDAD DE CONTROL

UNIDAD ARITMÉTICA LÓGICA

DISPOSITIVOSDE ENTRADA

DISPOSITIVOSDE SALIDA

MEMORIA CENTRA

DISPOSITIVOSDE ENTRADA Y

MICROPROCESADOR

Page 2: Programacion Estructurada

COMPUTADORES MULTIMEDIA

Los computadores personales que actualmente se comercializan

prácticamente todos son multimedia, es decir incorporan

características multimedia (CD-ROM / DVD – ROM, tarjetas de sonido,

parlantes y micrófono) que permiten integrar texto, sonido, gráficos e

imágenes en movimiento.

CARACTERÍSTICAS 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’’

ALMACENAMIEN

TO

CD – ROM

PUERTOS USB – SERIALES –

PARALELOS

INTERNET 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 aplicación

Software del sistema.- Es el conjunto de programas independientes

para la máquina funcione; se denominan también programas del

Page 3: Programacion Estructurada

sistema. Estos programas son básicamente sistemas operativos, los

compiladores o interpretes, los programas de utilidad. Siendo uno de

los más 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 recuperación 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 programación).- Son

programas especiales llamados traductores porque convierten las

instrucciones escritas en lenguajes de programación en instrucciones

escritas en lenguaje de máquina (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 aplicación.- Estos programas realizan tareas concretas

como nóminas, roles de pago, análisis estadístico, etc. si son escritos en

lenguaje de alto nivel como por ejemplo C++.

LENGUAJES DE PROGRAMACIÓN

Un algoritmo a de expresarse en un formato que se denomina

programa. Un programa se escribe en un lenguaje de programación y

las operaciones que conducen a expresar un algoritmo en forma de

programa se llama programación.

Los principales tipos son de lenguaje son:

- Lenguaje de máquina.

- Lenguaje de bajo nivel

- Lenguaje de alto nivel.

Page 4: Programacion Estructurada

Lenguaje de máquina.- Los lenguajes de máquina son aquellos que

están escritos en lenguajes directamente inteligibles por la máquina, ya

que sus instrucciones son cadenas binarias (0, 1) que especifican una

operación y las posiciones (dirección) de memoria implicadas en la

operación se denominan instrucciones de máquina o código de

máquina. El código de máquina es conocido código binario.

El conjunto de instrucciones del lenguaje de máquina depende de la

UCP de la computadora.

Las ventajas de programar en lenguaje máquina son la posibilidad de

cargar (transferir un programa a la memoria) sin necesidad de

traducción posterior a cualquier otro lenguaje de programación. Las

desventajas al utilizar este tipo de lenguajes son:

Dificultad y lentitud en la codificación.

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

más fácil de utilizar que los lenguajes máquina, pero al igual que ellos

dependen de la máquina en particular.

El lenguaje de bajo nivel es por excelencia el ensamblador.

Las instrucciones en lenguaje ensamblador son instrucciones conocidas

como nemotécnicas.

Nemotécnicos típicos de operaciones aritméticos son: ADD(Suma),

SUB(Resta), DIV(división). Una instrucción típica 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 máquina sino que requiere de una fase de traducción al

lenguaje de máquina.

Page 5: Programacion Estructurada

El programa original escrito en lenguaje ensamblador se denomina

programa fuente y el programa traducido en el lenguaje máquina 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 máquina de su mayor facilidad de

codificación y en general, su velocidad de cálculo.

Los inconvenientes más notables en los lenguajes de bajo nivel son:

Dependencia total de la máquina, lo que impide la

transportabilidad de los programas.

Formación de los programadores es más compleja que los

correspondiente a los programadores de alto nivel, ya que existe

no solo las técnicas de programación, sino también el

conocimiento interior de la máquina.

En la actualidad estos lenguajes tienen sus aplicaciones muy reducidas

y se centran en aplicaciones de tiempo real, control de procesos y de

dispositivos electrónicos.

Lenguajes de alto nivel.- Son las más utilizadas por el programador.

Están diseñados para que las personas escriban y entiendan programas

de un modo mucho más fácil que los lenguajes de máquina y lenguajes

de bajo nivel. Es que razón es que un programa escrito en alto nivel es

independiente de la máquina, esto es que las instrucciones del

programa no dependen del diseño 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 formación de los programas es relativamente corta

comparada por los otros lenguajes.

Las escritura de los programas se basan en reglas sintácticas

similares a los lenguajes humanos. Nombres de las instrucciones

tales como IF – REPEAT – WHILE.

Page 6: Programacion Estructurada

Los modificadores puestos a punto de los programas son más

fáciles.

Reducción del costo del desarrollo de los programas.

Transportabilidad.

Desventajas

Aumento de la ocupación de memoria.

No se aprovechan los recursos internos de la máquina que se

explotan mucho mejor con los lenguajes de máquina y

ensambladores.

El tiempo de ejecución 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 más utilizados serían

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 código de

máquina. El traductor más 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 máquina.

Los programas escritos en lenguajes de alto nivel se llaman programas

fuentes y el programa traducido se llama programa objeto o código

objeto. El compilador traduce sentencia a sentencia el programa

fuente.

Los lenguajes compiladores típicos son: C / C++, pascal, Fortran, etc.

PROGRAMA

COMPILADO

PROGRAMA OBJETO CÓDIGO OBJETOPROCESO DE

Page 7: Programacion Estructurada

Compilación y sus fases.- La compilación es el proceso de traducción

de los programas fuentes a programas objetos. El programa obtenido

de la compilación ha sido traducido normalmente a código de máquina.

Para conseguir el programa de máquina se debe utilizar un programa

llamado Montador o también se lo conoce como Enlazador (Linker). El

proceso de montaje conduce a un programa en lenguaje de máquina

directamente a ejecutable.

Proceso de ejecución.- El proceso de ejecución de un programa

escrito en un lenguaje de programación 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 compilación (listado de errores).

5. Obtención 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

COMPILADO

PROGRAMA

ENLAZADO

PROGRAMA EJECUTABLE

(CÓDIGO MAQUINA)

PROGRAMA

Page 8: Programacion Estructurada

NOTA: En la actualidad casi todas las herramientas de programación

tienen un EID (Entorno integrado de desarrollo).

RESOLUCIÓN DE PROBLEMAS EN COMPUTADORAS

El proceso de resolución de un problema con computadora conduce a

la escritura de un programa y a su ejecución en la misma. Se pueden

considerar una serie de fases o pasos comunes que generalmente

deben seguir todos los programadores.

Las fases de resolución de un problema utilizando un computador son:

1. Análisis del problema.

2. Diseño del algoritmo.

3. Prueba de escritorio

4. Codificación

5. Compilación y ejecución

6. Prueba y depuración.

7. Documentación y mantenimiento.

1. Análisis del problema .- Esta fase requiere de una clara definición

donde se contemple exactamente lo que debe hacer el programa con

la solución deseada.

Dado que se busca una solución 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?.

COMPILADO

EXISTEN EN LA

PROGRAMA

ENLAZADO

EJECUCIÓ

S

N

MODIFICACIÓNDEL

Page 9: Programacion Estructurada

2. ¿Cuál es la salida deseada?.

3. ¿Qué método produce la salida deseada?.

2. Diseño del algoritmo .- Un algoritmo es un método para resolver

un problema mediante una serie de pasos precisos, ordenados,

definidos y finitos.

La palabra algoritmo se deriva de la traducción al latín de la palabra

Alkhôwarîzmi, nombre de un matemático y astrónomo Árabe que

escribió un tratado sobre manipulación de números y ecuaciones en

el siglo IX.

Características de un algoritmo

- Preciso (Indicar el orden de realización en cada pazo)

- Definido (Si se sigue dos veces, obtiene el mismo resultado cada

vez).

- Finito (Tiene fin; un número determinado de veces).

Los proceso que utilizan algoritmo se llaman métodos algorítmicos,

en oposición a los métodos que implican algún juicio o

interpretación que se denominan métodos heurísticas.

Representación de los algoritmos.- Para representar los

algoritmos se debe realizar algún método que me permita

independizar dicho algoritmo del lenguaje de programación elegido.

Los métodos usuales para representar un algoritmo son:

- El diagrama de flujo

- El diagrama de cajas (N – S) (Chapín)

- Seudocódigo

- Lenguaje español, inglés.

- Fórmulas.

Diagramas de flujo.

SÍMBOLO FUNCIÓN

Page 10: Programacion Estructurada

Inicio o terminación

impresora

decisión

proceso

leer desde el teclado

bucle de repeticion

secuencia de datos

datos

operación manual

disco

proceso predefinido

presentar en pantalla

conector

felchas direccionales

Page 11: Programacion Estructurada

EJEMPLO

Se tiene el lado de un cuadrado buscar el área.

Seudocódigo.- Es una herramientas de programación en el que las

instrucciones se escriben en palabras similares al inglés o al

español, que facilitan tanto la escritura como la lectura de los

programas. En esencia el seudocódigo, se puede definir como un

lenguaje de especificación 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 A SALIDA

5 25 25

4. Codificación .- Es la escritura de un algoritmo en un lenguaje de

programación.

Para realizar las conversión del algoritmo a un programa se debe

sustituir las palabras reservadas por sus homónimos en inglés, en el

lenguaje de programación correspondiente.

5. Compilación y Ejecución .- Una vez que el algoritmo se ha

convertido en un programa fuente, este debe ser traducido al

lenguaje de máquina. Este proceso se realiza con el compilador.

INICI

L

A L*L

A

FIN

Page 12: Programacion Estructurada

Si tras la compilación se presentan errores (Errores de compilación)

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, obteniéndose el programa objeto

que todavía 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 librerías 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 ejecución (llamados

errores en tiempo de ejecución) se obtendrá la salida de resultado

del programa.

6. Prueba y Depuración .- La prueba de un programa es el proceso de

ejecución 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 verificación se debe desarrollar una

amplia gama de datos de test : Valores normales de entrada que

comprueba los límites del programa y valores de entrada que

comprueba aspectos del programa.

La depuración 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 compilación .- Se producen normalmente por uso

incorrecto de las reglas del lenguaje de programación y suelen

ser errores de sintaxis. Si existe un error de sintaxis la

computadora no puede comprender la instrucción, no se

obtendrá el código objeto y el compilador imprimirá una lista de

todos los errores encontrados durante la compilación.

2. Errores de ejecución .- Estos errores se producen por

instrucciones que la computadora puede comprender pero no

Page 13: Programacion Estructurada

puede ejecutar, ejemplos típicos son: divisiones por cero y raíces

cuadradas de números negativos. En estos casos se obtiene la

ejecución del programa y se imprime un mensaje de error.

3. Errores lógicos .- Se producen en la lógica del programa y la

fuente de error suele ser el diseño del algoritmo. Estos errores

son los más difíciles de detectar ya que el programa puede

funcionar y no producir errores ni de ejecución ni de compilación

y solo puede advertirse el error por la obtención de resultados

incorrectos. En este caso se debe volver a la fase de diseño del

algoritmo, modificar el algoritmo, cambiar el programa fuente

compilar y ejecutar una vez más.

7. Documentación y mantenimiento .- La documentación de un

problema consta de las descripciones de los pasos a dar en el

proceso de se resolución. La importancia de la documentación debe

ser destacada por su decisiva influencia en el producto final.

Programas pobremente documentados son difíciles de leer, más

difíciles de depurar y casi imposible de mantener y modificar.

La documentación de un programa puede ser interna y externa.

La documentación interna es la contenida en líneas de comentarios.

La documentación externa incluye análisis, diagramas de flujo y/o d

seudocódigos, diagramas de objetos, manuales del usuario, como

instrucciones para ejecutar el programa y para interpretar los

resultados.

La documentación es vital cuando se desea corregir posibles errores

futuros o bien cambiar el programa. Tales cambios se denominan

mantenimiento del programa.

Después de cada cambio la documentación debe ser actualizada

para facilitar cambios posteriores.

Es práctico numerara las sucesivas versiones de los programas

como 1.0, 1.1, 2.0, 3.0, etc Si los cambios introducidos son

Page 14: Programacion Estructurada

importantes se varia el primer dígito, en caso de pequeños solo se

varia el segundo dígito.

UNIDAD II

INTRODUCCIÓN A LA PROGRAMACIÓN

ESTRUCTURADA

PROGRAMACIÓN ESTRUCTURADA

Significa escribir un programa de acuerdo a las siguientes reglas.

- El programa tiene un diseño modular.

- Los módulos son diseñados a manera descendente (Diseño Top –

down).

- Cada módulo se codifica utilizando las tres estructuras de control

básicas: Secuencia, Selección y repetición.

El término programación estructurada se refiere entonces a un

conjunto de técnicas: estas técnicas aumentan considerablemente la

productividad del programa reduciendo elevado grado el tiempo para

escribir, depurar y mantener los programas.

La programación estructurada utiliza un número limitado de

estructuras de control que minimizan la complejidad de los programas

por consiguiente reducen los errores.

Programación modular.- Es uno de los métodos de diseño más

flexibles y potentes para mejorar la productividad de un programa. En

programación estos módulos no son más que partes independientes, en

donde cada uno de los cuales ejecuta una única actividad o tarea y se

codifican independiente de otros módulos.

Cada uno de estos módulos se analizan, codifican y ponen a punto por

separado.

Cada programa tiene un módulo denominado programa principal que

controlo todo lo que sucede; se transfiere el control a submódulos (que

más adelante se los conoce como subprogramas) de modo que ellos

Page 15: Programacion Estructurada

pueden ejecutar sus funciones; sin embargo cada submódulo devuelve

el control al módulo principal cuando se halla implantado su tarea.

Los módulos son independientes en el sentido de que ningún módulo

puede tener acceso directo a cualquier otro módulo excepto al módulo

al que llama y sus propios submódulos. Sin embargo los resultados

producidos por un módulo pueden ser utilizados por cualquier otro

cuando se transfieren a ellos el control.

Diseño descendente (top – down).- El diseño descendente es el

proceso mediante el cual un programa se descompone en una serie de

niveles o pasos sucesivos de refinamiento. La metodología descendente

consiste en efectuar una relación entre las sucesivas etapas de

estructuración de modo que se relaciona una con otras mediante

entradas y salidas de información. Es decir se descompone el problema

en etapas o estructuras jerárquicas, de forma que pueda considerar

cada estructura desde dos puntos de vista. ¿Qué hace?, ¿Cómo lo

hace?.

¿Qué hace? ¿Cómo lo hace?

Estructuras de control.- Las estructuras de control en un lenguaje de

programación son métodos de especificar el orden en que las

instrucciones de un algoritmo se ejecutarán. El orden de ejecución de

las sentencias o instrucciones determinan el flujo de control.

Estas estructuras de control por consiguiente son fundamentales en los

lenguajes de programación y en los diseños de algoritmo y

especialmente en los seudocódigos.

Page 16: Programacion Estructurada

Secuénciales Selectivas

simple doble

Repetitivas

TEOREMA DE LA PROGRAMACIÓN ESTRUCTURADA

O O

múltiple

Page 17: Programacion Estructurada

En mayo de 1966 Böhm y Jacopini demostraron que un “programa

propio” puede ser escrito utilizando solamente 3 tipos de estructuras

de control:

Secuenciales

Selectivas

Repetitivas

Un programa se define como propio si cumple las siguiente

características.

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 década de los 80, es heredero directo del

lenguaje C que a su vez se deriva del lenguaje B (desarrollado por

Martín Richards como lenguaje de escribir software de sistemas

Page 18: Programacion Estructurada

operativos y compiladores en 1967). C se mantiene como un

subconjunto de C++.

Otra fuente de inspiración fue el lenguaje simula 67 (Dohl / 1972 del

que toma conceptos de clases, con clases derivadas y funciones

virtuales.

El lenguaje de programación C fue desarrollado por Denis Ritchie de

AT&T laboratorios Bell. Diseñado a principios de los años 70.

C es un lenguaje de propósito general que se puede utilizar para

escribir cualquier tipo de programas, pero su éxito y popularidad esta

basado especialmente en el sistema operativo Unís.

El desarrollador del lenguaje Stroustrup diseño C++ como un mejor C.

La mayoría de programas C son también programas C++.

C++ además de añadir propiedades de C presenta características y

propiedades de programación orientadas a objetos.

Se han presentado varias versiones de C++. Las características más

notables que se han ido notando en C++ son:

Herencia múltiple.

Plantillas.

Funciones virtuales.

Excepciones, etc.

ESTRUCTURA GENERAL DE UN PROGRAMA C++

Un programa de C++ puede incluir directivas del preprocesador

Declaraciones globales.

La función main ( ) [obligatoria]

Funciones definidas por el usuario

Comentarios del programa.

#include <iostream.h> Directiva del preprocesador

int main () Cabecera de función

{ Nombre de la función

....... Sentencias

Page 19: Programacion Estructurada

{

#include Directivas preprocesador

#define Macros del procesador

Declaraciones Globales

Funciones

Variables

Prototipos de funciones

Función principal main

Main ()

{

declaraciones locales

Sentencias

}

Definición de otras funciones

func 1 (....)

{

.........

}

func 2 (....)

{

.........

}

..........

EJEMPLO DE UN PROGRAMA EN C++

//PROGRAMA DEMO _ UNO

#include <iostream.h>

Page 20: Programacion Estructurada

#include <conio.h>

//Este programa escribe bienvenidos a la programación C++

main ()

{

clrscr();

cout<<”Bienvenidos a la programación 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 más

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 continuación de ella y su contenido la inserte en la posición

donde encuentra esa directiva.

Estos archivos se denominan archivos de cabecera o inclusión. Cuando

se instala el compilador estos archivos se almacenan automáticamente

en la carpeta INCLUDE. Los nombres de estos archivos siempre tienen

la extensión .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 operación para el programa C++.

Así: #define longitud 30

Page 21: Programacion Estructurada

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 sitúan antes de la función main. Ej.:

//Declaraciones globales

int notas, total

main ()

{

.....

}

Mientras que las variables y constantes locales se declaran y definen

en el cuerpo de la función principal.

Función main.- Cada programa C++ tiene una función main que es

punto inicial de entrada al programa su estructura es:

main ()

{

....... Bloque de sentencias

}

Un programa puede tener solo una función main si se intenta hacer 2

funciones main se produce un error.

Funciones C++.- Además de la función main un programa C++

consta de una colección de funciones.

Una función C++ es un subprograma que devuelve un único valor, un

conjunto de valores o realiza un tarea específica tal como entrada o

salida.

Page 22: Programacion Estructurada

En un programa corto el programa completo puede incluirse

totalmente en la función main. Un programa largo sin embargo tiene

demasiados códigos para incluirlos en esta función. Ej.:

Main ()

{

obtener _ datos ();

cálculos ();

visualizar ();}

ELEMENTOS DE UN PROGRAMA C++

Identificadores.- Un identificador es en secuencia de caracteres,

letras, dígitos y subprogramas.

Reglas para la declaración de identificadores

El primer carácter debe ser una letra:

Acum.

Las letras mayúsculas y minúsculas son diferentes para el efecto del

identificador.

En C++ el identificador puede ser de cualquier longitud, sin

embrago el compilador, ignora cualquier carácter fuera de los 32

primeros.

Los identificadores no pueden ser palabras reservadas tales como:

if, else, while, etc.

Palabras reservadas.- Las palabras reservadas están asociadas con

algún significado especial del lenguaje.

Una palabra reservada no puede ser utilizada como nombre de

identificador, objeto o función.

Algunas palabras reservadas en C++ son:

break if

case int

char private

const public

Page 23: Programacion Estructurada

delete return

do short

double struct

else switch

float void

for while

Comentarios.- Es cualquier información que se puede añadir a su

archivo fuente para proporcionar información 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 estándar /* */ varias líneas.

Estilo C++ // una línea.

Signos de puntuación 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 línea.

Archivos de cabecera.- Es un archivo especial que contiene las

declaraciones de objeto y funciones de biblioteca, se puede utilizar la

directiva #include, la mayoría de los programas contiene líneas como

esta al principio.

#include <iostream.h>

Tipos de datos en C++.- Los tipos de datos básicos son:

Enteros

Reales (números de punto floatnte).

Caracteres

Lógicos

Tipo de datos enteros (int).- Son adecuados para aplicaciones que

trabajan con tipos de datos numéricos.

Page 24: Programacion Estructurada

TIPO DE

DATO

RANGO DE

VALORES

int - 32768 .... 32767

unsigned int 0 .... 65535

short int - 128 .... 127

long int - 2147483648 ....

2147483647

unsigned long 0 .... 4294967295

DECLARACIÓN 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 número, ítem, dato;

Formato 1:

int valor = 100;

Tipos de datos reales (float).- Los tipos de datos de punto o coma

floatnte representa números reales que contienen un punto decimal tal

como 3,1415916 o números muy grandes tales como 1,85 x 1015.

TIPO DE

DATOS

RANGO DE

VALORES

PRECISIÓ

N

TAMAÑOS

BYTES

float 3.4 x 10-38 7 dígitos 4

Page 25: Programacion Estructurada

double 1.7 x 10-308 15 dígitos 8

long double 3.4 x 10-4932 19 dígitos 10

Ej.:

float valor1;

float z1, z2, z3;

Tipo de datos carácter.- Un carácter 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 código de caracteres ASCII.

Se puede definir una variable carácter escribiendo char letra;

char car1, car2, car3;

char dato _ car = ‘A’;

Internamente los caracteres se almacenan como números por ejemplo,

A = con el número 65.

B = 66

C = 67

Puesto que los caracteres se almacenen internamente como número, se

pueden realizar operaciones aritméticas con datos tipo char. Ej.:

Convertir la letra minúscula a, a la letra mayúscula A.

char letra;

letra = ‘a’;

letra = letra – 32;

Tipo de datos lógicos (bool).- Este tipo de datos proporciona la

capacidad de declarar variables lógicas cuyos valores son verdadero y

falso:

Verdadero true

Falso false

Ej.:

bool sw;

Page 26: Programacion Estructurada

sw = true;

Simulación 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 lógicas de igual forma que se utiliza el tipo bool.

También se puede declarar datos lógicos definiendo un tipo enumerado

bolean con 2 valores falso y verdadero de la siguiente forma:

enum boolean { false, true}

Esta declaración 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 más 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

puntuación en números completos.

Page 27: Programacion Estructurada

Constantes literales reales.- Estas constantes representan un

número real, representan aproximaciones en lugar de números

exactos. Ej.:

12.3

0.89

1.25e-4

Constantes literales carácter.- Una constante carácter (char) es un

carácter del código ASCII encerrado entre comillas simples (‘ ‘) es

decir:

‘A’

‘9’

Además se puede leer un carácter utilizando una barra oblicua (\)

llamado código de escape.

Secuencias de código de escape

CÓDIGO DE

ESCAPE

SIGNIFICADO

‘\n’ Nueva línea

‘\r’ Retorno de carro

‘\t’ Tabulación

‘\v’ Tabulación

vertical

‘\a’ Alerta (pitido

sonoro)

‘\b’ Retorno de

espacio

‘\f’ Avance de

página

‘\\’ Barra inclinada

inversa

‘\’’ Comilla simple

Page 28: Programacion Estructurada

Ejemplo

// Prueba de códigos de escape

#include <iostream.h>

#include <conio.h>

main ()

{

clrscr ();

char alarma = ‘\a’;

char línea = ‘\n’;

char tabula;

tabula = ‘\t’;

cout << alarma;

cout << tabula;

//otra forma

cout << “Prueba de códigos de escape \n \t \a “;

getch ();

}

Aritmética con caracteres C++.- Dado la correspondencia entre un

carácter y su código ASCII, es posible realizar operaciones aritméticas

sobre datos carácter:

char letra;

letra = ‘A’; //A = 65

letra = letra + 1 //B = 66

A la inversa se puede almacenar constantes de carácter en variables

enteras por ejemplo:

int valor;

valor = ‘A’;

cout << valor;

Page 29: Programacion Estructurada

Constante cadena.- Es una secuencia de caracteres encerrados entre

comillas dobles.

“Ejemplo de cadena”

Se puede escribir una cadena en varias líneas terminada cada línea con

el (\) Ej.:

“Ejemplo de una cadena \

que tiene dos líneas”

En memoria las cadenas se representan como una serie de caracteres

ASCII más un cero o nulo. El carácter nulo marca el final de la cadena.

Recordar que una constante carácter se encierra entre comillas

simples, las constantes de cadenas se encierran entre comillas dobles,

así por ejemplo:

‘B’ y “B”

long 1 long1 (0)

Por consiguiente no se debe mezclar constantes tipo char con las de

cadena dentro de los programas.

Constantes definidas.- También llamadas constantes simbólicas,

pueden recibir nombres mediante la directiva define, Ej.:

#define PI 3.141592

#define valor 67

#define carácter ‘@’

C++ sustituye los valores de 3.141592; 67 y @ por las constantes

simbólicas 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;

Page 30: Programacion Estructurada

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 simbólicos 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 posición con nombre en memoria donde se

almacena un valor de un cierto tipo de dato y puede ser modificado

durante le ejecución del programa, las variables pueden almacenar

todo tipo de datos, cadenas, números, estructuras.

Declaración.- Una declaración de una variable es una sentencia que

proporciona información de la variable al compilador de C++.

Page 31: Programacion Estructurada

Formato:

tipo variable;

Ej.:

int años;

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.

Inicialización de variable.- Formato:

tipo nombre _ variable = expresión;

Donde expresión es cualquier expresión valida cuyos valores es del

mismo tipo que tipo. Ej.:

int años = 25;

char letra = ‘x’;

Duración de una variable.- Dependiendo del lugar donde se defina

las variables de C++, estas se pueden utilizar en la totalidad del

programa de una función o pueden existir temporalmente dentro de un

bloque de una función. La zona de un programa de una variable está

activa, se denomina ámbito o alcance.

El ámbito de una variable se extiende hasta los límites de la definición

de sus bloques.

Los tipos básicos son variables locales y variables globales.

VARIABLES LOCALES

Las variables locales son aquellas definidas en el interior de una

función y son visibles solo en una función especifica.

Las reglas por las que se rigen estas son:

1. En el interior de una función una variable local no puede ser

llamada por ninguna sentencia externa a la función.

Page 32: Programacion Estructurada

2. Los nombres de las variables no han de ser únicas. Es decir que 2, 3

o más funciones pueden definir variables con el mismo nombre.

3. Las variables locales de las funciones no existen en memoria hasta

que se ejecuta la función.

VARIABLES GLOBALES

Son variables que se declaran fuera de la función y por omisión son

visibles a cualquier función incluyen main ( ). La memoria asignada a

una variable global permanece a través de la ejecución del programa.

Por esta razón 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

estándar son definidos automáticamente.

Salida (cout) (console output).- El operador de inserción << 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 ”;

Page 33: Programacion Estructurada

Entrada (cin) (console input).- El archivo de cabecera iostream.h de

la biblioteca C++ y un operador de extracción >>, 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 dirección

// Programa de ingreso de nombre y dirección

#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 expresión es normalmente una ecuación matemática,

es una secuencia de operaciones y operandos que especifican el

cálculo.

Page 34: Programacion Estructurada

Operador de asignación.- El operador (=) asigna el valor de la

expresión derecha a la variable situada a su vez izquierda.

código = 1234

Este operador es asociativo por la derecha, eso permite realizar

asignaciones múltiples:

a = b = c = 256;

char q, l, m;

q = l = m = ‘@’;

Operadores aritméticos.- Los operadores aritméticos sirven para

realizar operaciones aritméticas básicas. Los operadores aritméticos

C++ siguen las reglas algebraicas típicas de jerarquía. Estas reglas

especifican la procedencia de las operaciones aritméticas.

OPERADO

R

FUNCIÓN EJEMPL

O

+ Suma 5 + 2 =

7

- Resta 6 – 3 = 3

* Multiplicació

n

4 * 2 = 8

/ División:

cociente

10/2 = 5

% División:

residuo

10%3 =1

Reglas de jerarquía

1. Las expresiones interiores en paréntesis se evalúan primero.

2. La precedencia de las operadores aritméticos es:

PRECEDENC

IA

OPERADOR

ES

1 *, /, %

Page 35: Programacion Estructurada

2 +, -

3. Operadores de una misma jerarquía en una expresión se evalúan de

izquierda a derecha.

Cuál es el resultado de las siguientes expresiones

EXPRESIÓN RESULTA

DO

5 + 2 * 8 – 3/2 20

10 * 2 * (5 + 4 *

2) - 6

254

8 + 5 * 4 % 3 +

9 - 2

17

Se lee dos números 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

Page 36: Programacion Estructurada

OPERADORES DE

INCREMENTO

OPERADORES DE

DECREMENTO

++ - -

Ej.:

++m = m = m + 1

m++ = m = m + 1

n-- = n = n – 1

--n = n = n – 1

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

Se pueden comportar de la siguiente manera:

++, - -, están de prefijos (++k), la operación del incremento se efectúa

antes que la operación de asignación; si los operadores ++, - - están de

sufijos (k++), la asignación se efectúa en primero lugar y la

incrementación o decrementación a continuación. Ej.:

Page 37: Programacion Estructurada

int i = 10; int i = 10;

int j; int j;

j = i++ j = ++i

quedará

i = 11 i = 11

j = 10 j = 11

OPERADORES DE RELACIÓN

Los operadores relacionales comprueban una relación entre 2

operandos, sirven para establecer condiciones, cuando se utilizan estos

operadores en una expresión, estos producen un cero o un uno

dependiendo del resultado de la condición:

0 false

1 true

Tabla de operadores relacionales

OPERADO

R

SIGNIFICAD

O

EJEMPL

O

== Igual que a == b

!= Diferente de a != b

> Mayor que a > b

< Menor que a < b

>= Mayor o igual

que

a >= b

<= Menor o

igual que

a <= b

Page 38: Programacion Estructurada

Ejemplos

EXPRESIÓ

N

RESULTA

DO

8 >= 4 1

9 != 10 1

14 <= 14 1

8 == 10 0

7 > 9 0

3 < 2 0

‘ A’ < ‘B’ 1

‘a’ > ‘A’ 1

Nota: Los operadores relacionales tienen menor prioridad que los

operadores aritméticos.

m + 8 >= n * 4

(m + 8) >= (n * 4)

Operadores lógicos.- Se denominan también operadores booleans, se

utilizan en expresiones condicionales, sirven para devolver un valor

verdadero o falso.

Tabla de operadores lógicos

OPERADO

R

SIGNIFICA

DO

EJEMPLO PRECEDENC

IA

! not(no) !(m > p) 1

&& and(y) (a < b) && (c

> d)

2

|| or(o) (j <= h) || (r

>= l)

3

Tabla de verdad operador not(!)

Page 39: Programacion Estructurada

OPERAND

O a

NOT

a

T F

F T

Tabla de verdad operador and(&&).

OPERADO

R a

OPERADO

R b

a &&

b

T T T

T F F

F T F

F F F

Tabla de verdad del operador or(||)

OPERADO

R a

OPERADO

R b

a ||

b

T T T

T F T

F T T

F F F

Ejemplo

EXPRESIÓN RESULTA

DO

(a > 4) || (7 <= 7) T

(10 == 4) && (14 >= F

Page 40: Programacion Estructurada

9)

!(4 <= 7) || (8 != 10) T

!((14 >= 20) && (22

== 12))

T

UNIDAD IV

ESTRUCTURAS DE CONTROL

Las estructuras de control controlan el flujo de ejecución de un

programa o función.

Las estructuras de control permiten combinar instrucciones o

sentencias individuales en una simple unidad lógica 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 ejecución;

Secuenciales, selección y repetición.

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 ejecución comienza con la primera

sentencia de la función y prosigue hasta la última sentencias, cada una

de las cuales se ejecuta una sola vez. Esta forma de programación es

adecuada para resolver problemas sencillos.

Diagrama de Flujo Seudocódigo

Codificación

Sentencia 1 {

Sentencia 1;

Sentencia 2

Sentencia 2;

Sentencia 3

Sentencia 3;

Page 41: Programacion Estructurada

Sentencia n;

Sentencia n }

Ejercicios

1. Enunciado del problema

Escribir un programa que solicite al usuario la longitud y la anchura

de una habitación y a continuación visualice la superficie.

2. Análisis

Entrada:largo.

Ancho.

Proceso: largo * ancho

Salida: superficie

3. Definición de variables

largo: largo de habitación

ancho: ancho de habitación

superficie: superficie o área de habitación

4. Diseño del algoritmo

4.1. Diagrama de flujo

Seudocodigo

InicioLeer(largo)

Page 42: Programacion Estructurada

Leer(ancho)Superficie largo*anchoEscribir(superficie)

Fin

5. Prueba de escritorio

largo

ancho

superficie

Salida

5 4 20 20

6. Codificación

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

Page 43: Programacion Estructurada

La temperatura Celsius puede ser convertida a una temperatura

equivalente Fahrenheit de acuerdo con la siguiente formula: f=(9/5)c +

32.

2. Analisis

Entrada: Celsius

Proceso: (9/5)c+32

Salida: Fahrenheit.

3. Definición de variables

Celsius : Celsius

Fahrenheit:faren.

4. Diseño de algoritmo

4.1 Diagrama de Flujo

4.2 Seudocodigo

inicioleer(Celsius)faren (9/5)*Celsius + 32escribir(faren)

fin.

5. Prueba de escritorio

Celsius

faren

Salida

Page 44: Programacion Estructurada

40 104 104

6. Codificación

//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 problemaUn sistema de ecuaciones lineales ax + by = c

dx + ey = fse puede resolver con las siguientes formulas:x = (ce - bf)/(ae - bd) ; y = (af - cd)/(ae - bd) ;diseñar un programa que lea los dos conjuntos de coeficientes (a,b,c,d,e,f) y visualize los valor se x, y.

2. Análisis

Entrada: a, b, c, d, e, f

Proceso: x = (ce - bf)/(ae - bd) ; y = (af - cd)/(ae - bd) .

Salida: x, y.

3. Definición de variables

a, b, c: coeficientes de la primera ecuación.

d, e, f: coeficientes de la segunda ecuación.

x, y: variables.

4. Diseño de algoritmo

Page 45: Programacion Estructurada

4.1 Diagrama de Flujo

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

6. Codificación

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

a b c d e f x y Sali

da

2 3 4 3 2 5 1,

4

0,

4

1,4

0,4

Page 46: Programacion Estructurada

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. Análisis

Entrada: a, b

Proceso: h =√(a2 + b2)

Salida: h

3. Definición de variables

a, b : lados del triángulo

h : hipotenusa

Page 47: Programacion Estructurada

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

leer(a,b)

h raiz(a^2+b^2)

escribir(h)

fin

5. Prueba de escritorio

6. Codificación

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

a b h Sali

da

3 4 5 5

Page 48: Programacion Estructurada

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. Análisis

Entrada: lados

Proceso: p =( a + b + c)/2 ; a = raíz (p(p-a)(p-b)(p-c))

Salida: área.

3. Definición de variables

lados: a, b, c

perímetro: p

Área: A

4. Diseño de algoritmo

4.1 Diagrama de flujo

Page 49: Programacion Estructurada

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

6. Codificación

//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 SELECCIÓN

a b c p A Sali

da

3 5 4 6 6 6

Page 50: Programacion Estructurada

Estructura selectiva simple ( if ).- La estructura de selección simple

if controla si una sentencia o lista de sentencias se ejecutan en función

del cumplimiento o no de una condición.

Diagrama de flujo Seudocodigo

Codificación

if (condición)

sentencia;

Donde: Condición es una expresión entera

Sentencia es cualquier sentencia ejecutable, que se ejecutará

solo si la condición verdadera, es decir si esta toma un valor

distinto de cero.

PROGRAMA #8

1. Enunciado

Diseñar un programa que visualice si un numero entero dado es

positivo.

2. Análisis

Entrada: número

Proceso: numero > 0

Salida: positivo

Si (condición)

entonces

Sentencia(s)

Page 51: Programacion Estructurada

3. Definición de variables

número : n

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

leer(n)

si (n>0) entonces

escribir(n)

fin_si

fin.

5. Prueba de escritorio

n Sali

da

3 3

6. Codificación

//PROGRAMA 8//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA

Page 52: 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. Enunciado

Diseñar un programa que pruebe la divisibilidad de dos números

2. Análisis

Entrada: n1, n2

Proceso: n1/n2

Salida: Es divisible

3. Definición de variables

números: n1, n2

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

Page 53: Programacion Estructurada

inicio

leer(n1,n2)

si (n1 mod n2 = 0) entonces

escribir(“Es divisible”)

Fin_si

Fin.

5. Prueba de escritorio

6. Codificación

//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. Análisis

n

1

n

2

Salida

8 2 Es

divisible

Page 54: Programacion Estructurada

Entrada: un número

Proceso: -(-número)

Salida: número

3. Definición de variables

número : n

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

leer(n)

si (n<0) entonces

n -n

escribir(n)

fin_si

fin.

5. Prueba de escritorio

n Sali

da

- 2

Page 55: Programacion Estructurada

2

6. Codificación

//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 SELECCIÓN DOBLE ( IF – ELSE)

La estructura de selección doble permite elegir de entre dos

alternativas posibles dependiendo de la respuesta de una condición.

Diagrama de flujo

Seudocodigo

Codificación

Si (condición)

entonces

Sentencia 1

Caso contrario

Sentencia 2

Fin_si

Page 56: Programacion Estructurada

if (condición)

sentencia 1;

else

sentencia 2;

PROGRAMA #11

1. Enunciado

Calcular el mayor de dos números enteros leídos del teclado y

visualizarlo en pantalla.

2. Análisis

Entrada: 2 números enteros

Proceso: n1>n2

Salida: n1

3. Definición de variables

numero 1: n1

numero 2: n2

4. Diseño de algoritmo

4.1 Diagrama de flujo

Page 57: Programacion Estructurada

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

n

2

Salida

5 8 8 es

mayor

6. Codificación

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

Page 58: Programacion Estructurada

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. Análisis

Entrada: nota

Proceso: nota >=100

Salida: alta o baja

3. Definición de variables

nota: nota

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

leer(nota)

si (nota>=100) entonces

escribir(“alta”)

Page 59: Programacion Estructurada

caso contrario

escribir(“baja”)

fin_si

fin

5. Prueba de escritorio

6. Codificación

//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 (condición 1)

sentencia 1;

if (condición 2)

sentencia 2;

if (condición 3)

sentencia 3;

not

a

Sali

da

12

0

alta

Page 60: Programacion Estructurada

ANIDAMIENTO DE SENTENCIA IF – ELSE

if (condición 1)

sentencia 1;

else

if (condición 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. Análisis

Entrada: número

Proceso: n >0; n=0;

Salida: positivo, negativo o cero.

3. Definición de variables

Número: n

4. Diseño de algoritmo

4.1 Diagrama de flujo

Page 61: Programacion Estructurada

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

a

5 positi

Page 62: Programacion Estructurada

vo

6. Codificación

//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. Análisis

Entrada: número

Proceso: n >0; n =0;

Salida: positivo, negativo o cero.

3. Definición de variables

Número: n

4. Diseño de algoritmo

4.1 Diagrama de flujo

Page 63: Programacion Estructurada

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

6. Codificación

//PROGRAMA 14

n Salid

a

-

8

negati

vo

Page 64: Programacion Estructurada

//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. Análisis

Entrada: precio

Proceso: 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: precio (descuento)

3. Definición de variables

precio: pr.

Page 65: Programacion Estructurada

4. Diseño de algoritmo

4.1 Diagrama de flujo

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

Page 66: Programacion Estructurada

fin_si

fin.

5. Prueba de escritorio

prec

io

Sali

da

300 240

6. Codificación

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

Page 67: Programacion Estructurada

Un solicitante de trabajo es contratado si al menos tiene 18 años o mas

de edad y obtiene mas de 85 puntos en una de dos pruebas.

2. Análisis

Entrada: Edad, nota 1, nota 2

Proceso: edad >=18, nota 1 >85, nota 2 >85

Salida: contratado, o no.

3. Definición de variables

edad: ed

nota 1: n1

nota 2: n2

4. Diseño de algoritmo

4.1 Diagrama de flujo

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

Page 68: Programacion Estructurada

5. Prueba de escritorio

e

d

n

1

n

2

Salida

1

8

8

4

4

2

no

contratad

o

6. Codificación

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

Page 69: Programacion Estructurada

2. Análisis

Entrada: número de camisetas

Proceso: camisetas * precio

Salida: total

3. Definición de variables

camisas: cam

total ventas: tv

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

leer(cam)

si (cam>=6) entonces

tv cam*22

caso contrario

tv cam*25

fin_si

Page 70: Programacion Estructurada

escribir(tv)

fin.

5. Prueba de escritorio

ca

m

tv Sali

da

5 12

5

125

6. Codificación

//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. Análisis

Entrada: peso

Proceso: peso por el precio

Page 71: Programacion Estructurada

Salida: costo

3. Definición de variables

peso: onz

precio: pr

4. Diseño de algoritmo

4.1 Diagrama de flujo

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

Page 72: Programacion Estructurada

6. Codificación

//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. Análisis

on

z

pr Sali

da

2 1.7

5

1.75

Page 73: Programacion Estructurada

Entrada: nombre, notas

Proceso: verificar notas para aprobar

Salida: si se aprobó.

3. Definición de variables

nota 1: n1

nota 2: n2

nombre: nom

suma: sum.

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

leer(nom, n1, n2)

sum n1 + n2

si (sum >= 7) entonces

escribir(nom, “aprobado”)

Page 74: Programacion Estructurada

caso contrario

si (sum>=4) entonces

escribir(nom,”recuperación”)

caso contrario

escribir(nom,”reprobado”)

fin_si

fin_si

fin.

5. Prueba de escritorio

n

1

n

2

su

m

salida

6 4 10 aproba

do

6. Codificación

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

Page 75: Programacion Estructurada

else cout<<"\n\n\t"<<nom<<" "<<sum<<" REPROBADO";

getch();}

ESTRUCTURA DE SELECCIÓN MÚLTIPLE (SWITCH)

La sentencia switch se utiliza para seleccionar una opción de entre

múltiples alternativas, esta sentencia es especialmente útil cuando la

selección se basa en el valor de una variable simple o de una expresión

simple denominada selector o expresión de control.

Diagrama de flujo

Seudocodigo Sintaxis

Según sea <selector> hacer

E1 : s1

E2 : s2

E3 : s3...En : sn

En otro casosx

fin_segun_sea

Switch (selector)

{

case etiqueta 1:

sentencia(s) 1;

break;

case etiqueta 2:

sentencia(s) 2;

break;

case etiqueta 3:

sentencia(s) 3;

break;

case etiqueta n:

Page 76: Programacion Estructurada

La expresión de control o selector se evalua y se compara con cada una

de las etiquetas del case.

La expresión 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 ejecución 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 estén

incluidos en a etiqueta case.

PROGRAMA #20

1. Enunciado

Se tiene como opción los números del 0 al 4 si es que la opción es

0 visualizar cero

1 visualizar uno

2 visualizar dos

3 visualizar tres

4 visualizar cuatro

En caso de ingresar un valor diferente emita un mensaje fuera de

rango.

2. Análisis

Entrada: número del 0 al 4

Salida: del cero al cuatro

3. Definición de variables

opción: op

4. Diseño de algoritmo

4.1 Diagrama de flujo

Page 77: Programacion Estructurada

4.2 Seudocodigo

inicio

leer(op)

según sea (op) hacer

0 : escribir(“cero”)

1 : escribir(“uno”)

2 : escribir(“dos”)

3 : escribir(“tres”)

4 : escribir(“cuatro”)

en otro caso

escribir(“fuera de rango”)

fin_segun_sea

5. Prueba de escritorio

o

p

Sali

da

3 tres

6. Codificación

//PROGRAMA 20//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA

Page 78: 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 alfabéticas a, b, c, d a

calificaciones numéricas 10,9,8,7 respectivamente en el caso de existir

un error en el ingreso de datos emitir un mensaje.

2. Análisis

Entrada: calificaciones alfabéticas

Proceso: conversión de alfabética a numérica

Salida: calificación numérica.

3. Definición de variables

calificación alfabética: ca

mota numérica: x

Page 79: Programacion Estructurada

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

leer(ca)

según 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(“Calificación no valida”)

fin_según_sea

fin.

5. Prueba de escritorio

Page 80: Programacion Estructurada

c

a

Sali

da

C 8

6. Codificación

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

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

PROGRAMA #22

1. Enunciado

Se desea desplegar los nombres de los días 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. Análisis

Entrada: 1 al 7

Page 81: Programacion Estructurada

Proceso: Convertir 1 – 7 a Lunes a Viernes.

Salida: Día de la semana

3. Definición de variables

Día: día

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

según sea (dia) hacer

1 : escribir(“lunes”)

2 : escribir(“martes”)

3 : escribir(“miércoles”)

4 : escribir(“jueves”)

5 : escribir(“viernes”)

6 : escribir(“sábado”)

7 : escribir(“domingo”)

en otro casoescribir (“fuera de rango”)

fin_según_seafin

5. Prueba de escritorio

di Salida

Page 82: Programacion Estructurada

a

3 miérco

les

6. Codificación

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

Realizar un programa que verifica la nota alfabética de un estudiante si

es ha superado o no la prueba a = excelente

b = notable suficiencia

c = aprobado

Page 83: Programacion Estructurada

d, e = suspendido

6. Codificación

//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 carácter por teclado es una vocal caso contrario emita

un mensaje.

6. Codificación

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

#include <iostream.h>#include <conio.h>

Page 84: Programacion Estructurada

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 ASIGNACIÓN 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 = x – 1

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 REPETICIÓN

Una de las características de las computadoras que aumentan

considerablemente su potencia es una capacidad para ejecutar una

tarea muchas veces con gran velocidad, precisión y confiabilidad. Las

estructuras repetitivas o iterativas realizan la repetición de acciones.

C++ soporta 3 tipos de estructura de control de repetición.

Page 85: Programacion Estructurada

1. while

2. for

3. do _ while

Estructura repetitiva while.- Un bucle es cualquier construcción del

programa que repite una secuencia de sentencias un número de veces.

La sentencia o grupo de sentencias que se repiten en un bloque se

denomina cuerpo del bucle y cada repetición del cuerpo del bucle se

llama iteración del bucle.

La estructura while es un bucle pre test de modo que cuando se ejecuta

el mismo, se evalua la condición antes de que se ejecute el cuerpo del

bucle. La estructura while tiene una condición del bucle que controla la

secuencia de repetición.

Diagrama de flujo Seudocodigo

Sintaxis

While (condición)

Sentencia; //una sola sentencia

While (condición)

{

sentencia 1;

sentencia 2; //más de una sentencia

sentencia n;

}

Mientras (condición)

hacer

Sentencia(s)

Fin_mientras

Page 86: Programacion Estructurada

El comportamiento de un funcionamiento de una sentencia whiel es:

1. Se evalua la condición

2. Si la condición es verdadera:

a) La sentencia o sentencias especificadas como cuerpo del bucle

se ejecuta.

b) Vuelve el control al paso 1.

3. Si condición es falsa el control se transfiere a la siguiente sentencia

al bucle while (finaliza la estructura).

En general existen 2 métodos para controlar la terminación 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 condición del bucle se denomina también 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.

Si la variable de control no se actualiza, este se ejecutara siempre. Tal

bucle se denomina bucle infinito, que se produce cuando la condición

del bucle permanece y no se hace falso en ninguna iteración.

PROGRAMA #25

1. Enunciado

Diseñe un programa que imprima los números del 1 al 100 utilizando la

estructura while.

2. Análisis

Salida: 1 – 100

Page 87: Programacion Estructurada

3. Definición de variables

c: contador

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

c 1

mientras (c<101) hacer

escribir ( c )

c c +1

fin_mientrsa

fin

6. Codificación

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

Page 88: Programacion Estructurada

int c; clrscr(); c=1; while (c < 101) { cout<<c<<" "; c++; } getch();}

PROGRAMA #26

1. Enunciado

Un curso de 25 estudiantes de programación a rendido una evaluación

y se tiene las notas de cada uno de ellos: obtener la sumatoria de estas

notas.

2. Análisis

Entrada: notas

Proceso: sumar las notas

Salida: suma total

3. Definición de variables

c: contador

n: notas

st: suma total

4. Diseño de algoritmo

4.1 Diagrama de flujo

Page 89: Programacion Estructurada

4.2 Seudocodigo

inicio

c 0

st 0

mientras (c<25) hacer

leer(n)

st st +n

c c + 1

fin_mientras

escribir(st)

fin.

6. Codificación

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

Page 90: Programacion Estructurada

Se conoce las estaturas de 30 deportistas, obtener el promedio de

dichas estaturas.

2. Análisis

Entrada: estaturas

Proceso: sumar estaturas

Salida: promedio

3. Definición de variables

est: estaturas

c: contador

pr: promedio

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

c 0

pr 0

mientras (c<30) hacer

leer(est)

pr pr + est

Page 91: Programacion Estructurada

c c+1

fin_mientras

pr pr/30

escribir(pr)

fin.

6. Codificación

//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. Análisis

Entrada: números

Proceso: 1+1/2+1/3+...1/n.

Salida: suma

3. Definición de variables

Page 92: Programacion Estructurada

n: números

sn: suma de números

c: contador.

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

leer(n)

c 1

sn 0

mientras (c<=n) hacer

sn sn + 1/c

c c+1

fin_mientras

escribir(sn)

fin.

6. Codificación

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

Page 93: Programacion Estructurada

//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. Análisis

Salida: Tabla del cinco

3. Definición de variables

c: contador

m: multiplicación

4. Diseño de algoritmo

4.1 Diagrama de flujo

Page 94: Programacion Estructurada

4.2 Seudocodigo

inicio

c 0

mientras (c<129 hacer

c c+1

m 5*c

escribir(m)

fin_mientras

fin.

6. Codificación

//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 términos de la serie fibonacci.

Page 95: Programacion Estructurada

2. Análisis

Proceso: 1, 2, 3, 5, 8 , ...

Salida: 10 numero fibonacci.

3. Definición de variables

c: contador

n1: primer número

n2: segundo número

nf: número fibonacci

4. Diseño de algoritmo

4.1. Diagrama de flujo

4.2 Seudocodigo

inicio

c 0

n1 0

n2 1

mientras (c<10) hacer

c c+1

nf n1 + n2

Page 96: Programacion Estructurada

escribir (nf)

n1 n2

n2 nf

fin_mientras

fin.

6. Codificación

//PROGRAMA 30//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//96ROGRAMACIÓN 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 ejecución de un programa.

Un medio para manejar esta iteración es instruir al usuario a introducir

un único dato definido y especificado denominado dato o valor

centinela como último dato.

La condición 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.

Page 97: Programacion Estructurada

PROGRAMA #31

1. Enunciado

Obtener la sumatoria de una serie de números positivos terminados

con el valor -1

2. Análisis

Entrada: números positivos

Proceso: Suma de números

Salida: Suma

3. Definición de variables

n: número positivo

sn: suma de números

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

sn 0

leer(n)

Page 98: Programacion Estructurada

mientras (n!=-1) hacer

sn sn + n

leer(n)

fin_mientras

escribir(sn)

fin.

6. Codificación

//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. Enunciado

Encontrar el factorial de un numero.

2. Análisis

Entrada: Número factorialProceso: 1*2*3*....nSalida: factorial3. Definición de variables

c: contadorfact: factorial

Page 99: Programacion Estructurada

n: número4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

c 0

fact 1

leer(n)

mientras (c < n) hacer

c c + 1

fact fact*c

fin_mientras

escribir(fact)

fin.

6. Codificación

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

Page 100: Programacion Estructurada

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 método para ejecutar una sentencia

o bloque automáticamente.

La sentencia for requiere que conozcamos por anticipado el número 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 sitúan en un solo lugar (la cabecera de la sentencia)

Diagrama de flujo Seudocodigo

Donde:

v : variable índice o de control

vi : valor inicial

vf : valor final

vx : valor incremento / decremento

Sintaxis

Desde v vi hasta vf [inc/dec

vx] hacer

Sentencia(s)

Fin_desde

Page 101: Programacion Estructurada

Formato ascendente

For (int v=vi; v<=vf; exp_incremento)

Sentencia;

Formato descendente

For (int v=vi; v <=vf; exp_decremento)

for (inicialización; condición; incremento)

sentencia(s);

nota:

Los rangos de incremento/decremento de la variable o expresión 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. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

desde v 1 hasta 10 hacer

Page 102: Programacion Estructurada

escribir(“hola mundo”)

fin_desde

fin.

5. Prueba de escritorio

v Salida

1 “hola

mundo”

2 “hola

mundo”

3 “hola

mundo”

4 “hola

mundo”

6. Codificación

//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 números del 1 al 10

Page 103: Programacion Estructurada

2. Análisis

Salida: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

3. Definición de variables

n: número

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

desde n 1 hasta 10 hacer

escribir (n)

fin_desde

fin.

6. Codificación

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

Page 104: Programacion Estructurada

PROGRAMA #35

1. Enunciado

Imprimir los números del 10 al 1

2. Análisis

Salida: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

3. Definición de variables

n: número

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

desde n 10 hasta 1 dec 1 hacer

escribir(n)

fin_desde

fin.

5. Codificación

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

Page 105: Programacion Estructurada

//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 números del 10 - 100 de 10 en 10.

2. Análisis

Salida: 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

3. Definición de variables

n: número

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

Page 106: Programacion Estructurada

desde n 10 hasta 100 inc 10 hacer

escribir(n)

fin_desde

fin.

5. Codificación

//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. Análisis

Salida: 9, 6, 3, 0

4. Diseño de algoritmo

4.1 Diagrama de flujo

Page 107: Programacion Estructurada

4.2 Seudocodigo

inicio

desde n 9 hasta 0 dec 3 hacer

escribir(n)

fin_desde

fin.

5. Prueba de escritorio

6. Codificación

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

n Sali

da

9 9

6 6

3 3

0 0

-

3

Page 108: Programacion Estructurada

Obtenga el promedio de las estaturas de 20 deportisas. Utilice para

este propósito la sentencia for.

2. Análisis

Entrada: estaturas

Proceso: suma de estaturas/20

Salida: promedio

3. Definición de variables

est: estaturas

pro: promedio

c: contador

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

pro 0

desde c 1 hasta 20 hacer

leer (est)

pro pro + est

fin_desde

Page 109: Programacion Estructurada

pro pro/20

escribir(pro)

fin.

5. Codificación

//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. Análisis

1 1

2 4

20 400

3. Definición de variables

cua: cuadrado

n: contador

Page 110: Programacion Estructurada

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

desde n 1 hasta 20 hacer

cua n*n

escribir(cua)

fin_desde

fin.

5. Codificación

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

Page 111: Programacion Estructurada

1. Enunciado

Escriba un programa que encuentre la suma de la siguiente serie:

1+1/2+1/3+1/4+....1/50.

2. Análisis

Salida: 1+1/2+1/3+1/4+....1/50

3. Definición de variables

n: números

sum: suma

4. Diseño de algoritmo

4.1 Diagrama de flujo

4.2 Seudocodigo

inicio

sum 0

desde n 1 hasta 50 hacer

sum sum + 1/n

fin_desde

escribir(sum)

fin.

Page 112: Programacion Estructurada

5. Codificación

//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. Definición de variables

sum2: suma de cuadrados

sum3: suma de cubos

cua: cuadrados

cub: cubos.

3. Diseño de algoritmo

3.1 Diagrama de flujo

Page 113: Programacion Estructurada

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. Codificación

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

#include <iostream.h>#include <conio.h>

Page 114: Programacion Estructurada

#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. Enunciado

Encontrar la suma de los 10 primeros términos de la serie de fibonacci

3. Definición de variables

c: contador

n1: primer número

n2: segundo número

nf: número fibonacci

sum: suma de los números

4. Diseño de algoritmo

4.1 Diagrama de flujo

Page 115: Programacion Estructurada

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. Codificación

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

Page 116: Programacion Estructurada

1. Enunciado

Escriba un proceso para imprimir la siguiente tabla de temperaturas

Fahrenheit y Celsius (32 al 100) de 2 en 2 (fahrenheit).

2. Definición de variables

cel: Celsius

f: Fahrenheit.

3. Diseño de algoritmo

3.1 Diagrama de flujo

3.2 Seudocodigo

inicio

desde f 32 hasta 100 inc 2 hacer

cel 5/9(f – 32)

escribir(f, cel)

fin_desde

fin.

4. Codificación

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

#include <iostream.h>

Page 117: Programacion Estructurada

#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 situación se suele dar en algunas

circunstancias en las que se ha de tener la seguridad de que una

determinada acción se ejecuta una o varias veces, pero al menos una.

Diagrama de flujo Seudocodigo

Sintaxis

do

sentencia;

while(condición);

do

{

sentencia 1;

Hacer

Sentencia(s)

Mientras (condición)

Page 118: Programacion Estructurada

sentencia 2;

sentencia n;

}

while (condición);

Nota: Esta estructura comienza ejecutando la sentencia. A

continuación se evalúa la condición. Si la condición es verdadera,

entonces se repite la ejecución de la sentencia. Este proceso continua

hasta que la condición es falsa.

CUADRO COMPARATIVO

while No sé cuantas veces se repite

(dato centinela)

for conocemos el número de veces a

iterar

do_whi

le

El proceso se ejecuta una vez al

menos

PROGRAMA #44

1. Enunciado

Visualizar los números del 1 al 10 utilizando la estructura do_while.

2. Análisis

Salida: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

3. Definición de variables

c: contador

4. Diseño de algoritmo

4.1 Diagrama de flujo

Page 119: Programacion Estructurada

4.2 Seudocodigo

inicio

c 0

hacer

c c+1

escribir(c)

mientras (c < 10)

fin.

5. Codificación

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

Page 120: Programacion Estructurada

1. Enunciado

Encuentre el promedio de n calificaciones de un curso de informática

donde n es proporcionado por el usuario.

2. Definición de variables

c: contador.

pro: promedio

num: número de alumnos

n: nota.

3. Diseño de algoritmo

3.1 Diagrama de flujo

3.2 Seudocodigo

inicio

c 1

pro 0

leer(num)

hacer

Page 121: Programacion Estructurada

leer(n)

pro pro + n

c c + 1

mientras (c <= num)

pro pro/num

escribir(pro)

fin.

4. Codificación

//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 informática

determinar cuantas de estas notas son notables (notables>=7).

Page 122: Programacion Estructurada

2. Definición de variables

an: notas notables

n: notas.

c: contador

3. Diseño de algoritmo

3.1 Diagrama de flujo

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

Page 123: Programacion Estructurada

escribir(an)

fin.

4. Codificación

//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 puntuación.

2. Definición de variables

Page 124: Programacion Estructurada

gaev: evaluación del ganador

ev: evaluación

gano: nombre del ganador

ed: edad

pes: peso

nom: nombre del jugador

g: número de goles del jugador

alt:: altura del jugador

3. Diseño de algoritmo

3.1 Diagrama de flujo

3.2 Seudocodigo

inicio

Page 125: Programacion Estructurada

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. Codificación

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

}

Page 126: Programacion Estructurada

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 20%

901 - 1300 10%

1301 - 1800 5%

sobre 1800 0%

2. Definición de variables

acac: acumulación del sueldo actual

acau: acumulación del sueldo aumentado

nom: nombre

sa: sueldo actual

sau: sueldo actual aumentado

c : contador

3. Diseño de algoritmo

3.1 Diagrama de flujo

Page 127: Programacion Estructurada

3.2 Seudocodigo

inicio

acac 0

acau 0

desde c 1 hasta 30 hacer

leer(nom, sa)

acac acac + sa

Page 128: Programacion Estructurada

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. Codificación

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

Page 129: Programacion Estructurada

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 niños

internados en la maternidad cigüeña feliz:

0,000 y 10,000 kg .... niños

10,001 y 20,000 kg hay .... niños

20,001 y 30,000 kg hay .... niños

mas de 30,000 kg hay .... niños

determinar el promedio de los pesos de los niños de acuerdo a

la tabla anterior y el promedio total.

2. Definición de variables

c: contador

pes: peso

n: número de niños

n1, n2, n3, n4: número de niños por pesos

ap1, ap2, ap3, ap4: acumulador de pesos por sección de acuerdo a

la tabla

p1, p2, p3, p4: promedio de pesos por sección

pt: promedio de pesos total

3. Diseño de algoritmo

Page 130: Programacion Estructurada

3.1 Diagrama de flujo

4.2 Seudocodigo

inicio

c 1

n1,n2,n3,n4 0

Page 131: Programacion Estructurada

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. Codificación

//PROGRAMA 49//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA

Page 132: 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 NI¥OS : ";cin>>n; while (c <= n) {

cout<<"INGRESE EL PESO DEL NI¥O "<<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<<" NI¥O(S)";cout<<" PRO= "<<p1; cout<<"\nENTRE 10,001 Y 20,000 KG HAY "<<n2<<" NI¥O(S)";cout<<" PRO= "<<p2; cout<<"\nENTRE 20,001 Y 30,000 KG HAY "<<n3<<" NI¥O(S)";cout<<" PRO= "<<p3; cout<<"\nMAS DE 30,000 HAY "<<n4<<" NI¥O(S)";cout<<" PRO= "<<p4; cout<<"\n\nEL PROMEDIO TOTAL DE PESOS ES "<<pt<<" KG "; getch();}

UNIDAD V

FUNCIONES

Page 133: Programacion Estructurada

Una función es un mini programa, dentro de un programa. Las

funciones contienen varias sentencias bajo un solo nombre, un

programa puede utilizar una o más veces para ejecutar dichas

sentencias.

Las funciones ahorran espacio, reduciendo repeticiones y haciendo más

fácil la programación, proporcionando un medio de dividir un proyecto

grande en módulos pequeños más manejables.

ESTRUCTURA DE UNA FUNCIÓN

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 función no se puede declarar

dentro de otra función.

Tipo de retorno nombre función(lista de parámetros)

{

cuerpo de la función

return expresión

}

donde:

Tipo de retorno: Es el tipo de valor devuelto por la función como por

ejemplo: int, float, char, un puntero o struc, y si la función no devuelve

ningún la palabra reservada void.

Nombre de la función: o identificador.

Lista de parámetros: Lista de declaraciones de los parámetros de la

función separados por coma (,).

Expresión: Valor que devuelve la función

Ejemplo:

float suma(float num, float num2)

{

float resp;

Page 134: Programacion Estructurada

resp=num1+num2;

return resp;

}

nota:

- Las constantes, tipo de datos y variables declaradas dentro de la

función son locales a la misma y no perduran fuera de ella.

- Dentro de la palabra reservada return se puede devolver el valor de la

función.

- El paso de parámetros puede ser por valor y por referencia.

Tipos de dato por retorno.- Muchas funciones no devuelven

resultados. Para indicar al compilador que una función 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 función el compilador asume

que es un tipo de retorno int. Ej:

Superficie(int largo, int ancho)

Resultados de una función

Una función puede devolver un único valor.

El valor revuelto puede ser cualquier tipo de dato excepto una función

o un array.

Llamada a una función

Las funciones para poder ser ejecutadas han de ser llamadas o

invocadas.

Cualquier expresión puede contener una llamada a una función que

redirija el control del programa a la función encontrada.

Page 135: Programacion Estructurada

Normalmente la llamada a una función se realiza desde la función

principal main(), aunque también puede hacérselo desde otras

funciones.

Prototipos de las funciones

Se requiere que una función se declare o defina antes de si uso. La

declaración de una función se denomina prototipo. Los prototipos de

una función contienen la misma cabecera de la función con la

diferencia que los prototipos terminan en (;).

Sintaxis

Tipo_de_retorno nombre_de_función(lista de declaraciones de

parámetros);

Donde tipo_de_retorno es el tipo de valor devuelto por la función.

Nombre_de_función: nombre de la función

Lista de declaraciones de parámetros: Estos nombre de parámetros son

opcionales pero es buena práctica incluirlos para indicar los

parámetros que representan.

PROGRAMA #50

//PROGRAMA 50//UNIVERSIDAD TECNICA DE MACHALA//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;

Page 136: Programacion Estructurada

getch();}float suma(float num1, float num2){ float resp; resp = num1+num2; return resp;}

PROGRAMA #51

1. Enunciado

Diseñe la función que devuelve el valor mayor de dos enteros además

diseñe el programa llamador

2. Codificación

//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; cout<<"\n\n\n\t\t\tEL MAYOR ES : "<<mayor(n1,n2); getch();}int mayor(int num1,int num2){ int res; if (num1 > num2) res=num1; else res=num2; return res;}

PROGRAMA #52

1. Enunciado

Page 137: Programacion Estructurada

Escribir una función 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. Codificación

//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 función que me convierta de grados Celsius a Fahrenheit

2. Codificación

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

Page 138: Programacion Estructurada

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. Codificación

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

rectángulo, triangulo, utilizando funciones que no devuelvan valores.

Page 139: Programacion Estructurada

2. Codificación

//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; A=l*l; cout<<"\n\n\t\tEL AREA ES : "<<A;}void rec(){ float l,a,A; cout<<"INGRESE AL LARGO DEL RECTANGULO : ";cin>>l; cout<<"INGRESE EL ANCHO DEL RECTANGULO : ";cin>>a; A=l*a; cout<<"\n\n\t\tEL AREA ES : "<<A;}void tri(){ float b,h,A; cout<<"INGRESE LA BASE DEL TRIANGULO : ";cin>>b; cout<<"INGRESE LA ALTURA DEL TRIANGULO : ";cin>>h; A=(b*h)/2; cout<<"\n\n\t\tEL AREA ES : "<<A;}

Page 140: Programacion Estructurada

PASO DE PARÁMETROS DE UNA FUNCIÓN

C++ proporciona 2 métodos para pasar variables (parámetros) entre

funciones.

- Parámetros por valor.

- Parámetros por referencia.

O puede no tener parámetros.

Parámetros por valor.- Llamado también paso por copia, significa

que cuando C++ compila la función, la función recibe una copia de los

parámetros.

Se cambia el valor de un parámetro variable local, el cambio solo

afecta a la función y no tiene efecto fuera de esta.

En esta técnica la función receptora no puede modificar la variable de

la función (parámetro pasado).

Se puede modificar la variable del parámetro en la función pero su

modificación no puede salir al exterior.

Nota: El método por defecto por pasar parámetros en C++ es por

valor, a menos que se pasen array que se pasa siempre por dirección.

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;

Page 141: Programacion Estructurada

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 parámetros por referencia.- Cuando una función debe

modificar el valor del parámetro pasado y devolver este valor

modificado a la función llamadora, se ha de utilizar el método de paso

de parámetros por referencia o dirección.

En este método el compilador pasa la dirección de memoria del valor

del parámetro a la función.

Cuando se modifica el valor del parámetro (variable local), este valor

queda almacenado en la misma dirección de memoria por lo que al

Page 142: Programacion Estructurada

retornar a la función llamadora la dirección de la memoria donde se

almacena el parámetro contendrá el valor modificado.

Para declarar una variable parámetro como paso de referencia, el

símbolo (&) 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);

Page 143: Programacion Estructurada

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 : "; cin>>x; cout<<"INGRESE EL NUMERO DE EXPONENTE : "; cin>>n; suma(x,n,s); cout<<"LA SUMA DE LA PROGRESION ES : "<<s; getch();}void suma(int num, int exp, int& suma){ suma=0; for (int c=0; c<=exp; c++)

suma=suma+pow(num,c);}

PROGRAMA #61

Page 144: Programacion Estructurada

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

Page 145: Programacion Estructurada

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

Page 146: Programacion Estructurada

//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 día de un mes de una ciudad

determinada, etc..

Un arreglo se caracteriza por:

1. Almacenar los elementos del array en posiciones de memoria

contigua.

2. Tienen un único nombre de variable por ejemplo, temperatura,

que representa la temperatura de cada día del mes, cuyos elementos a

su vez se diferencian por un índice.

Page 147: Programacion Estructurada

3. Tienen acceso directo o aleatorio a los elementos individuales del

array.

Los arreglos pueden ser:

- Unidimensionales (vector o lista).

- Arreglos bidimensionales (matrices o tablas).

- Arreglos multidimensionales(más de 2 dimensiones).

ARREGLOS UNIDIMENSIONALES(VECTORES O LISTAS)

Es un tipo de dato estructurado compuesto de un número finito de

elementos, tamaño fijo y elementos homogéneos, y que se define de

una sola dimensión. Ej.:

24.

5

39.

82

2.2

3

5.4

4

7.8

4

0 1 2 3 4

Nombre: precios

Tipo: float

# elementos: 5

sub-índices: 0 – 4

contenido: 24.5; 39.82; 2.23; 5.44; 7.84

Declaración 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 tamaño o longitud del

array.

Para indicar el tamaño o longitud del array se debe seguir al nombre,

el tamaño encerrado entre corchetes.

Sintaxis

Tipo nombre_arreglo[número de elementos del arreglo];

Sub índice

precios

Page 148: Programacion Estructurada

Ej.:

float precios[5];

Subíndice de un array.- El índice de una array se denomina con

frecuencia subíndice del arreglo. El método de numeración del

elemento i-ésimo. Con el índice o subíndice (i-1) se denomina

indexación basada en cero. Ej.:

float precio[5];

precio[2] 2.23

Asignación 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 condición 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 operación 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 número[8];

lectura del vetor

for(int i=0; i<8; i++)

cin>>números[i];

escritura del vector

for (int i=0; i<8; i++)

cout<<números[i];

PROGRAMA #65

Page 149: Programacion Estructurada

//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, DISE¥AR 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

Page 150: Programacion Estructurada

//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: DISE¥E 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];

Page 151: Programacion Estructurada

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

Page 152: Programacion Estructurada

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

Page 153: Programacion Estructurada

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++) {

Page 154: Programacion Estructurada

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 subíndices, el primero especifica el número de filas y el

segundo número de columnas. Es decir un arreglo de 2 dimensiones o

una tabla con múltiples filas y múltiples columnas.

0 1 2 3

0

1 [1]

[1]

2 [2]

[1]

3

4

Este tipo de arreglos son muy comunes y son también conocidos como

matrices o tablas. Siendo el número total de elementos del arreglo, el

producto del número del total de filas por el total de columnas.

Al igual que los vectores las matrices deben tener elementos de la

misma naturaleza.

Declaración de una matriz

int matriz[5][4];

Matriz [5][4]

Page 155: Programacion Estructurada

char cadenas[10][30];

Inicialización 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 11 12

13 14 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:

Inserción de elementos

<nombre_array>[índice_fila][índice_columna]=valor elemento;

Extracción de elementos

<variable>=<nombre_array>[índice_fila][índice_columna];

Ej.:

Inserción

Edades[1][1]=8;

Edades[0][2]=4;

Extracción

Entero=edades[1][1];

Page 156: Programacion Estructurada

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

Page 157: Programacion Estructurada

{ 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++)

Page 158: Programacion Estructurada

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: MIRFECHA : 01/03/02ENUNCIADO :GENERAR UNA MATRIZ DE 4*4 QUE PRESENTELO 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 # 78UNIVERSIDAD TECNICA DE MACHALAESCUELA DE INFORMATICAPROGRAMACION ESTRUCTURADAAUTOR: MIRCURSO: PRIMERO "B".FECHA: ENERO 2 DEL 2002ENUNCIADO: 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(){

Page 159: Programacion Estructurada

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

Page 160: Programacion Estructurada

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

Page 161: Programacion Estructurada

{ 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

Page 162: Programacion Estructurada

Los arrays son estructuras de datos que contienen un número

determinado de elementos y todos los elementos han de ser del mismo

tipo. Esto característica supone una gran limitación 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 información de clientes que

contenga elementos tales como: El nombre, la edad. La dirección, el

número de la cuenta, etc. los arreglos no son los más adecuados. La

solución a este problema es utilizar un tipo de dato estructurado.

Una estructura es una colección de una o más 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 número 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 colección de

discos compactos (cd de música).

Estos datos pueden ser:

1. Titulo

2. Artista

3. Número de canciones

4. Precio

5. Fecha de campo.

Estructura colección_cd

miembro tipo de

dato

ejemplo

titulo char[30] Solo

Alejandro

artista char[30] Alejandro

Sanz

Page 163: Programacion Estructurada

número de

canciones

int 12

precio float 18

fecha de

compra

char[10] 08-01-2002

Declaración 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 colección_cd

{

char titulo[30];

char artista[3];

int número_de_canciónes;

float precio;

char fecha_de_compra[10];

};

Definición de variables de estructuras

Las variables de una estructura se pueden definir de 2 formas.

1. struct colección_cd

{

char titulo[30];

char artista[3];

int número_de_canciónes;

Page 164: Programacion Estructurada

float precio;

char fecha_de_compra[10];

} cd1, cd2, cd3;

2. struct colección_cd

{

char titulo[30];

char artista[3];

int número_de_canciónes;

float precio;

char fecha_de_compra[10];

};

colección_cd cd1, cd2, cd3;

Ej.:

Declarar y definir una estructura en C++ que contenga la información

referente a un inventario en una ferretería.

Struct inventario

{

char nombre_herramienta[30];

float precio;

} herr1, herr2;

Inicialización de una declaración de estructuras

Se puede inicializar una estructura dentro de la sección de código de

su programa o bien se puede inicializar la estructura como parte de la

declaración. Cuando se inicializa una estructura como parte de la

declaración se especifica los valores iniciales entre llaves, después de

la declaración el formato general es:

Inicialización

struct <nombre variable estructura> =

Page 165: Programacion Estructurada

{

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 información en

ella o se recupera la información de esta, se lo hace utilizando el

operador punto (.).

Almacenamiento de información en estructuras

Se hace mediante:

1. Inicialización

2. Asignación directa

3. Lectura

2. Asignación directa

formato:

<nombre variable esructura>.<nombre miembro>=dato;

Ej.:

Cd1.titulo=”azul”;

Cd1.precio=18;

Cd1.número_de_canciones=12;

Page 166: Programacion Estructurada

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 número de canciones”;

cin>>cd1.número_de_canciones;

Recuperación de la información de una estructura

Se recupera la información de una estructura utilizando el operador de

asignación o una sentencia cout.

Formato:

1. <nombre de variable>=<nom_var_est>.<nom_miembro>;

escritura

2. cout<< <nom_var_est>.<nom_miembro>;

Ej.:

auxtit = cd1.titulo;

cout<<cd1.titulo;

PROGRAMA #81

Realice las declaración y definición de una estructura inventario que

tenga como miembro a código, nombre del articulo, precio, número de

articulo. Realice la lectura desde el teclado y a continuación visualice

los datos de la estructura.

//PROGRAMA 81//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA//AUTOR: MIR

#include <iostream.h>#include <conio.h>

void main(){

Page 167: Programacion Estructurada

clrscr(); struct inventario {

char codigo[10];char nomart[30];float precio;int numart;

} inv; cout<<"INGRESE EL CODIGO DEL ARTICULO : "; cin>>inv.codigo; cout<<"INGRESE EL NOMBRE DEL ARTICULO : "; cin>>inv.nomart; cout<<"INGRESE EL PRECIO : "; cin>>inv.precio; cout<<"INGRESE EL NUMERO DE ARTICULOS : "; cin>>inv.numart; cout<<"\n\n"; cout<<inv.codigo; cout<<"\n"<<inv.nomart; cout<<"\n"<<inv.precio; cout<<"\n"<<inv.numart; getch();}

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

Page 168: Programacion Estructurada

cout<<inv[i].numart<<”\n”;

}

PROGRAMA #82

En una librería se desea ingresar un inventario de libros con la

siguiente información, titulo del libro, fecha de publicación, autor,

número de libros, precio de ventas al público. Visualizar el número

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

Page 169: Programacion Estructurada

//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 números y caracteres únicos estan

separados por espacios.

Page 170: Programacion Estructurada

Los archivos binarios almacenan flujo de bits sin prestar atención al

código asci o a la separación de especio. Sin embargo el uso de este

tipo de archivos requieren utilizar la dirección de una posición 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

Diseñe un programa que lea un número 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();

Page 171: Programacion Estructurada

}