El presente documento en formato PDF de Programación ha sido diseñado como material de apoyo fundamental para la asignatura de Programación, parte esencial dentro de la formación académica en el ámbito de la informática y la tecnología. Su objetivo principal es proporcionar a los estudiantes...
El presente documento en formato PDF de Programación ha sido diseñado como material de apoyo fundamental para la asignatura de Programación, parte esencial dentro de la formación académica en el ámbito de la informática y la tecnología. Su objetivo principal es proporcionar a los estudiantes una guía clara y progresiva que facilite la adquisición de competencias en el diseño, desarrollo y análisis de programas informáticos.
En las primeras páginas, el PDF ofrece una introducción a la programación como disciplina, explicando su importancia en el mundo actual y su papel como base de la transformación digital. Se exponen conceptos como el pensamiento computacional, los algoritmos y la lógica de programación, los cuales son indispensables para que los estudiantes comprendan cómo transformar problemas reales en soluciones automatizadas mediante código.
El documento está organizado en bloques temáticos que guían al lector desde lo más básico hasta conceptos de mayor complejidad. En un primer módulo se abordan los fundamentos de la programación estructurada, con temas como variables, tipos de datos, operadores, estructuras condicionales y ciclos. Cada concepto es acompañado por ejemplos prácticos en diferentes lenguajes de programación, permitiendo al estudiante ver su aplicación en contextos reales.
Posteriormente, se introduce la programación modular, enfatizando la importancia de dividir los programas en funciones y procedimientos para lograr un código más claro, eficiente y reutilizable. A continuación, se dedica un bloque completo a las estructuras de datos, explicando listas, arreglos, pilas, colas y matrices, elementos que constituyen la base para el desarrollo de software de mayor complejidad.
Uno de los apartados más relevantes está orientado a la programación orientada a objetos (POO). En él se estudian conceptos como clases, objetos, atributos, métodos, herencia, polimorfismo y encapsulamiento. Este tema se complementa con ejercicios prácticos que ilustran cómo modelar problemas reales utilizando este paradigma de programación ampliamente empleado en la industria.
El PDF también incluye un módulo dedicado al manejo de archivos y bases de datos, donde se explica cómo almacenar, recuperar y manipular información de manera persistente. Además, se introduce al estudiante en el trabajo con entornos de desarrollo integrado (IDE), herramientas de depuración y buenas prácticas de codificación que favorecen la calidad del software.
En cuanto a la metodología, el documento combina teoría con ejercicios resueltos, diagramas de flujo, prácticas guiadas y proyectos de programación. Esto permite que los estudiantes no solo comprendan los fundamentos, sino que también desarrollen la capacidad de aplicarlos en situaciones reales, afianzando sus habilidades de análisis, lógica y creatividad.
Finalmente, el PDF concluye con un apartado dedicado a la programación avanzada y tendencias actuales.
Size: 1009.14 KB
Language: es
Added: Sep 11, 2025
Slides: 46 pages
Slide Content
TEMA 6
INICIACIÓN A LA PROGRAMACIÓN
SEGUNDA PARTE
INFORMÁTICA. GRUPO B1. 2024
Juan Viu Sos
Sentencias condicionales
Bucles (sentencias repetitivas)
Interrupciones de programas
SENTENCIAS DE CONTROL DE FLUJO 2
Cuerpo del programa: el algoritmo
➢Las estructuras de Entrada y Salida de datos suelen ser
similares en todos los programas/scripts.
➢El algoritmo es la "receta central" con instrucciones
que la máquina debe ejecutar (varía según el problema):
➢Algoritmo: operaciones y decisiones/control en su
realización (sentencias de control de flujo)
Sentencias condicionales
Bucles
Datos de
entrada
Datos de
salida
ALGORITMO
3 SENTENCIAS DE CONTROL DE FLUJO
Sentencias condicionales
Darán paso a ciertas instrucciones sólo si se cumplen una
condición asociada a ellas.
(P.ej.: "que un número no sea cero antes de dividir por él")
➢if
if simple
if unicondicional
if multicondicional
➢switch (éste no lo veremos)
CONDICIONAL SIMPLE
4 SENTENCIAS DE CONTROL DE FLUJO
Sentencias condicionales
Sintaxis básica:
if condicion
operaciones
end
o bien, de forma breve:
if condicion, operaciones, end
5 SENTENCIAS DE CONTROL DE FLUJO
CONDICIONAL SIMPLE
➢La condición viene dada por (operaciones de) expresiones lógicas.
Si la condición evaluada es cierta (true), se ejecutan las operaciones.
Si ésta es falsa (false), no se ejecutan se ejecutan las operaciones.
Sentencias condicionales
6 SENTENCIAS DE CONTROL DE FLUJO
CONDICIONAL SIMPLE
Ejercicio
Escribir un programa que pida un número entero y escriba en pantalla la
frase 'Es múltiplo de 2' si lo es, y/o 'Es múltiplo de 3' si lo es.
Sentencias condicionales
n ← dame un entero
n múltiplo de 2
Escribe 'Es múltiplo de 2'
SI
NO
Escribe 'Es múltiplo de 3'
SI
NO
FIN
7 SENTENCIAS DE CONTROL DE FLUJO
CONDICIONAL SIMPLE
n = input('Introduce un entero:' );
if rem(n,2)==0 %resto n/2 es 0
disp('Es múltiplo de 2')
end
if rem(n,3)==0 %resto n/3 es 0
disp('Es múltiplo de 3')
end
Cuidado: siempre hay que terminar
la sentencia condicional con end.
El editor de Octave autocompleta
con endif y puede dar problema
con Matlab (esto se puede cambiar
en "Preferencias/Editor/Sangrado")
Solución
n múltiplo de 3
Sentencias condicionales
8 SENTENCIAS DE CONTROL DE FLUJO
BLOQUE UNICONDICIONAL
Sentencias condicionales
9 SENTENCIAS DE CONTROL DE FLUJO
BLOQUE UNICONDICIONAL
Sintaxis:
if condicion
operaciones 1
else
operaciones 2
end
➢Si la condición evaluada es cierta (true), se ejecuta operaciones 1.
Ojo: en este caso, el programa continúa directamente después del end.
➢Si la condición es falsa (false), se ejecuta operaciones 2. (Nunca ambas)
Sentencias condicionales
10 SENTENCIAS DE CONTROL DE FLUJO
CONDICIONAL SIMPLE
Ejercicio
Escribir un programa que pida un número entero positivo y escriba en
pantalla si es par o impar.
Sentencias condicionales
n ← dame un entero positivo
n es par
SI NO
Escribe 'Es par'
Escribe 'Es impar'
FIN
11 SENTENCIAS DE CONTROL DE FLUJO
BLOQUE UNICONDICIONAL Solución
n = input('Introduce un entero positivo: ' );
if rem(n,2)==0 %resto de n entre 2 es 0
disp('Es par')
else %en caso contrario
disp('Es impar')
end
Sentencias condicionales
opcional
12 SENTENCIAS DE CONTROL DE FLUJO
BLOQUE MULTICONDICIONAL
Sentencias condicionales
13 SENTENCIAS DE CONTROL DE FLUJO
BLOQUE MULTICONDICIONAL
Sintaxis:
if condicion_1
operaciones 1
elseif condicion_2
operaciones 2
elseif …………………….
………………………………………..
...
else %opcional, sólo ejecuta si las anteriores son falsas
operaciones optativas
end
➢Entra en el bloque de la PRIMERA condición evaluada que sea cierta (true), ejecuta las
operaciones del bloque y continúa directamente después del end.
Sentencias condicionales
14 SENTENCIAS DE CONTROL DE FLUJO
Ejercicio
Escribir un programa que pida un número entero y escriba en pantalla si
es cero, negativo o positivo.
BLOQUE MULTICONDICIONAL
Sentencias condicionales
15 SENTENCIAS DE CONTROL DE FLUJO
Ejercicio
Escribir un programa que pida un número entero y escriba en pantalla si
es cero, negativo o positivo.
Solución
n=input('Introduce un entero: ' );
if n<0 %caso n negativo
disp('el número es negativo' )
elseif n==0 %caso n cero
disp('el número es cero')
else %caso restante
disp('el número es positivo' )
end
BLOQUE MULTICONDICIONAL
Sentencias condicionales
16 SENTENCIAS DE CONTROL DE FLUJO
Sentencias repetitivas: bucles
Usaremos los bucles cuando necesitemos repetir un conjunto de
sentencias…
➢for
...un número determinado de veces, usando un contador para las
iteraciones.
P.ej. "dado un vector, ir accediendo de la primera a la última
componente, sumando a cada componente su anterior".
➢while
...mientras se cumpla una determinada condición de control.
P.ej. "El usuario debe introducir un valor positivo → si no lo es, se lo
seguimos pidiendo hasta que el dato introducido sea positivo".
17 SENTENCIAS DE CONTROL DE FLUJO
Contador
automático
desde un valor
inicial a otro
final
Sentencias
No hemos superado
el valor final
Hemos superado
el valor final
Bucles con for
➢Repetiremos sentencias,
usando un contador.
➢Este contador va tomando
valores desde un valor
inicial hasta un valor final.
➢Cuando llegamos al valor
final, el bucle se termina y
continuamos con el
programa.
➢Ojo: ¡las sentencias del bucle
pueden depender del valor
del contador!
BUCLE MEDIANTE CONTADOR
18 SENTENCIAS DE CONTROL DE FLUJO
Bucles con for
Bucle ordinario
for variable=inicio:fin
sentencias
end
for variable=inicio:paso:fin
sentencias
end
for variable=[valor1,valor2,valor3,...]
sentencias
end
El bucle se forma mediante la iteración de una variable de control
(usualmente llamada i, j o k), quien va recorriendo un vector fila.
for i=1.5:0.1:2
disp(i)
end
for i=1:5
disp(i)
end
for i=[4,1,1,-2,0.4]
disp(i)
end
Ejemplos
Bucle ordinario EJEMPLOS
19 SENTENCIAS DE CONTROL DE FLUJO
n = 5;
v = [];
for i=1:n
v(i)=1;
end
disp(v)
salida
salida
Bucles con for
v=[0 9 -2 3];
w=[];
n=length(v);
for i=1:4
w(i)=v(i)-1;
end
disp(w)
RECORRIENDO VECTORES Y REALIZANDO ASIGNACIONES
Bucle ordinario EJEMPLOS
20 SENTENCIAS DE CONTROL DE FLUJO
n = 5;
v = [];
for i=1:n
v(i)=1;
end
disp(v)
1 1 1 1 1
salida
-1 8 -3 2
salida
Bucles con for
v=[0 9 -2 3];
w=[];
n=length(v);
for i=1:n
w(i)=v(i)-1;
end
disp(w)
RECORRIENDO VECTORES Y REALIZANDO ASIGNACIONES
Bucles anidados
21 SENTENCIAS DE CONTROL DE FLUJO
¿CÓMO PODEMOS RECORRER MATRICES POR FILAS Y COLUMNAS?
Dadas dos matrices A y B de tamaño 3x2 …
¿Cómo podríamos realizar la operación usando bucles?
Bucles con for
C = A.*B
"A MANO"...
Bucles anidados
22 SENTENCIAS DE CONTROL DE FLUJO
¿CÓMO PODEMOS RECORRER MATRICES POR FILAS Y COLUMNAS?
Dadas dos matrices A y B de tamaño 3x2 …
¿Cómo podríamos realizar la operación usando bucles?
Bucles con for
C = A.*B
"A MANO"...
%Fila 1
for j=1:2
C(1,j) = A(1,j)*B(1,j)
end
%Fila 2
for j=1:2
C(2,j) = A(2,j)*B(2,j)
end
%Fila 3
for j=1:2
C(3,j) = A(3,j)*B(3,j)
end
Primer intento… pero...
¡Estamos realizando una tarea repetitiva!
¿Podemos usar BUCLES para repetir BUCLES?
Bucles anidados
23 SENTENCIAS DE CONTROL DE FLUJO
¡BUCLES ANIDADOS!
Los bucles anidados se forman colocando un bucle dentro de otro.
Para cada valor del bucle exterior, se van recorriendo los sucesivos valores
del bucle interior.
Bucles con for
%Fila 1
for j=1:2
C(1,j) = A(1,j)*B(1,j)
end
%Fila 2
for j=1:2
C(2,j) = A(2,j)*B(2,j)
end
%Fila 3
for j=1:2
C(3,j) = A(3,j)*B(3,j)
end
%BUCLE: sobre las 2 filas
for i=1:3
%BUCLE: sobre las 3 columnas
for j=1:2
C(i,j) = A(i,j)*B(i,j)
end
end
24 SENTENCIAS DE CONTROL DE FLUJO
Bucles anidados EJEMPLOS
Bucles con for
A = [1 3 5 ; 4 7 0];%2x3
for i=1:2
for j=1:3
fprintf('%d ', A(i,j))
end
fprintf('\n') %Salto de linea
end
salida
¡Muy útiles para recorrer y realizar asignaciones en matrices!
"A MANO"...
25 SENTENCIAS DE CONTROL DE FLUJO
n=5; m=7; %Por ejemplo
for i=1:n
for j=1:m
A(i,j)=1/(i+j-1);
end
end
→ i=1 → j=1, j=2, … , j=m
→ i=2 → j=1, j=2, … , j=m
… …………………………………
→ i=n → j=1, j=2, … , j=m
¿Cómo se
comporta?
Bucles con for
A(1,1)=1/(1+1-1)A(1,2)=1/(1+2-1)…… A(1,m)=1/(1+m-1)
A(2,1)=1/(2+1-1)A(2,2)=1/(2+2-1)……A(2,m)=1/(2+m-1)
…… …… …… ……
A(n,1)=1/(n+1-1)A(n,2)=1/(n+2-1)……A(n,m)=1/(n+m-1)
Este bucle genera las sentencias:
i=1 →
i=2 →
i=n →
Bucles anidados EJEMPLOS
Queremos generar la matriz:
26 SENTENCIAS DE CONTROL DE FLUJO
Bucles con for
Ejercicio
Escribir un programa que pida una matriz por teclado y, MEDIANTE EL
USO DE BUCLES Y CONDICIONALES, la modifique de la forma siguiente:
1) elevando al cuadrado los elementos de la diagonal,
2) cambiando por cero cualquier otro elemento.
Finalmente, la debe mostrar en pantalla.
Recordad: podemos calcular el n.º de filas y el n.º de columnas mediante
la función size()
Bucles anidados
27 SENTENCIAS DE CONTROL DE FLUJO
Bucles con for
Solución
A = input('Introduce una matriz: ' );
[nfils, ncols] = size(A); %Num. de filas y colums.
for i=1:nfils %Para cada fila
for j=1:ncols %Para cada columna
if i==j %Si elem. en la diagonal
A(i,j) = A(i,j)^2;
else %Si no
A(i,j) = 0;
end
end
end
disp(A)
Bucles anidados
28 SENTENCIAS DE CONTROL DE FLUJO
¿Qué hace este programa? Lo intentamos descifrar
Bucles con for
for i=1:3
fprintf('a i=%d,\n', i)
for j=1:i
suma = i+j;
fprintf('\t le sumo j=%d: da %d \n' , j, suma)
end
end
Ojo: La variable "interior" puede depender del valor de la "exterior"
Bucles anidados EJEMPLOS
29 SENTENCIAS DE CONTROL DE FLUJO
¿Qué hace este programa? Lo intentamos descifrar
Bucles con for
for i=1:3
fprintf('a i=%d,\n', i)
for j=1:i
suma = i+j;
fprintf('\t le sumo j=%d: da %d \n' , j, suma)
end
end
Ojo: La variable "interior" puede depender del valor de la "exterior"
salida
El bucle interior va tomando
valores:
i = 1 → j de 1 a 1
i = 2 → j de 1 a 2
i = 3 → j de 1 a 3
Bucles anidados EJEMPLOS
30 SENTENCIAS DE CONTROL DE FLUJO
Bucles con while
Sintaxis:
while condicion
sentencias
end
➢La condición viene dada por expresiones lógicas.
➢Las sentencias del bucle se realizan a cada iteración,
mientras la condición sea cierta (true ).
➢Cuidado: tenemos que asegurarnos que el bucle se
detiene en algún momento (bucles infinitos ).
BUCLE MEDIANTE CONDICIONALES
31 SENTENCIAS DE CONTROL DE FLUJO
Sintaxis:
while condicion
sentencias
end
Ejemplo 1
¿Cuál es la condición?
¿Cómo se actualiza la
condición en cada iteración?
¿Podemos caer en un bucle
infinito?
Bucles con while
BUCLE MEDIANTE CONDICIONALES
i=1;
while i<6
disp(i);
i=i+1;
end
disp('Fin')
i=1;
while i<6
disp(i);
i=i+1;
end
disp('Fin')
32 SENTENCIAS DE CONTROL DE FLUJO
Sintaxis:
while condicion
sentencias
end
Ejemplo 1
Bucles con while
"mientras el valor i sea menor
que 6..."
"...muestro el valor i y DESPUÉS
actualizo i sumándole 1"
salida
BUCLE MEDIANTE CONDICIONALES
33 SENTENCIAS DE CONTROL DE FLUJO
Sintaxis:
while condicion
sentencias
end
Ejemplo 2
¿Cuál es la condición?
¿Cómo se actualiza la
condición en cada iteración?
¿Podemos caer en un bucle
infinito?
Bucles con while
BUCLE MEDIANTE CONDICIONALES
v = [-1,4,0,7,9,-1];
i=1;
while v(i)<7
disp(v(i));
i=i+1;
end
disp('Fin')
v = [-1,4,0,7,9,-1];
i=1;
while v(i)<7
disp(v(i));
i=i+1;
end
disp('Fin')
34 SENTENCIAS DE CONTROL DE FLUJO
Sintaxis:
while condicion
sentencias
end
Ejemplo 2
Bucles con while
"mientras el valor v(i) sea menor
que 7..."
"muestro el valor v(i) y
...actualizo i sumándole 1"
salida
BUCLE MEDIANTE CONDICIONALES
v = [-1,4,0,7,9,-1];
i=1;
while v(i)<7
disp(v(i));
end
disp('Fin')
35 SENTENCIAS DE CONTROL DE FLUJO
Ejemplo 3 ¿Qué ocurre en el siguiente ejemplo?
Bucles con while
BUCLE MEDIANTE CONDICIONALES
v = [-1,4,0,7,9,-1];
i=1;
while v(i)<7
disp(v(i));
end
disp('Fin')
36 SENTENCIAS DE CONTROL DE FLUJO
Ejemplo 3 ¿Qué ocurre en el siguiente ejemplo?
Bucles con while
BUCLE MEDIANTE CONDICIONALES
¡No actualizamos el valor de i
dentro del bucle!
salida
¡LA CONDICIÓN NUNCA CAMBIA!
v(1) < 7
¡BUCLE
INFINITO!
Recordad: podemos para la ejecución de un
programa con CTRL + C
37 SENTENCIAS DE CONTROL DE FLUJO
Bucles con while
Verificando datos de entrada con WHILE
Al pedir entrada de ciertos datos (p.ej. "introduce un número par"), podemos
usar while para asegurarnos de que el usuario cumple con lo que le pedimos:
n = input('Introduce un número par: ' );
while rem(n,2)~=0 %BUCLE: si n no es divisible por 2
n = input('¡Debes introducir un número par!: ' );
end
disp(n)
38 SENTENCIAS DE CONTROL DE FLUJO
x = input('Introduce un número: ' );
while isempty(x) %isempty(x) da 1 si x es vacio y 0 si no
x = input('Debes introducir un número: ' );
end
fprintf('Has introducido el %f \n' ,x)
Otro ejemplo, usando la función isempty( ):
Bucles con while
Verificando datos de entrada con WHILE
Al pedir entrada de ciertos datos (p.ej. "introduce un número par"), podemos
usar while para asegurarnos de que el usuario cumple con lo que le pedimos:
n = input('Introduce un número par: ' );
while rem(n,2)~=0 %BUCLE: si n no es divisible por 2
n = input('¡Debes introducir un número par!: ' );
end
disp(n)
39 SENTENCIAS DE CONTROL DE FLUJO
Bucles con while
Ejercicio
Escribir un programa que pida un número entero positivo al usuario. En
caso de que no lo sea, el programa continuará pidiéndo el dato hasta que se
introduzca un dato correcto. Finalmente, muestra el número en pantalla.
Verificando datos de entrada con WHILE
40 SENTENCIAS DE CONTROL DE FLUJO
Bucles con while
Solución
n = input('Introduce un número entero positivo: ' );
%BUCLE: pido de nuevo si no es positivo o si no es entero.
while (n<=0)|(fix(n)~=n)
n = input('Error. Introduce un número entero positivo: ' );
end
disp(n)
Verificando datos de entrada con WHILE
Ejercicio
Escribir un programa que pida un número entero positivo al usuario. En
caso de que no lo sea, el programa continuará pidiéndo el dato hasta que se
introduzca un dato correcto. Finalmente, muestra el número en pantalla.
41 SENTENCIAS DE CONTROL DE FLUJO
Interrupciones de bucles y programas
La estructura de los bucles, y en general de los programas, puede ser
demasiado rígida: todas las sentencias se van ejecutando en orden en
cada iteración, o hasta el final de programa.
Usaremos comandos de interrupción para atajar:
➢break
sale del bucle sin tener que terminar todas las iteraciones.
➢continue
pasa automáticamente a la siguiente iteración de un bucle.
➢return
termina automáticamente la ejecución de un programa/función.
Se utiliza SÓLO dentro de bucles ( for y while )
Permite interrumpir el bucle al que pertenece prosiguiendo
el programa por la sentencia posterior al end
Comando BREAK
42 SENTENCIAS DE CONTROL DE FLUJO
for i=1:100
if (i==11)
break
end
disp(i);
end
salida
Ejemplo
Interrupciones de bucles y programas
Se utiliza SÓLO dentro de bucles ( for y while )
Permite interrumpir el bucle al que pertenece prosiguiendo
el programa por la sentencia posterior al end
Comando BREAK
43 SENTENCIAS DE CONTROL DE FLUJO
for i=1:100
if (i==11)
break
end
disp(i);
end
1
2
3
4
5
6
7
8
9
10
salida
Ejemplo
Interrupciones de bucles y programas
44 SENTENCIAS DE CONTROL DE FLUJO
Comando CONTINUE
Se utiliza SÓLO dentro de bucles ( for y while )
Permite interrumpir la iteración actual pasando a la
siguiente del contador (Ojo: NO termina el bucle)
for i=1:100
if (i==9)
continue
end
disp(i);
end
salida
Ejemplo
Interrupciones de bucles y programas
45 SENTENCIAS DE CONTROL DE FLUJO
Comando CONTINUE
Se utiliza SÓLO dentro de bucles ( for y while )
Permite interrumpir la iteración actual pasando a la
siguiente del contador (Ojo: NO termina el bucle)
for i=1:100
if (i==9)
continue
end
disp(i);
end
1
2
3
4
5
6
7
8
10
...
salida
Ejemplo
Interrupciones de bucles y programas
Comando RETURN
46 SENTENCIAS DE CONTROL DE FLUJO
Se utiliza EN CUALQUIER LUGAR de un programa/función
Permite finalizar TODO el programa/función,
anticipadamente
notas=input('Introduce las notas del alumno: ' );
if (max(notas)>10 || min(notas)<0)
disp('Datos erroneos')
return
end
media=sum(notas)/length(notas);
fprintf('La nota media es: %f \n' , media)
Ejemplo
Termina el programa
Interrupciones de bucles y programas