Algoritmos
Algoritmos
Facultad de Mecanica
UNI FIM
BORLAND C++
NTRODUCCION
Borland C++ es un lenguaje de programacin orientado a Objetos que utiliza como plataforma las
herramientas del lenguaje C estndar y del Lenguaje C++ .
El curso esta orientado para aquellas personas que deseen conocer y aprender a programar con una
herramienta de un lenguaje de programacion que tiene dentro de sus caracteristicas el ser bastante flexible
y facil de manipular en cuanto a su sintaxis.
Debe tener en cuenta que esta herramienta ha servido para desarrollar otras aplicaciones que hoy en dia
vemos en el mercado.
El curso empieza con una breve descripcion del diseo a mano de los pasos a seguir en la solucion de un
problema este diseo es conocido como la etapa algoritmica que puede contener la parte
textual(pseudocodigo) y la parte grafica(Diagrama de Flujo).
A esta etapa se le debe dar la importancia necesaria, ya que es aqu donde se plantea el camino ha seguir.
El curso se va desarrollar integramente haciendo uso del editor, herramienta que permitir el manipuleo de
variables en linea de textos.
Se seguir luego la descripcin del Entorno Integrado de Desarrollo del Borland C++. El esqueleto o
estructura del Lenguaje Borland C++/C++ que , acompaar durante todo el curso. Se dar nfasis a la
tcnica de programacin en el uso correcto de la sintaxis, el buen uso del tipo de dato desde las principales
y luego sus derivadas,las Instrucciones de control simples o multiples y luego las instrucciones de control
repetitivas, se tratar el tema de los arreglos, recursividad, los punteros, las estructuras, asignacin
dinamica de memoria, para finalmente terminar con un enfoque preliminar de lo que se entiende por
programacin orientada a objetos, con ejemplos sencillos.
En el Apndice se desarrolla una primera parte de Matlab en su etapa, sin llegar aprofundizar con la idea
que sirva de apoyo en la formacin del estudiante
En cuanto a la Progragramacion Orientada a Objetos, el uso de los proyectos y la programacion en windows
se ha reservado para un segundo Curso.
INTRODUCCIN A LA PROGRAMACIN
El Objetivo es Familiarizar al alumno con el entorno del Lenguaje de Programacin verstil y fcil de manipular
como es Borland C++; es mi deseo que Ud aproveche y aplique los conocimientos adquiridos, tanto en clase de
teoria como en el Laboratorio.
Lenguaje maquina
Preprocesador
Compilador
Sentencia
Describe el conjunto de acciones a seguir especificado en un lenguaje de programacin que ser ejecutado
por el computador.
Sintaxis
Pgina 3 de 183
UNI FIM
BORLAND 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.
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:
Pgina 4 de 183
UNI FIM
BORLAND 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
Pgina 5 de 183
UNI FIM
BORLAND 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
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 ; char opc1 ; char nombre[15] ; short pequenio1 ;
par=2. unsignet sin_signo;
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.
Pgina 6 de 183
UNI FIM
BORLAND C++
Pgina 7 de 183
UNI FIM
BORLAND C++
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.
INICIO
LEER R
CALCULAR S =pi*R*R
CALCULA L=2*pi*R
ESCRIBE S,L
FIN
INICIO
R
S=pi*R*R
L=2*pi*R
S, L
FIN
Ing. Daniel Osorio Maldonado
Pgina 8 de 183
UNI FIM
BORLAND C++
Calculo de la Resultante
R=
ESCRIBIR R
FIN
DIAGRAMA N - S
INICIO
K=PI/180
LEER F1,F2,THETA
K=pi/180
F1,F2,
R = F1 + F 2 + F1F 2COS ( * K
2
ESCRIBIR R
FIN
R=
FIN
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
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=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
TEMA: INSTRUCCIONES
b200,b100,b50,b20
,b10
FIN
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
Pgina 9 de 183
UNI FIM
BORLAND C++
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
PROCESO
NASSI_SCHNEIDERMAN(N-S)
CONDICION
VERDAD (SI)
PROCESO 1
FIN
PROCESO 2
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
VERDADERA. En caso contrario debera
realizar la alternativa FALSA.
Pseudocodigo
Si (condicion )es Verdaddera entonces
Proceso_Verdadad
Sino
Proceso_Falso
Fin del Si
INICIO
DATOS
V
CONDICION
PROCESO_F
PROCESO_V
NASSI SCHNEIDERMAN(N S)
ESCRIBIR
CONDICION
FALSO
VERDAD
PROCESO_F
FIN
PROCESO_V
ESCRIBIR
INICIO
Ejemplos FIN
de alternativa simple
par.
RESTO(A/2)=0
ESCRIBIR
FIN
Mensaje= PAR
Pgina 10 de 183
UNI FIM
BORLAND C++
Leer A
Si(residuo de A/2=0) entonces
Mensaje= El numero es par
Fin del Si
Escribir Mensaje
Fin
A,B
A>B
Tempo=A
A=B
B=Tempo
ESCRIBIR
A, B
FIN
INICIO
ingresada
E
V
E>=18
Men, E
Fin
Mayor de Edad
Pgina 11 de 183
UNI FIM
BORLAND C++
Fin del Si
Escribir
Men, E
Fin
inicio
Leer E
Si(E>=18)
VERDAD (SI)
Men= Mayor de Edad
ESCRIBIR
Men,E
FIN
Men= A no es
divisible por B
Mensaje
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;FIN
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
Pgina 12 de 183
UNI FIM
BORLAND C++
F
N>=17
SOBRE
SALIENTE
N>=15
V
Notable
N>=13
F
Aprobado
Asistente
Men
INICIO
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
Pgina 13 de 183
UNI FIM
BORLAND C++
INICIO
A,B
A= B
B mayor que A
A>B
V
A mayor que B
A es igual a B
Mensaje
FIN
Algoritmo que lee 02 numeros y nos dice cual es el mayor o son iguales
Pseudocodigo
Inicio
Leer A y B
Si (A > B) entonces
A es mayor en B
Si no
Si (A = B) entonces
A es igual a B
Si no
B es mayor que A
Fin del Si
Fin del Si
INICIO
A,B
B mayor que A
A= B
A>B
V
A mayor que B
A es igual a B
Mensaje
FIN
Pgina 14 de 183
UNI FIM
BORLAND C++
Un ejemplo con (sw): Algoritmo que lee un secuencia de notas(con valores que van desde 0 a 10) que
termina con el valor -1 y nos dice si hubo o no alguna nota con valor 10.
Objeto_datos:
NOTA : variable para leer la secuencia.
SW
:switch para controlar la aparicion de notas 10 con los
siguientes significados:
FALSO :No hay nota 10
CIERTO :Si hay nota 10
INICIO
SWFALSO
LEER NOTA
F
NOTA<>-1
T
T
NOTA=10
LEER NOTA
T
SW
SWCIERTO
Escribir Hubo 10
Escribir Hubo 10
IMPRIME
FIN
Pgina 15 de 183
UNI FIM
BORLAND C++
INICIO
Leer Dato
Condicion
Var_alterna1
Proceso1
Var_alterna2
Proceso2
Var_alterna3
Proceso3
Var_alternaN
ProcesoN
Var_alternaX
Proceso_Desco
IMPRIMIR
FIN
Pgina 16 de 183
UNI FIM
BORLAND C++
DIAGRAMA N - S
1
CONDICIONANTE O
VAR_SELECTORA
2
3
Proceso_1 Proceso_2
Proceso_3
X
....
N
Proce_N
Proc_Desc
Aplicacin:
+
*
?
: 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:
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
Pgina 17 de 183
UNI FIM
BORLAND C++
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
Pgina 18 de 183
UNI FIM
BORLAND C++
INICIO
Inicializar constantes
Mas
=+
Menos
=-
Por
=*
Entre
=?
Residuo
=
Potencia =~
IMPRIMIR
RESULTADO
FIN
DIGITAR EL OPERADOR A
USAR
INGRESE :
OPERANDO1
OPERANDO2
OPERADOR
No
RESULTADO =
Operando2
Diferente de
Si
Resultado= Ope1 ? Ope2
RESULTADO=RESIDUO(OPER1/OPER2)
RESULTADO=(OPE1)~(OPE2)
Pgina 19 de 183
UNI FIM
BORLAND 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.
NO
Diagrama Nassi_Schneiderman
IMPRIMIR
ACCIONES
Accion1
Accion2
Accion3
FIN
1
1
1
1
1
+
+
+
+K+
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
SUMA=0 ; C=1
Pgina 20 de 183
UNI FIM
BORLAND C++
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
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
V
sp=2*i/(2*i-1)
FIN
sp=2*i/(2*i-1)
i=i+1
Proceso 1
Proceso 2
una
V
Condicin
Escribir
Pgina 21 de 183
FIN
UNI FIM
BORLAND C++
vez antes de comprobar si la condicin se cumple, es muy parecida al repeat until del Pascal.
Pseudocodigo
Hacer (procesos)
mientras (condicin ) sea verdadera
fin del hacer .
DIAGRAMA (N-S)
PROCESO1
PROCESO2
MIENTRAS
CONDICION
Problema de Aplicacin
Se ingresa un Numero de varias cifras,
y luego hallar la suma de sus cifras, el numero
invertido y la cifra mayor.
Por ejemplo 1234, la suma es:10, invertido es
4321 y la cifra mayor es 4.
Objetos_datos de entrada y Salida
Objeto_Dato de Entrada: Numero
Objeto_Dato de Salida:Salida numero invertido.
INICIO
Leer num
inverso 0,Su 0, M0
Pseudocodigo
Inicio
Leer numero
Inicializar variables : inverso 0, Su0,M0
Hacer
digito resto(M/10)
Inverso inverso*10+digito.
Su Su+digito
Si (digito>M) entonces
M digito
Fin del si
numero=entero(numero/10)
Mientras(numero>0)
Escribir inverso, Su, M
Fin
dgtresto(num/10)
inversoinverso*10+dgt
Su Su+digito
V
dgt>M
Mdgt
numentero(nume/10)
F
num> 0
Inverso , Su, M
FIN
Pgina 22 de 183
UNI FIM
BORLAND C++
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:
S=
1
2
3
4
+ ...
t +1
2t + 3
3t + 5
4t + 7
Pgina 23 de 183
UNI FIM
BORLAND C++
Pseudocodigo
INICIO
Para Vcont=
Valor_inic, Valor_fin
HACER
PROCESO
ProcesoA
ProcesoB
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
INICIO
Lee ne
ContDivi=0
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 a 0
NumeDivi=0
Contabilizar los divisores y mostrarlos
PARA Divisor=1 HASTA NumeEnte,
HACER
SI Residuo de NumeEnte/Divisor=0,
ENTONCES
Escribir Divisor
ContDiv=ContDiv+1
Fin del SI
Escribir mensaje
SI ContDiv=2,ENTONCES
MENSAJE Numero Primo
SINO
MENSAJE No es Primo
Fin del Si
Fin
Resto(ne/Divisor)=0
Escribir Divisor
F
ContDivi=ContDivi+1
ContDivi=2
No es Primo
Numero Primo
MENSAJ
DIVISORE
FIN
Pgina 24 de 183
UNI FIM
BORLAND C++
TEMA:
Smbolos
Estn clasificados en:
letras : A..Z, a..z (no incluye la y )
dgitos : 0 1 2 3 4 5 6 7 8 9
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
Pgina 25 de 183
UNI FIM
BORLAND 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
//.
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
Borland C++, como ya hemos visto tiene una manera de tratar el tipo de dato booleano es decir cierto,
falso sin embargo, es bueno hacer notar que en algunas aplicaciones es imprescindible la forma natural
que tiene el lenguaje, me refiero al 0 y 1, ya que para borland C++ el 0 significa falso, por el contrario el
1.
Lo podran apreciar en las aplicaciones que estan en ste libro.
Pgina 26 de 183
UNI FIM
BORLAND C++
( )
+
<<
!=
* =
& =
.
>>
/ =
->
<
|
% =
| =
++
!
>
&&
+ =
,
-sizeof
< =
!!
- =
#
&
/
>
? :
<< =
##
Prioridad de Operadores
En Borland 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
Operador
()
[]
->
::
.
!
+
++
-&
*
sizeof
new
delete
Pgina 27 de 183
UNI FIM
BORLAND C++
3. Miembros de acceso
4. Multiplicativos
5. Aditivo
6. Desplazo
7. Relacional
Categora #2
8. Igualdad
9.
10.
11.
12.
13.
14. Operador Ternario
15. Asignacin
16. La coma
. *
*
*
/
%
+
<<
>>
<
<=
>
>=
Operador
==
!=
&
^
|
&&
||
?:
=
*=
/=
%=
+=
-=
&=
^=
|=
<< =
>> =
Evaluacin
Pgina 28 de 183
UNI FIM
BORLAND C++
getch();
}}
Herramientas a usar
a). ramdomize(); 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)
c). random(Valor final Valor inicial -1)+1; genera valores pseudoaleatorios desde un valor inicial hasta un
valor final. En la practica se usa la forma reducida : random(val_num)+ val_inicial.
Ejemplo
#include<iostream.h>
//Simule el lanzamiento de un dado y adivine el
#include<conio.h>
valor de la cara en una tirada
#include<stdlib.h> // obligado ; <time.h>
#include<iostream.h>
opcional
#include<conio.h>
main(){
#include<stdlib.h>//librera para los nmeros
randomize();int Vf=45;Vi=1;
//pseudoaleatorios
int m;
main(){ randomize();
m=rand()%33 //genera valores desde 0 hasta 32
int cara=random(6)+1;
w=random(Vf-Vi-1)+1; //genera valores desde 1
cout<< "El Valor de una tirada es " <<cara;
hasta 45
getch();
..
}
}
Salida
El Valor de una tirada es 5
0 1 2 310152030506070 80
1
2
gotoxy(20,2); cin>>A;
3
15
gotoxy(30,15);cout<< A+4<<A+4;
18
25
//Programa que usa gotoxy(x,y)
//Se pide generar 03 valores aleatorios en
el rango [7,17] y halla el mayor
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
Pgina 29 de 183
UNI FIM
BORLAND C++
main(){
float x,y,z;randomize();
x=random(17)+7;
gotoxy(10,5);cout<< "x ="<<x;
y=random(17)+7;
gotoxy(10,7);cout<< "y ="<<y;
z=random(17)+7;
gotoxy(10,9);cout<< "z ="<<z;
float m=x;
if(y>m)
m=y;
if(z>m)
m=z;
gotoxy(20,15);cout<< "El Mayor es
="<<m;
getch();
}
/*Salida
x =12
y =23
z =11
El Mayor es =23 */
Tipos Fundamentales.
Tipos Derivados.
Tipos Fundamentales
Tipos enteros
Tipos reales
Tipo cadena
Tipo vacio
Tipos Derivados
Punteros
Estructuras
Uniones
Arreglos
Funciones
Clases
Ancho
8 bits
8 bits
16 bits
16 bits
16 bits
16 bits
32 bits
32 bits
32 bits
64 bits
80 bits
16 bits
32 bits
to
to
to
to
to
to
to
to
to
to
to
not applicable
not applicable
255
127
32,767
65,535
32,767
32,767
4,294,967,295
2,147,483,647
3.4 x 10+38
1.7 x 10+308
1.1 x 10+4932
Pgina 30 de 183
UNI FIM
BORLAND C++
Ancho
unsigned char
Char
short int
unsigned int
Int
unsigned long
Enum
Long
Flota
Double
long double
near (pointer)
far (pointer)
8 bits
8 bits
16 bits
32 bits
32 bits
32 bits
16 bits
32 bits
32 bits
64 bits
80 bits
32 bits
32 bits
Rango
-128
-32,768
0
-2,147,483,648
0
-2,147,483,648
-2,147,483,648
3.4 x 10-38
1.7 x 10-308
3.4 x 10-4932
To
To
To
To
To
To
To
To
To
To
To
not aplicable
not aplicable
255
127
32,767
4,294,967,295
2,147,483,647
4,294,967,295
2,147,483,647
2,147,483,647
3.4 x 10+38
1.7 x 10+308
1.1 x 10+4932
El uso de datos de tipo double y float es aplicado en las matemticas como punto flotante. (Nmeros
reales)
En Borland C++ realiza en forma automtica en las operaciones la asignacin del punto flotante cuando ste
no se especifique.
Pgina 31 de 183
UNI FIM
BORLAND C++
Ejemplo
#include<iostream.h>
#include<conio.h>
main(){
int x;float r;
void *p=&x; //*p apunta a x
cout<< "Ingrese un valor para x ";
cin>>x;
cout<< "La direccion de x es "<<p
<<sizeof(*p);
getch();
}
/*Ingrese un valor para x 200
La direccion de x es 0x0012ff88 */
3 Variables Globales:Variables que seran reconocidas tanto a nivel de Programa Principal como
en las funciones.
4 struct, unio,class: se define en este lugar permiten definir un tipo de dato y definir un objeto.
5 Prototipo de Funciones: En esta seccin solo se especifica la cabecera de las funciones
definidas por el usuario.
6 Funcin Principal
Todo programa en Boland C++ por lo menor debe estar conformado por una funcin, la cual es llamada
funcin principal (funcin main())
Al ejecutarse un programa est funcin ser la nica que se encargar del control de todo el software
desarrollado.
Ejemplo :
Pgina 32 de 183
UNI FIM
BORLAND C++
main ( )
{
// Inicio de la funcin principal
int a, b;
// Datos del programa
long prod
// Resultado
a = 19;
// Asigna al valor 19 a la variable a
b = 13;
// Asigna al valor 13 a la variable b
prod = a*b;
// Asigna el producto a*b en prod
cout<<prod:
getch();
} // fin
1. Cuerpo de la funcion
Es el centro de la codificacin en ella se resuelve todo el codigo del programa.
2. Llamada a Funcion
Se da cuando ha sido declarada una funcion y es aqu donde se le llama por su nombre
3. Implementacin de Funciones
Las funciones definidas por el usuario son codificadas en esta seccin ejemplo:
static double escribir(int x,int y);// prototipo de la funcion
main( ){
int a,b;
double r;
cout<<"\nIngrese el valor de a: ";cin>>a;
cout<<"\nIngrese el valor de b: ";cin>>b;
r=escribir(a,b);
cout<<"La suma de "<<a<<" y "<<b
<<" = "<<a+b<<" Elevado a la Potencia 3 es: "<< r<<"\n";
getch( );
}
static double escribir(int x=2,int y=3)
{
cout<<setw(15);
return(pow(x+y,3));
}
Sentencia de Asignacin
Es el proceso mediante el cual se asigna un valor dato a una variable previamente definida en dicha
funcin
La asignacin se realiza mediante el operador =
Sintaxis
Pgina 33 de 183
UNI FIM
BORLAND C++
#include <iostream.h>
#include iostream.h
Las comillas dobles indican que el fichero ser buscado primero en el directorio actual de trabajo y si no es
encontrado continuar con la bsqueda en el los directorios standard especificados en el submen Options
del Ambiente Integrado (Editor Compilador) del Borland C++.
Si el fichero especificado se escribe de la siguiente forma:
#include<iostream.h>
El fichero solo ser buscado en el directorio standart.
El fichero iostream.h provee una serie de facilidades definidas en base a clases que se encargan de la
entrada y salida de datos y transformarlos al tipo de variable correspondiente.
Se tiene los siguientes Objetos
cout<<Pone caracteres en la salida estndar (pantalla)
cin>>Lee caracteres de la entrada estndar (teclado)
Salida
Permite la salida de datos por pantalla al tener una variable o expresin numrica como salida esta
es transformada a caracteres para ser mostrada en pantalla.
Ejemplo :
# include <iostream,h>
#include <math.h>
#include<conio.h>
main ( )
{
float a,b;
double poten;
cout<<Ingrese los Nmeros<<endl
<<Ingrese el valor de a: ;>>cin>>a;
cout<<Ingrese el valor de b: ;>>cin>>b;
poten=pow(a,b);
cout<<La Potencia de <<a<<Elevedo a
<<b<<Es <<poten<<endl;
getch( );
}
SECUENCIAS DE ESCAPE
Secuencia
\n
\t
\b
\a
Normal
Nueva lnea
Tab. horizontal
Retroceso
Bell (alerta. bip)
Pgina 34 de 183
UNI FIM
BORLAND C++
II Multiples :
switch(){
case .procesos.; break;
default:
}
Falso
Condicin
Sentencia 2
Verdadero
Sentencia 1
if else (doble)
if(<condicion>){
instruccion1}
else{
instruccion2}
if else if
if(<condicin>){
instruccin a ;}
else if(<condicin>){
instruccin b;}
else if(<condicin>);{
instruccin c;}
Valor Ejemplo:
.
#include<iostream.h>
.
main(){
else{
float a,b;
instruccin n;}
float div;
Ejemplo:
cout<<Ingrese a: ;cin>>a; resuelve una ecuacin de 1er grado con una
cout<<Ingrese b: ;cin>>b; incgnita:
if(b)
<<"ax + b =0"<<endl
{div=a/b;
<<endl;
cout<<"El
resultado
es: cout<<"a =";cin>>a;
"<<div;}
cout<<"b =";cin>>b;
else
if (a==0) {cout<<" No tiene Solucion ";}
{cout<<"Division por cero ";} else if(b==0){x=0; }
getch( );
else {x=(-1)*(b/a);}
}
cout<<"La Solucin a la Ecuacin : "<<a<<"x
+ "<<b<<"=0 ";
cout<<setiosflags(ios::fixed|ios::showpoint);
cout<<setprecision(3)<<endl<<"Es
X
="<<x;
cout<<"\n Otro Calculo :?[S][N] ";
opc=toupper(getch());
Pgina 35 de 183
UNI FIM
BORLAND C++
if(opc=='N')break;}
}
El compilador evala las expresiones condicionales desde arriba descendiendo, y tan pronto como el compilador
encuentre una condicin verdadera, ejecuta la instruccin asociada y salta el resto de la escalera. Si no es as se
ejecutara el "else" final. Si no hay else al final y son falsas las otras condiciones no se efecta nada.
La Instruccin switch
Default
Si al evaluar <expresin> esta toma un valor que no se encuentra en ninguna <exp_constant> de los casos entonces se
proceder con la ejecucin de la <instruccin por defecto>.
INICIO
EXPRESION
EXP_CONST 1
EXP_CONST 2
EXP_CONST 3
INSTRUCCIN 1
INSTRUCCIN 2
INSTRUCCIN 3
EXP_CONST N
INSTRUCCIN N
OTRO CASO
INSTRUCCIN X
MENSAJE
Sintaxis :
switch(<expression>) {
case <exp_const1>:
instruccin(s);break;
FIN
case <exp_const2>:
instruccin(s);break;
case <exp_const3>:
instruccin(s);break;
.
.
default :
instruction(s);
Pgina 36 de 183