Está en la página 1de 74

Tema 2.

Conceptos Básicos
de la Programación
GRADO EN INGENIERÍA
PROGRAMACIÓN I

1.Algoritmo. Codificación
TELEMÁTICA

2.Tipos de datos simples


3.Estructuras de control
Algoritmo. Codificación


Algoritmo. Conjunto ordenado y finito de
operaciones que permite hallar la solución de
un problema.

Abu Jafar ibn Mohammed al-Khowârizmî

Grado en Ingeniería Telemática. Programación I 2/74


Tema 2. Conceptos básicos de la Programación
Algoritmo

Procesador. Entidad capaz de entender un enunciado y
ejecutar el trabajo descrito.

Entorno. Conjunto de condiciones necesarias para la
ejecución del trabajo.

Acción o Primitiva. Cada etapa del enunciado.

Secuencialidad. Cada acción se ejecuta cuando la
anterior ha terminado completamente.

Paralelismo. Existen algoritmos en los cuales algunas (o
todas) las primitivas se pueden ejecutar a la vez. Se
dice entonces que se trata de un algoritmo paralelo.

Grado en Ingeniería Telemática. Programación I 3/74


Tema 2. Conceptos básicos de la Programación
Estructura general de un
algoritmo

Datos de
Proceso Resultados
entrada

ALGORITMO

Grado en Ingeniería Telemática. Programación I 4/74


Tema 2. Conceptos básicos de la Programación
Estructura general de un
algoritmo

Acciones de Entrada: Recogen los datos para el trabajo.

Acciones de Proceso: Ejecutan los cálculos.

Acciones de Salida: Ofrecen los resultados.

Datos:

De entrada.

De salida.

Internos (resultados intermedios)

Interfaz: Acciones de Entrada + Acciones de Salida +
Datos de Entrada + Datos de Salida
Grado en Ingeniería Telemática. Programación I 5/74
Tema 2. Conceptos básicos de la Programación
Resolución de problemas

1.Análisis del problema.


2.Diseño o desarrollo del algoritmo.
3.Codificación. Resolución del
algoritmo en el ordenador.

Grado en Ingeniería Telemática. Programación I 6/74


Tema 2. Conceptos básicos de la Programación
Técnicas de diseño de algoritmos


Diseño por analogía

Buscar un algoritmo que resuleva un problema
similar

Analizar las diferencias

Adaptarlo al problema actual

Diseño descendente

Dividir el problema en subproblemas más sencillos

Resolver cada uno de los subproblemas

Grado en Ingeniería Telemática. Programación I 7/74


Tema 2. Conceptos básicos de la Programación
Notación algorítmica


Notación algorítmica. Conjunto de convenios
para expresar de forma no ambigua la
resolución de un problema

Notaciones algorítmicas:

Textual: pseudolenguaje.

Gráfica: diagramas de flujo, UML, etc.

Ejecutable: lenguaje de programación.

Grado en Ingeniería Telemática. Programación I 8/74


Tema 2. Conceptos básicos de la Programación
Elementos de los diagramas de
flujo

Inicio o fin del programa

Toma de desiciones y ramificación

Pasos o procesos del programa de computo

Lineas de flujo

Operaciones de entrada y salida

Mostrar datos

Grado en Ingeniería Telemática. Programación I 9/74


Tema 2. Conceptos básicos de la Programación
Ejemplo de diagrama de flujo

Grado en Ingeniería Telemática. Programación I 10/74


Tema 2. Conceptos básicos de la Programación
Elementos de una notación
algorítmica

Elementos de una notación:

Léxicos: símbolos indivisibles mínimos
– Combinaciones mínimas de caracteres
– Símbolos gráficos

Sintácticos: reglas para combinar jerárquicamente
elementos léxicos
– Construcción de sentencias
– Uniones válidas de símbolos gráficos

Semánticos: reglas que aseguran que los elementos
sintácticos tienen significado
– Compatibilidad de tipos
Grado en Ingeniería Telemática. Programación I 11/74
Tema 2. Conceptos básicos de la Programación
Codificación de datos

DATO:
DATO Característica de una información expresada en
forma adecuada para su tratamiento.

Representación de los datos (valores):

Valores analógicos.

Valores discretos o digitales.

Necesidad de convertir los valores analógicos a
discretos.

Sistema digital:
digital Sistema de N estados estables

Dígito:
Dígito Variable capaz de asumir un estado discreto.
– Los dígitos se agrupan para representar más estados.
Grado en Ingeniería Telemática. Programación I 12/74
Tema 2. Conceptos básicos de la Programación
Códigos

Código:
Código Ley de correspondencia entre valores de información y
combinaciones de dígitos de un sistema digital utilizadas para
representarlos.

Codificación:
Codificación Información -> Código
azul ----> 0 azul ----> 100

verde ----> 1 ó verde ----> 101

rojo ----> 2 rojo ----> 111


Decodificación:
Decodificación Código -> Información
azul <---- 0 azul <---- 100

verde <---- 1 ó verde <---- 101

rojo <---- 2 rojo <---- 111


Código binario.
binario Cuando el sistema digital utilizado tiene
sólo 2 estados (0,1).
Grado en Ingeniería Telemática. Programación I 13/74
Tema 2. Conceptos básicos de la Programación
Bits y bytes

BIT (BInary
BI digiT): Unidad elemental
de información. Variable lógica que
sólo admite dos valores.

Agrupaciones de bits:

Para N valores hacen falta x bits  2 x-1 < N  2 x

BYTE u OCTETO:
OCTETO Agrupación de bits necesaria para
representar y almacenar un símbolo de escritura (8).

Medidas de la capacidad de almacenamiento:
KILOBYTE (KB) 210 bytes, MEGABYTE (MB) 210 KB,
GIGABYTE (GB) 210 MB, TERABYTE (TB) 210 GB.
Grado en Ingeniería Telemática. Programación I 14/74
Tema 2. Conceptos básicos de la Programación
Sistemas de numeración

Sistema de numeración posicional en base "b” :
Utiliza un alfabeto compuesto por b símbolos o cifras.
El valor de cada cifra depende de:

La cifra en sí.

La posición de la cifra en el número.

Ejemplo: El sistema decimal (b=10)
Alfabeto: {0,1,2,3,4,5,6,7,8,9}
3278.52 (10 = 3·103+2·102+7·101+8·100+5·10-1+2·10-2

Generalizando, para ...n3n2n1n0.n-1n-2... (b

N =...+n3·b3 +n2·b2 +n1·b1 +n0·b0 + n-1·b-1 + n-2·b-2 +...


Grado en Ingeniería Telemática. Programación I 15/74
Tema 2. Conceptos básicos de la Programación
Sistemas de numeración

• Sistema de numeración binario.


binario
Aquí la base es 2 (b=2) sólo se necesitan dos
símbolos : {0,1} Binario Decimal
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Grado en Ingeniería Telemática. Programación I 16/74


Tema 2. Conceptos básicos de la Programación
Sistemas de numeración

• Conversión de decimal a binario.


binario Se aplica el método de las
“divisiones y multiplicaciones”
multiplicaciones sucesivas por la base con
divisor y multiplicador b=2.
Ejemplo: 26.1875 (10 = 11010.0011 (2
Para la parte entera:
26 | 2
0 13 | 2
1 6 | 2
0 3 | 2
1 1
Para la parte fraccionaria:
0.1875 0.3750 0.7500 0.5000
x 2 x 2 x 2 x 2
0.3750 0.7500 1.5000 1.0000

Grado en Ingeniería Telemática. Programación I 17/74


Tema 2. Conceptos básicos de la Programación
Sistemas de numeración

• Conversión de binario a decimal.


decimal Se desarrolla la
representación binaria (con b=2) y se opera el polinomio en
decimal.
Ejemplos:

110100(2 = 1·25 + 1·24 + 0·23 + 1·22 + 0·21 + 0·20 = 52 (10


10100.001(2 = 1·24 + 0·23 + 1·22 + 0·21 + 0·20 + 0·2- 1 +0·2- 2 + 1·2-3
= 20.125 (10

– Realmente basta con sumar los pesos (2 i) de las


posiciones (i) en las que hay un 1.

Grado en Ingeniería Telemática. Programación I 18/74


Tema 2. Conceptos básicos de la Programación
Sistemas de numeración

• Sistema de numeración octal.


octal La base es 8 y el
conjunto de símbolos es: {0,1,2,3,4,5,6,7}
– Conversión de octal a decimal.
decimal Se desarrolla el polinomio
con b=8 y se opera en decimal.
– Conversión de decimal a octal.
octal Aplicar el método de
“divisiones y productos” con divisor y multiplicador 8.
– Conversión “rápida” de binario a octal.
octal Agrupar cifras
binarias de 3 en 3 y transformar con la tabla 1.
• Ejemplo: 10001101100.11010 (2 = 2154.64 (8
– Conversión “rápida” de octal a binario.
binario Aplicar tabla 1.
• Ejemplo: 537.24 (8 = 101011111.010100 (2

Grado en Ingeniería Telemática. Programación I 19/74


Tema 2. Conceptos básicos de la Programación
Sistemas de numeración


Sistema de numeración hexadecimal.
hexadecimal
La base es 16 y el conjunto de símbolos es:
{0,1,2,3,4,5,6,7,8, 9,A,B,C,D,E,F}

Binario Decimal Octal Hexadeci Binario Decimal Octal Hexadeci


mal mal
0000 0 0 0 1000 8 10 8
0001 1 1 1 1001 9 11 9
0010 2 2 2 1010 10 12 A
0011 3 3 3 1011 11 13 B
0100 4 4 4 1100 12 14 C
0101 5 5 5 1101 13 15 D
0110 6 6 6 1110 14 16 E
0111 7 7 7 1111 15 17 F

Grado en Ingeniería Telemática. Programación I 20/74


Tema 2. Conceptos básicos de la Programación
Sistemas de numeración

Conversión de hexadecimal a decimal.
decimal Se desarrolla el polinomio
con b=16 y se opera en decimal.

Conversión de decimal a hexadecimal.
hexadecimal Aplicar el método de
“divisiones y productos” con divisor y multiplicador 16.

Conversión “rápida” de binario a hexadecimal.
hexadecimal Agrupar cifras
binarias de 4 en 4 y aplicar la tabla 2.
● Ejemplo: 100 1011 1011 111 . 1011 1010 (2 = 25DF.BA (16

Conversión “rápida” de hexadecimal a binario.
binario Convertir cada
cifra hexadecimal mediante la tabla 2.

Ejemplo: 1ABC.C4 (16 = 0001 1010 1011 1100 . 1100 0100 (2

Grado en Ingeniería Telemática. Programación I 21/74


Tema 2. Conceptos básicos de la Programación
Representación de números en
el ordenador

Números de precisión finita:
finita La memoria es limitada.
Sólo se dispone de n bits para las representaciones.

Coma fija sin signo o binario puro.
puro Permite
representar sólo números enteros positivos.

Rango: 0 a 2n - 1

000...n...0  111...n...1 (en binario puro)

Inconvenientes:

Desbordamiento al realizar sumas.

Al no poder representarse los negativos, antes de realizar A - B, se ha
de comprobar que A  B.

Grado en Ingeniería Telemática. Programación I 22/74


Tema 2. Conceptos básicos de la Programación
Representación de números en
el ordenador
• Coma fija signo-magnitud.
signo-magnitud Se reserva un bit para
indicar el signo. Se utiliza para productos.
– MSB: 0 positivo, 1 negativo.
– Rango: - (2n-1 - 1) a (2n-1 - 1)
• 000...n...0 a 011...n...1 para positivos
• 100...n...0 a 111...n...1 para negativos
• primer bit para signo y el resto en binario puro.
– Inconvenientes :
• El cero tiene dos representaciones.
• La operación a realizar (suma o resta) depende de los operandos.

Grado en Ingeniería Telemática. Programación I 23/74


Tema 2. Conceptos básicos de la Programación
Representación de números en
el ordenador
• Complemento a dos.
dos Simplifica sumas y restas,
quedando reducidas a sumas (el acarreo se elimina).
– Rango: - 2n-1 a (2n-1 - 1)
• 000...n...0 a 011...n...1 para positivos (en binario puro)
• 100...n...0 a 111...n...1 para negativos (en complemento a dos)
• Los valores negativos (-x) se representan como: 2n - |x|
– Una sola representación para el cero.
– Ejemplo: para n = 8, para realizar la resta 7-5 = 2:
+7 = 00000111
-5 = (complemento a dos) 11111011 +
+2 100000010 = 2
acarreo final se elimina
Grado en Ingeniería Telemática. Programación I 24/74
Tema 2. Conceptos básicos de la Programación
Representación de números en
el ordenador
• Complemento a uno.
uno Representación de negativos
muy simple.
– Rango: - (2n-1 - 1) a (2n-1 - 1)
• 000...n...0 a 011...n...1 para positivos (en binario puro)
• 100...n...0 a 111...n...1 para negativos (en complemento a uno)
• Los valores negativos (-x) se representan como: (2n -1) - |x|
– Ventajas:
• Representación de negativos muy simple (cambio de ceros por unos y
unos por ceros).
• Las sumas y restas se reducen a sumas, pero hay que tener en cuenta
el acarreo final, sumándolo al resultado.
– Inconvenientes:
• El cero tiene dos representaciones (no unicidad).
Grado en Ingeniería Telemática. Programación I 25/74
Tema 2. Conceptos básicos de la Programación
Representación de números en
el ordenador
– Ejemplo: para n = 8, para realizar la resta 7 - 3:

+7 = 00000111
-3 en complemento a uno es 11111100

luego 00000111
11111100 +
100000011
1 +
00000100 = 4

Grado en Ingeniería Telemática. Programación I 26/74


Tema 2. Conceptos básicos de la Programación
Códigos de Entrada/Salida

• Asocian a cada símbolo de la escritura una


determinada combinación de bits.
– Caracteres gráficos. Representan símbolos.
– Caracteres de control. Órdenes para controlar los
dispositivos de E/S. (p.e. cambio de línea, pitido, etc.)
• Para codificar m símbolos distintos se necesitan n
bits, siendo n  log2 m, donde n .
código E/S : a  b
a = {0,1,2,...,8,9,A,B,...,Y,Z,a,b,...,y,z,*,",/,...}
b = {0,1}n
• Existen muchos códigos de E/S normalizados.

Grado en Ingeniería Telemática. Programación I 27/74


Tema 2. Conceptos básicos de la Programación
Códigos de Entrada/Salida

• Código ASCII.
CARACTERES DE CONTROL
0 NUL (nulo) 16 DLE (escape de enlace de datos)
1 SOH (comienzo de cabecera) 17 DC1 (control de dispositivo 1)
2 STX (comienzo de texto) 18 DC2 (control de dispositivo 2)
3 ETX (fin de texto) 19 DC3 (control de dispositivo 3)
4 EOT (fin de transmisión) 20 DC4 (control de dispositivo 4)
5 ENQ (pregunta) 21 NAK (acuse de recibo negativo)
6 ACK (acuse de recibo) 22 SYN (sincronización)
7 BEL (campana sonora) 23 ETB (fin de bloque de transmisión)
8 BS (retroceso de un espacio) 24 CAN (anulación)
9 HT (tabulación horizontal) 25 EM (fin de medio físico)
10 LF (cambio de renglón) 26 SUB (carácter de sustitución)
11 VT (tabulación vertical) 27 ESC (escape)
12 FF (página siguiente) 28 FS (separador de ficheros)
13 CR (retroceso del carro) 29 GS (separador de grupos)
14 SO (fuera de código) 30 RS (separador de registros)
15 SI (en código) 31 US (separador de unidades)

Grado en Ingeniería Telemática. Programación I 28/74


Tema 2. Conceptos básicos de la Programación
Códigos de Entrada/Salida
CARACTERES GRAFICOS

32 SP 48 0 64 @ 80 P 96 ` 112 p
33 ! 49 1 65 A 81 Q 97 a 113 q
34 " 50 2 66 B 82 R 98 b 114 r
35 # 51 3 67 C 83 S 99 c 115 s
36 $ 52 4 68 D 84 T 100 d 116 t
37 % 53 5 69 E 85 U 101 e 117 u
38 & 54 6 70 F 86 V 102 f 118 v
39 ' 55 7 71 G 87 W 103 g 119 w
40 ( 56 8 72 H 88 X 104 h 120 x
41 ) 57 9 73 I 89 Y 105 i 121 y
42 * 58 : 74 J 90 Z 106 j 122 z
43 + 59 ; 75 K 91 [ 107 k 123 {
44 , 60 < 76 L 92 \ 108 l 124 |
45 - 61 = 77 M 93 ] 109 m 125 }
46 . 62 > 78 N 94 ^ 110 n 126 ~
47 / 63 ? 79 O 95 _ 111 o 127 DEL

Grado en Ingeniería Telemática. Programación I 29/74


Tema 2. Conceptos básicos de la Programación
Programa

ALGORITMO
CODIFICACIÓN

PROGRAMA = DATOS + INSTRUCCIONES

VARIABLES CÓDIGO
Grado en Ingeniería Telemática. Programación I 30/74
Tema 2. Conceptos básicos de la Programación
Otros elementos de un programa
en C++

Comentarios. No son parte del algoritmo. Documentan el código para el
programador.
// Comentario de una sola línea

/*
Comentario de más de
una línea
*/


Importación de bibliotecas. Añade funciones predefinidas a los programas.
#include <iostream>

using namespace std;


Grado en Ingeniería Telemática. Programación I 31/74
Tema 2. Conceptos básicos de la Programación
Estructura de un
programa en C++
// Importación de biblitecas
#include <iostream>
#include <cstdlib>

using namespace std;

// Declaración de tipos

// Declaración de variables globales

// Declaración de subprogramas

// Función principal
int main( int argc, char* argv[] ){
// Declaración de variables locales

// Instrucciones

cout << "Hola mundo" << endl;

return 0;
}
Grado en Ingeniería Telemática. Programación I 32/74
Tema 2. Conceptos básicos de la Programación
Entrada/salida básica en C++

La biblioteca iostream proporciona dos flujos de
datos: cin y cout.
cout

cout es un flujo de salida. Envía datos a la unidad
de salida (terminal). Utiliza el operador << para
insertar datos en el flujo.
cout << expresión;

cin es un flujo de entrada. Extrae datos de la
unidad de entrada (teclado). Utiliza el operador >>
para extraer datos del flujo.
cin >> variable;
Grado en Ingeniería Telemática. Programación I 33/74
Tema 2. Conceptos básicos de la Programación
Funcionamiento del flujo cin

cin almacena todos los datos introducidos hasta un
retorno de carro en un buffer.

Los datos del buffer son troceados utilizando el espacio
como separador y almacenando cada parte de la
información en una variable
// Declaración de las variables a,b y c
int a, b, c;

Entrada: Lectura:
cin >> a >> b; 4 6 10 3↵ a=5
cin >> c; b=6
c = 10
Grado en Ingeniería Telemática. Programación I 34/74
Tema 2. Conceptos básicos de la Programación
Tema 2. Conceptos Básicos
de la Programación
GRADO EN INGENIERÍA
PROGRAMACIÓN I

1.Algoritmo. Codificación
TELEMÁTICA

2.Tipos de datos simples


3.Estructuras de control
Variables


Los algoritmos almacenan los datos que
procesan en objetos llamados variables

Una variable se identifica por su nombre. Se le
denomina identificador

Comienzan por una letra, seguida por una
secuencia de letras, digitos y ’_’ en cualquier
orden.

Ejemplos: contador, indice 1, PI,
N_ALUMNOS
Grado en Ingeniería Telemática. Programación I 36/74
Tema 2. Conceptos básicos de la Programación
Objetos variables


Su valor puede variar durante la ejecución del
programa

De entre todos los valores que especifica su
tipo, en un momento dado sólo tomar ́ uno de
ellos

Se puede especificar su valor inicial, en otro
caso, su valor queda INESPECIFICADO

Tiene asignado una zona de memoria donde se
almacena la representación del valor que toma
en un momento dado 37/74
Grado en Ingeniería Telemática. Programación I
Tema 2. Conceptos básicos de la Programación
Definición de variables

Las variables se definen precediendo su identificador con el nombre del tipo de dato que
contienen

Las variables se definen dentro del cuerpo del programa principal y del cuerpo de los
subalgoritmos. Su ámbito de visibilidad abarca el cuerpo (bloque) en el que están definidas.
// -- Principal --------
int main ()
{
bool logico;
char caracter = ’z’;
unsigned natural_1, natural_2;
int entero = 56;
float real;
string cadena = "pepe";
// Acciones
}
Grado en Ingeniería Telemática. Programación I 38/74
Tema 2. Conceptos básicos de la Programación
Sentencia de asignación

La sentencia de asignación permite asignar valor a una
variable

Ejemplo:
int main ()
{
int x;
int y = 5; // Asignación de un valor inicial
int z;

x = 2;
y = 7; // Asigna un valor sobreescribiendo el anterior
z = x + 2; // Asigna el resultado de una expresión

return 0;
}
Grado en Ingeniería Telemática. Programación I 39/74
Tema 2. Conceptos básicos de la Programación
Objetos contantes


Su valor no varía durante la ejecución del
programa

De entre todos los valores que especifica su
tipo, sólo tomará uno de ellos

Las constantes se definen en la zona de
constantes y su ámbito de visibilidad abarca
todo el programa

Grado en Ingeniería Telemática. Programación I 40/74


Tema 2. Conceptos básicos de la Programación
Ejemplo de definición de
constantes
#include <iostream>
#include <string>
using namespace std;
// -- Constantes -------
const float ERROR_PRECISION = 1E-7;
const char LETRA = ’a’;
const unsigned KBYTE = 1024;
const int ESCALA = -1;
const string NOMBRE = "JUAN";
// -- Principal --------
int main ()
{
// Acciones
}
Grado en Ingeniería Telemática. Programación I 41/74
Tema 2. Conceptos básicos de la Programación
Tipo


Las variables tiene asociado un tipo

Define el conjunto de valores que puede tomar
un determinado objeto (variable)

Determina las operaciones que se pueden
aplicar a un objeto

Define la interpretación del valor almacenado
en memoria.

Define el espacio que será necesario reservar
en memoria paraalbergar a un objeto.
Grado en Ingeniería Telemática. Programación I 42/74
Tema 2. Conceptos básicos de la Programación
Clasificación de los tipos
SIMPLES ESTRUCTURADOS
PREDEFINIDOS


Lógico: bool

Carácter: char

Natural: unsigned ●
Cadena: string

Entero: int

Real: float

Registro:
DEFINIDOS



Enumerado: struct TPErsona {
enum TColor { rojo,azul, string nombre;
verde }; unsigned edad;

Puntero: };
typedef Persona *TPPersona;

Array:
typedef int TArray[TAM];

Grado en Ingeniería Telemática. Programación I 43/74


Tema 2. Conceptos básicos de la Programación
Tipos escalares y ordinales


Escalares:

Fomados por elementos indivisibles (simples)

Formados por elementos ordenados, es decir, le
son aplicables los operadores relacionales == , != ,
< , > , <= , >=

Ordinales: Además de las propiedades
anteriores:

Cada valor tiene un predecesor y un sucesor
únicos (excepto el primero y el último,
respectivamente)
Grado en Ingeniería Telemática. Programación I 44/74
Tema 2. Conceptos básicos de la Programación
Tipos escalares y ordinales


Lógico: bool
Carácter: char

ESCALARES

ORDINALES

Natural: unsigned

Entero: int

Enumerado:
enum TColor { rojo,azul,

Verde };


Real: float

Grado en Ingeniería Telemática. Programación I 45/74


Tema 2. Conceptos básicos de la Programación
Tipo lógico (booleano)


Representa los valores de verdad: false y true

Resultado de expresiones relacionales y
lógicas

Operadores aplicables: operadores lógicos ! ,
&& , ||
x y !x X && y X || y

Tabla de Verdad:
F F T F F
F T T F T
T F F F T
T T F T T

Grado en Ingeniería Telemática. Programación I 46/74


Tema 2. Conceptos básicos de la Programación
Expresiones lógicas. Ejercicio

1) x ∈ {3, 4, 5, 6, 7}
2) x ∈ {1, 2, 3, 7, 8, 9}
3) x ∈ {1, 3, 5, 7, 9}
4) x ∈ {2, 5, 6, 7, 8, 9}
5) x ∈ {3, 4, 6, 8, 9}, y ∈ {6, 7, 8, 3}
6) Ni x ni y sean mayores que 10
7) x no sea multiplo de y
8) c es una letra mayúsculau
9) c es una letra
10) c es un carácter alfanumérico
Grado en Ingeniería Telemática. Programación I 47/74
Tema 2. Conceptos básicos de la Programación
Tipo carácter


Representa los símbolos utilizados para la
entrada y salida de datos. Por ejemplo de
teclado y a pantalla

Los valores se representan en el lenguaje de
programación como el símbolo entre
apostrofes: ’a’, ’F’, ’5’, ’.’, ’+’, etc.

Necesitan de una tabla de conversión para la
representación interna. La más utilizada es la
tabla ASCII que asocia a cada carácter una
posición ordenada (número de orden)
Grado en Ingeniería Telemática. Programación I 48/74
Tema 2. Conceptos básicos de la Programación
Tipo carácter. Operadores


Relacionales: == , != , < , > , <= , >=

Conversión: Es posible convertirlos al tipo
Natural, obteniendo su posición en la tabla de
conversión (ASCII), y a la inversa

Incremento/Decremento: ++, --

Grado en Ingeniería Telemática. Programación I 49/74


Tema 2. Conceptos básicos de la Programación
Tipo natural


Representa el concepto matemático de Número
Natural limitado a un rango de valores

Los valores se representan en el lenguaje de
programació́n como una secuencia de dígitos:
1245

Representación interna en binario puro para un
número de bits concreto que depende de la
palabra de CPU

Rango de valores representados: [0..2n-1]
Grado en Ingeniería Telemática. Programación I 50/74
Tema 2. Conceptos básicos de la Programación
Tipo natural. Operadores


Aritméticos: + , - , * , / , %

Relacionales: == , != , < , > , <= , >=

Conversion: Es posible convertirlos a otros
tipos escalares si y solo si están dentro del
rango correcto y a la inversa

Incremento/Decremento: ++, --

Grado en Ingeniería Telemática. Programación I 51/74


Tema 2. Conceptos básicos de la Programación
Tipo entero

Representa el concepto matemático de Número
Entero limitado a un rango de valores

Los valores se representan en el lenguaje de
programación como una secuencia de dígitos,
opcionalmente precedidos por el símbolo negativo:
-1245

Rpresentación interna en complemento a dos para
un número de bits concreto que depende de la
palabra de CPU

Rango de valores representados: [−2 n−1..2n−1 − 1]
Grado en Ingeniería Telemática. Programación I 52/74
Tema 2. Conceptos básicos de la Programación
Tipo entero. Operadores


Aritméticos: + , - , * , / , %

Relacionales: == , != , < , > , <= , >=

Conversion: Es posible convertirlos a otros
tipos escalares si y solo si están dentro del
rango correcto y a la inversa

Incremento/Decremento: ++, --

Grado en Ingeniería Telemática. Programación I 53/74


Tema 2. Conceptos básicos de la Programación
Tipo real

Representa el concepto matemático de Número Real
limitado a un rango de valores y con precisión limitada

Los valores se representan en el lenguaje de
programación como una secuencia de dígitos,
opcionalmente precedidos por el símbolo negativo, una
parte decimal y un factor de escala: -1245.678E2,
-1245.678E-3

Representación interna en coma flotante (mantisa,
exponente) para un número de bits concreto que depende
de la palabra de CPU

En la representación interna, ambas partes son limitadas
por lo que la representación es INEXACTA 54/74
Grado en Ingeniería Telemática. Programación I
Tema 2. Conceptos básicos de la Programación
Tipo real. Operadores


Aritméticos: + , - , * , /

Relacionales: == , != , < , > , <= , >=

Conversion: Es posible convertirlos a los tipos
Natural y Entero si y solo si están dentro del
rango correcto y a la inversa

La parte decimal se pierde

Incremento/Decremento: ++, --

Grado en Ingeniería Telemática. Programación I 55/74


Tema 2. Conceptos básicos de la Programación
Expresiones aritméticas.
Precedencia

La evaluación de una expresión aritmé́tica se
realiza según unas rglas de precedencia y de
asociatividad
Precedencia Asociatividad
paréntesis ( ) NO
unarios ! - ++ -- Derecha
multiplicativos */% Izquierda
sumatorios +- Izquierda
relacionales < > <= >= NO
igualdad == != NO
Lógico y && Izquierda
Lógico o || Izquierda

Grado en Ingeniería Telemática. Programación I 56/74


Tema 2. Conceptos básicos de la Programación
Tipo enumerado

No aporta una mayor capacidad para representar
datos, sino que aportan una mayor capacidad de
expresión, de tal forma que el programa refleje más
fielmente el problema que se pretende resolver

Consiste en una “enumeración” de los símbolos que
representan los conceptos abstractos de la
información a representar

Un objeto de tipo enumerado podrá tomar el valor
de cualquier símbolo de la enumeración

El tipo Enumerado es un tipo Ordinal
Grado en Ingeniería Telemática. Programación I 57/74
Tema 2. Conceptos básicos de la Programación
Tipo enumerado. Definición

Los tipos enumerados se definen utilizando la
palabra reservada enum seguida del nombre del
tipo y a continuación la lista de valores entre llaves

Ejemplos:
enum TColor { rojo, verde, azul };
enum TPalo { oros, copas, bastos, espadas };

Uso:
Tcolor color; // Definir una variable
color = rojo; // Asignar un valor
Grado en Ingeniería Telemática. Programación I 58/74
Tema 2. Conceptos básicos de la Programación
Tipo enumerado. Operadores

Aritméticos: No aplicable

Relacionales: == , != , < , > , <= , >=

Conversión: Es posible convertirlos al tipo Natural o
Entero si y solo si están dentro del rango correcto y a
la inversa

Al primer elemento de la enumeración le corresponde
la posición 0, al segundo el 1 y así sucesivamente

Incremento/Decremento: definida por el programador

Entrada/Salida: definida por el programador

Grado en Ingeniería Telemática. Programación I 59/74


Tema 2. Conceptos básicos de la Programación
Conversión de tipos


Es posibles convertir valores de un tipo a
escalar a otro

La conversión se realiza precediendo el valor a
convertir entre paréntesis por el tipo al que se
quiere convertir

Ejemplos:
int('a') float(10)
int(10.5) char(65)

Grado en Ingeniería Telemática. Programación I 60/74


Tema 2. Conceptos básicos de la Programación
Tema 2. Conceptos Básicos
de la Programación
GRADO EN INGENIERÍA
PROGRAMACIÓN I

1.Algoritmo. Codificación
TELEMÁTICA

2.Tipos de datos simples


3.Estructuras de control
Estructura selectiva


Control de selección, alternativas.

Ejecutar un bloque de acciones dependiendo de la
evaluación de una expresión lógica o condición.

3 tipos de sentencias alternativas:


Sentencias de selección simple

Sentencias de selección binaria

Sentencias de selección múltiple

Grado en Ingeniería Telemática. Programación I 62/74


Tema 2. Conceptos básicos de la Programación
Sentencia de Selección Simple

Sintaxis
if (condición_de_control) {
acción;
}

Ejemplo: Comprobar si un número leído es positivo
int x;

cin >> x;
if (x < 0){
cout << "El número debe ser positivo" << endl;
}
cout << x;
Grado en Ingeniería Telemática. Programación I 63/74
Tema 2. Conceptos básicos de la Programación
Diagrama de flujo

Falso
CondControl

Cierto

Acciones

Grado en Ingeniería Telemática. Programación I 64/74


Tema 2. Conceptos básicos de la Programación
Sentencia de Selección Binaria


Sintaxis:
if (condición_de_control)
condición_de_control {
acción_consecuente
} else {
Cierto Falso
acción_alternativa CondControl

} Accion Accion
consecuente alternativa

Grado en Ingeniería Telemática. Programación I 65/74


Tema 2. Conceptos básicos de la Programación
Sentencia Selectiva Multiple

Sintaxis:
switch (expresión) {
case valor1:
acción_valor1;
break;
case valor2:
acción_valor2;
break;
default:
acción_alternativa;
} 66/74
Grado en Ingeniería Telemática. Programación I
Tema 2. Conceptos básicos de la Programación
Sentencia Selectiva Múltiple

● Expresión puede ser cualquier expresión válida


que se evalue a un valor ordinal
● Expresión solo se evalua una vez al comiezo de
la sentencia selectiva multiple
● Valor1, ..., valorN deben ser valores
constantes
● La sentencia break no tiene que aparecer
obligatoriamente. Si no aparece la ejecución
continua por el siguiente caso hasta encontrar una
sentencia break
Grado en Ingeniería Telemática. Programación I 67/74
Tema 2. Conceptos básicos de la Programación
Sentencia Selectiva Múltiple

Ejemplo:
int x;
cin >> x;
switch (x) {
case 1:
cout << "Vale 1";
break;
case 2:
cout << "Vale 2";
break;
case 3:
cout << "Vale 3";
case 4:
cout << "Vale 4";
break;
default:
cout << "Tiene otro valor";
}
Grado en Ingeniería Telemática. Programación I 68/74
Tema 2. Conceptos básicos de la Programación
Estructura Repetitivas


Necesarias en la mayoría de los
algoritmos.

Estructura repetitiva = bucle = lazo.

Iteración

Ejecutan un conjunto de acciones(cuerpo
del bucle) un número determinado o
indeterminado a priori de veces.

¿Cuantas veces se ejecutan las acciones?
Condición de control
Grado en Ingeniería Telemática. Programación I 69/74
Tema 2. Conceptos básicos de la Programación
Bucle Precondición


Sintaxis:
while (condición_de_control) {
acción;
}
CondControl

Cierto
Acciones

Falso

AccionSeguida
Grado en Ingeniería Telemática. Programación I 70/74
Tema 2. Conceptos básicos de la Programación
Bucle Postcondición


Sintaxis:
do {
acción; Acciones
} while (cond_control);

CondCont
rol Falso

Cierto

AccionSeguida
Grado en Ingeniería Telemática. Programación I 71/74
Tema 2. Conceptos básicos de la Programación
Bucle Determinista


Se implementa mediante la instrucción for de C+
+

Sintaxis:
Sintaxis
for( iniciación ; condición ; actualización ) {
acción;
}

Ejemplo:
Ejemplo
for ( int i = 1 ; i < 10 ; i++ ) {
cout << i << endl;
}
Grado en Ingeniería Telemática. Programación I 72/74
Tema 2. Conceptos básicos de la Programación
Bucle Determinista


La instrucción for de C++ es indeterminista.

Para una correcta programación estructurada
es necesario limitar su uso a casos
deterministas → Cuando el número de
iteraciones del bucle se conoce a priori.

La variable contadora del bucle no deberá ser
modificada dentro del mismo.

La vcb puede ser de cualquier tipo ordinal.

Grado en Ingeniería Telemática. Programación I 73/74


Tema 2. Conceptos básicos de la Programación
Programación Estructurada

BÖHM Y JACOPINI: 1.965


Bases de la Programación Estructurada
"Se demuestra que todo problema que pueda resolverse en un numero
finito de pasos puede expresarse usando únicamente 3 tipos de
estructuras o bloques fundamentales con una sola entrada y una
sola salida para organizar dichos pasos:

Una caja proceso o de tratamiento secuencial.


Un mecanismo de decisión binaria.
Un mecanismo de bucle generalizado."

Grado en Ingeniería Telemática. Programación I 74/74


Tema 2. Conceptos básicos de la Programación

También podría gustarte