AED Tema 03 PDF
AED Tema 03 PDF
AED Tema 03 PDF
El lenguaje C++ es una evolución del lenguaje C (1975). El lenguaje C fue desarrollado
inicialmente como lenguaje de programación de sistemas operativos, en concreto, para
desarrollar y mantener el sistema operativo UNIX. El lenguaje C es muy potente,
debido a que permite operaciones a bajo nivel. Pero también a causa de esto, es muy
propenso a los errores por parte del programador. Para subsanar esto se creo a
principios de los 80 el C++, que añade al C la programación orientada a objetos. En
1998 se creó el estándar de C++ que se denomina ANSI/ISO C++, y es el que se sigue
actualmente.
3.1.1.-Palabras reservadas
Ejemplo:
if / for / while ...
3.1.2.-Identificadores
Son palabras del lenguaje que hacen referencia a elementos del programa (variables,
subprogramas, …)
En C++ se distingue entre mayúsculas y minúsculas, por lo que hay que tener cuidado
de cómo se escribe un identificador.
Ejemplo:
Válidos No Validos
num_2 año
PracticaDos Practica Dos
_uno 12x
if
3.1.3.-Símbolos
Operadores:
Son símbolos que indican la realización de una cierta operación entre valores y/o
variables.
Ejemplo:
En C++:
+ Suma - Resta
% Resto de la && Y (lógico)
división entera
= Asignación == Comparación
En Pascal:
+ Suma - Resta
:= Asignación = Comparación
Símbolos de comentarios:
Los comentarios son explicaciones del programa. Son ignoradas por el compilador.
Ejemplo:
En C++:
// Inicio de comentario en una sola línea
/* Inicio de comentario en una o varias líneas
*/ Fin de comentario
En Pascal:
{ Inicio de comentario
} Fin de comentario
Son órdenes especiales para el compilador que no forman parte del lenguaje.
Ejemplo:
En C++ se escriben con una almohadilla delante:
Directiva para incluir un fichero.
#include <iostream.h>
3.2.-Concepto de variable
En lenguajes de bajo nivel, los datos están en celdas de memoria. La variable es una
abstracción del concepto de celda de memoria.
• Tipo: Describe el conjunto de valores que puede tomar una variable así como las
operaciones que soporta (dominio.)
Ejemplo:
Si la variable X tiene valor 4
X + 3 ==> 4 + 3
Ejemplo:
X ← 3 A partir de ahora X contendrá el valor 3.
(En C++ x = 3 / En Pascal x := 3)
Un tipo de datos es simple cuando no puede ser descompuesto en tipos de datos más
simples (es decir, es atómico). Cuando sí que es posible descomponerlo diremos que es
compuesto.
Un tipo es ordinal o numerable cuando se puede establecer una biyección entre los
elementos de ese tipo y los números naturales.
Un tipo es ordenado cuando existe una relación de orden. Todos los tipos simples son
ordenados.
Los ordinales, debido a la biyección con los naturales, se codifican como enteros.
3.3.1.-Lógicos
En C++: bool
X1 NO X1 X2 Y O
F V F F F F
V F F V F V
V F F V
V V V V
Ejemplo:
bool b;
int a;
b = a > 5;
3.3.2.-Carácter
Tipo para representar caracteres alfanuméricos, que corresponde con una serie estándar
de caracteres. Normalmente se utiliza la serie ASCII, aunque casi todas las series
contienen lo siguiente:
• Códigos de control.
• Conjunto de letras por orden alfabético que no contiene caracteres especiales (Ñ,
acentos, etc.)
En C++:
TIPO FORMATO
(Codificación)
char 16 bits
TABLA ASCII
Código ASCII estándar Código ASCII extendido
Hex 0 1 2 3 4 5 6 7 8 9 A B C D E F
Hex Bin 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
4 20 36 52 68 84 100 116 132 148 164 180 196 212 228 244
5 21 37 53 69 85 101 117 133 149 165 181 197 213 229 245
6 22 38 54 70 86 102 118 134 150 166 182 198 214 230 246
7 23 39 55 71 87 103 119 135 151 167 183 199 215 231 247
8 1000 BS CAN ( 8 H X h x ê ÿ ¿ ╕ ╚ ╪ Φ °
8 24 40 56 72 88 104 120 136 152 168 184 200 216 232 248
9 1001 HT EM ) 9 I Y i y ë Ö ⌐ ╣ ╔ ┘ θ •
9 25 41 57 73 89 105 121 137 153 169 185 201 217 233 249
A 1010 LF SUB * : J Z j è Ü ¬ ║ ╩ ┌ Ω ⋅
10 26 42 58 74 90 106 122 138 154 170 186 202 218 234 250
B 1011 VT ESC + ; K [ k { ï ¢ ½ ╗ ╦ █ δ √
11 27 43 59 75 91 107 123 139 155 171 187 203 219 235 251
C 1100 FF FS , < L \ l | î £ ¼ ╝ ╠ ▄ ∞ ⁿ
12 28 44 60 76 92 108 124 140 156 172 188 204 220 236 252
D 1101 CR GS - = M ] m } ì ¥ ¡ ╜ ═ ▌ ∅ ²
13 29 45 61 77 93 109 125 141 157 173 189 205 221 237 253
E 1110 SO RS . > N ^ n ~ Ä ₧ « ╛ ╬ ▐ ∈ ■
14 30 46 62 78 94 110 126 142 158 174 190 206 222 238 254
F 1111 SI US / ? O _ o DEL Å ƒ » ┐ ╧ ▀ ∩
15 31 47 63 79 95 111 127 143 159 175 191 207 223 239 255
Ejemplo:
'\n' Salto de línea
'\'' Comilla simple
'\\' Símbolo \
3.3.3.-Enteros
Distintos tipos de enteros en C++ (el rango y formato dependen del compilador y la
máquina):
3.3.4.-Reales
Ejemplos:
50.0 0.5 E+2
0.05 5 E -2
Los números reales no se deben comparar directamente para ver si son iguales pues
pueden haber diferencias debido al redondeo.
Tampoco se deben hacer más operaciones de las necesarias, ya que en cada operación
se puede perder información.
• Relacionales: !=, <, >, <=, >= (Cuidado con la comparación ==)
• Funciones de biblioteca:
fabs(X), pow(X,Y), sqrt(X), sin(X), cos(X), tan(X),
asin(X), acos(X), atan(X), log(X), exp(X) (math.h)
El tipo enumerado permite definir qué valores tendrá el tipo. Los valores son una
secuencia de identificadores, donde el orden de los valores viene dado por el orden de la
secuencia.
Ejemplo:
enum Dias {lunes, martes, miercoles, jueves, viernes, sabado, domingo};
3.3.6.-Puntero
El tipo puntero sirve para almacenar direcciones de memoria. Este tipo se estudiará en
el Tema 8.
3.4. Expresiones
3.4.1.-Aritméticas
Cuando el resultado de evaluar la expresión sea un número. Los operadores que utiliza
son siempre aritméticos (+, -, *, /, %)
Ejemplo:
8 / 2 → 4
2 * 3.0 + 2 → 8.0
2 * 3 + 2 → 8
3.4.2.-Lógicas
Cuando el resultado de evaluar la expresión sea un valor lógico. Los operadores que
utiliza son relacionales (==, !=, <, >, <=, >=) o lógicos (!, &&, ||).
Ejemplo:
Ejemplo:
Sólo es necesario evaluar ‘(1 > 2)’ para saber que el resultado es false.
3.4.3.-Orden de evaluación
1º Todas las subexpresiones entre paréntesis. Primero los paréntesis más interiores.
And &&
Or
||
Ejemplo:
9 + 3 * 5 / 4 %(7 + 1) = 9 + 3 * 5 / 4 % 8 =
= 9 + 15 / 4 % 8 =
= 9 + 3 % 8 =
= 9 + 3 =
= 12
Cuando se evalúa una expresión algebraica que implica diferentes tipos de datos, se
transforman los operandos implicados al mismo tipo (el de mayor capacidad) dando el
resultado en ese tipo.
Ejemplo:
5.0 + 2 → → 7.0
Hay ocasiones en que se desea transformar a un tipo concreto los datos con los que
estamos trabajando, de manera que explicitamos el tipo al que deseamos la conversión.
A esta conversión se la llama conversión explícita de datos.
Ejemplo:
int(5.7) → 5 float(5) --> 5.0
Antes de realizar un casting se debe estar seguro de que el resultado no se saldrá del
tipo.
Ejemplo:
int(2E100)
- Declaración de constantes
⎧
⎪
⎪⎪ - Declaración de tipos
- Parte declarativa ⎨
⎪ - Declaración de variables
⎪
⎪⎩ - Declaración de funciones (prototipos)
- Definición de funciones
Cualquier identificador que se vaya a utilizar debe haber sido declarado previamente.
3.5.1.-Declaración de constantes:
En C++:
Ejemplo:
const int NUMMAX = 25;
3.5.2.-Declaración de tipos:
C++:
Ejemplo:
typedef int entero;
3.5.3.-Declaración de variables:
C++:
Ejemplo:
int contador;
int cont = 1;
3.5.4.-Función principal:
Ejemplo:
/********************************************/
/* Programa 1 */
/* Autor: F. Barber */
/********************************************/
int contador;
entero contador2;
float real;
int main()
{
cout << "Hola";
return 0;
};
/*****************************************************/
/* Programa 2 */
/* Autor: F. Barber */
/* Programa para el cálculo del área de un triangulo */
/*****************************************************/
int main()
{
float base, altura, area;
3.6.1.-Asignación:
Ejemplo:
X = 5;
A = 3 * 5 + 2;
3.6.2.-Sentencia vacía:
Ejemplo:
A = B; ;
Psedocódigo: leer A
escribir A
#include <iostream.h>