Programacion Estructurada
-
Upload
jorge-david-prado-villacres -
Category
Documents
-
view
119 -
download
2
Transcript of 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
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
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.
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.
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.
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
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
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
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
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
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
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
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
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
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.
Secuénciales Selectivas
simple doble
Repetitivas
TEOREMA DE LA PROGRAMACIÓN ESTRUCTURADA
O O
múltiple
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
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
{
#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>
#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
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.
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
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.
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
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;
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.
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
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;
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;
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++.
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.
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 ”;
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.
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 *, /, %
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
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.:
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
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(!)
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
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;
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)
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
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
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
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
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
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
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
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
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)
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
//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
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
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
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
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
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();}
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”)
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
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
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
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
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
//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.
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
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
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
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.
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
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
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
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
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”)
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";
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:
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
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
//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
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
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
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
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
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>
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.
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
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
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(){
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
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
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
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
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
//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
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.
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
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.
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)
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
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(){
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
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
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
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();}
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
//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
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
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
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
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
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
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.
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
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>
#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
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
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>
#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)
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
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
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
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).
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
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
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
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;
}
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
3.2 Seudocodigo
inicio
acac 0
acau 0
desde c 1 hasta 30 hacer
leer(nom, sa)
acac acac + sa
si (sa <= 900) hacer
sau sa*0.2+sa
caso contrario
si (sa <= 1300) hacer
sau sa*0.1+sa
caso contario
si (sa <= 1800) hacer
sau sa*0.05+sa
caso contario
sau sa
fin_si
fin_si
fin_si
acau acau + sa
escribir(sau)
fin_desde
escribir(acac, acau)
fin.
4. 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;
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
3.1 Diagrama de flujo
4.2 Seudocodigo
inicio
c 1
n1,n2,n3,n4 0
ap1,ap2,ap3,ap3 0
leer(n)
mientras (c<=n) hacer
leer(pes)
si (pes <= 10) hacer
n1 n1+1
ap1 ap1+pes
caso contrario
si (pes <=20) hacer
n2 n2 + 1
ap2 ap2+pes
caso contrario
si (pes <= 30) hacer
n3 n3+1
ap3 ap3+pes
caso contrario
n4 n4+1
ap4 ap4+pes
fin_si
fin_si
fin_si
c c+1
fin_mientras
p1 ap1/n1
p2 ap2/n2
p3 ap3/n3
p4 ap4/n3
pt (ap1+ap2+ap3+ap4)/n
escribir(n1,p1,n2,p2,n3,p3,n4,p4,pt)
fin.
4. Codificación
//PROGRAMA 49//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA
//AUTOR: MIR//FECHA: 28/11/01
#include <iostream.h>#include <conio.h>
void main(){ int c=1, n1=0,n2=0,n3=0,n4=0,n; float ap1=0, ap2=0, ap3=0, ap4=0,pes,p1,p2,p3,p4,pt; clrscr(); cout<<"INGRESE EL NUMERO DE 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
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;
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.
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;
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
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);
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.
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;}
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;
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
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);
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
//PROGRAMA 61//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA//AUTOR: MIR//FECHA: 11/12/01/*ENUNCIADO: HACER UN PROGRAMA QUE ENCUENTRE EL FACTORIAL DE 20 NUMEROS
UTILICE PARA ELLO UNA FUNCION LLAMADA FACTORIAL CUYA FUNCION DEBE MANEJAR PARAMETROS TIPO VALOR Y REFERENCIA*/
#include <iostream.h>#include <conio.h>
void factorial(int n, float& fact);
void main(){ clrscr(); int num; float f; for(int c=1; c<=5; c++) { cout<<"INGRESE EL NUMERO A FACTORIAR : "; cin>>num; factorial(num,f); cout<<"EL FACTORIAL ES : "<<f<<"\n\n"; } getch();}void factorial(int n, float& fact){ fact=1; for(int cf=1; cf<=n; cf++) fact=fact*cf;}
PROGRAMA #62
//PROGRAMA 62//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA//AUTOR: MIR//FECHA: 11/12/01/*ENUNCIADO: HACER UN PROGRAMA QUE ENCUENTRE EL FACTORIAL DE 20 NUMEROS
UTILICE PARA ELLO UNA FUNCION LLAMADA FACTORIAL CUYA FUNCION DEBE MANEJAR PARAMETROS TIPO VALOR*/
#include <iostream.h>#include <conio.h>
void factorial(int n);
void main(){ clrscr(); int num;
for(int c=1; c<=20; c++) { cout<<"INGRESE EL NUMERO A FACTORIAR : "; cin>>num; factorial(num); } getch();}void factorial(int n){ float fact=1; for(int cf=1; cf<=n; cf++) fact=fact*cf; cout<<"EL FACTORIAL ES : "<<fact<<"\n\n";}
PROGRAMA #63
//PROGRAMA 63//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA//AUTOR: MIR//FECHA: 11/12/01/*ENUNCIADO: HACER UN PROGRAMA QUE ENCUENTRE EL FACTORIAL DE 20 NUMEROS
UTILICE PARA ELLO UNA FUNCION LLAMADA FACTORIAL CUYA FUNCION DEBE MANEJAR PARAMETROS SIN VALOR*/
#include <iostream.h>#include <conio.h>
void factorial(void);
void main(){ clrscr(); for(int c=1; c<=5; c++) { factorial(); } getch();}void factorial(){ float fact=1; int n; cout<<"INGRESE EL NUMERO A FACTORIAR : "; cin>>n; for(int cf=1; cf<=n; cf++) fact=fact*cf; cout<<"EL FACTORIAL ES : "<<fact<<"\n\n";}
PROGRAMA #64
//PROGRAMA 64
//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA//AUTOR: MIR//FECHA: 11/12/01/*ENUNCIADO: HACER UN PROGRAMA QUE ENCUENTRE EL FACTORIAL DE 20 NUMEROS
UTILICE PARA ELLO UNA FUNCION LLAMADA FACTORIAL CUYA FUNCION DEBE MANEJAR PARAMETROS CON UNICO VALOR*/
#include <iostream.h>#include <conio.h>
float factorial(int);
void main(){ clrscr(); int num; for(int c=1; c<=5; c++) { cout<<"INGRESE EL NUMERO A FACTORIAR : "; cin>>num; cout<<"EL FACTORIAL ES : "<<factorial(num)<<"\n\n"; } getch();}float factorial(int n){ float fact=1; for(int cf=1; cf<=n; cf++) fact=fact*cf; return fact;}
UNIDAD VI
ARREGLOS(ARRAYS)
Un arreglo es una secuencia de objetos del mismo tipo en posiciones de
memoria contiguas a las que se puede acceder directamente.
Un arreglo puede contener por ejemplo las edades de los alumnos de
una clase, las temperaturas de cada 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.
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
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
//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
//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];
getch();}
PROGRAMA #69
//PROGRAMA 69//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA//AUTOR: MIR//FECHA: 11/18/01/*ENUNCIADO: SE TIENE UNA LISTA DE 50 CALIFICACIONES ALMACENADAS EN UN ARREGLO
CALCULAR SU PROMEDIO Y DETERMINAR CUANTAS CALIFICACIONES SON MAYORES
O IGUALES AL PROMEDIO Y CUANTAS SON MENORES QUE ESTE*/
#include <iostream.h>#include <conio.h>
void main(){ clrscr(); int may=0, men=0; float cali[50], pro=0; for (int c=0; c<10; c++) {
cout<<"INGRESE LA CALIFICACION : ";cin>>cali[c];
} for (c=0; c<10; c++)
pro=pro+cali[c]; pro=pro/10; for (c=0; c<10; c++) {
if (cali[c] >= pro) may++; else men++;
} cout<<"\n\n\t\t\tEL PROMEDIO ES : "<<pro; cout<<"\n\nLAS NOTAS MAYORES AL PROMEDIO SON : "<<may; cout<<"\n\nLAS NOTAS MENORES AL PROMEDIO SON : "<<men; getch();}
PROGRAMA #70
//PROGRAMA 70//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA//AUTOR: MIR//FECHA: 11/18/01/*ENUNCIADO: LEER UN VECTOR DE N ELEMENTOS QUE REPRESENTEN LOS PROCIOS DE VARIOS
ARTICULOS, COPIAR EL CONTENIDO DE CADA ELEMENTO A OTRO VECTOR IDENTICO*/
#include <iostream.h>#include <conio.h>
void main(){ clrscr(); int num; float precios[500], cpre[500]; cout<<"CUANTOS PRODUCTOS VA A INGRESAR : "; cin>>num;
cout<<"\n\n"; for (int i=0; i<num; i++) {
cout<<"INGRESE EL PRECIO : ";cin>>precios[i];
} for (i=0; i<num; i++)
cpre[i]=precios[i]; cout<<"\n\n\t\tPRECIOS COPIADO"; getch();}
PROGRAMA #71
//PROGRAMA 71//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA//AUTOR: MIR//FECHA: 11/18/01/*ENUNCIADO: ESCRIBA UN VECTOR DE 100 ELEMENTOS ENTEROS Y VISUALIZAR LA
SUMA DE ESTES ELEMENTOS*/
#include <iostream.h>#include <conio.h>
void main(){ clrscr(); int num[100]; for (int c=0; c<10; c++) {
cout<<"INGRESE UN NUMERO : ";cin>>num[c];
} int sum=0; for (c=0; c<10; c++)
sum=sum+num[c]; cout<<"\n\n\t\t\tLA SUMA ES : "<<sum; getch();}
PROGRAMA #72
//PROGRAMA 72//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA//AUTOR: MIR//FECHA: 11/18/01/*ENUNCIADO: DE UN VECTOR DE 100 ELEMENTOS ENTEROS. DETERMINE EL VALOR
MAYOR DEL ARREGLO*/
#include <iostream.h>#include <conio.h>
void main(){ clrscr(); int num[100], m; for (int c=0; c<10; c++) {
cout<<"INGRESE UN NUMERO : ";cin>>num[c];
} m=num[0]; for (c=1; c<10; c++) {
if (num[c] > m) m=num[c];
} cout<<"\n\n\t\t\tEL MAYOR ES : "<<m; getch();}
PROGRAMA #73
//PROGRAMA 73//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA//AUTOR: MIR//FECHA: 11/18/01/*ENUNCIADO: ESCRIBIR UN PROGRAMA QUE TENGA UN VECTOR DE 60 ELEMENTOS
ENTEROS, ESTOS PUEDEN CONTENER ELEMENTO DUPLICADOS. SUSTITUIR CADA VALOR REPETIDO POR -5 Y VISUALIZAR EL NUEVO VECTOR*/
#include <iostream.h>#include <conio.h>
void main(){ clrscr(); int num[60], c2; for (int c=0; c<10; c++) {
cout<<"INGRESE UN NUMERO : ";cin>>num[c];
} for (c=0; c<9; c++) {
for (c2=c+1; c2<10; c2++){ if (num[c]==num[c2]) num[c2]=-5;}
} for (c=0; c<10; c++)
cout<<"\nEL NUMERO QUEDA : "<<num[c]; getch();}
ARREGLOS BIDIMENSIONALES(MATRICES)
Al igual que un vector un arreglo bidimensional es una variable única
con dos 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]
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];
Lectura y escritura de un elemento bidireccional.- Se puede
acceder a los elementos de los arreglos bidireccionales mediante
bucles anidados utilizando la sentencia de entrada y salida cin y cout.
PROGRAMA #74
//PROGRAMA #74 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //CURSO: PRIMER QUIMESTRE "B" //FECHA: 4 DE ENERO DEL 2002 /*ENUNCIADO: REALIZAR UNA MATRIZ DE FILA 3 COLUMNA 2. */
#include <iostream.h> #include <conio.h> void main() {
int matriz [3][2]; int fila,col; clrscr(); cout<<"\n\tINGRESE LOS ELEMENTOS DE LA MATRIZ\n"; for (fila=0; fila<3; fila++) for (col=0;col<2;col++) {
cout<<"\t\t\t"; cin>>matriz [fila][col];
} cout<<"\n\tLOS ELEMENTOS DE LA MATRIZ SON:\n"; for (fila=0;fila<3;fila++) { cout<<"\n"; for (col=0;col<2;col++)
cout<<"\t\t"<<matriz [fila][col]; } getch();
}
PROGRAMA #75
//PROGRAMA #75 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //CURSO: PRIMER QUIMESTRE "B" //FECHA: 4 DE ENERO DEL 2002 /*ENUNCIADO: DEFINIR UNA MATRIZ CUADRADA A DE 16 ELEMENTOS LEERLA Y ESCRIBIRLA. */
#include <iostream.h> #include <conio.h> void main()
{ int A[4][4]; int fila,col; clrscr(); cout<<"\tINGRESE LOS ELEMENTOS DE LA MATRIZ\n"; for (fila=0; fila<4; fila++) for (col=0;col<4;col++) {
cout<<"\t\t\t"; cin>>A[fila][col];
} cout<<"\n\n\tLOS ELEMENTOS DE LA MATRIZ SON:\n"; for (fila=0;fila<4;fila++) { cout<<"\n"; for (col=0;col<4;col++)
cout<<"\t\t"<<A[fila][col]; } getch();
}
PROGRAMA #76
//PROGRAMA #76 //UNIVERSIDAD TECNICA DE MACHALA //ESCUELA DE INFORMATICA //PROGRAMACION ESTRUCTURADA //AUTOR: MIR //CURSO: PRIMER QUIMESTRE "B" //FECHA: 4 DE ENERO DEL 2002 /*ENUNCIADO: SE TIENE UNA MATRIZ DE M FILAS Y N COLUMNAS, ELEMENTOS REALES, OBTENGA LA SUMA DE TODOS LOS ELEMENTOS DE DICHA MATRIZ. */
#include <iostream.h> #include <conio.h> void main() {
float A[100][100]; int fila,col,nf,nc; float s=0.0; clrscr(); cout<<"\n\tINGRESE EL NUMERO DE FILAS: ";cin>>nf; cout<<"\tINGRESE EL NUMERO DE COLUMNAS: ";cin>>nc; cout<<"\n\tINGRESE LOS ELEMENTOS DE LA MATRIZ\n\n"; for (fila=0; fila<nf; fila++) for (col=0;col<nc;col++) {
cout<<"\t\t\t"; cin>>A[fila][col];
} cout<<"\n\tLOS ELEMENTOS DE LA MATRIZ SON:\n"; for (fila=0;fila<nf;fila++) { cout<<"\n"; for (col=0;col<nc;col++)
cout<<"\t\t"<<A[fila][col]; } for (fila=0; fila<nf; fila++)
for (col=0;col<nc;col++) s=s+A[fila][col];
cout<<"\n\n\tLA SUMA DE LA MATRIZ ES: "<<s; getch();
}
PROGRAMA #77
/*PROGRAMA # 77.UNIVERSIDAD TECNICA DE MACHALA.ESCUELA DE INFORMATICA.PROGRAMACION ESTRUCTURADA.AUTOR: 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(){
clrscr(); int matriz [4][4]; int fil,col,suma=0; cout<<"\n\n\t Ingrese los elementos de la matriz:\n"; for (fil=0;fil<4;fil++) for(col=0;col<4;col++) { cout<<"\t\t"; cin>>matriz[fil][col]; } //Escribe los elementos de la matriz for (fil=0;fil<4;fil++) { cout<<"\n"; for(col=0;col<4;col++) cout<<"\t"<<matriz[fil][col]; } suma=0; cout<<"\n\n\t\tLa suma de la matriz es: "; for (fil=0;fil<4;fil++) for(col=0;col<4;col++) if(fil!=col) suma=suma+matriz[fil][col]; cout<<suma; getch();}
PROGRAMA #79
//PROGRAMA 79//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURAD//AUTOR: MIR//CURSO: PRIMERO "B"//FECHA: 7 DE ENERO DEL 2002/*ENUNCIADO:ESCRIBIR UN PROGRAMA QUE LEA LAS DIMENCIONES DE UNA MATRIZ LEA Y VISUALISE LOS ELEMENTOS DE ESTAY A CONTINUACION ENCUENTRE EL VALOR DEL MAYOR, VALOR MENOR Y SUS POCICIONES CORRESPONDIENTES.*/
#include <iostream.h>#include <conio.h>void main(){ int A[50][50]; int f,c,x,y,aux1,aux2,pos1,pos2,pos3,pos4; clrscr(); cout<<"\t\t\tINGRESE EL NUMERO FILAS "; cin>>x;cout<<"\n"; cout<<"\t\t\tINGRESE EL NUMERO COLUMNAS "; cin>>y;cout<<"\n"; for(f=0;f<x;f++)
for (c=0; c<y;c++) { cout<<"\t\t\t"; cin>>A[f][c]; } cout<<"\n\n";
for(f=0;f<x;f++) { cout<<"\n"; for (c=0; c<y;c++) {
cout<<"\t\t"<<A[f][c]; aux1=A[0][0]; aux2=A[0][0];
} }
for(f=0;f<x;f++) for (c=0;c<y;c++) { if (A[f][c]>=aux1) {
aux1=A[f][c]; pos1=f; pos2=c;
} }
for(f=0;f<x;f++) for (c=0;c<y;c++) { if (A[f][c]<=aux2) {
aux2=A[f][c]; pos3=f; pos4=c;
} }
cout<<"\n\n"; cout<<"\n\t\tEL NUMERO DE FILAS ES "<<x; cout<<"\n\t\tEL NUMERO DE COLUM ES "<<y; cout<<"\n\t\tEL V.MAYOR ES "<<aux1<<" POCICCION
<"<<pos1<<">"<<"<"<<pos2<<">"; cout<<"\n\t\tEL V.MENOR ES "<<aux2<<" POCICCION
<"<<pos3<<">"<<"<"<<pos4<<">"; getch();}
PROGRAMA #80
//PROGRAMA N: 80//UNIVERSIDAD TECNICA DE MACHALA//ESCUELA DE INFORMATICA//PROGRAMACION ESTRUCTURADA//AUTOR:MIR//CURSO: PRIMER QUIMESTRE "B"//FECHA: 04/01/02//ENUNCIADO: SE TIENE UNA MATRIZ DE P*Q SE PIDE OBTENER//LA SUMA DE LAS FILAS Y ALMACENAR EN UN VECTOR LLAMADO//VECTOR FILA,OBTENER LA SUMA DE LAS COLUMNAS Y ALMACENAR//EN UN VECTOR LLAMADO COLUMNA
#include<iostream.h>#include<conio.h>
main()
{ int matriz[100][100]; int fila[100]={0}; int columna[100]={0}; int m,n,c2=-1; clrscr(); cout<<"\tINGRESE EL NUMERO DE FILAS DE LA MATRIZ ==> "; cin>>m; cout<<"\tINGRESE EL NUMERO DE COLUMNAS DE LA MATRIZ ==> "; cin>>n; cout<<"\n\tINGRESE LOS ELEMENTOS DE LA MATRIZ\n"; for(int f=0;f<m;f++)
for(int c=0;c<n;c++){ cout<<"\t\t"; cin>>matriz[f][c];}
cout<<"\tLA NUEVA MATRIZ ES \n"; for(f=0;f<m;f++) {
cout<<"\n";for(c=0;c<n;c++)
cout<<"\t"<<matriz[f][c];
} for(f=0;f<m;f++) {
c2++;for(c=0;c<n;c++)
fila[c2]=fila[c2]+matriz[f][c]; } c2=-1; for(c=0;c<n;c++) {
c2++;for(f=0;f<m;f++)columna[c2]=columna[c2]+matriz[f][c];
} cout<<"\n\n\t\tLA SUMA DE LAS FILAS ES "; cout<<"\n"; for(f=0;f<m;f++)
cout<<"\n\t\t\t"<<fila[f]; cout<<"\n\n\t\tLA SUMA DE LAS COLUMNAS ES"; cout<<"\n\n\t\t"; for(c=0;c<n;c++)
cout<<"\t"<<columna[c]; getch();
}
UNIDAD VII
ESTRUCTURAS
Los arrays son estructuras de datos que contienen un 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
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;
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> =
{
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;
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(){
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”;
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
//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.
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();
}