Story Transcript
Introducción a los Computadores Práctica nº 2 Introducción. Un programa en C++ tendrá para nosotros el siguiente esquema básico: /*-----------------------------------------------------------------| Autor: | | Fecha: Versión: 1.0 | |-------------------------------------------------------------------| | Descripción del Programa: | | | | ------------------------------------------------------------------*/ // Incluir E/S y Librerías Standard #include #include using namespace std; // Zona de Declaración de Constantes // Zona de Declaración de Tipos // Zona de Cabeceras de Procedimientos y Funciones // Programa Principal int main() { // Zona de Declaración de Variables del Programa principal // Zona de instrucciones system("Pause"); return 0;
// Hacer una pausa // Valor de retorno al S.O.
} // Implementación de Procedimientos y Funciones
Toda sentencia en C++ que no sea un comentario, un bloque ‘{ }’ o una directiva del preprocesador termina con “punto y coma” (';')
Tipos simples predefinidos. En C++ se encuentran predefinidos los tipos básicos especificados en la siguiente tabla: Pseudolenguaje N
Z
Tipo C++
Valores
unsigned int unsigned short int unsigned long int int short int long int
0 a 4.294.967.295 0 a 65.535 0 a 4.294.967.295 -2.147.483.648 a +2.147.483.647 -32.768 a +32.767 -2.147.483.648 a +2.147.483.647
Pág 1
Introducción a los Computadores
Pseudolenguaje
Tipo C++ float
R
double
long double C
char
B
bool void
Práctica 2
Valores Epsilon de float: 1,19209290 e-07 Mínimo de float: 1,17549435 e-45 Máximo de float: 3,40282347 e+38 Epsilon de double 1,1102230246251568 e-16 Mínimo de double 2,2250738585072014 e-323 Máximo de double 1,7976931348623157 e+308 Epsilon de long double 1,1102230246251568 e-16 Mínimo de long double 2,2250738585072014 e-323 Máximo de long double 1,7976931348623157 e+308 Código ASCII true false Tipo vacío (usado para subprogramas)
Para el tipo NATURAL (N) usaremos siempre unsigned int, para el tipo ENTERO (Z) usaremos siempre int, y para el tipo REAL (R) usaremos siempre float.
Declaración de Variables. Las variables en C++ se declaran en la zona indicada en el fragmento de código del principio y no van precedidas por ninguna palabra reservada que indique dicha sección. Las variables de declaran separadas por comas y precedidas del nombre del tipo. Formalmente: { , } [= ]; Donde: ::= { | } ::= a | b |···| z | A | B |··· | Z | _ ::= 0 | 1 | 2 | ··· | 9 Ejemplos:
int num_1; int num_2 = -28;
// Equivale a:
int num_2; num_2 = 28;
Nota: En los identificadores de variables usaremos siempre letras minúsculas.
Declaración de Constantes. Al igual que las variables, las constantes en C++ se declaran en la zona indicada en el fragmento de código del principio y no van precedidas por ninguna palabra reservada que indique dicha sección. Las constantes en C++ se declaran igual que las variables pero precedidas por la palabra reservada const y con una asignación del valor. Formalmente: const = ; Donde: ::= | | | ::= {} ::= [+|-] ::= .{} [(e|E) ] ::= ' ' Como valores constantes de carácter también se pueden usar determinados caracteres de control expresados mediante las siguientes secuencias de escape: '\0' '\a'
carácter nulo campana sonora
'\n' '\t'
salto de línea tabulador Pág. 2
Introducción a los Computadores retroceso salto de página (borrado de pantalla) comilla simple
'\b' '\f' '\'' Ejemplos:
Práctica 2 '\r' '\\' '\"'
retorno de carro barra invertida comilla doble
const float PI = 3.1415929; const char FINLINEA = '\n';
Nota: En los identificadores de constantes usaremos siempre letras mayúsculas.
Operadores básicos. En la siguiente tabla se presentan los operadores básicos para los tipos de datos simples predefinidos. Pseudolenguaje
C++
Significado
Aplicable a
= == != > < >= < >= ++ -! + sizeof() * / % + > < >= == != && || = += , -= , *= , /= , %= ,
Dcha - izda Dcha - izda Dcha - izda Dcha - izda Dcha - izda Dcha - izda Dcha - izda Dcha - izda Dcha - izda Dcha - izda Dcha - izda Izda - dcha Izda - dcha Izda - dcha Izda - dcha Izda - dcha Izda - dcha Izda - dcha Izda - dcha Izda - dcha Izda - dcha Izda - dcha Izda - dcha Izda - dcha Izda - dcha Izda - dcha Dcha - izda Dcha - izda Izda - dcha
Expresiones. Conversiones de tipo. C++ es un lenguaje tipado. Ello significa que el compilador chequea los tipos de los valores que aparecen en las sentencias y expresiones para asegurar la compatibilidad de los mismos. Conversión implícita. En C++ todos los tipos de datos que representan números se consideran compatibles, pudiendo por tanto intercambiarse valores entre los distintos tipos. El rango o categoría de mayor a menor de dichos tipos es: long double, double, float, unsigned long, long, unsigned int, int, short int. Promoción de tipos. En cualquier operación en la que aparezcan dos tipos diferentes, se "promociona" el valor del operando de menor categoría al tipo del de mayor categoría. Así, por ejemplo, las variables y constantes float se convierten a double. Sentencia de asignación. En la sentencia de asignación, el resultado final (la expresión a la derecha del operador de asignación) se reconvierte al tipo de la variable a la que se esté asignando. Esto implica que Pág. 4
Introducción a los Computadores
Práctica 2
puede producirse una promoción, o una pérdida de rango. De todas formas conviene normalmente hacer una conversión explícita "(cast)". Conversión explícita (cast). Sirve para forzar un cambio de tipo en el resultado de una expresión. ( ) El valor de la expresión se convierte al tipo que la precede. Por ejemplo, para calcular la raíz cuadrada de un entero “n”:
sqrt (float (n))
Entrada y Salida Básica en C++. Para usar la entrada y salida básica en C++ es necesario incluir la directiva del preprocesador: #include . Y la cláusula “using namespace std;”. Flujo de entrada (Leer). Para Leer datos desde teclado se usa cin, por tanto, se mandan (>>) valores desde cin a la variable: cin >> ; Se puede encadenar la lectura de varias variables usando múltiples operadores (>>). Por ejemplo: cin >> a >> b; Leería dos valores separados por espacios, tabuladores o cambios de línea sobre las variables a y b. Sin embargo, cin tiene el problema de que ignora los caracteres de control, espacios y tabuladores. Cuando queramos leer un carácter que pueda ser de control se usará cin.get() y si queremos leer una línea entera, usaremos cin.getline(). Flujo de salida (Escribir). Para Escribir datos a pantalla se usa cout, por tanto, se mandan (