FUNDAMENTOS
DE PROGRAMACIÓN
Asignatura correspondiente al plan de estudios
de la carrera de Ingeniería Informática
UNIDAD 6
INTRODUCCIÓN AL
LENGUAJE ANSI/ISO C++
UNIDAD 6
Introducción al Lenguaje ANSI/ISO C++
Resumen de Conceptos
Hoy día, C++ posee una notable inserción en el mundo de las computadoras y
es uno de los lenguajes clásicos de programación: tanto sistemas operativos y
compiladores (software de base) como de aplicaciones.
Include
Directivas del
Macros Procesador
Datos y Funciones Externas
Datos y Funciones Globales
main( )
La función main( ) siempre está
{
presente en todo programa C++.
.....
}
Identificadores
Los identificadores son los nombres que empleamos para representar a
importantes elementos de un programa, tal como una constante, una variable,
una función, un tipo de dato, o un programa. Algunos identificadores
corresponden a elementos predefinidos de C++ y se denominan identificadores
estándar. Pero en muchas situaciones es el programador el que debe proponer
el identificador de un elemento de programa; para hacerlo en C++, recuerde las
siguientes reglas:
Literales (constantes)
Constituyen valores con significado propio y único. Por ejemplo
2.3 ‘a’ 102 “programa” OXF2B .
El último ejemplo corresponde a una constante en formato hexadecimal.
Operadores
Constituyen elementos del léxico de C++ que permiten conectar operandos
provocando un cálculo (computación) determinado. Algunos de ellos son: + -
* / = ¡ < > == [ ] : ; % { }
Separadores
C++ considera dentro de este grupo a los espacios en blanco, avances de línea,
retornos de carro y tabulaciones
Enteros
Tipo Rango Tamaño (bytes)
char --127 .. 128 1
unsigned char 0 .. 255 1
short -32768 .. 32767 2
unsigned short 0.. 65535 2
int -2.147.483.648 .. 2.147.483.647 4
unsigned int 0.. 4.294.967.295 4
long -2.147.483.648 .. 2.147.483.647 4
unsigned long 0.. 4.294.967.295 4
Caracter
Tipo Rango Tamaño (bytes)
char -128 .. 127 1
unsigned char 0 .. 255 1
Caracter
Tipo Rango Tamaño (bytes)
bool false,true 1
Nulo
Tipo Rango Tamaño (bytes)
void ---- 0
Constantes literales
Tienen una notación y sintaxis determinada de acuerdo al tipo de dato que se
desee expresar. Veamos algunos ejemplos:
Tipo de constante literal Ejemplos
Entera decimal 123 Secuencia de dígitos decimales con o sin
-5 signo
Entera octal 0455 Comienzan siempre con cero
Entera hexadecimal 0XF4A Comienzan siempre con 0X
Real o punto flotante 192.45 Se emplea el punto decimal y/o notación
.76 científica
-1.3e+4
Char ‘A’ Caracteres del código ASCII
‘\n’ Secuencia de escape para nueva línea
‘\f’ Secuencia de escape para nueva página
string “Facultad”
Constantes definidas
Ciertas constantes pueden referenciarse en C++ a través de un nombre simbólico
empleando la directiva #define.
C++ empleará los valores 100, 3.1459 y “\n” cuando encuentre en el programa los
identificadores valor, Pi y proximalinea
Constantes enumeradas
Son valores definidos por el programador y agrupados bajo un nombre. Este nombre
constituye entonces Esto permite más adelante declara una variable asociándola al
nombre del grupo.
enum meses { ene, feb, mar, abr, may, jun, jul, ago, set, oct, nov, dic } // lista de
constantes enumeradas
meses mes = abr /* declaración de la variable mes del tipo meses e inicializada con el
valor abr */
#include <iostream>
Entrada y Salida
Flujos de Entrada y Salida
Un flujo de Entrada/Salida o I/O stream es un secuencia de caracteres que se envían
(fluyen) desde o hacia un dispositivo. En la I/O estándar, C++ utiliza cout para enviar
caracteres a un archivo de salida; y cin para tomar caracteres desde un archivo de texto.
También disponemos de otros dos flujos cerr y clog para manejo de errores.
Los flujos cin, cout, cerr y clog, son clases predefinidas de C++, las cuales se hallan en
el archivo iostream.h. Esto significa que Ud. debe incluir este archivo en la cabecera de
su programa para que el compilador enlace las rutinas de definición necesarias e
Observe el ejemplo del recuadro anterior donde la primer línea del código fuente se
indica la inclusión de este archivo: #include <iostream>
Estudiaremos la directiva #include más adelante, la cual nos permitirá enlazar código de
otros archivos fuente C++ junto a nuestro programa.
El flujo de salida cout requiere del operador de inserción o salida << (dos signos menor
que consecutivos) para enviar la información a la pantalla.
#include <iostream.h>
void main(void)
{
cout <<“Comando de flujo de salida en C++” ;
}
de igual forma opera el comando de flujo cin pero empleando los operadores de
extracción o entrada >> (dos signos mayor que consecutivos)
#include <iostream.h>
void main(void)
{
int edad, anio_nac;
cout << “Escriba su edad:” ;
cin >> edad;
Caracter especial o secuencia de
anio_nac = 1998 – edad;
cout << “\n”; escape para producir un avance de línea.
cout << “Ud. ha nacido en “ << anio_nac;
}
Secuencia de
Caracter Efecto
escape
\a BEL Campana o pitido de alerta
\b BS Retroceso (Backspace)
\f FF Avance de página
\n LF Avance de línea
\r CR Retorno de carro
\t HT Tab horizontal
\v VT Tab Vertical
\\ \ Barra invertida (backslash)
\' ' Apóstrofo
\" " Doble comilla
\? ? Marca de interrogación
int a=20;
Datos:
int b= 50;
a = 20 b = 50
cout<<“Datos:\n a =“<<a<<“\t b= ”<< b
(suena un pitido)
cerr “\a Se ha producido un error” Se ha producido
un error
#include <iostream.h>
#incllude <iomanip.h>
void main(void)
{ cout << “Lenguajes de Programación”;
cout << endl<<endl
cout << setfill(‘.’)
cout << “1. Cobol” << setw(20)<< “pág. 1”<<endl;
cout << “2. Fortran” << setw(20)<< “pág. 2”<<endl;
cout << “3. Basic” << setw(20)<< “pág. 3”<<endl;
cout << “4. Pascal” << setw(20)<< “pág. 5”<<endl;
cout << “5. ANSI/ISO C++” << setw(20)<< “pág. 8”<<endl;
}
Actividades
Ejercicios
Ejercicio 6.1
Determine la validez en C++ de los siguientes identificadores:
X-da float const x,7
3Total var56x x7 x/7
Ejercicio 6.2
Observe los siguientes números. a) Indique si su notación es correcta en C++.
Si no lo es, mencione la causa de su invalidez. b) Si tiene notación correcta
clasifique dicho número dentro de los tipos numéricos admitidos por C++,
considerando la menor cantidad de bytes posible.
Ejercicio 6.3
Declare y defina variables numéricas inicializándolas con los valores del
ejercicio anterior. En los casos en que los números estén incorrectamente
planteados escríbalos correctamente.
Ejercicio 6.4.
Escriba un programa C++ que permita ingresar las edades de dos personas y
obtenga las fechas (años) de nacimiento correspondientes. El formato de salida
debe ser como el del recuadro siguiente:
Ejercicio 6.5
Escriba un programa C++ que permita ingresar un número y lo muestre en base
8 (octal) y en base 16 (hexadecimal) . Proponga además mensajes alusivos que
mejoren la interfaz de usuario.
Ejercicio 6.6
Escriba un programa C++ que permita ingresar un valor numérico
correspondiente a una medida en pies y devuelva la cantidad equivalente en
metros. Nota: un pie = 0,3048 metros. Proponga una interfaz de usuario
adecuada.
Ejercicio 6.7
Escriba un programa C++ que calcule el área y circunferencia de un círculo cuyo
radio se ingresa como dato.
Ejercicio 6.8
Escriba un programa C++ que calcule las raíces o soluciones de una ecuación
cuadrática del tipo ax2+ bx + c=0, siendo que el usuario del programa ingresa
como datos los coeficientes a, b y c. Suponga que los datos corresponden a
ecuaciones de raíces reales.
Ejercicio 6.9
Un canal tiene sección trapezoidal como
indica la figura.
Se conocen como datos la base b, el nivel
h
h y el ángulo de inclinación de las paredes .
Si la velocidad media de la corriente es
conocida y tiene un valor v, determine e b
informe el caudal medio Q que pasa por
dicho canal. (Nota: Q medio se calcula con el producto entre la velocidad media
y el área de la sección). Codifique en C++ la solución de este problema.
Ejercicio 6.10
Escriba un programa Pascal que permita a un usuario conocer cuánto debe
pagar por el consumo de energía eléctrica realizado en el último período. Se
conocen el costo del consumo en KW sin impuestos, la lectura actual del
medidor y la lectura del período anterior. Además en concepto de impuestos los
usuarios abonan un 22% sobre el total correspondiente al consumo.
Cuestionario
6.1 Mencione 2 maneras de escribir comentarios en un programa C++.
6.3 ¿Qué entiende por palabra reservada del lenguaje? ¿Y por manipuladores e
I/O?
6.7 ¿Qué diferencia hay entre declarar y definir (inicializar) una variable?
6.8 ¿Es posible almacenar valores enteros en una variable de tipo char?
Explique.