Está en la página 1de 28

UNIVERSIDAD NACIONAL DE

INGENIERIA
FACULTAD DE INGENIERIA MECANICA

PROGRAMACION ORIENTADA A OBJETOS

MB_545_20I5_III
Tema: ALGORITMOS DATOS VARIABLES
Ing. Daniel Osorio Maldonado

UNI FIM
BORLAND C++/VISUAL C++

TEMA: ALGORITMOS
PSEUDOCODIGO / DIAGRAMA DE FLUJO
Los algoritmos pueden constituir por as decirlo en un listado de instrucciones que indican el camino a seguir
para dar solucin a un problema y que puede o no ser ser resuelto por una computadora , generalmente el
algoritmo viene acompaado de un pseudocdigo y un diagrama de flujo.
Cuando el Algoritmo se ha desarrollado en forma correcta, el paso siguiente es llevar el pseudocodigo a la
codificacion del loenguaje de programacion.
Como ya se explic, la codificacion del algoritmo(pseudocodigo) en un determinado lenguaje debe
respetar su sintaxis para que el compilador pueda traducirlo en Lenguaje Maquina y hallar la solucion al
problema planteado.

ALGORITMO: Es un conjunto de pasos, procedimientos o acciones, que nos permite alcanzar un


resultado, resolviendo el problema planteado.

Etapas en la solucin de un Problema.

Un anlisis profundo del problema planteado.


Diseo y construccin del Algoritmo.
Verificacin del algoritmo.

Se entiende que por verificacin del algoritmo, el seguimiento del mismo con datos que se ajusten a las
caracterstica del problema que se va a resolver.

Caracterstica:
Los algoritmos en general deben ser:
Precisos :Los pasos a seguir en el algoritmo deben ser precisados claramente.
Definido: Debe dar siempre el mismo resultado para un conjunto de datos idnticos de entrada.
Finito : El algoritmo, independientemente de la complejidad del mismo, debe ser siempre de
longitud finita.
Metodologa:
Definicin de los Objetos_Datos de Entrada y Salida(Ingreso desde teclado y salida por pantalla)
Objetos_Datos de Entrada: Datos que se ingresan por teclado.
Objetos_Dato de salida: Datos u objetos de resultado.
Procesamiento de los Objetos_Datos (datos).
Visualizacion/Impresin de resultados.
Pseudocodigo
Es la parte textual del algoritmo,se podra decir que es como la receta para un paciente o tambin una
receta culinaria para cocinar un plato. Generalmente es la traduccin del Ingls de la sintaxis del compilador
al idioma con el que estamos trabajando.

DANIEL. OSORIO MALDONADO

Pgina 2 de 28

UNI FIM
BORLAND C++/VISUAL C++

DIAGRAMA DE FLUJO
Un diagrama de flujo es la representacin grfica de un algoritmo.
En cuanto a la simbologia utilizada para la representacin, se tomara la norma (ANSI ISO).

DIAGRAMA

DEFINICION
INICIO - FIN

ENTRADA DE DATOS

PROCESOS/CONSTANTES

BIFURCACIN(V/F)

PROCESOS(Desde/Para)

LLAMADA A (PROCEDIMIENTOS/FUNCIONES)

ESCRITURA

PANTALLA

CONECTOR

CONECTOR A SIGUIENTE PAGINA

Direcciones del flujo del programa

DANIEL. OSORIO MALDONADO

Pgina 3 de 28

UNI FIM
BORLAND C++/VISUAL C++

DIAGRAMA NASSI_SCHNEIDERMAN(N-S)
Tambien conocido como diagrama de CHAPIN es como un diagrama de flujo en el que se omiten las flechas
y las cajas son contiguas. Las acciones sucesivas se escriben en cajas sucesivas y, como en los diagramas de
flujo se pueden escribir diferentes acciones en una caja y dependiendo de las acciones de control estas
cambian para su mejor interpretacin, tal como se vera en los ejercicios y aplicaciones.
Inicio
Accion 1
Accion 2
Accion 3
Fin

Codificacin y Programacin
Es el Proceso mediante el cual se traduce un algoritmo a una codificacin en un lenguaje de programacin
especifico.

Programa

Conjunto de instrucciones que se ha desarrollado con la finalidad de que sea ejecutado por el computador.

Objetos_Datos

Son Objetos_Datos de un programa, todos aquellos datos manipulados por las Instrucciones.
Mediante ellos, en un programa podremos realizar el almacenamiento de los datos y de los resultados de
las distintas operaciones que intervienen en la solucin del problema.
Se les da este nombre solo para efectos de entrada y salida de datos en la solucion de un problema.

IDENTIFICADORES
Los identificadores son palabras creadas por el programador para dar nombre a los objetos y dems
elementos que necesita declarar en un programa: variables, constantes, tipos, estructuras de datos,
archivos, procedimientos.
Deben empezar siempre con una letra, no deben existir espacios en el nombre, no empezar con un
numero.
Z; labora_1; practica1; aulamb514dh

VARIABLES :

Una variable es un ente (objeto_dato) que almacena una posicin de memoria cuyo valor puede cambiar
durante el desarrollo del algoritmo o ejecucin del programa.
Una variable se identifica por los siguientes atributos:
a) nombre que le identifica.
b) tipo que describe el universo en donde se desenvuelve la variable.
Los nombres de las variables, a veces conocidos como Identificadores, suelen constar de varios caracteres
alfanumricos de los cuales el primero debe necesariamente ser una letra.
Ejemp: int par;
float num_123 ;
par=2. unsignet sin_signo;

DANIEL. OSORIO MALDONADO

char opc1 ; char nombre[15] ; short pequenio1 ;

Pgina 4 de 28

UNI FIM
BORLAND C++/VISUAL C++

CONSTANTES: Son identificadores que generalmente son declarados en el programa antes de las
variables, estos identificadores por lo general asumen un valor dado por el programador, ste valor no
cambia durante el proceso del programa.

Tipos de datos en general:

Se denomina tipo de datos a las caractersticas propias de un objeto_dato o entidad, por ejemplo la edad
o el domicilio de un registro, deben tener una caracterstica que la diferencie una de otra, la edad debe ser
entero y el domicilio cadena (tambin se conoce como alfanumrico), podemos decir entonces que existen,
en la mayora de los lenguaje de Programacin, los siguientes tipos de datos:
Numricos
Alfanumricos
Carcter
Lgicos (booleano) : cierto/falso
Este tipo de Dato no existe en C++/Borland C++, lo que existe es la representacin 0 para falso y 1 para
verdadero.
En Borland C++ es bueno sealar que el tipo de dato bool permite que una variable cualquiera se le
inicialice con los terminos de true (verdadero=1) y false (falso=0), esto se aprecia cuando forzamos la salida
de las variables, se notar que true equivale a 1 y que false equivale a 0.
Esto se nota en el siguiente programa, rseuelto con Borland C++ y Visual C++ pero como proyecto Win
Console:
#include<iostream.h>
#include<conio.h>
main( ){
bool t,f;
t= "True";
cout<<"El Valor verdadero de t es "<<t;
cout<<"\nEl valor falso de t equivale a "<<!t<<endl;
getch();
}
Dando como resultado:
el valor verdadero de t es 1
el valor falso de t quivale a 0
Otra manera es usando los Interruptores (switch=sw) que slo es usado cuando a la variable se le inicializa
a, 0 (falso) para luego cambiar a 1 (verdadero), con cualquiera de estos valores y dependiendo en la
ubicacion del programa se le cambia al valor opuesto
int sw=0; //se asume falso
int i,sp=0,simp=0,sw=0; //asume falso
........do{
for(i=1;i<=100;i++)
if(a<b)
if(i%2==0){
cout<<proceso1;
sp=sp+i;
proceso2;
sw=1; // asume verdadero
}
sw=1 // asume verdadero
else
else
simp=simp+i;
cout<<proceso3
cout<<"La suma de los primeros 100 pares es
while(sw!=1);// mientras no sea verdadero
"<<sp<<endl
................
<<"\nLa suma de los primeros 100 impares es
Ejemplo de aplicacin
"<<simp;
/*Programa que suma los pares y los impares de
getch();
100 numeros enteros positivos*/
}
#include<iostream.h>
/*Salida
#include<conio.h>
La suma de los primeros 100 pares es 2550
main(){
La suma de los primeros 100 impares es 2500 */

DANIEL. OSORIO MALDONADO

Pgina 5 de 28

UNI FIM
BORLAND C++/VISUAL C++

Operacin de Asignacin: La operacin de asignacin es el modo de


darle valores a una variable. La operacin de asignacin se representa con el smbolo .
Nombre de la variable<nom_var> dato o valor numerico.
Ejemp.
A 45
No olvidarse que los datos son almacenados en la memoria de la computadora, especficamente en celdas
de memoria y una direccion, de all que se hace necesario tener un nombre que las identifique , ya sea
constante o variable. El siguiente grfico esquematiza lo dicho:

MEMORIA

VAR1=66
AUXVAR1*17

SUM0

ACUVAR1+5

SUMSUM+AUX+ACU

SUM0+(66+17)+(66+5)

Como puede apreciar los valores son almacenados en bloque, claro que esta explicacin es muy simplista,en
realidad cada valor es almacenado en caldas de memoria y tienen una direccion que determina que espacio
de memoria va a utilizar.
El espacio de memoria la determina el tipo de datos que es utilizado por la variable o identificador. Esto hace
que un lenguaje de programacin difiera de un programa de aplicacin.
Espero que con estas lineas se comprenda la razon por la cual es necesario que una variable tenga un tipo
de datos.

TEMA: Los Procesos Secuenciales


Los procesos secuenciales, son todos aquellos procesos en los cuales la solucion de un problema se realiza
de manera directa y sin desviaciones o bifurcaciones.
P1: hallar el Area y la longitud de una circulo
Objeto_datos de Entrada:R (radio)
Objeto_datos de Salida :Area, Longitud
DIAGRAMA NASSI_SCHNEIDERMAN(N-S)
Pseudocodigo
Inicio
Leer R
Calculo del Area
S=pi*R*R
Calculo de la longitud
L=2*pi*R
Escribir S,L
Fin

DIAG FLUJO

Leer R
Calculo del Area
S=pi*R*R
Calculo de la longitud
L=2*pi*R

INICIO
R
S=pi*R*R

Escribir S,L
Fin

L=2*pi*R

S, L
P2: Hallar la resultante de 02 Fuerzas que forman um ngulo
Objeto_dato de Entrada: F1,F1, theta

DANIEL. OSORIO MALDONADO

FIN

Pgina 6 de 28

UNI FIM
BORLAND C++/VISUAL C++

Objeto_dato de Salida : Resultante R


Pseudocodigo
Inicio
Leer F1,F2,theta
K=pi/180
Calculo de la Resultante
R=

F12 F 2 2 2F1F 2 cos(thetaK )

Escribir R
Fin
N-S

Leer F1,F2,Theta

K=pi/180
R=

Escribir R

INICIO

K=pi/180

F1,F2,

R=

FIN

DANIEL. OSORIO MALDONADO

Pgina 7 de 28

UNI FIM
BORLAND C++/VISUAL C++

P4. Desarrolle un algoritmo que permita simular el retiro de dinero de un cajero automatico.
El cajero solo emite billetes de las siguientes denominaciones: 200,100,50,20 y 10 .
Objeto_dato de Entrada: Q //Cantidad
Objeto_dato de Salida : b200, b100, b50, b20, b10 //denominacin de billetes

Pseudocodigo
Inicio
Leer Q
b200 =entero(Q/200)
Q=resto(Q/200)
b100=entero(Q/100)
Q=resto(Q/100)
b50=entero(Q/50)
Q=resto(Q/50)
b20=entero(Q/20)
Q=resto(Q/20)
b10=entero(Q/10)
Escribir b200,b100,b50,b20,b10
Fin
N-S
Leer Q
b200=entero(Q/200)
Q=resto(Q/200)
b100=entero(Q/100)
Q=resto(Q/100)
b50=entero(Q/50)
Q=resto(Q/50)
b20=entero(Q/20)
Q=resto(Q/20)
b10=entero(Q/10)
Escribir
b200,b100,b50,b20,b10
Fin

INICIO

b200 =entero(Q/200)
Q=resto(Q/200)
b100=entero(Q/100)
Q=resto(Q/100)
b50=entero(Q/50)
Q=resto(Q/50)
b20=entero(Q/20)
Q=resto(Q/20)
b10=entero(Q/10)

b200,b100,b50
,b20,b10

FIN

TEMA: INSTRUCCIONES DE CONTROL DE PROGRAMA


Las estructuras de seleccin permite al usuario tener un control del programa mediante el uso de
instrucciones de control, constituyendo mecanismos para dirigir el flujo de ejecucin, dentro de estas
a).Instruccin de Control Simle.
La estructura Si - Entonces
Indica a la computadora que efecte una serie de una o mas instrucciones basadas en el resultado de
una comparacin.
INICIO

Pseudocodigo
SI condicion es cierta, entonces
Proceso de Cierta
Fin de SI
DIAGRAMA

CONDICION

V
PROCESO

NASSI_SCHNEIDERMAN(N-S)
CONDICION

VERDAD (SI)
PROCESO 1

FIN

PROCESO 2

DANIEL. OSORIO MALDONADO

Pgina 8 de 28

UNI FIM
BORLAND C++/VISUAL C++

ESCRIBIR
FIN
b). Instruccin de Control de alternativa doble
Indica a la computadora que debera realizar la comparacin de 02 alternativas, si se cumple la alternativa
verdadera debera realizar el proceso para esta alternativa. En caso contrario debera realizar la alternativa
Falsa.
INICIO
Pseudocodigo
INICIO
Si (condicion )es Verdaddera entonces
Proceso_Verdadad
Sino
DATOS
Proceso_Falso
Fin del Si
NASSI SCHNEIDERMAN(N S)
F
V
CONDICION

CONDICION
PROCESO_F

FALSO

PROCESO_V

VERDAD

PROCESO_F

PROCESO_V
IMPRIMIR

ESCRIBIR
FIN

FIN

Ejemplos de alternativa simple


1.1 Ingresar desde teclado un numero y emitir un mensaje si el numero ingresado es par.
Solucion
INICIO
Objetos deatos de entrada: A
Objeto dato de Salida: A es par
Pseudocodigo
Inicio
A
Leer A
Si(residuo de A/2=0) entonces
Mensaje= El numero es par
Residuo(A/2)=
Fin del Si
0
Escribir Mensaje
Fin
Men= Par

Men

FIN

DANIEL. OSORIO MALDONADO

Pgina 9 de 28

UNI FIM
BORLAND C++/VISUAL C++

1.2 Ingresar 02 numeros y luego ordenarlos mediante un algoritmo de menor a mayor


Solucion
Objetos datos de entrada: A,B
Objeto dato de Salida: Ordenado
Pseudocodigo
Inicio
Leer A,B

FIN

1.3 Ingrese una edad y decir si es mayor de edad e imprimir la edad ingresada
Objeto_Dato de Entrada: Edad
Objeto_Dato de Salida :Men y edad
Pseudocodigo
INICIO
Inicio
Leer E
Si (E>=18) entonces
E
Men= Mayor de Edad
Fin del Si
Escribir
inicio
Men, E
Leer E
E>=18
Fin
Si(E>=18)

Mayor de Edad

VERDAD (SI)
Men= Mayor de Edad
ESCRIBIR
Men,E
FIN

Men, E

Fin

DANIEL. OSORIO MALDONADO

Pgina 10 de 28

UNI FIM
BORLAND C++/VISUAL C++

Ejemplos de alternativa doble


1.4 Se tienen 02 numeros ingresados desde teclado verificar si A es divisible por B
Solucion
Objetos Datos de Entrada: A,B
Objetos Datos de Salida : mensaje
Inicio
A,B
Leer A y B
Si A=0 entonces
men= A debe ser diferente de cero
F
V
Sino
A=0
Si B=0 entonces
Men= no es posible la divisin
V
Men= A debe ser
B=0
Si (A>B) entonces
diferente de cero
Si (resto(A/B)=0) entonces
F
Men= No es
Men= A es divisible por B
possible la division
Sino
Men = A no es divisible por B
Fin del Si
F
Sino
V
A>B
Men=
A debe se mayor que B
F
Residuo(A/B)=
Fin del Si
0>B
Escribir Men
Fin
V
Men= Aes
divisible por B

Men= A no es
divisible por B

Mensaje

FIN

1.5 Se tienen cuatro mensajes para las notas obtenidas en un curso de Actualizacion; cuando la nota
obtenida es igual o mayor a 17 debe decir Sobre Saliente; si la nota es igual o mayor a 15
Notable;igual o mayor a 13 Aprobado; Asistente para el resto.
Haga el Algoritmo
Objeto_Dato de entrada:Nota
INICIO
Objeto_Dato de Salida :Mensaje
Pseudocodigo
Inicio
N
Leer Nota (N)
Si N>=17 entonces
F
Men=Sobre Saliente
N>=17
Si no
V
Si N>=15 entonces
SOBRE
N>=15
Men= NOTABLE
F
SALIENTE
Sino
Si N>=13 entonces
V
Men= Aprobado
Sino

DANIEL. OSORIO MALDONADO

Pgina 11 de 28

Notable

UNI FIM
BORLAND C++/VISUAL C++

Men= Asistente
Fin del Si
Fin del Si
Fin del Si
Escribir Men
Fin

V
N>=13

F
Aprobado

Asistente

Men

Fin

N-S
INICIO
LEER NOTA N

SI N>=17
NO

SI
N>=15

NO

SI

NO N>=13
ASISTE

SI

SOBRESALIENTE

NOTABLE

APROB

ESCRIBIR MEN
FIN

DANIEL. OSORIO MALDONADO

Pgina 12 de 28

UNI FIM
BORLAND C++/VISUAL C++

Instruccin de Control de Seleccin Multiple (conocido como


do Case; Case of; switch() )
Permite tener un control de una Var_Selectora, como condicin para varias alternativas; dependiendo
del Lenguaje de Programacin la condicin se le conoce como:
Var_Selectora ->(Case...), cuando se trata de Pascal, Vsual Basic, Visual Fox, etc.
Var_Selectora ->Switch cuando se trata de Lenguaje C o Borland C++ /Turbo C++,Visual C++,
usado tambien por Matlab.
Case(Var_Select) of cuando se trata de Pascal

Consideraciones a tener en cuenta en el uso del control multiple


La Var_Selectora puede ser variable, expresin, funcin; empero, sin embargo, el valor representado
debe ser por decir lo menos, un valor escalar es decir un dato numrico entero o un carcter . No se acepta
una cadena o un dato real.
Se debe entender que cada alternativa tiene un nico valor y que va ha realizar una determinada accin o
proceso.

Modo en que Funciona


(a) El valor de la Var_Selectora o(condicin) se evala en las alternativas uno a uno.
(b) Si halla una coincidencia que contenga el valor de la Var_Selectora, entonces ejecutara el proceso
correspondiente dando por finalizado la estructura, para luego buscar otra coincidencia, y ejecutar.
(c) Existe un termino que se usa ocasionalmente y que representa la accin cuando ninguna de las
alternativas se cumple, es el caso del si no , el termino no es obligatorio, pero permita clarificar una
aplicacin.

DANIEL. OSORIO MALDONADO

Pgina 13 de 28

UNI FIM
BORLAND C++/VISUAL C++

INICIO

Pseudocodigo
Condicion o var_Selectora
En Caso que (Var_Selctora) sea
Caso 1 proceso_1
Caso 2 proceso_2
Caso 3 proceso_3
.
Caso N proceso_N
Caso X proceso_Desconocido
Fin del Caso

Leer
Dato

Condicion

Var_alterna1

Proceso1

Var_alterna2

Proceso2

Var_alterna3

Proceso3

Var_alternaN

ProcesoN

Var_alternaX

Proceso_Desco

IMPRIMIR

FIN

DIAGRAMA N - S
1

CONDICIONANTE O
VAR_SELECTORA

2
3

Proceso_1 Proceso_2
Proceso_3

X
....

DANIEL. OSORIO MALDONADO

N
Proce_N

Proc_Desc

Pgina 14 de 28

UNI FIM
BORLAND C++/VISUAL C++

Aplicacin:

Programar una operacin Aritmtica con 02 operandos: Operando1 y Operando2


(enteros O reales) y que de acuerdo al Operador elegido habra un resultado. Considere que ud. Ha
diseado una calculadora que le permita realizar operaciones matemticas elementales y que Los
operadores permitidos son:
+
*
?

: suma
: diferencia
: producto
: divisin entera
: residuo
: potencia

Mas
Menos
Por
Entre
Residuo
Potencia

=+
=-
=*
=?
=
= ~

solucion:
Definir objetos_datos
Objeto_dato de entrada:
operador,Ope1,Ope2.
Objeto_dato de salida : Resultado.

Pseudocodigo:

Definir los Operadores:


Inicio
Leer operador
Ingrese : Ope1, Ope2
En CASO que Operador SEA
+
: Resultado = Ope1 + Ope2
-
: Resultado = Ope1 Ope2
*
: Resultado = Ope1 * Ope2
?
: SI Ope2 es diferente de 0
entonces
Resultado = Ope1 ? Ope2
si no
Resultado =0
Fin del SI
: SI Ope2 es diferente de 0

Entonces
Resultado =Residuo(Ope1/Ope2)
si no
Resultado =0
Fin del SI
~
:Resultado=Ope1 elevado al Ope2
Otro Caso :Rsultado : No existe Operacin
Fin del Caso
Imprimir respuesta
fin

N-S
INICIO
Establecer Operandos op1,op2
Mas +; Menos -; Por *; Entre ?; Residuo ; Potencia ~

+
op1+op2

*
op1-op2
op1*op2

?
op2<>0
no
si
error

no op2<>0si

Se deja como ejercicio para que sea completado.

Podra Ud. Completar el cuadro?

DANIEL. OSORIO MALDONADO

Pgina 15 de 28

UNI FIM
BORLAND C++/VISUAL C++

INICIO

Inicializar constantes
Mas
=+
Menos
=-
Por
=*
Entre
=?
Residuo
=
Potencia =~

IMPRIMIR
RESULTADO

FIN

DIGITAR EL OPERADOR A
USAR
INGRESE :
OPERANDO1
OPERANDO2

OPERADO
R

Resultado = Operando1 + Operando2

Resultado = Operando1 - Operando2

Resultado = Operando1 * Operando2

No
RESULTADO =

Operando2
Diferente de

Si
Resultado= Ope1 ? Ope2

RESULTADO=RESIDUO(OPER1/OPER2)

RESULTADO=(OPE1)~(OPE2)

TEMA: Instruccin de Control Repetitivas

Son aquellas Instrucciones que permiten que ciertas aplicaciones en las cuales una opercion o conjunto de
ellas deben repetirse muchas veces, por consiguiente se puede afirmar que un programa que lee una lista

DANIEL. OSORIO MALDONADO

Pgina 16 de 28

UNI FIM
BORLAND C++/VISUAL C++

de numeros puede repetir la misma secuencia de mensajes al usuario e instrucciones de lectura, hasta que
todos los numeros del rango establecido sean leidas.
Para efectos del C++/Borland C++ se van a tomar en cuenta slo las tres mas usadas:
mientras ->(While )
Hacer proceso Mientras (Condicion)-> (Do while)
Desde/Para-> (For)
Para otros lenguajes de programacion son en alguno casos combinaciones de ellas o en su defecto usan
otra nomenclatura como por ejemplo para Pascal es comun usar la instruccin (repeat until) repetir
hasta que, mientras que en Visual Basic es comun usar (do until) hacer hasta que ,estas son las mas
representativas de estos lenguajes de programacion.

Instruccin de control Repetitivo Mientras


la estructura repetiriva mientras(en Ingles WHILE o DOWHILE:hacer mientras ) es auella en que el
cuerpo del bucle se repite mientras se cumple una determinada condicin.se pueden representar:
Pseudocodigo
mientras (condicin ) sea verdadera
proceso
fin del mientras
CONDICION
SI

NO
Diagrama Nassi_Schneiderman
IMPRIMIR

MIENTRAS < CONDICION>

ACCIONES
FIN

Accion1
Accion2
Accion3

1. Desarrollar la suma de los primeros M terminos de la siguiente suma :


D=

INICIO

1
1
1
1
1

A A B A 2 B A 3B
A N *B

A,B,N

solucion:
definir objetos_datos E/S
objeto_dato de entrada: A,B,N.
Objeto_dato de salida : SUMA DE N.
Pseudocodigo:
Inicio
Leer A,B,N.
Definir C=1 //contador
Suma=0.
Mientras(C=N) hacer

DANIEL. OSORIO MALDONADO

SUMA=0 ; C=1

Pgina 17 de 28

UNI FIM
BORLAND C++/VISUAL C++

1
AB=(A+c*B).
Inverso=1/AB.
Suma=Suma+Inverso.
C++.
Fin del mientras
Escribir: Suma=Suma+1/A.
Fin

C<N

SUMA=SUMA+1/A
AB=(A+C*B)
INVERSO=1/AB
SUMA=SUMA+INVERS
O

IMPRIMIR
SUMA

C++
FIN

2. En la siguiente serie se pide hallar la suma de los elementos que ocupan las posiciones pares,y la
suma total de elementos, sabiendo que el # de termninos es igual a 50.

Su 2

4 6 8
...
3 5 7

Solucion:
Objetos_Datos de Entrada: N
Objetos_Datos de Salida:
suma de posiciones pares: sp
suma total de elementos: su
Pseudocodigo
Inicio
Leer N
Establecer variables
i=1; par=0;Su=0;
mientras(i<=N)
si(resto (i/2=0)entonces
sp=2*i/(2*i-1)
fin del si
su=2*i/(2*i-1)
i=i+1
fin del mientras
escribir su, sp

INICIO
N
i=1,su=0,sp=0
F
i<-N

V
Resto(i/2)
=0

sp,su

sp=2*i/(2*i-1)

FIN
sp=2*i/(2*i-1)

i=i+1

Instruccin de control Repetitivo hacer procesesos mientras(condcion)


En este tipo de Instruccin de control repetitivo difiere un poco con respecto al mientras en el sentido que
las instrucciones se realizan al menos una vez antes de comprobar si la condicin se cumple, es muy
parecida al repeat until del Pascal.

DANIEL. OSORIO MALDONADO

Pgina 18 de 28

UNI FIM
BORLAND C++/VISUAL C++

Pseudocodigo
Hacer (procesos)
mientras (condicin ) sea verdadera
fin del hacer .

PROCESO1

PROCESO2

DIAGRAMA (N-S)
PROCESO1
PROCESO2

F
Condicion

MIENTRAS

CONDICION

ESCRIBIR

FIN

Problema de Aplicacin
Se ingresa un Numero de varias cifras,
y luego invertis sus cifras.
Por ejemplo 1234 invertido 4321
Objetos_datos de entrada y Salida
Objeto_Dato de Entrada: Numero
Objeto_Dato de Salida:Salida numero invertido.

INICIO

LEER
N
Inverso=0

Leer
numero

Pseudocodigo
Inicio
Leer numero
Inicializar variable : inverso 0
Hacer
Digito resto(M/10)
Inverso inverso*10+digito.
M=numero/10
Mientras(numero>0)
Escribir inverso
Fin

Inverso 0

M=numero

Digitoresto(M/10)

Inversoinverso*10
+digitoM=numero

M=numero/10
V

F
Numero>
0
Inverso

FIN

Esta instruccin hacer procesos mientras (condicion) sea verdadera, es utilizada para consistenciar y
controlar la repeticion de un propgrama sin necesidad de salir, dandole al usuario el control del mismo. Vea
el siguiente ejemplo:
Se desea hallar la suma de los primeros N terminos de la siguiente serie:

DANIEL. OSORIO MALDONADO

Pgina 19 de 28

UNI FIM
BORLAND C++/VISUAL C++

1
2
3
4

...
t 1
2t 3
3t 5
4t 7

Instruccin de control Repetitivo for


Esta instruccin de control repetitivo considera: que el proceso debe iniciarse para un valor inicial que
vendra a ser el inicio del contaje, una segunda expresin que contiene el valor mximo o mnimo que puede
tener el contaje y determina cuando termina el ciclo, hasta aqu tal vez es el formato que usa la

DANIEL. OSORIO MALDONADO

Pgina 20 de 28

UNI FIM
BORLAND C++/VISUAL C++

mayoria de los lenguajes de programacin; sin embargo para el lenguaje C, C++ o Borland C++,
existe lo que se conoce como el incremento o decremento (se suma o se reta el contaje).
Para otros lenguajes es tal vez mas facil iniciar con el Valor Maximo para luego ir disminuyendo en unida en
unidad.
Diagrama de Flujo (for )
Pseudocodigo

Desde/Para var_contador=val de ini HASTA Valor Fin o Max


ProcesoA
Proceso

Fin del Desde/Para

INICIO

Para Vcont=
Valor_inic, Valor_fin
HACER

Diagrama N-S

desde/para de var_contador=Vi Hasta Vf

ProcesoA
ProcesoB

PROCESO

IMPRIMIR

Fin desde/para

FIN

Aplicacin
Se va a Ingresar un Numero y la tarea consiste
en mostrar todos los divisores de ese numero ingresado.
Cuando el numero Ingresado tiene por divisores
a la unidad(1) o al mismo numero mostrara un
mensaje diciendo El Numero es Primo
SOLUCION
Objetos_Datos de ENTRADA Y SALIDA
Objejo_Datos de Entrada: el Numero entero(NumeEnte)
Objeto_Dato de Salida : numero de divisores(NumeDivi),
mensaje

PSEUDOCODIGO
Inicio
Leer un Numero entero: NumeEnte
Definir la variable Contador de Divisores e Inicializarla 0
NumeDivi=0
Contabilizar los divisores y mostrarlos
INICIO
DANIEL. OSORIO MALDONADO

Pgina 21 de 28

UNI FIM
BORLAND C++/VISUAL C++

PARA Divisor=1 HASTA NumeEnte, HACER


SI Residuo de NumeEnte/Divisor=0, ENTONCES
Inicio
Escribir Divisor
ContDiv=ContDiv+1
fin del SI

LEER NumeEnte

Fin del PARA

Escribir mensaje

ContDivi=0

SI ContDiv=2,ENTONCES

MENSAJE Numero Primo

SINO

para Divisor=1, NumeEnte

MENSAJE No es Primo
Fin del Si

Fin

si

Resto(Num
eEnte/Divis
no

1
No

Escribir Divisor
ContDivi=ContDivi+1

si
ContDivi=
2

No es Primo

Numero Primo

MENSAJ
DIVISOR
E

FIN

TEMA:

ELEMENTOS BSICOS DEL C++

Smbolos
Estn clasificados en:
letras : A..Z, a..z (no incluye la y )
dgitos : 0 1 2 3 4 5 6 7 8 9

DANIEL. OSORIO MALDONADO

Pgina 22 de 28

UNI FIM
BORLAND C++/VISUAL C++

smbolos especiales
se tienen los siguientes:
simples :
SIMPLES
+
;

*
:

&

<=
?:

->

<
{

>
}

<<

!=

>>=
//

sizeof

DOBLES
== !! |=

>=
>>

&&

( ) [ ] += -=
<<=

/*

*/

Identificadores
Es el nombre mediante el cual se define una variable, constante, tipo, funcin, estructura, unin, clase,
objeto, etc.
Los identificadores declarados en Boland C++ tienen las siguientes caractersticas.
Pueden estar conformados por 127 caracteres como mximo.
Ejemplos :
Suma = ( 4 caracteres )
Contador = ( 8 caracteres )
Se hace distincin entre maysculas, minsculas.
Ejemplo :
SUMA =25, suma=25; en ambos el identificador para el compilador es diferente
Tienen que ser distintas de las palabras reservadas.
Ejemplos :
continue, incluye,if , while, bool, for , etc
El primer carcter debe ser letra subrayado
Ejemplo :
Suma =
Correcto
1 Suma= Incorrecto el 1er carcter debe ser letra */
Suma1=
Correcto
Suma 2m= no debe haber espacios entre el nombre//incorrecto
Suma_2m= correcto
Suma+si= incorrecto, no debe haber operacin entre su nombre
S9_suma= correcto
S9+suma=incorrecto

DANIEL. OSORIO MALDONADO

Pgina 23 de 28

UNI FIM
BORLAND C++/VISUAL C++

Palabras reservadas
Son identificadores que tienen un significado especial establecido por el lenguaje de programacin.
Siempre deben escribir en minsculas.
Se lista a continuacin las palabras reservadas definidas por el compilador Borland C++
asm
char
do
far
inline
new
public
struct
volatile

auto
class
double
float
int
operator
register
union
while

break
const
else
for
interrup
pascal
signed
unsigned
time

case
default
enum
friend
long
private
sizeof
virtual
rand

continue
delete
extern
if
near
protected
static
void
random()

Comentarios

Sirven para documentar un programa y siempre van entre /* */


Ejemplo :
/* Este es un comentario que tiene
mas de una linea */
//Otro comentario pero solo de una linea

//.

EXPRESIONES Y OPERACIONES DE BORLAND C++


Expresin
Es un conjunto de operaciones ( Datos y/o variables ) y operadores que actan realizan operaciones
sobre los operandos, y que mediante el uso racional de parntesis puede forzar las expresiones matemticas
convenientes.
Ejemplo :

13*A+(11+B/46)
( x +41) /37

Los Operadores de Borland C++


[ ]
*
%
==
=
> >

( )
+
<<
!=
* =
& =

.
>>
/ =

->
<
|
% =
| =

++
!
>
&&
+ =
,

-sizeof
< =
!!
- =
#

&
/
>
? :
<< =
##

Las siguientes operaciones son especficos de C++/Borland C++


Los operadores # y ## son usados nicamente por el preprocesador.
Al usar un operador depende de la forma de el contexto, para que el mismo operador & puede ser
interpretado como :
Un and a nivel de bits ( A & B )
Un operador de direccin ( &A )

DANIEL. OSORIO MALDONADO

Pgina 24 de 28

UNI FIM
BORLAND C++/VISUAL C++

En C++ un paso de parmetro por referencia a una funcin.


En el primer caso el & es un Operador Binario.
En el segundo caso el & es un Operador Unario.

Prioridad de Operadores
En C++ la tabla de Prioridad de los Operadores esta dividida en 16 categoras.
La categora #1 tiene la ms alta Prioridad.
La categora #2 ( los Operadores Unarios ) toman la segunda Prioridad, hasta el Operador coma (,) que
tiene igual Prioridad
Para el caso de los operadores unarios ( la categora #2 ), condicional ( la categora #14 ) y la de asignacin
( la categora #15)
La agrupacin de estos operadores se ejecutan de Derecha a Izquierda todo, otra asociacin de los
operadores de Izquierda a Derecha.
Teniendo presente la prioridad de los operadores podemos deducir que resultado se obtendr al momento
que le programa ejecute una determinada sentencia, compuesta por expresiones que enlazan mediante los
operadores a las variables y datos del programa, predeterminando de esta forma que operador se desarrolla
primero.
Categora #1
1. Ms alta

2. Unaria

3. Miembros de acceso
4. Multiplicativos
5. Aditivo
6. Desplazo
7. Relacional

DANIEL. OSORIO MALDONADO

Operador
()
[]
->
::
.
!
+
++
-&
*
sizeof
new
delete

Que realiza (o ejecuta)


llamada de una funcin
Subscripcin de un Arreglo
C++ selector de componente Indirecto
C++ acceso/ resolucin del alcance
C++ selector de componente directo
Negociacin Lgica ( NO)
A nivel de bits ( complemento a I )
Unitario ms
Unitario menos
Preincremento o postincremento
Predecremento o postdecremento
Direccin de la variable
Indireccin
Devuelve el tamao del operando en ocho bits
(separacin de memoria dinmica en C++ )
(liberacin de memoria dinmica en C++ )

. *
*
*
/
%
+
<<
>>
<
<=
>
>=

C++ Referencia a un campo


C++ Referencia a un campo
Multiplica
Divide
Resto ( mdulo o resto de la Divisin entera )
Binario ms
Binario menos
Desplazamiento de bits a la izquierda
Desplazamiento de bits a la derecha
Menor que
Menor que o igual que
Mayor que
Mayor que o igual que

Pgina 25 de 28

UNI FIM
BORLAND C++/VISUAL C++

Categora #2
8. Igualdad
9.
10.
11.
12.
13.
14. Operador Ternario

15. Asignacin

Operador
==
!=
&
^
|
&&
||
?:

=
*=
/=
%=
+=
-=
&=
^=
|=
<< =

Que realiza (o ejecuta )


Igual a
No es igual a
A nivel de bits Y
A nivel de bits XOR
A nivel de bits 0
Lgico Y
Lgico 0
(a >b )? Indica if (a) then x, else y
Donde el operador > puede ser cualquier otro
operador, <, >=, <=, =.
Asignacin sencilla
Asigna el producto
Asigna el cociente
Asigna el resto ( modelo)
Asigna la suma
Asigna la diferencia
Asigna AND a nivel de bits
Asigna XOR a nivel de bits
Asigna O a nivel de bits
Asigna desplazamientos de bits a la izquierda
Asigna desplazamientos de bits a la derecha

>> =
16. La coma

Evaluacin

Todos los operadores de esta tabla pueden ser modificados para un nuevo tipo de datos (operadores
sobrecargados).
Salvo los siguientes:
-. C++ selector de componente directo
.* C++ referencia a un campo
:: C++ acceso / resolucin del alcance
? : Condicional

El Operador Ternario (a>b)? a:b


Este operador reemplaza en cierta medida a la instruccin if<condicion> es verdadero entonces
proceso_verdadero, si no (else) proceso_falso.
Para nuestro caso (a>b)? a:b significa que si la condicon es verdadera entonces resulta a sino
resulta b.
Ejemplo: se tienen 03 nmeros A =30, B=19 y C=27, se pide hallar el menor de ellos
#include<iostream.h>
#include<conio.h>
main(){
float A =30, B=19 y C=27;
M=((A<B)? A:B) //el menor se almacena en M
N=((M<C)? M:C)// el menor se almacena en N
Cout<< El menor valor se almacenara en N<<N;
getch();
}}

Los Numero PseudoAleatorios


El Lenguaje C/C++ permite generar nmeros pseudoaleatorio, que pueden simular ciertos eventos, para ello
necesita de las librerias #include<stdlib.h> y #include<time.h>; mientras que la primera tiene que ver con la
librera estndar la otra utiliza el reloj del sistema.

DANIEL. OSORIO MALDONADO

Pgina 26 de 28

UNI FIM
BORLAND C++/VISUAL C++

Herramientas a usar
a). srand((unsigned)time (NULL)); al inicio y antes de utilzar las funciones que genere los valores
pseudoaleatorios, esta funcin genera valores frescos cada vez que es invocado.
b). rand()%N; genera valores pseudoaleatorios desde 0 hasta( N-1)

DANIEL. OSORIO MALDONADO

Pgina 27 de 28

UNI FIM
BORLAND C++/VISUAL C++

#include<iostream.>
#include<time.h>
#include<stdlib.h> // obligado
Using namespace std;
void main(){
srand((unsigned)time (NULL));
int m;
m=rand()%33 //genera valores desde 0 hasta 32
..
}

Ejemplo
//Simule el lanzamiento de un dado y adivine el valor de la cara en una tirada
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>//librera para los nmeros //pseudoaleatorios
Void main(){ randomize();
int cara=rand()%7;
if (cara==0)
int cara=rand()%7;
cout<< "El Valor de una tirada es " <<cara;
system(pause);
}
Salida
El Valor de una tirada es 5

DANIEL. OSORIO MALDONADO

Pgina 28 de 28