Unidad 2 Programacion
Unidad 2 Programacion
Unidad 2 Programacion
UNIDAD II
TIPOS DE DATOS Y EXPRESIONES
Un programa bien escrito, en C++ o cualquier otro lenguaje de programación, debe tener
ciertas características básicas que le permitan operar correctamente, las principales serían las
siguientes:
a) Operatividad. Lo mínimo que debe hacer un programa es funcionar; es decir, producir
los resultados esperados independientemente de cualquier otra característica.
b) Legibilidad. Un programa puede hacerse más legible dándole cierto formato al código,
utilizando la sangría (indentación) para reflejar la estructura de control del programa, e
insertando espacios o tabuladores. Es conveniente diseñar reglas propias para darle
uniformidad a todos los programas.
c) Transportabilidad. Un programa transportable es el que puede ejecutarse en otro
entorno sin hacerle modificaciones importantes. Mientras menos modificaciones se
hagan será más transportable, así que es conveniente no utilizar características
especiales del hardware ni “facilidades” especiales del software.
d) Claridad. Esta característica se refiere a la facilidad con que el texto del programa
comunica las ideas subyacentes. El programa debe indicar claramente lo que el
programador desea. Una buena programación es similar a la elaboración de un
documento legal; por ejemplo, conviene utilizar nombres adecuados para los
identificadores, hacer comentarios correctos, claros y concisos.
e) Modularidad. Dividir el programa en un número de módulos pequeños y fáciles de
comprender puede ser la contribución más importante a la calidad del mismo. Cada
módulo debe realizar sólo una tarea específica, y no más. Los módulos tienen la virtud
de minimizar la cantidad de código que el programador debe comprender a la vez,
además de que permiten la reutilización de código.
A continuación estudiaremos los elementos básicos o elementales para poder desarrollar
programas como son: tipos de datos, operaciones elementales y sentencias; y su forma de
representación en lenguaje C++.
Variables
Los programas utilizan variables para almacenar información. Una variable representa un valor
que cambia; es una ubicación en la memoria de la computadora en la cual se puede grabar un
valor y por la cual se puede recuperar ese valor más tarde.
Las variables sirven para representar y manejar datos. Todo dato que vaya a ser introducido a
la computadora, y todo dato que vaya a ser generado o calculado a partir de otros datos para
obtener algún resultado, tiene que identificarse y manejarse en forma de variable. En lenguaje
C++ la variable también se conoce como identificador.
Las variables tienen un NOMBRE que servirá para referenciarlas, por ejemplo nombre,
sueldo,cuota_por_hora, a1, x.
Declaración de variables
Antes de que pueda utilizar una variable, habrá que declararla, en otras palabras, introducirla
en el programa. Para declarar una variable, debe saber el tipo de ésta y el nombre que el
programa utilizará para referirse a ella.
A continuación de la llave que abre el programa principal, se especifica el tipo de variable y el
nombre. Al final de cada declaración de variables se termina con el operador ; (punto y coma).
tipo_variable nombre_var1, nombre_var2;
Por ejemplo:
cout << “Da dos enteros: “;
int x, y;
cin >> x >> y;
cout << “La suma de” << x << “y” << y “es” << x+y << ‘\n’;
for (int i = 0; i <= 5; i++)
cout << I << ‘\n’;
Ejemplos:
int ciclo;
long i;
float x, y, z;
char opcion;
char nombre [40];
double pi = 3.1416;
char escuela[40] = {“Universidad Autonoma del Estado de Hidalgo”};
char a = ‘$’;
NOTA ¿Es lo mismo declarar char letra = ’a’, y char letra =”a”? indica la diferencia:
Inicialización de variables
Una vez definida una variable se debe proceder a darle un valor, es cierto que este valor puede
cambiar a lo largo del programa pero es bueno acostumbrarse a dar siempre un valor inicial a
nuestras variables.
miedad=0; nota_final=0;
De igual forma, se le puede asignar valores a una variable cuantas veces se quiera durante el
programa, utilizando el operador de igualdad “=”.
Programación Estructurada
Constantes
Las constantes son variables que contienen un valor que no cambia durante todo el programa.
Son valores fijos que el programa no puede alterar. Existen dos formas de declarar constantes
en C++.
La primera forma de declarar una constante en C++, mucho más específica y más útil, es
utilizando el modificador const. Con él se pueden definir variables cuyo valor debe permanecer
constante durante toda la ejecución del programa. También se puede utilizar con argumentos
de funciones. En esta caso se indica que el argumento en cuestión es un parámetro y su valor
no debe ser modificado. Si al programar la función, modificamos ese parámetro, el compilador
nos indicará el error.
Tipo Palabra en C++
Entera simple Int
Entera larga Long
Numéricas Flotante Float
Doble precisión Double
Sin signo Unsigned
Entera sin signo unsigned int
Caracter o Un solo carácter Char
Alfanuméricas Cadena de caracteres Char
Ejemplos:
const int a=1, b=123, num=-234;
const long int d1=35000, z=-34;
const char caracter =’a’, digitos= ‘0’;
const char cadena = “Esto es una prueba”;
Declarar constantes de esta forma es muy ventajoso porque la constante tiene un tipo de dato,
lo que hace al código mucho más mantenible y lo previene de errores.
Constantes simbólicas
La segunda forma para declarar constantes es utilizando una instrucción, generalmente en la
cabecera, conocidas como constantes simbólicas.
Las constantes simbólicas son nombres de identificadores, de preferencia, en mayúsculas. Se
definen una sola vez en la cabecera del programa para utilizarlas posteriormente.
# define MAX 100
main ( )
{
------
- - - - MAX * 80 / a;
MAX;
}
Esta es la forma tradicional de definir constantes, pero nota que la variable MAX no tiene un
tipo de dato. Lo que hace #define es simplemente sustituir 100 en todas las ocurrencias del
programa donde aparezca MAX.
Otros ejemplos:
# define CARACTER ‘z’
# define PI 3.1415926
# define E 27.82
Programación Estructurada
CÓDIGO SIGNIFICADO
\b Retroceso (Backspace)
\f Alimentación de hoja
\n Nueva línea
\r Retorno de carro
\t Tabulador horizontal (6 espacios)
\“ Doble Comilla
\’ Simple comilla (apóstrofe)
\0 Nulo
\\ Barra invertida
\v Tabulador vertical
\a Alerta (beep)
\o Constante octal (donde o es una constante octal), tal como \007
\x Constante hexadecimal tal como \Xffff
Archivos cabecera
Cuando se crean programas en C++, se pueden aprovechar las declaraciones y las definiciones
que el compilador le proporciona. La declaración #include indica al compilador que incluya el
contenido del archivo especificado al principio del programa, como por ejemplo iostream.h y
conio.h. Los archivos que tienen la extensión .h y se incluyen al principio (o cabecera) de los
programas se llaman archivos cabecera. Si examina el directorio que contiene los archivos del
compilador, encontrará un subdirectorio llamado INCLUDE, que incluye muchos archivos
cabecera. Cada uno de ellos comprende definiciones que el compilador proporciona para
diferentes operaciones. Por ejemplo, hay archivos cabecera que dan definiciones para las
operaciones matemáticas y uno diferente para las operaciones con archivos. Estos archivos
cabecera contienen información de ciertas bibliotecas de C.
#include <asser.h> #include <errno.h> #include <limits.h>
#include <ctype.h> #include <float.h> #include <locale.h>
#include <math.h> #include <setjmp.h> #include <signal.h>
#include <stdarg.h> #include <stddef.h> #include <stdio.h>
#include <stdlib.h> #include <string.h> #include <time.h>
Programación Estructurada
Palabras reservadas
Palabras propias del lenguaje C, conforman la sintaxis del lenguaje, y no pueden ser utilizadas
como nombres de variables, constantes, procedimientos, funciones, etc.
Se utilizan para definir estructuras de datos, realizar operaciones, definir estructuras de control.
Por ejemplo:
C y C++
auto break case char const
continue default do double else
enum extern float for goto
if int long register return
short signed sizeof static struct
switch typedef union unsigned void
volatile while
C++ únicamente
asm catch class delete friend
inline new operator private protected
public template this throw try
virtual
Por ejemplo:
// El siguiente programa suma los números del 0 al 9
#include <iostream.h>
#include <conio.h>
int sum;
int total (int x);
void display (void);
main ( )
{
int contador;
sum = 0;
for (contador = 0; contador < 10; contador + +) {
total (contador);
display ( );
}
}
total ( int x )
{
sum = x + sum;
}
2.3 Operadores
C/C++ es un lenguaje rico en operadores incorporados.
Operador. Es un símbolo que le dice al compilador que realice manipulaciones matemáticas o
lógicas específicas.
Operadores:
a) Aritméticos
b) Relacionales
c) Lógicos
Programación Estructurada
Una operación común es sumar/restar 1 al valor de una variable entera. En este caso se utiliza
el operador de incremento/decremento.
x++; es lo mismo que x = x + 1;
x--; es lo mismo que x = x - 1;
Ejemplos:
total = costo + impuesto;
cambio = pago – total;
impuesto = costo * tasa_impuesto;
promedio = total / 20;
promedio_ventas = venta_diaria * 7;
i++;
Operadores relacionales. Relaciones que los valores pueden tener con otros.
OPERADOR ACCIÓN
> Mayor que
>= Mayor igual que
< Menor que
<= Menor igual que
== Igual que
!= Diferente que
Expresiones
Una expresión es todo aquello que se evalúa y devuelve un valor; es un conjunto de
operadores, variables, constantes, con los que se efectúa un proceso u operación.
El resultado puede ser asignado a una variable o no.
Ejemplos:
z = x / y * h + 3.1416;
x = 8;
z = sin ( x ) * cos ( -y ) / ( x * x + y * z );
x + y;
Programación Estructurada
Comentarios
Cuando los programas se vuelven más complejos, el número de declaraciones que contienen
puede hacer que sean difíciles de comprender. Debido a que tal vez otros programadores
tengan que entender y posiblemente cambiar los programas, es necesario que se escriban de
la forma más legible posible.
Conforme se crean los programas, es posible colocar notas dentro del archivo fuente que
expliquen el proceso que se ejecuta. Estas notas, también llamadas Comentarios, documentan
los programas y mejoran la legibilidad de los mismos, ayudando a los programadores a
comprender el listado de código.
Al ejecutarse el programa, los comentarios no hacen que la computadora realice ninguna
acción. El compilador los ignora y no genera ningún código objeto en lenguaje máquina.
En C++, para poner un comentario dentro del código, sencillamente se ponen dos diagonales (
// ) al principio del texto correspondiente al comentario y se podrá utilizar el resto de la línea
para texto del comentario. Esta forma de comentario ahorra algunos golpes de tecla, pero sólo
es aplicable a comentarios que no continúen a la línea siguiente. Los comentarios pueden ir al
principio del programa, enfrente o a continuación de declaraciones específicas que expliquen su
propósito, etc.
// UAEH ICBI SISTEMAS COMPUTACIONALES
// PROGRAMACIÓN ESTRUCTURADA
// NOMBRE:
// PROGRAMA:
NOTA: Como sugerencia, no tenga demasiados comentarios en sus programas. Asegúrese de
que los que escriba sean significativos.
Sangrías
Otra forma de incrementar la legibilidad del programa, es la sangría y alineación adecuada de
las declaraciones. Las sangrías se utilizan para facilitar la lectura del programa, y resaltar su
estructura funcional. Se recomienda contar 3 espacios por cada uno de los niveles de sangría.
#include <iostream.h>
int sum = 0;
main ( ) {
int a, b;
cout<<”Dame el valor para a y b”;
cin >> a >> b;
if (a >= b)
cout << “Ganador”;
else
cout << ”Perdedor”;
getch ( );
}
Programación Estructurada
2.4 Sentencias
Cada una de las líneas del código se conocen como sentencias, las cuales indican al sistema
las acciones que habrá de realizar. Las sentencias o instrucciones constituyen el cuerpo de
todas las funciones en C++, incluyendo el programa principal, y cada bloque de éstas está
encerrada entre llaves { }.
En C todas las sentencias terminan con ;
Una sentencia puede ser una declaración de variables, una asignación de valores, una
expresión, una llamada a una función, una estructura de control, etc.
Por ejemplo:
// Mi primer programa en C++
#include <iostream.h>
main ( )
{
cout << “Hola mundo \n” ;
getch ( );
}
Sentencia de asignación
En C/C++ es el signo = (igual).
producto = a * b;
Asigna el valor de la parte derecha a la variable de la parte izquierda.
Sentencias de control
En C++ las sentencias se ejecutan sucesivamente una tras otra. Esto define un camino o
dirección según la cual se va desarrollando el programa. Sin embargo, habrá momentos en
que el programa deba ejecutar determinadas partes dependiendo del estado en el que se halle
el programa.
Las sentencias de control de programa son la esencia de cualquier lenguaje de computadora,
ya que gobiernan el flujo de la ejecución de un programa. Las sentencias de control de
programa en C++ se dividen en 3 categorías:
a) Instrucciones condicionales (if, switch)
b) Sentencias de control de bucle ( while, for, do-while)
c) Instrucción de bifurcación condicional (goto)
C++ ofrece una alternativa a las llamadas de función printf y scanf para manejar la
entrada/salida de los tipos y cadenas de datos estándar. Los flujos estándar de salida cout y
entrada cin de C++ hace los programas más legibles y menos sujetos a errores, que sus
contrapartidas escritas en C mediante las llamadas de función printf y scanf.
Entrada
Los mecanismos de entrada nos permite interacción entre el mundo exterior (usuario) y el
programa, así el programa puede recabar información necesaria para cumplir con su meta. Las
funciones de entrada van a introducir valores a las variables.
Con el flujo estándar de entrada cin de C++ se pueden introducir datos de cualquier tipo, su
función es crear un flujo de entrada de datos. Puede leer enteros, flotantes, cadenas, etc. Para
asignar entrada a una variable, los programas deben utilizar cin con el operador de extracción
>> para cada variable a asignar (que se lee “obtener de”).
Ejemplos:
int i;
int g, n;
double d;
char c;
char cadena [20];
long l;
cin >> i ; // “obtener un valor para i del flujo de entrada cin”
cin >> g ;
cin >> d ;
cin >> c ;
cin >> cadena ;
cin >> l >>n ;
Con la función gets podemos introducir un valor desde teclado para depositarlo en una variable
de tipo cadena.
Lee cadenas de caracteres.
Con la función getch podemos leer un solo caracter, sin esperar <enter>, el caracter puede o
no ser asignado a una variable de un solo caracter (no tiene eco).
Por ejemplo:
cout << “Oprima una tecla cuando esté listo: “;
getch ( );
Programación Estructurada
Con la función getche podemos leer un solo caracter sin esperar <enter>, el caracter puede o
no ser asignado a una variable de un solo caracter (tiene eco).
Salida
Los mecanismos de salida son aquellos mensajes que el programa utiliza para comunicarse
con el mundo exterior o con el usuario. Las funciones de salida van a mostrar el valor de las
variables.
El flujo estándar de salida cout se utiliza para desplegar flujos de salida de datos, es decir,
muestra lo que queramos en pantalla, pueden ser datos, nombres, resultados, etc. Muestra los
valores de las variables.
Para dar salida a una variable o mensaje, los programas deben utilizar cout con el operador de
insersión << luego entre comillas dobles “ “ se coloca el texto que se quiere mostrar por pantalla
(aquí se pueden incluir constantes de barra invertida), o el nombre de la variable que se quiere
mostrar (y se lee “colocar en”).
Ejemplo:
int a = 80;
float p = 3.1416;
char cad [30] = {“UAEH ”};
char z = ‘$’;
double d = 100125.71854;
cout << “Ejemplo de la funcion cout” << ‘\n’;
cout << “Ejemplo de la funcion cout” << endl;
cout << “\n El valor “ << a << “es entero”;
cout << p << cad << z ;
cout << endl;