Publicado el 16 de Junio del 2019
762 visualizaciones desde el 16 de Junio del 2019
14,8 MB
128 paginas
Creado hace 6a (18/09/2017)
Fundamentos de la programación
2
Tipos e instrucciones I
Doble grado ADE + Ingeniería Informática
Grado en Ingeniería Informática
Grado en Ingeniería del Software
Grado en Ingeniería de Computadores
Material de la Prof.ª Mercedes Gómez Albarrán
Facultad de Informática
Versión revisada y ampliada del material del Prof. Luis Hernández Yáñez
Universidad Complutense
Programación
Una computadora de un coche
Estando el coche en la posición A,
conseguir llegar al Cine Tívoli (B).
¿Cuáles son los pasos que hay
que seguir para llegar al destino?
N
B
A
Bloque:
Página 1
Programación
¿Qué entiende la computadora del coche? Sintaxis del lenguaje
de programación
instrucción
Start
Stop
avanzar
;
avanzar
Go
dirección
num
Blocks
dirección
North
East
South
West
num
1
2
3
4
5
Página 2
Página 2
Programación
La edición
Stat;
Go North 1 Blocks
Go East Blocks;
Go Noth 5 Blocks;
Go West 2 Blocks;
Stop;
Página 3
Programación
La compilación
Stat;
----^ Unknown word.
Go North 1 Blocks
-----------------^ ; missing.
Go East Blocks;
--------^ Number missing.
Go Noth 5 Blocks;
-------^ Unknown word.
Go West 2 Blocks;
Stop;
There are errors. Impossible to run the program.
Errores
de sintaxis
Programación
La depuración
Editamos el código para arreglar los errores de sintaxis.
Stat;
Go North 1 Blocks
Go East Blocks;
Go Noth 5 Blocks;
Go West 2 Blocks;
Stop;
Start;
Go North 1 Blocks;
Go East 3 Blocks;
Go North 5 Blocks;
Go West 2 Blocks;
Stop;
Programación
La ejecución
Start;
Go North 1 Blocks;
Go East 3 Blocks;
¡No se puede seguir
ejecutando el programa!
Error de ejecución:
¡Una instrucción no se puede ejecutar!
N
B
!
Programación
La depuración
Start;
Go North 1 Blocks;
Go East 2 Blocks;
Go North 5 Blocks;
Go East 2 Blocks;
Stop;
Start;
Go North 1 Blocks;
Go East 3 Blocks;
Go North 5 Blocks;
Go West 2 Blocks;
Stop;
en la dirección opuesta
Start;
Go North 1 Blocks;
Go East 2 Blocks;
Go North 5 Blocks;
Go West 2 Blocks;
Stop;
Editamos el código para arreglar el error de ejecución.
Con la segunda versión se detecta que la 5ª instrucción dirige al coche
N
Programación
La ejecución
Start;
Go North 1 Blocks;
Go East 2 Blocks;
Go North 5 Blocks;
Go East 2 Blocks;
Stop;
¡Conseguido!
Programas en C++
Hola Mundo en C++
#include <iostream>
using namespace std;
int main()
{
cout << "Hola Mundo!" << endl;
// endl produce un salto de línea.
return 0;
}
Hola Mundo!
Página 9
Programas en C++
Un programa en C++ se compone de
Uno o más archivos con declaraciones y funciones.
Una sola función llamada main() donde empieza la ejecución.
La forma más básica de un programa en C++ cuenta con un solo
archivo:
Declaraciones globales
int main()
{
Secuencia de declaraciones e instrucciones
return 0;
}
Página 10
Programas en C++
#include <iostream>
using namespace std;
int main()
{
cout << "Hola Mundo!" << endl;
// endl produce un salto de línea.
return 0;
}
Las bibliotecas de funciones
Conjunto de funciones de utilidad
Pareja de archivos fuente: definición (cabecera) e implementación
Para utilizar algo de una biblioteca estándar en un módulo de programa
hay que colocar una directiva #include con el nombre
del archivo de cabecera entre ángulos:
Espacios de nombres: Si la biblioteca tiene definidos espacios de
nombres, diremos cuál usaremos
using namespace nombre;
Fundamentos de programación: Computadoras y programación
Página 11
#include <cabecera>
Programas en C++
Uso de espaciado
Los elementos del lenguaje se pueden separar por uno o más elementos de
espaciado (espacios, tabuladores y saltos de línea). Deben usarse para mejorar
la legibilidad.
Uso de comentarios para aclarar aspectos del código
#include <iostream>
using namespace std;
int main()
{
cout << "Hola Mundo!" << endl; // endl produce un salto de línea.
return 0;
}
¿Cuál se lee mejor?
#include <iostream> using namespace std;
int main(){cout << "Hola Mundo!" <<
endl; // endl produce un salto de línea.
return 0;}
Fundamentos de programación: Computadoras y programación
Página 12
C++ es case-sensitive
Distingue entre mayúsculas y minúsculas
Palabras reservadas (o clave): en minúsculas
Programas en C++
#include <iostream>
using namespace std;
int main()
{
cout << "Hola Mundo!" << endl;
// endl produce un salto de línea.
return 0;
}
#include <iostream>
using namespace std;
int MAIN()
{
COUT << "Hola Mundo!" << endl;
// endl produce un salto de línea.
return 0;
}
Fundamentos de programación: Computadoras y programación
Página 13
Programas en C++
Ejemplo 1: Programa que visualiza por pantalla el área de un triángulo a partir
de su base y su altura solicitadas por pantalla e introducidas por teclado.
¿Entrada?
¿Salida?
¿Algoritmo?
1. Mostrar en la pantalla el texto que pida la base del triángulo.
Leer del teclado el valor para la base del triángulo.
2.
3. Mostrar en la pantalla el texto que pida la altura del triángulo.
Leer del teclado el valor para la altura del triángulo.
4.
Calcular el área del triángulo.
5.
6. Mostrar el área del triángulo.
Página 14
Estado
inicial
Algoritmo
Estado
final
Programas en C++
...
int main()
{
return 0;
}
Declaraciones
Algoritmo
traducido
a código
en C++
1. Mostrar en la pantalla el texto que pida la base del triángulo.
2. Leer del teclado el valor para la base del triángulo.
3. Mostrar en la pantalla el texto que pida la altura del triángulo.
4. Leer del teclado el valor para la altura del triángulo.
5. Calcular el área del triángulo.
6. Mostrar el área del triángulo.
Página 15
Programas en C++
Las instrucciones terminan en ;
...
int main()
{
double base, altura, area; // 1. Declarar...
cout << "Introduzca la base del triángulo: "; // 2. Mostrar ...
cin >> base; // 3. Leer del...
cout << "Introduzca la altura del triángulo: "; // 4. Mostrar ...
cin >> altura; // 5. Leer del...
area = base * altura / 2; // 6. Calcular...
cout << "El área de un triángulo de base " << base << " y altura "
<< altura << " es: " << area << endl; // 7. Mostrar...
return 0;
}
Página 16
Programas en C++
Inclusión de bibliotecas
triangulo.cpp
cin y cout están declaradas en iostream,
dentro del espacio de nombres std.
#include <iostream>
using namespace std;
int main()
{
double base, altura, area;
cout << "Introduzca la base del triángulo: ";
cin >> base;
cout << "Introduzca la altura del triángulo: ";
cin >> altura;
area = base * altura / 2;
cout << "El área de un triángulo de base " << base << " y altura "
<< altura << " es: " << area << endl;
return 0;
}
Página 17
Programas en C++
Ejecución
#include <iostream>
using namespace std;
int main()
{
double base, altura, area;
cout << "Introduzca la base del triángulo: ";
cin >> base;
cout << "Introduzca la altura del triángulo: ";
cin >> altura;
area = base * altura / 2;
cout << "El área de un triángulo de base " << base << " y altura "
<< altura << " es: " << area << endl;
return 0;
}
¿¿¿triβngulo???
Problemas con
los juegos de
caracteres
Página 18
Los datos de un programa
Tipo
Variabilidad de estado
Datos
Constantes
Variables
base, altura, area
"Introduzca la base del triángulo: "
3.141592653589
Literales
Con nombre
Pi = 3.141592653589
Identificadores
Página 19
Identificadores
— Un identificador es el nombre de un dato (o de una función) concreto
— Se debe usar nombres descriptivos (autoexplicativos)
— Los identificadores no pueden coincidir con las palabras reservadas
del lenguaje
— No pueden repetirse identificadores en un mismo ámbito (bloque)
— Recuerda… C++ es case-sensitive
Sintaxis de los identificadores
Identificador ::= Encabezado {Resto}
Encabezado ::= Letra | “_”
Resto ::= Letra | Digito | “_”
Letra ::= “a” | “b”| ... | “z” | “A” | “B”| ... | “Z”
Digito ::= “0” | “1” | “2” | ... | “9”
¡OJO, no se admiten ni eñes
ni vocales acentuadas!
Página 20
Identificadores
Palabras reservadas del lenguaje C++
asm auto bool break case catch char class const
const_cast continue default delete do double
dynamic_cast else enum explicit extern false
float for friend goto if inline int long
mutable namespace new operator private protected
public register reinterpret_cast return short
signed sizeof static static_cast struct switch
template this throw true try typedef typeid
typename union unsigned using virtual void
volatile while …
Página 21
Identificadores
¿Qué identificadores son válidos y cuáles no?
interesAnual
balance
_base_imponible
años
EDAD12
__edad
salario_1_mes
cálculoNómina
valor%100
AlgunValor
100caracteres
valor?
_12_meses
____valor
Página 22
Tipos de datos
Cada dato del programa es de un tipo concreto.
Cada tipo establece:
— El conjunto (intervalo) de valores válidos, esto es, el dominio
— El conjunto de operaciones que se pueden realizar sobre los valores
del tipo (esto es, los operadores que se pueden aplicar en las
expresiones)
true
3.14159
125
'a'
"Hola"
Página 23
Tipos de datos básicos: cuáles son y dominios
— int: para números enteros (sin parte decimal).
1363, -12, 49
— float: para números reales (con parte –punto– decimal).
12.45, -3.1932, 1.16E+12
— double: para números reales; mayores intervalo y precisión.
— char: para caracteres.
'
Comentarios de: 2 Tipos e instrucciones I (0)
No hay comentarios