Download - Clase 06 C++
LENGUAJE LENGUAJE DE DE
PROGRAMACION BORLAND PROGRAMACION BORLAND C++C++
ESTRUCTURA DE UN PROGRAMA y SUS COMPONENTES
Septiembre 2010
PROGRAMACION CON BORLAND C++PROGRAMACION CON BORLAND C++
Borland C++ es un lenguaje de programación derivado de C++. Desarrollado por la compañía Borland Software Corporación.
Mantiene las ventajas del C en cuanto a riqueza de operadores y expresiones, flexibilidad y eficiencia.
La evolución del C++ ha continuado con la aparición del Java, utilizada en la presente década para realizar aplicaciones en Internet.
ETAPAS PARA LA ELABORACION DE ETAPAS PARA LA ELABORACION DE UN PROGRAMAUN PROGRAMA
• El proceso de solución de un problema en la computadora conduce a la escritura y la ejecución del programa en la misma.
• La elaboración de un programa requiere un proceso creativo.
• La solución de un programa requiere las siguientes etapas :
• Análisis del problema• Diseño del algoritmo
Diagramas de flujo Pseudocodigo
• Codificación del programa• Compilación y ejecución del programa• Verificación y depuración del programa• Documentación
ETAPAS PARA LA ELABORACIONDE ETAPAS PARA LA ELABORACIONDE UN PROGRAMAUN PROGRAMA
• Las dos primeras etapas conducen a un diseño detallado escrito en forma de algoritmo.
• La tercera etapa (codificación) se implementa el algoritmo en un código escrito en un lenguaje de programación, reflejando las ideas desarrolladas en las fases de análisis y diseño.
• La compilación y ejecución traduce y ejecuta el programa.
• En la etapa de verificación y depuración el programador busca errores de las etapas anteriores y los elimina.
• Por último se realiza la documentación del programa.
ETAPAS PARA LA ELABORACION DE ETAPAS PARA LA ELABORACION DE UN PROGRAMAUN PROGRAMA
• Compilación ( Proceso de Traducción) Es el proceso mediante el cual se lleva un programa escrito en lenguaje de alto nivel a lenguaje de máquina.
• Compilador Es un programa que se encarga de la traducción del lenguaje simbólico al lenguaje de máquina.
COMPILACION PROGRAMA
LENGUAJE DE
MAQUINA
PROGRA FUENTE PROGRAMA OBETO
EJECUTA
RESULTADOS
LOAD
ANALISIS DEL PROBLEMA
Identificar los requerimientos internos y externos del problema:
• Requerimientos Internos (gestión de datos)
¿Qué debe hacer el programa?
¿Qué datos de entrada y de salida intervienen en el proceso?
• Requerimientos Externos (interacción con el usuario y con otras
aplicaciones) ¿En qué máquina y sistema operativo se debe ejecutar el
programa?
¿Quién será el usuario de la aplicación?
ETAPAS PARA LA ELABORACION DEETAPAS PARA LA ELABORACION DE UN PROGRAMAUN PROGRAMA
ETAPAS PARA LA ELABORACION DEETAPAS PARA LA ELABORACION DE UN PROGRAMAUN PROGRAMA
ANALISIS DEL PROBLEMA
Programa: Sumar dos números enteros
1. El programa debe pedir por teclado dos números (datos enteros)
2. Calcular la suma de los dos números introducidos por el usuario
3. Mostrar por pantalla el resultado obtenido : suma
ANALISIS DEL PROBLEMA
El Resultado se Mostrará en Pantalla
Introduzca el primer número (entero) : 3
Introduzca el segundo número (entero) : 5
La suma es: 8
ETAPAS PARA LA ELABORACION DEETAPAS PARA LA ELABORACION DE UN PROGRAMAUN PROGRAMA
ETAPAS PARA LA ELABORACION DEETAPAS PARA LA ELABORACION DE UN PROGRAMAUN PROGRAMA
DISEÑO DEL ALGORITMO
• Buscar una solución informática del problema planteado
• La solución determinará Cómo se va a resolver el problema
• Uso del diseño modular o descendente (Top-down)
Dividir el problema en partes, abstracción y encapsulación
• Uso de algoritmos
Establece de manera genérica la secuencia de pasos o acciones que resuelve un problema determinado
Uso de herramientas para el diseño de algoritmos
Diagramas de flujo (ordinogramas)
Pseudocódigo (lenguaje intermedio)
ETAPAS PARA LA ELABORACION DEETAPAS PARA LA ELABORACION DE UN PROGRAMAUN PROGRAMA
CODIFICACION DEL PROGRAMA
La codificación – las acciones (sentencias) definidas en el algoritmo se deben convertir a instrucciones (ordenes) a la computadora mediante un lenguaje de programación de
alto nivel. Mediante este lenguaje de programación el programador se comunica con la computadora para indicarle
las ordenes que debe realizar.
ETAPAS PARA LA ELABORACION DEETAPAS PARA LA ELABORACION DE UN PROGRAMAUN PROGRAMA
COMPILACIÓN Y EJECUCIÓN DEL PROGRAMA
La compilación es el proceso de traducción del lenguaje de programación de alto nivel (código fuente) al lenguaje de máquina mediante el COMPILADOR del lenguaje de programación.
Durante el proceso de compilación se determinan los errores de sintaxis del programa informático. Si hay errores es preciso corregir los errores y volver a compilar.
Luego se procede a vincular el código objeto con las bibliotecas, creando el código ejecutable. Durante el proceso de ejecución se determinan los errores de ejecución del programa. Estos errores se producen por instrucciones que la computadora puede comprender pero no ejecutar (división entre cero).
ETAPAS PARA LA ELABORACION DEETAPAS PARA LA ELABORACION DE UN PROGRAMAUN PROGRAMA
VERIFICACION Y MANTENIMIENTO DEL PROGRAMA
La etapa de la – verificación – verifica el correcto funcionamiento del programa con una amplia variedad de datos de entrada, llamados datos de prueba.
Los datos de prueba deben cubrir una amplia gama de posibilidades que incluye datos normales, datos extremos y datos especiales.
El mantenimiento de los programas consiste en la actualización o corrección de los programas no detectados en las fases anteriores.
El mantenimiento consiste también en las modificaciones de los programas para ampliar o cambiar algunas funcionalidades de los programas.
El esquema de un programa en borland C++ se compone básicamente de las siguientes partes:
• Directivas definidas.
• Declaraciones y definiciones de funciones secundarias declaradas por el usuario.
• Una función principal main()
LENGUAJE DE PROGRAMACION C++LENGUAJE DE PROGRAMACION C++
Estructura básica del Programa
#include Directivas definidas
#define Macros del procesador
void main() Función principal
{
declaraciones locales
sentencias necesarias del programa;
}
Directivas Definidas
Las directivas definidas son instrucciones especiales para el compilador del borland C ++
Las directivas son generalmente #include y #define (indica al compilador que incluya el contenido del archivo referenciado).
Estos archivos se denominan archivos de cabecera y tienen una extensión .h
Directivas Definidas
#include<math.h> // incluye al archivo fuente C++ de las // librerías matemáticas.
#include<conio.h> // incluye al archivo fuente el manejo de // pantalla.
#include<iostream.h> // proporciona al compilador C++ // la información necesaria sobre // las funciones de
// biblioteca cin y cout
La directiva #define
La directiva #define permite crear definiciones de macro.La sintaxis general para la directiva #define es:
#define nombreConstante Valor
#define DIAS 7
La Función principal main()
Los programas de C++ contienen una función main() la cuales llamada función principal y es el punto inicial de entradaal programa.
Las sentencias incluidas entre las llaves { } se denominanbloque y en el caso de la Funcion main() estas sentenciasse denominan cuerpo del programa.
La sentencia:
Una sentencia o instrucción le indica al compilador un tipos acción específica. De acuerdo a la sintaxis de C++, una sentencia puede consistir de una de las siguientes formas:
• Una única sentencia (sentencia simple)
• Un bloque de sentencias (instrucciones encerradas entre llaves de bloque { } .
• Una sentencia nula (consta de sólo un punto y coma).
Signos de Puntuación:
Todas las sentencias de un programa en el lenguaje C++ deben finalizar en punto y coma.
Las llaves agrupan sentencias: { clrscr(); Cout<<“suma=“<< resultado; getch();
}
Las comas separan elementos iguales int x, m, n;
Los Comentarios:
Los comentarios no generan código de máquina y son ignorados por el compilador. Con fines de documentación sepueden añadir comentarios a un programa.
Se consideran como comentarios:
• Al texto que sigue a los caracteres “ // “ hasta el final de la línea.
• Al texto de una o más líneas encerrado entre “ / * “ y “ / * “ .
El resto de componentes de un programa en C++ son: identificadores, tipos de dato, las variables, las constantes, caracteres y los operadores.
Los Identificadores
Los identificadores son nombres usados para identificar a las variables, las constantes, tipos, funciones y etiquetas en un programa, etc.
Reglas para construir identificadores válidos:
• Primer carácter debe ser una letra o el carácter subrayado, los caracteres siguientes pueden ser letras, números o símbolo de subrayado. No se permiten espacios en blanco.
• La longitud máxima es de 32 caracteres (estándar).
• El nombre del identificador no puede ser una palabra reservada.
• Las letras mayúsculas y las letras minúsculas se consideran como diferentes.
Son ejemplos de identificadores válidos:
Nota, nota, suma, area_triangulo, dias_mes
Una palabra reservada son palabras seleccionadas por el lenguaje de programación para un propósito especial y sólo puede usarse en una forma específica.
Las palabras reservadas del C++ se escriben en letras minúscula, motivo por el cual podemos definir como identificadores de variables a las siguientes palabras:
DO, IF, FOR, CHAR, CASE, WHILE
No son palabras reservadas ya que se encuentran escritas en mayúscula.
Palabras reservadas de C + +asm Double Mutable Struct
auto else namespace switch
bool enum new template
break explicit operador this
case extern private throw
char for public typedef
class friend register union
const goto return unsigned
continue if short virtual
default inline signed void
delete int sizeof volatile
do long static echar_t
while
Tipos de Datos en C++El objetivo de todos los programas es procesar datos, sean numéricos, alfabéticos o audio. Es fundamental para este objetivo la clasificación de los datos en tipos específicos.
Tipo de dato se define como un conjunto de valores y un conjunto de operaciones que pueden aplicarse a estos valores.
Los tipos de datos más comunes son: entero (int), real (float) y carácter (char), los tipos de datos son usados para definir el tipo de variables, de constantes, etc.
Tipo de datos básicos
Tipo Tamaño Rango
char 8 bits -128 a 127
Int 32 bits -2,147, 483, 648 a 2,147,483,647
Iong 32 bits -2,147, 483, 648 a 2,147,483,647
float 32 bits 3.4 x 10-38 a 3.4 x 10+38
Tipo de datos extendidosTipo Tamaño Rango
unsigned Char 8 bits 0 a 255
char 8 bits -128 a 127
short int 16 bits -32,768 a 32,767
unsigned int 32 bits 0 a 4,294,967,295
unsigned int 32 bits 0 a 4,294,967,295
int 32 bits -2,147,483,648 a 2,147, 483, 647
unsigned long 32 bits 0 a 4,294,967,295
enum 16 bits -2,147,483,648 a 2,147, 483, 647
long 32 bits -2,147,483,648 a 2,147, 483, 647
float 32 bits 3.4 x 10-38 a 3.4 x 10 + 38
double 64 bits 1.7 x 10-308 a 1.7 x 10+308
long double 80 bits 3.4 x 10-4932 a 1.1 x 10 + 4932
Variable
La variable es una localización en la memoria del computador que guarda información para ser procesada por la computadora. Una variable tiene un nombre, un tipo, un valor y una dirección. Representan a identificadores que cambian su valor durante la ejecución de un programa.
Nombre especifica la posición de memoria asignada
tipo especifica si la variable contiene un número entero, número real, carácter u otro tipo de dato.
Valor representa el contenido de la variable en un momento dado.
Dirección especifica el lugar donde se almacena la variable.
Declaración de una variable
Una variable antes de ser utilizada debe ser creada en la memoria del computador mediante su declaración.
Declaración de una variable:
tipo_de_dato nombreDeVariable;
tipo_de_dato es una palabra reservada que indica el tipo de dato que va
almacenar una variable (char, int, float, etc).nombreDeVariable es el nombre elegido para la variable.
Declaración de una variable
aa
a b
(a x b)
Resultado
Declaremos tres variables una entera h, una de tipo char respuesta y una de tipo float denominada área.
int h;char respuesta;float area;
Una variable también puede ser inicializada al momento de su declaración
tipo_de_dato nombreDeVariable = valor_inicial;
Si las variables son del mismo tipo se pueden declarar en simultaneo peroseparadas por una coma.
Constantes
Las constantes representan a identificadores que no cambian su valor en el desarrollo de un programa.
En C++ se pueden declarar las denominas constantes usando el calificador const. Las constantes también se conocen como variables nombradas o variables de sólo lectura.
Declaración de una constante
const tipo_de_dato nombre = valor_constante;
Tipo_de_dato es el tipo de la variable (int, float, char, etc)Nombre es el nombre identificado para la constanteValor_constante es el valor asignado a la constante
const int mes=30; const float pi=3.14; const char respuesta = ‘S’;
Directiva #define
La directiva #define actualmente es poco usada en C++, ensu lugar se usa const para declarar las constantes que se van a utilizar en un programa.
#define nombreConstante valor
#define pi 3.14#define raya “------------”#define saludos “Buenos tardes”
Declaración de Variables de cadena de caracteres
char cadena [tamaño]; char nombre [35];
cadena es el nombre arbitrario elegido para la variable de cadena.
Tamaño es el tamaño de la cadena (debe ser uno o más que el número
total de caracteres).
Una cadena también puede ser inicializada al momento de sudeclaración así: char cadena [5] = “cobre” ;
TIPOS DE OPERADORES
Operadores AritméticosOperadores de RelaciónOperadores lógicasOperadores de Incremento y Decremento
La asociación de operadores aritméticos con operandos permite crear expresiones aritméticas y la asociación de operadores de relación ó lógicos con operandos permite crear expresiones lógicos.
Operadores Aritméticos
Operador Significado Ejemplo
+ Suma a+b
- Resta a-b
* Producto a*b
/ Cociente de división a/b
% Resto de división entera a%b
++ Incremento
-- Decremento
suma = 3 + 7;diferencia = 15 - 6;conteo = contador + 1;total = total + 18.3;impuestos = .06 * cantidad;peso = factor * peso;promedio = suma/ elementos;pendiente = (y2 – y1) / (x2 – x1);
Evaluación de expresiones
Regla de jerarquía de operadores aritméticos
( ) Mayor Nivel
* / % Multiplicación, división y resto de división entera
+ - Suma y resta
Reglas:
• Si existen paréntesis anidados, se evalúa primero la expresión en el paréntesis más interno.
• Si varios operadores están en el mismo nivel de jerarquía, la evaluación será de izquierda a derecha.
• Ejemplos: 10 % 3 respuesta 1 8 / 2 * 3 – 2 respuesta es 10
8 + 5 * 7 % 2 * 4 respuesta es 12
Operadores Incremento y Decremento
Los casos en que una variable es incrementada o disminuida en uno , C++ proporciona dos operadores unitario.
Usando el operador de incremento, ++, -- (operador)
n = n + 1; se reemplaza por la expresión n++ ó ++n n = n - 1; se reemplaza por la expresión n-- ó - -n
numero = valor ++; // incrementa valor en 1
Sentencia de asignación Las sentencias de asignación permite a las variables
almacenar el valor de una expresión. La forma general de una sentencia de asignación es:
variable = expresión;
Variable es el nombre de la variable que recibe la asignación. Expresión puede ser tan simple como una constante o tan compleja
como una combinación de operadores con datos evaluado para producir un valor.
45 12 57
Nombres de variable
numero1 Totalnumero2
Direcciones de memoria
Total = numero1 + numero2;
suma = 3 + 7;diferencia = 15 - 6;conteo = contador + 1;total = total + 18.3;impuestos = .06 * cantidad;peso = factor * peso;promedio = suma/ elementos;pendiente = (y2 – y1) / (x2 – x1);
Ejemplos de sentencias de asignación
Funciones Comunes de C+ + abs (a) Valor absoluto
pow (a1,a2) a1 elevado a la potencia a2
sqrt (a) Raíz cuadrada de un número real
sin (a) Seno de a en radianes
cos (a) Coseno de a en radianes
tan (a) Tangente de a en radianes
Funciones Comunes de C+ +
log (a) logaritmo natural de a
log10 (a) logaritmo común (base 10) de a
exp (a) e elevado a la potencia a
Ejemplos: sqrt (25.) valor devuelto 5
abs (-7.362) valor devuelto 7.362
pow (10,3) valor devuelto 1000
4 *sqrt ( 4.5 * 10.0 – 9.0 ) - 2.0
= 4 * sqrt (36.0) – 2.0
= 4 * 6.0 – 2.0
= 24.0 – 2.0
= 22
Usos y transmisión de datos a una función
Variaciones de asignación
Las sentencias de asignación, que usan la misma variable en ambos lados del operador de asignación, pueden escribirse usando los siguientes atajos de operadores de asignación.
suma = suma + 10; es equivalente a suma += 10;
precio = precio * tasa; es equivalente precio *= tasa;
Operadores de Asignación
Operador Abreviatura Sentencia
+= a+=b a=a+b
-= a- =b a=a-b
*= a*=b a= a*b
/= a/=b a=a/b
%= a%=b a=a%b
Entradas y salidas básicas
La entrada y salida (input / output) en C++ se realiza
utilizando los flujos cin y cout.
El flujo cout, cuyo nombre deriva de Console OUTput, es un objeto
de salida que envía datos introducidos en él al dispositivo estándar de salida, este dispositivo de salida es generalmente una pantalla de video.
La forma más simple de salida se efectúa mediante el
símbolo de inserción: “ << ” ( enviar a )
cout << constante; cout << “ Hola Amigos”;
Entradas y salidas básicas
El flujo cin, se usa para introducir datos en un programa mientras
se está ejecutando, cin es un flujo de datos que conecta el teclado con el programa. Cualquier entrada desde el teclado es enviada primero al flujo cin, luego el programa puede extraer (leer) datos desde este flujo.
La forma más simple de leer se efectúa mediante el
símbolo de extracción: “ >> ” (obtener de)
cin >> variable; cin >> nota;
Entradas y salidas básicas La información que necesita el compilador sobre cin y cout se encuentra en el archivo de cabecera iostream.h que debe incluirse en todo programa.
#include <iostream.h>
Es un comando preprocesador que utiliza la palabra reservadainclude con un signo de número (#) y ejecuta alguna acciónantes que el compilador traduzca el programa fuente a códigode máquina.
#include <iostream.h>#include <conio.h>
void main (){ int a,b,suma, resta, producto;clrscr ();
cout<<"ingrese a:" ; cin>>a; cout<<"ingrese b:" ; cin>>b ; suma = a+b ; resta = a-b ; producto = a*b ;
cout <<"La suma es:" << suma << “\n”;cout << "La resta es:" << resta << “\n” ;cout << "El producto es:" << producto << “\n”;
getch() ;}
Secuencia de escape Las secuencias de escape proporcionan un determinado
significado al enviar ciertos caracteres especiales a la pantalla, a un archivo en disco o a la impresora. Todas las secuencias de escape comienzan con el carácter barra invertida “ \ “ .
Son ejemplos:
cout << “CALCULAR PROMEDIO DE NOTAS\n”;
//la secuencia de escape \n presenta el cursor en la siguiente línea.
Tipo de datos extendidosSecuencias de escape Descripción
\n
\r
\t
\a
\’
\”
\\
Nueva línea. Coloca el curso al principio de la siguiente línea.
Retorno de carro. Coloca el cursor al principio de la línea actual.
Tabulador horizontal. Mueve el cursor al siguiente tabulador.
Alerta hace sonar la campana del sistema
Imprime una comilla simple (‘)
Imprime una comilla doble ( “ )
Imprime una barra invertida ( \ )
Manipulación y formato de los datos de salida Con la finalidad de mejorar el aspecto de la salida de los
programas debemos utilizar los manipulares de salida, por ejemplo si se requiere especificar el número de decimales de un número real o ajustar los datos a un ancho predeterminado.
Los manipulares manipulan las salidas de los datos de la forma que el usuario lo desee. Estos manipuladores se usan dentro del cout y debe incluir el archivo iomanip.h en el programa.
Tabla de manipuladores de flujo E/S
Manipulador Descripción
dec Ajusta la conversión a base decimal
hex Ajusta la conversión a base hexadecimal
oct Ajusta la conversión base octal.
endl Inserta una nueva línea y limpia el flujo
ends Inserta un cero nulo al final de la cadena
flash Limpia un flujo de salida.
setbase (int n) Ajusta la conversión a base a base n n ( 0 para decimal, que es el predeterminado, 8 para octal, 10 para decimal y 16 para hexadecimal).
resetiosflags (long f) Limpia el formato especificado por f.
setiosflags (long f) Pone el formato especificado por f, f es indicador de formato que se muestra en la siguiente tabla.
setfill (int c) Pone el carácter de relleno a c.
setprecision (int n) Pone la precisión de punto flotante a n.
setw(int n) Pone el ancho de campo a n.
Tabla de indicadores de formato para usarse con setiosflag
Indicador Acciónios::left Justifica la salida a la izquierda dentro del ancho de setw ().
ios::right Justifica la salida a la derecha dentro del ancho de setw()
ios::scientific Muestra números de comas flotantes en notación científica.
ios::fixed Muestra en formato de punto fijo los números de coma flotante.
ios::dec Formatea los números en base 10
ios::hex Formatea los números en base 16.
ios::oct Formatea los números en base 8.
ios::uppercase Formatea los caracteres de valores a mayúsculas en la notación hexadecimal y científica
ios::showbase Imprime el prefijo inicial de base numérica (ya sea 0x para hexadecimal ó 0 para octal).
ios::showpos Imprime un signo mas cuando se trata de números positivos.
ios::showpoint Despliega ceros a la derecha cuando se necesitan para la cantidad de decimales especificada.
La Función gotoxy()
La función gotoxy (x,y) ubica el cursor en la posición x, y de una ventana de texto. La coordenada X indica la columna a desplazar, la coordenada Y nos indica la fila hacia donde se desplazará el cursor.
gotoxy(20,10); // desplaza el cursor a la columna 20, fila 10
La información que necesita el compilador para procesar dicha sentencia se encuentra en el archivo de cabecera conio.h