Sei sulla pagina 1di 35

Universidad Nacional de Ingenieria

Facultad de Mecanica

BORLAND C++ 5.0


CON APENDICE EN MATLAB

Ingeniero Daniel Osorio Maldonado


UNI – FIM
BORLAND C++

NTRODUCCION
Borland C++ es un lenguaje de programación orientado a Objetos que utiliza como plataforma las
herramientas del lenguaje C estándar 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 diseño a mano de los pasos a seguir en la solucion de un
problema este diseño 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 descripción del Entorno Integrado de Desarrollo del Borland C++. El esqueleto o
estructura del Lenguaje Borland C++/C++ que , acompañará durante todo el curso. Se dará énfasis a la
técnica de programación 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, asignación
dinamica de memoria, para finalmente terminar con un enfoque preliminar de lo que se entiende por
programación orientada a objetos, con ejemplos sencillos.
En el Apéndice se desarrolla una primera parte de Matlab en su etapa, sin llegar aprofundizar con la idea
que sirva de apoyo en la formación 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.

INTRODUCCIÓN A LA PROGRAMACIÓN
El Objetivo es Familiarizar al alumno con el entorno del Lenguaje de Programación versátil y fácil 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.
Algunos conceptos a tomarse en cuenta:
Dato(s)
Es una información que va a ser representada en un programa para su posterior modificación.
Lenguaje maquina
Conjunto de instrucciones numéricas en sistema binario (1 0 0 1 ) reconocido por el computador como
micro_operaciones.
Preprocesador
Permite la inclusión de archivos(#include), sustitución de macros(#define) y compilación condicional, las líneas
que comienzan con # contiene instrucciones para que el compilador realice ciertas tareas antes de que la
compilacion del programa se active es decir antes que el compilador traduzca el programa fuente en codigo
máquina. Su sintaxis es independiente del resto del lenguaje, siendo necesaria que estas líneas sean escritas
desde la primera columna del programa.
Compilador
Es un programa encargado de traducir las instrucciones de un programa a instrucciones de lenguaje de
maquina, verifica que no exista errores sintacticos del Lenguaje de programación .
Sentencia
Describe el conjunto de acciones a seguir especificado en un lenguaje de programación que será ejecutado
por el computador.
Sintaxis
La sintaxis de un lengueje de programacion es el conjunto de reglas para formular instrucciones
gramaticalmente correctas para el lenguaje sea cual fuere. Ahora bien, en la practica significa esto que una
instrucción en Borland C++ con la sintaxis correcta tiene una forma apropiada especificada para su
compilador, de tal manera que éste aceptará la instrucción y no generará un mensaje de error.

Ing. Daniel Osorio Maldonado


Página 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 solución a un problema y que puede o no ser ser resuelto por una computadora , generalmente el
algoritmo viene acompañado de un pseudocódigo 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 solución de un Problema.
‰ Un análisis profundo del problema planteado.
‰ Diseño y construcción del Algoritmo.
‰ Verificación del algoritmo.

Se entiende que por verificación del algoritmo, el seguimiento del mismo con datos que se ajusten a las
característica del problema que se va a resolver.

Característica:
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 idénticos de entrada.
‰ Finito : El algoritmo, independientemente de la complejidad del mismo, debe ser siempre de
longitud finita.

Metodología:
‰ Definición 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/Impresión de resultados.

Pseudocodigo
Es la parte textual del algoritmo,se podría decir que es como la receta para un paciente o también una
receta culinaria para cocinar un plato. Generalmente es la traducción del Inglés de la sintaxis del
compilador al idioma con el que estamos trabajando.

Ing. Daniel Osorio Maldonado


Página 4 de 183
UNI – FIM
BORLAND C++

DIAGRAMA DE FLUJO
Un diagrama de flujo es la representación gráfica de un algoritmo.
En cuanto a la simbologia utilizada para la representación, se tomara la norma (ANSI – ISO).

DIAGRAMA DEFINICION

INICIO – FIN

ENTRADA DE DATOS

PROCESOS/CONSTANTES

F V BIFURCACIÓN(V/F)

PROCESOS(Desde/Para)

LLAMADA A (PROCEDIMIENTOS/FUNCIONES)

ESCRITURA

PANTALLA

CONECTOR

CONECTOR A SIGUIENTE PAGINA

Direcciones del flujo del programa

Ing. Daniel Osorio Maldonado


Página 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 interpretación, tal como se vera en los ejercicios y aplicaciones.

Inicio
Accion 1
Accion 2
Accion 3
Fin

Codificación y Programación
Es el Proceso mediante el cual se traduce un algoritmo a una codificación en un lenguaje de programación
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 solución 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 demás
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 posición de memoria cuyo valor puede cambiar
durante el desarrollo del algoritmo o ejecución 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 alfanuméricos 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.

Ing. Daniel Osorio Maldonado


Página 6 de 183
UNI – FIM
BORLAND C++

Tipos de datos en general:


Se denomina tipo de datos a las características propias de un objeto_dato o entidad, por ejemplo la edad
o el domicilio de un registro, deben tener una característica que la diferencie una de otra, la edad debe
ser entero y el domicilio cadena (también se conoce como alfanumérico), podemos decir entonces que
existen, en la mayoría de los lenguaje de Programación, los siguientes tipos de datos:
Numéricos
Alfanuméricos
Carácter
Lógicos (booleano) : cierto/falso
Este tipo de Dato no existe en C++/Borland C++, lo que existe es la representación 0 para falso y 1 para
verdadero.
En Borland C++ es bueno señalar 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

Caen en este campo tambien los Interruptores o Cnmutadores(SWITCH), que son Objetos_Datos que
se utilizan en un programa y solo puedentomar dos valores (CIERTO y FALSO, 0 y 1),reallizando la funcion
de transmitir información de un punto a otro dentro del programa. Podemos decir que actua como
recordatorios manteniendo caracteristicas de objeto o cálculos que estuvieron presentes en un momento
anterior de la ejecución del programa.
Se utilizan inicializandolos con un valor y en los puntos en que corresponda se cambia al valor contrerio, de
tal forma que examinando su valor posteriormente podemos realizar la transmisión que deseabamos.
Ejemplos:
1er ejemplo con Borland C++ int i,sp=0,simp=0,sw=0; //asume falso
int sw=0; //se asume falso for(i=1;i<=100;i++)
........do{ if(i%2==0){
if(a<b) sp=sp+i;
cout<<proceso1; sw=1; // asume verdadero }
proceso2; else
sw=1 // asume verdadero simp=simp+i;
else cout<<"La suma de los primeros 100 pares es
cout<<proceso3 "<<sp<<endl
while(sw!=1);// mientras no sea verdadero <<"\nLa suma de los primeros 100 impares es
................ "<<simp;
2do Ejemplo de aplicación con Borland C++ getch();
/*Programa que suma los pares y los impares de }
100 numeros enteros positivos*/ /*Salida
#include<iostream.h> La suma de los primeros 100 pares es 2550
#include<conio.h> La suma de los primeros 100 impares es 2500 */
main(){
Vea otra aplicación y con diagrama de flujo, mas adelante.

Ing. Daniel Osorio Maldonado


Página 7 de 183
UNI – FIM
BORLAND C++

Operación de Asignación: La operación de asignación es el modo de


darle valores a una variable. La operación de asignación se representa con el símbolo Å .
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, específicamente 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 gráfico esquematiza lo dicho:

LAS VARIABLES EN LA MEMORIA


VAR1=66
SUMÅ0
AUXÅVAR1+17

ACUÅVAR1+5 SUMÅSUM+AUX+ACU

SUMÅ0+(66+17)+(66+5)

Como puede apreciar los valores son almacenados en bloque, claro que esta explicación 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 programación difiera de un programa de aplicación.
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 N – S
Pseudocodigo
Inicio INICIO
Leer R LEER R
Calculo del Área
CALCULAR S =pi*R*R
S=pi*R*R INICIO
CALCULA L=2*pi*R
Calculo de la longitud
L=2*pi*R ESCRIBE S,L
Escribir S,L FIN R
Fin

S=pi*R*R

P2: Hallar la resultante de 02 Fuerzas que forman un ángulo ‘θ’


Objeto_dato de Entrada: F1,F2, theta
Objeto_dato de Salida : Resultante R L=2*pi*R
Pseudocodigo
Inicio
Leer F1,F2,theta
S, L
K=pi/180

FIN

Ing. Daniel Osorio Maldonado


Página 8 de 183
UNI – FIM
BORLAND C++
Calculo de la Resultante
R= F12 + F 2 2 + 2 F1F 2 cos(thetaK )
ESCRIBIR R INICIO
FIN

DIAGRAMA N - S K=pi/180
INICIO
K=PI/180
LEER F1,F2,THETA F1,F2,θ
R = F1 + F 2 + F1F 2COS (θ * K
2 2

ESCRIBIR R
FIN
R= F12 + F 2 2 + 2 F1F 2 cos(θ * k )

P4. Desarrolle un algoritmo que permita simular el retiro


de dinero de un cajero automatico.El cajero solo R
emite billetes de las siguientes denominaciones:
200,100,50,20 y 10 .
Objeto_dato de Entrada: Q //Cantidad FIN
Objeto_dato de Salida : b200, b100, b50, b20, b10
//denominación de billetes
Pseudocodigo
Inicio
INICIO
Leer Q
b200 =entero(Q/200)
Q=resto(Q/200)
b100=entero(Q/100) Q
Q=resto(Q/100)
b50=entero(Q/50)
Q=resto(Q/50) b200 =entero(Q/200)
b20=entero(Q/20) Q=resto(Q/200)
Q=resto(Q/20) b100=entero(Q/100)
b10=entero(Q/10) Q=resto(Q/100)
b50=entero(Q/50)
Escribir b200,b100,b50,b20,b10
Q=resto(Q/50)
Fin b20=entero(Q/20)
N-S Q=resto(Q/20)
b10=entero(Q/10)
Leer Q
b200=entero(Q/200)
Q=resto(Q/200)
b100=entero(Q/100) b200,b100,b50,b20
Q=resto(Q/100) ,b10
b50=entero(Q/50)
Q=resto(Q/50)
b20=entero(Q/20) FIN
Q=resto(Q/20)
b10=entero(Q/10)
Escribir b200,b100,b50,b20,b10
Fin

TEMA: INSTRUCCIONES QUE CONTROLAN UN PROGRAMA

Las estructuras de selección permite al usuario tener un control del programa mediante el uso de
instrucciones de control,constituyendo mecanismos para dirigir el flujo de ejecución, dentro de estas
a).Instrucción de Control Simle.
La estructura Si - Entonces

Ing. Daniel Osorio Maldonado


Página 9 de 183
UNI – FIM
BORLAND C++
Indica a la computadora que efectúe una serie de una o mas instrucciones basadas en el resultado de
una comparación.
INICIO

Pseudocodigo
SI condicion es cierta, entonces V
CONDICION
Proceso de Cierta
Fin de SI F
PROCESO
DIAGRAMA NASSI_SCHNEIDERMAN(N-S)

CONDICION

VERDAD (SI)
PROCESO 1
FIN
PROCESO 2
ESCRIBIR

FIN

b). Instrucción de Control de alternativa doble


Indica a la computadora que debera realizar
la comparación de 02 alternativas, si se
cumple la alternativa verdadera debera INICIO
realizar el proceso para esta alternativa
VERDADERA. En caso contrario debera
realizar la alternativa FALSA. DATOS
Pseudocodigo
Si (condicion )es Verdaddera entonces
F V
Proceso_Verdadad
CONDICION
Sino
Proceso_Falso
Fin del Si PROCESO_F PROCESO_V

NASSI SCHNEIDERMAN(N – S)
ESCRIBIR
CONDICION

FALSO VERDAD
FIN
PROCESO_F PROCESO_V

ESCRIBIR INICIO

Ejemplos FIN
de alternativa simple A
Ingresar desde teclado un numero y emitir un mensaje si el numero ingresado es
par.
Solucion V
Objetos deatos de entrada: A RESTO(A/2)=0
Objeto dato de Salida: A es par
Pseudocodigo Mensaje= “PAR”
Inicio F

Ing. Daniel Osorio Maldonado ESCRIBIR


Página 10 de 183

FIN
UNI – FIM
BORLAND C++
Leer A
Si(residuo de A/2=0) entonces
Mensaje= “El numero es par”
Fin del Si
Escribir Mensaje
Fin

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

INICIO

A,B

V
A>B

Tempo=A
F A=B
B=Tempo

ESCRIBIR
A, B

FIN

INICIO

Ingrese una edad y decir si es mayor de edad e imprimir la edad ingresada


Objeto_Dato de Entrada: Edad E
Objeto_Dato de Salida :Men y edad
Pseudocodigo V
Inicio E>=18
Leer E
Si (E>=18) entonces
Men= “Mayor de Edad” Mayor de Edad
F

Ing. Daniel Osorio Maldonado Men, E


Página 11 de 183

Fin
UNI – FIM
BORLAND C++
Fin del Si
Escribir inicio
Men, E
Leer E
Fin Si(E>=18)

VERDAD (SI)
Men= “Mayor de Edad”

ESCRIBIR
Men,E
FIN

Ejemplos de alternativa doble


Se tienen 02 numeros ingresados desde teclado verificar si A es divisible por B
Solucion
Objetos Datos de Entrada: A,B INICIO
Objetos Datos de Salida : mensaje
Inicio
Leer A y B A,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 división” V Men= “A debe ser
B=0
Si (A>B) entonces diferente de cero”
Si (resto(A/B)=0) entonces F
Men= “A es divisible por B” Men= “No es
Sino possible la division
Men = “A no es divisible por B”
Fin del Si F
Sino A>B V
Men=
“A debe se mayor que B” F
A debe ser Residuo(A/B)=0
Fin del Si mayor que B
Escribir Men
Fin V
Men= “A no es Men= “A es
divisible por B” 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

Ing. Daniel Osorio Maldonado


Página 12 de 183
UNI – FIM
BORLAND C++
Leer Nota (N)
Si N>=17 entonces F
Men=”Sobre Saliente” N>=17
Si no V
Si N>=15 entonces SOBRE
Men= “NOTABLE ” F N>=15 SALIENTE
Sino
Si N>=13 entonces V
Men= “Aprobado” Notable
Sino
Men= “Asistente”
Fin del Si V
N>=13
Fin del Si
Fin del Si F
Escribir Men
Fin Asistente Aprobado

Men

INICIO

N-S

INICIO

LEER NOTA N

SI N>=17
NO SI

N>=15
NO SI SOBRESALIENTE
NO N>=13 SI NOTABLE

ASISTE APROB

ESCRIBIR MEN

FIN

Ing. Daniel Osorio Maldonado


Página 13 de 183
UNI – FIM
BORLAND C++

INICIO

A,B

F V
A>B

F V A mayor que B
A= B

B mayor que A 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 INICIO
Si (A > B) entonces
A es mayor en B
Si no A,B
Si (A = B) entonces
A es igual a B
Si no F V
A>B
B es mayor que A
Fin del Si
Fin del Si F V A mayor que B
A= B

B mayor que A A es igual a B

Mensaje

FIN

Ing. Daniel Osorio Maldonado


Página 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

SWÅFALSO

LEER NOTA

T F
NOTA<>-1
T
T F T
NOTA=10 SW

SWÅCIERTO Escribir “Hubo 10” Escribir “Hubo 10”


F

IMPRIME
LEER NOTA

FIN

Ing. Daniel Osorio Maldonado


Página 15 de 183
UNI – FIM
BORLAND C++

Tema: Instrucción de Control de Selección Multiple (conocido


como do Case; Case of; switch() )
Permite tener un control de una Var_Selectora, como “condición” para varias alternativas; dependiendo
del Lenguaje de Programación la condición 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, expresión, función; empero, sin embargo, el valor representado
debe ser por decir lo menos, un valor escalar es decir un dato numérico entero o un carácter . 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 acción o
proceso.

Modo en que Funciona

(a) El valor de la Var_Selectora o(condición) se evalúa 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 acción cuando ninguna de las
alternativas se cumple, es el caso del “si no” , el termino no es obligatorio, pero permita clarificar una
aplicación.
INICIO
Pseudocodigo
Condicion o var_Selectora
En Caso que (Var_Selctora) sea Leer Dato
Caso 1 proceso_1
Caso 2 proceso_2
Caso 3 proceso_3 Condicion
……………………….
Caso N proceso_N
Caso X proceso_Desconocido
Var_alterna1
Fin del Caso Proceso1

Var_alterna2 Proceso2

Var_alterna3 Proceso3

Var_alternaN ProcesoN

Var_alternaX Proceso_Desco

IMPRIMIR

FIN

Ing. Daniel Osorio Maldonado


Página 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

Aplicación: Programar una operación Aritmética con 02 operandos: Operando1 y Operando2


(enteros O reales) y que de acuerdo al Operador elegido habra un resultado. Considere que ud. Ha
diseñado una calculadora que le permita realizar operaciones matemáticas elementales y que Los
operadores permitidos son:
¾ + : suma Mas =’+’
¾ - : diferencia Menos =’-’
¾ * : producto Por =’*’
¾ ? : división entera Entre =’?’
¾ ¿ : residuo
Residuo =’¿’
¾ ~ : potencia
Potencia = ‘~’
solucion:
Definir objetos_datos
Objeto_dato de entrada:
operador,Ope1,Ope2.
Objeto_dato de salida : Resultado.
Pseudocodigo:
Definir los Operadores: Entonces
Inicio Resultado =Residuo(Ope1/Ope2)
Leer operador si no
Ingrese : Ope1, Ope2 Resultado =0
En CASO que Operador SEA Fin del SI
‘+’ : Resultado = Ope1 + Ope2 ‘~’ :Resultado=Ope1 elevado al Ope2
‘-‘ : Resultado = Ope1 – Ope2 Otro Caso :Rsultado :” No existe Operación”
‘*’ : Resultado = Ope1 * Ope2 Fin del Caso
‘?’ : SI Ope2 es diferente de 0 Imprimir respuesta
entonces fin
Resultado = Ope1 ? Ope2
si no
Resultado =0
Fin del SI
‘¿’ : SI Ope2 es diferente de 0

Ing. Daniel Osorio Maldonado


Página 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 ~ X
Se deja como ejercicio para que sea completado.

¿Podría Ud. Completar el cuadro?

Ing. Daniel Osorio Maldonado


Página 18 de 183
UNI – FIM
BORLAND C++ INICIO

Inicializar constantes
Mas =’+’
Menos =’-’ IMPRIMIR
Por =’*’ RESULTADO
Entre =’?’
Residuo =’¿’
Potencia =’~’
FIN
DIGITAR EL OPERADOR A
USAR

INGRESE :
OPERANDO1
OPERANDO2

OPERADOR

‘+’ Resultado = Operando1 + Operando2

‘-‘ Resultado = Operando1 - Operando2

‘*’ Resultado = Operando1 * Operando2

‘?’

Operando2
No Diferente de φ Si

RESULTADO =φ Resultado= Ope1 ? Ope2

‘¿’ RESULTADO=RESIDUO(OPER1/OPER2)

RESULTADO=(OPE1)~(OPE2)
‘~’
1

TEMA: Instrucción 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

Ing. Daniel Osorio Maldonado


Página 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 sólo 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 instrucción (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.

Instrucción 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 condición.se pueden representar:
Pseudocodigo
mientras (condición ) sea verdadera
proceso
fin del mientras

NO
CONDICION
Diagrama Nassi_Schneiderman
SI IMPRIMIR

ACCIONES MIENTRAS < CONDICION>


FIN
Accion1
Accion2
Accion3

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

FIN
1 1 1 1 1
D= + + + +K+
A A + B A + 2 B A + 3B A+ N *B
A,B,N

solucion: SUMA=0 ; C=1


definir objetos_datos E/S
objeto_dato de entrada: A,B,N.
Objeto_dato de salida : SUMA DE N.
1
Pseudocodigo:
Inicio
Leer A,B,N.
Definir C=1 //contador

Suma=0.
Mientras(C=N) hacer 1

Ing. Daniel Osorio Maldonado


Página 20 de 183
UNI – FIM
BORLAND C++

AB=(A+c*B).
Inverso=1/AB.
Suma=Suma+Inverso.
C++. C<N
Fin del mientras
Escribir: Suma=Suma+1/A.
Fin 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.

4 6 8
Su = 2 + + + + ...
3 5 7 INICIO
Solucion:
Objetos_Datos de Entrada: N
Objetos_Datos de Salida: N
suma de posiciones pares: sp
suma total de elementos: su
Pseudocodigo i=1,su=0,sp=0
Inicio
Leer N F
Establecer variables i<-N
i=1; par=0;Su=0;
mientras(i<=N) V sp,su
si(resto (i/2=0)entonces V
Resto(i/2)=0
sp=2*i/(2*i-1)
fin del si F
su=2*i/(2*i-1) sp=2*i/(2*i-1)
i=i+1
fin del mientras
escribir su, sp FIN

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

i=i+1

Instrucción de control Repetitivo


“hacer procesesos
Proceso 1
mientras(condcion)
En este tipo de Instrucción de control repetitivo
difiere un poco con respecto al mientras en el Proceso 2
sentido que las instrucciones se realizan al menos una

V
F
Condición

Ing. Daniel Osorio Maldonado Escribir


Página 21 de 183

FIN
UNI – FIM
BORLAND C++
vez antes de comprobar si la condición se cumple, es muy parecida al “repeat until” del Pascal.
Pseudocodigo
Hacer (procesos)
mientras (condición ) sea verdadera
fin del hacer .

DIAGRAMA (N-S)
PROCESO1
PROCESO2

MIENTRAS CONDICION

Problema de Aplicación
Se ingresa un Numero de varias cifras, INICIO
y luego hallar la suma de sus cifras, el numero
invertido y la cifra mayor.
Por ejemplo 1234, la suma es:10, invertido es Leer num
4321 y la cifra mayor es 4.
Objetos_datos de entrada y Salida
Objeto_Dato de Entrada: Numero
inversoÅ 0,Su Å 0, MÅ0
Objeto_Dato de Salida:Salida numero invertido.

Pseudocodigo
Inicio dgtÅresto(num/10)
Leer numero
Inicializar variables : inverso Å 0, SuÅ0,MÅ0
Hacer inversoÅinverso*10+dgt
digitoÅ resto(M/10) Su ÅSu+digito
InversoÅ inverso*10+digito.
Su ÅSu+digito
V
Si (digito>M) entonces
dgt>M
M Ådigito
Fin del si
numero=entero(numero/10) F
MÅdgt
Mientras(numero>0)
Escribir inverso, Su, M
Fin
numÅentero(nume/10)

F
V
num> 0

Inverso , Su, M

FIN

Ing. Daniel Osorio Maldonado


Página 22 de 183
UNI – FIM
BORLAND C++
Esta instrucción “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:

1 2 3 4
S= − + − + ...
t +1 2t + 3 3t + 5 4t + 7

Instrucción de control Repetitivo for


Esta instrucción de control repetitivo considera: que el proceso debe iniciarse para un valor inicial que
vendría a ser el inicio del contaje, una segunda expresión que contiene el valor máximo o mínimo que puede
tener el contaje y determina cuando termina el ciclo, hasta aquí tal vez es el formato que usa la
mayoria de los lenguajes de programación; 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.

Ing. Daniel Osorio Maldonado


Página 23 de 183
UNI – FIM
BORLAND C++

Diagrama de Flujo (for )


Pseudocodigo
INICIO
desde/para vi=1 hasta vf de uno en uno Hacer
Proceso_A
Proceso_B Para Vcont=
…………….. Valor_inic, Valor_fin
Fin del desde/para HACER
Diagrama N-S

PROCESO
desde/para de var_contador=Vi Hasta Vf

ProcesoA
ProcesoB IMPRIMIR

Fin desde/para

FIN

Aplicación
Se va a Ingresar un Numero y la tarea
INICIO
consiste en mostrar todos los divisores de
ese numero ingresado.
Cuando el numero Ingresado tiene por
Lee ne
divisores a la unidad(1) o al mismo numero
mostrara un
mensaje diciendo “ El Numero es Primo ” ContDivi=0

SOLUCION
Objetos_Datos de ENTRADA Y SALIDA para Divisor=1, hasta ne
Objejo_Datos de Entrada: el Numero
entero(NumeEnte)
Objeto_Dato de Salida : numero de
V
divisores(NumeDivi), mensaje Resto(ne/Divisor)=0

PSEUDOCODIGO
Inicio Escribir Divisor
Leer un Numero entero: NumeEnte F
Definir la variable Contador de Divisores e
Inicializarla a 0 ContDivi=ContDivi+1
NumeDivi=0
Contabilizar los divisores y mostrarlos
PARA Divisor=1 HASTA NumeEnte,
HACER F V
ContDivi=2
SI Residuo de NumeEnte/Divisor=0,
ENTONCES
Escribir Divisor
ContDiv=ContDiv+1 No es Primo Numero Primo
Fin del SI
Escribir mensaje
SI ContDiv=2,ENTONCES
MENSAJE “Numero Primo” MENSAJ
SINO DIVISORE
MENSAJE “No es Primo”
Fin del Si
Fin FIN

Ing. Daniel Osorio Maldonado


Página 24 de 183
UNI – FIM
BORLAND C++

TEMA: ELEMENTOS BÁSICOS DEL BORLAND C++


Símbolos
Están clasificados en:
letras : ‘A’..’Z’, ‘a’..’z’ (no incluye la ñ y Ñ)
dígitos : 0 1 2 3 4 5 6 7 8 9
símbolos especiales
se tienen los siguientes:
simples :

SIMPLES

+ - * / = < > “

; ! : % & { } . ,

^ | sizeof

DOBLES
<= >= == !! |= &&

?: -> >> << != ( ) [ ] += -=

>>= <<=

// /* */

Identificadores

Es el nombre mediante el cual se define una variable, constante, tipo, función, estructura, unión, clase,
objeto, etc.
Los identificadores declarados en Boland C++ tienen las siguientes características.
• Pueden estar conformados por 127 caracteres como máximo.
Ejemplos :
Suma = ( 4 caracteres )
Contador = ( 8 caracteres )
• Se hace distinción entre mayúsculas, minúsculas.
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 carácter debe ser letra ó subrayado
Ejemplo :
Suma = Correcto
1 Suma= Incorrecto el 1er carácter debe ser letra */
Suma1= Correcto

Ing. Daniel Osorio Maldonado


Página 25 de 183
UNI – FIM
BORLAND C++
Suma 2m= no debe haber espacios entre el nombre//incorrecto
Suma_2m= correcto
Suma+si= incorrecto, no debe haber operación entre su nombre
S9_suma= correcto
S9+suma=incorrecto

Palabras reservadas
Son identificadores que tienen un significado especial establecido por el lenguaje de programación.
Siempre deben escribir en minúsculas.
Se lista a continuación las palabras reservadas definidas por el compilador Borland C++

asm auto break case continue


char class const default delete
Do double else enum extern
Far float for friend if
inline int interrup long near
new operator pascal private protected
public register signed sizeof static
struct union unsigned virtual void
volatile while time rand 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++


Expresión
Es un conjunto de operaciones ( Datos y/o variables ) y operadores que actúan ó realizan operaciones
sobre los operandos, y que mediante el uso racional de paréntesis puede forzar las expresiones matemáticas
convenientes.
Ejemplo : 13*A+(11+B/46)
( x +41) /37

El cierto y falso en Borland C++


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.

Ing. Daniel Osorio Maldonado


Página 26 de 183
UNI – FIM
BORLAND C++

Tema: Los Operadores de Borland C++


[ ] ( ) . -> ++ -- &
* + - ! sizeof /
% << >> < > < = >
== != | && !! ? :
= * = / = % = + = - = << =
> > & = | = , # ##

Las siguientes operaciones son específicos 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 dirección ( &A )
• En C++ un paso de parámetro por referencia a una función.
En el primer caso el & es un Operador Binario.
En el segundo caso el & es un Operador Unario.

Prioridad de Operadores
En Borland C++ la tabla de Prioridad de los Operadores esta dividida en 16 categorías.
La categoría #1 tiene la más alta Prioridad.
La categoría #2 ( los Operadores Unarios ) toman la segunda Prioridad, hasta el Operador coma (,) que
tiene igual Prioridad

Para el caso de los operadores unarios ( la categoría #2 ), condicional ( la categoría #14 ) y la de asignación
( la categoría #15)
La agrupación de estos operadores se ejecutan de Derecha a Izquierda todo, otra asociación 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.

Categoría #1 Operador Que realiza (o ejecuta)


1. Más alta () llamada de una función
[] Subscripción de un Arreglo
-> C++ selector de componente Indirecto
:: C++ acceso o resolución del alcance
. C++ selector de componente directo
2. Unaria ! Negociación Lógica ( NO)
A nivel de bits ( complemento a I )
+ Unitario más
- Unitario menos
++ Preincremento o postincremento
-- Predecremento o postdecremento
& Dirección de la variable
* Indirecciòn
sizeof Devuelve el tamaño del operando en ocho bits
new (separación de memoria dinámica en C++ )
delete (liberación de memoria dinámica en C++ )

Ing. Daniel Osorio Maldonado


Página 27 de 183
UNI – FIM
BORLAND C++
3. Miembros de acceso . * C++ Referencia a un campo
Æ * C++ Referencia a un campo
4. Multiplicativos * Multiplica
/ Divide
% Resto ( módulo o resto de la División entera )
5. Aditivo + Binario más
- Binario menos
6. Desplazo << Desplazamiento de bits a la izquierda
>> Desplazamiento de bits a la derecha
7. Relacional < Menor que
<= Menor que o igual que
> Mayor que
>= Mayor que o igual que

Categoría #2 Operador Que realiza (o ejecuta )


8. Igualdad == Igual a (tambien identicamente igual a)
!= No es igual a
9. & A nivel de bits Y
10. ^ A nivel de bits XOR
11. | A nivel de bits 0
12. && Lógico ‘y’
13. || Lógico ‘o’
14. Operador Ternario ?: (a >b )? Indica if (a) then “x,” else “y“
Donde el operador > puede ser cualquier otro
operador, <, >=, <=, =.
15. Asignación = Asignación sencilla
*= Asigna el producto
/= Asigna el cociente
%= Asigna el resto ( residuo)
+= Asigna la suma
-= Asigna la diferencia
&= Asigna AND a nivel de bits
^= Asigna XOR a nivel de bits
|= Asigna Or a nivel de bits
<< = Asigna desplazamientos de bits a la izquierda

>> = Asigna desplazamientos de bits a la derecha

16. La coma , Evaluación

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


Este operador reemplaza en cierta medida a la instrucción 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 números 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;

Ing. Daniel Osorio Maldonado


Página 28 de 183
UNI – FIM
BORLAND C++
getch();
}}

Los Numero PseudoAleatorios


El Lenguaje C/C++ permite generar números 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
librería estándar la otra utiliza el reloj del sistema.
Herramientas a usar
a). ramdomize(); al inicio y antes de utilzar las funciones que genere los valores pseudoaleatorios, esta
función 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.
#include<iostream.h> Ejemplo
#include<conio.h> //Simule el lanzamiento de un dado y adivine el
#include<stdlib.h> // obligado ; <time.h> valor de la cara en una tirada
opcional #include<iostream.h>
main(){ #include<conio.h>
randomize();int Vf=45;Vi=1; #include<stdlib.h>//librería para los números
int m; //pseudoaleatorios
m=rand()%33 //genera valores desde 0 hasta 32 main(){ randomize();
w=random(Vf-Vi-1)+1; //genera valores desde 1 int cara=random(6)+1;
hasta 45 cout<< "El Valor de una tirada es " <<cara;
…………………….. getch();
} }
Salida
El Valor de una tirada es 5

Direccionando en la pantalla( gotoxy(col,fil))


Borland C++ permite direccionar en la pantalla, una ubicación que permita al usuario una mejor vista de la
aplicación.
El comando gotoxy(col,fil), indica, un desplazamiento vertical(x) y un desplazamiento horizontal(y).
En la pantalla, el desplazamiento vertical va desde 0 hasta 80 caracteres, mientras que el desplazamiento
horizontal va desde 0 hasta 25.
Puede apreciarse en el siguiente diagrama, una salida para A+4.
Para una entrada vale lo referido.

0 1 2 3…10…15…20…30…50…60…70 …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) #include<iostream.h>


//Se pide generar 03 valores aleatorios en #include<conio.h>
el rango [7,17] y halla el mayor #include<stdlib.h>

Ing. Daniel Osorio Maldonado


Página 29 de 183
UNI – FIM
BORLAND C++
main(){ if(z>m)
float x,y,z;randomize(); m=z;
x=random(17)+7; gotoxy(20,15);cout<< "El Mayor es
gotoxy(10,5);cout<< "x ="<<x; ="<<m;
y=random(17)+7; getch();
gotoxy(10,7);cout<< "y ="<<y; }
z=random(17)+7; /*Salida
gotoxy(10,9);cout<< "z ="<<z; x =12
float m=x; y =23
if(y>m) z =11
m=y; El Mayor es =23 */

Tema: Tipos de Datos en C++/Borland C++


Determina la naturaleza del dominio de valores que puede tomar una variable u Objeto_Dato, así como
también los operadores que pueden procesar dicha variable.
Existen 2 tipos de datos
¾ Tipos Fundamentales.
¾ Tipos Derivados.

Tipos Fundamentales

Tipos enteros Tipos reales Tipo cadena Tipo vacio

Tipos Derivados

Punteros Estructuras Uniones Arreglos Funciones Clases

Los tipos de Datos de acuerdo a la plataforma de bits de los


Fundamentales
Tipo de Dato para 16 bits
Tipo Ancho Rango

unsigned char 8 bits 0 to 255


Char 8 bits -128 to 127
Enum 16 bits -32,768 to 32,767
unsigned int 16 bits 0 to 65,535
short int 16 bits -32,768 to 32,767
Int 16 bits -32,768 to 32,767
unsigned long 32 bits 0 to 4,294,967,295
Long 32 bits -2,147,483,648 to 2,147,483,647
float 32 bits 3.4 x 10-38 to 3.4 x 10+38
Double 64 bits 1.7 x 10-308 to 1.7 x 10+308
long double 80 bits 3.4 x 10-4932 to 1.1 x 10+4932
near (pointer) 16 bits not applicable
far (pointer) 32 bits not applicable

Ing. Daniel Osorio Maldonado


Página 30 de 183
UNI – FIM
BORLAND C++

Tipo de Dato para (32-bits)

Tipo Ancho Rango

unsigned char 8 bits To 255


Char 8 bits -128 To 127
short int 16 bits -32,768 To 32,767
unsigned int 32 bits 0 To 4,294,967,295
Int 32 bits -2,147,483,648 To 2,147,483,647
unsigned long 32 bits 0 To 4,294,967,295
Enum 16 bits -2,147,483,648 To 2,147,483,647
Long 32 bits -2,147,483,648 To 2,147,483,647
Flota 32 bits 3.4 x 10-38 To 3.4 x 10+38
Double 64 bits 1.7 x 10-308 To 1.7 x 10+308
long double 80 bits 3.4 x 10-4932 To 1.1 x 10+4932
near (pointer) 32 bits not aplicable
far (pointer) 32 bits not aplicable

El uso de datos de tipo double y float es aplicado en las matemáticas como punto flotante. (Números
reales)
En Borland C++ realiza en forma automática en las operaciones la asignación del punto flotante cuando éste
no se especifique.

Tipos de dato void (tipo de dato vacío)


Este tipo de dato es utilizado cuando una función realiza una tarea y la función no retorna valor
alguno.
Ejemplo :
void error ( char *name)
{ cout <<”Nombre Inicial” << name :
}

Cuando una función no tiene parámetros

Ejemplo :
int LeerN ( )
{
procesos;
return 1;
}

Puede también ser utilizado para declarar punteros como vacío. Con lo que se puede
operar con datos de distintos tipos. Esto es porque al compilar este no determinará el
tamaño de la variable puntero vacío.

Ing. Daniel Osorio Maldonado


Página 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 */

TEMA : Estructura de un Programa en Borland C++


Un programa en Borland C++ está dividido en cuatro secciones bien definidas.

Instrucciones del Preprocesador : #include <librerias >


Macros y Constantes : #define macro
: const var1;
Variables Globales : unsigned int a,b;
Struct , unions, class .
Prototipo de Funciones
Funcion Principal main () {
Cuerpo del Programa Principal
Llamad a Funcion Principal
Implementacion de Funciones

1 Instrucciones del Preprocesador


El preprocesador posibilita incluir diversas instrucciones para el compilador en el código fuente de un
programa en Borland C++. Lo cual expande al ámbito del entorno de programación, permitiendo la
correcta manipulación de constantes y funciones en la codificación de un programa.
2 El preprocesador posibilita incluir diversas instrucciones para el compilador en el código fuente
de un programa en Borland C++. Lo cual expande al ámbito del entorno de programación,
permitiendo la correcta manipulación de constantes y funciones en la codificación de un programa.
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 sección solo se especifica la cabecera de las funciones
definidas por el usuario.
6 Función Principal
Todo programa en Boland C++ por lo menor debe estar conformado por una función, la cual es llamada
función principal (función main())
Al ejecutarse un programa está función será la única que se encargará del control de todo el software
desarrollado.
Ejemplo :

Ing. Daniel Osorio Maldonado


Página 32 de 183
UNI – FIM
BORLAND C++
main ( )
{ // Inicio de la función 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 codificación 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. Implementación de Funciones

Las funciones definidas por el usuario son codificadas en esta sección 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 Asignación
Es el proceso mediante el cual se asigna un valor ò dato a una variable previamente definida en dicha
función
La asignación se realiza mediante el operador “=”

Sintaxis
identificadores _ Variable = dato ;
En dato puede ser el resultado de una expresión en la cual se procesan variables y constantes definidas por
el usuario, esto quiere decir que la expresión de la derecha es evaluada y el resultado es asignado a la
variable especificada a la izquierda.
Su=1;
par=2
Su +=par;

Entrada y salida de datos.


Las operaciones de entrada no forman parte del conjunto de sentencias de Borland C++. Por lo que
debe incluirse un fichero que contenga dichas funciones de Entrada y Salida I/O.
Lo que da lugar a tener una de las siguientes líneas de programa.
#include <stdio.h> //En ANSI C

Ing. Daniel Osorio Maldonado


Página 33 de 183
UNI – FIM
BORLAND C++
#include <iostream.h> // Para C++/Borland C++ con objetos

#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 búsqueda 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 estándar (pantalla)
cin>>Lee caracteres de la entrada estándar (teclado)

Salida
Permite la salida de datos por pantalla al tener una variable o expresión numérica 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 Nùmeros”<<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 Normal
\n Nueva línea
\t Tab. horizontal
\b Retroceso
\a Bell (alerta. bip)

TEMA: INSTRUCCIONES DE CONTROL


Las estructuras de selección permite al usuario tener un control del programa mediante el uso de
instrucciones de control,constituyendo mecanismos para dirigir el flujo de ejecución, dentro de estas
Instrucciones, el Lenguaje C define tres categorías bien definidas:

• Instrucciones de Selección(if..else; if… then; if…else if else ; switch).


• Instrucciones de Iteración(bucle – lazo).
• Instrucciones de salto(break, continue,exit).
I.Selectivas
¾ Simples : if...else proceso de Verdadero
¾ Dobles : if…condicion proceso_V else proceso_F
¾ Anidados: if…condicion proceso_V else if condicion proc_verd else if condic

Ing. Daniel Osorio Maldonado


Página 34 de 183
UNI – FIM
BORLAND C++
II Multiples :
¾ switch(…){
case ….procesos….; break;
……………………………………
default:
}

III Repetitivas o de Iteracion : a) while(…) b)do …. while(…) c)for (….)

INSTRUCCIONES SELECTIVAS O CONDICIONALES:

Falso Condición Verdadero

Sentencia 2 Sentencia 1

Dado que las expresiones lógicas toman el valor de verdadero


o falso se necesita una instrucción de control que dirija al computador para ejecutar otras instrucciones, en
"C/C++" esta alternativa lo realiza con la instrucción o estructura de control

if (simple) if else (doble) if else if


if(<condición>){ if(<condicion>){ if(<condición>){
instrucción} instruccion1} instrucción a ;}
Ejemplo else{ else if(<condición>){
#include<iostream.h> instruccion2} instrucción b;}
main( ){ else if(<condición>);{
int a; instrucción c;}
cout<<”Ingrese Valor Ejemplo: .
a:”;cin>>a; #include<iostream.h> .
if(a>0) main(){ else{
cout<<”a es Positivo”; float a,b; instrucción n;}
getch( ); float div; Ejemplo:
} cout<<”Ingrese a: “;cin>>a; resuelve una ecuación de 1er grado con una
cout<<”Ingrese b: “;cin>>b; incógnita:
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 Solución a la Ecuación : "<<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());

Ing. Daniel Osorio Maldonado


Página 35 de 183
UNI – FIM
BORLAND C++
if(opc=='N')break;}
}

El compilador evalúa las expresiones condicionales desde arriba descendiendo, y tan pronto como el compilador
encuentre una condición verdadera, ejecuta la instrucción 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 efectúa nada.

La Instrucción switch
Esta instrucción, realiza comprobaciones múltiples o condiciones múltiples.
Borland C++ comprueba una variable sucesivamente frente a una lista de constantes enteras o de carácter,
luego de encontrar una
coincidencia, la computadora ejecuta las instrucciones o bloque de instrucciones que se asocian a la constante.

Default
Si al evaluar <expresión> esta toma un valor que no se encuentra en ninguna <exp_constant> de los casos entonces se
procederá con la ejecución de la <instrucción por defecto>.

INICIO

EXPRESION

INSTRUCCIÓN 1
EXP_CONST 1

INSTRUCCIÓN 2
EXP_CONST 2

INSTRUCCIÓN 3
EXP_CONST 3

EXP_CONST N INSTRUCCIÓN N

OTRO CASO INSTRUCCIÓN X

MENSAJE

Sintaxis :
switch(<expression>) {
FIN
case <exp_const1>:
instrucción(s);break;

case <exp_const2>:
instrucción(s);break;

case <exp_const3>:
instrucción(s);break;
.
.
default :
instruction(s);

Ing. Daniel Osorio Maldonado


Página 36 de 183

Potrebbero piacerti anche