Publicado el 14 de Diciembre del 2018
1.554 visualizaciones desde el 14 de Diciembre del 2018
806,6 KB
57 paginas
Creado hace 8a (22/09/2016)
Tema 3. Estructuras de control
3.1. Secuencial
3.2. Selección
3.3. Repetición
2
Objetivos
• Objetivos del tema:
– Conocer y saber la utilidad de las tres estructuras de control
(secuencial, alternativa y repetitiva) en el paradigma de la
programación estructura.
– Aprender a utilizar las sentencias asociadas a las estructuras
de control y los algoritmos fundamentales basados en ellas.
– Aprender a identificar distintos
tipos de problemas y
desarrollar soluciones algorítmicas que los resuelvan.
– Todo ello utilizando el lenguaje C de forma estructurada.
Tema: Estructuras de control
3
Índice
• Secuencia
• Selección:
– if
– if ...else
– switch
• Repetición:
– while
– do … while
– for
Tema: Estructuras de control
4
Ejemplo. Programa con alternativa e iterativa
/* Programa que escribe los num primeros números naturales */
#include <stdio.h>
int main()
{
int contador, num;
printf("Escribe un numero entero: ");
scanf("%d", &num);
if (num <= 0) printf("numero incorrecto");
else {
contador = 1;
while (contador <= num)
{
printf ("%d \n", contador);
contador++;
}
}
return 0;
}
Tema: Estructuras de control
5
Estructura de Control: Secuencial
• Finalidad: conocer el conjunto de acciones y el orden en que
deben realizarse: de manera automática, una a una, en el orden en
que están escritas.
• Representación:
– Lenguaje C
{
}
sentencia 1;
sentencia 2;
.
.
.
sentencia N;
Bloque o
Sentencia compuesta
Tema: Estructuras de control
6
Estructura de Control: Alternativa
• Finalidad: permite elegir, de entre distintos grupos de
sentencias, cuál es la que se ejecuta.
• Tipos de Alternativas (o condicionales):
– Simple
– Doble
– Múltiple
Tema: Estructuras de control
7
Estructura de Control: Alternativa Simple
• Finalidad: permite realizar un conjunto de acciones solo cuando
se cumpla una determinada situación.
• Representación en el lenguaje C
if (condición)
sentencia
La condición es una expresión entera lógica.
La sentencia puede ser simple o compuesta (bloque).
Se
ejecutará sólo si la condición es verdadera (toma un valor distinto
de cero).
Tema: Estructuras de control
8
8
Alternativa Simple. Sintaxis
if (condición)
sentencia
Con una sentencia:
Con sentencia compuesta:
if (condición)
sentencia;
if (condición)
{
sentencia1;
sentencia2;
…
}
Tema: Estructuras de control
9
9
Estructura de Control: Alternativa Simple
Escribir un programa que lea un número
entero e
imprima su valor absoluto.
#include <stdio.h>
int main ( )
{
int num;
printf( “introduce un número entero: \n”);
scanf(“%d”, &num);
if (num < 0) num = -num ;
printf( “el valor absoluto es: %d\n”, num);
return 0;
}
Tema: Estructuras de control
10
Estructura de Control: Alternativa Simple
Escribir un programa C que lea un número, entre 0 y 10, que
indica una nota y escriba un mensaje de salida en el caso de
estar aprobado.
#include <stdio.h>
int main ( )
{
float nota;
printf(“Introduce la nota obtenida (0-10):”);
scanf(“%f”, ¬a);
if (nota>=5)
printf(“\n Enhorabuena, has aprobado”);
return 0;
}
¿Qué hace el programa si el alumno suspende?
¿Cómo sabemos si el programa funciona correctamente?
Tema: Estructuras de control
11
Estructura de Control: Alternativa Doble
• Finalidad: permite realizar un conjunto de acciones u otras en
el caso de que se cumpla o no una determinada situación.
• Representación en el lenguaje C
if (condición) sentencia1 else sentencia2
condición es una expresión entera lógica.
sentencia1 es
o
compuesta), que se ejecutará si la condición es verdadera (toma
un valor distinto de cero).
ejecutable
sentencia
cualquier
(simple
sentencia2 es
cualquier
sentencia
compuesta), que se ejecutará si
cero).
ejecutable
o
la condición es falsa (igual a
(simple
Tema: Estructuras de control
12
Alternativa Doble. Sintaxis
if (condición) sentencia1 else sentencia2
Con una sentencia:
Con sentencia compuesta:
if (condición)
sentencia1;
else
sentencia2;
if (condición)
{
}
else
{
}
sentencia1.1;
sentencia1.2;
…
sentencia2.1;
sentencia2.2;
…
Tema: Estructuras de control
13
13
Estructura de Control: Alternativa Simple
Escribir un programa C que lea un número, entre 0 y 10, que
indica una nota y escriba un mensaje de salida indicando si
está aprobado o suspenso.
#include <stdio.h>
int main ( )
{
}
float nota;
printf(“Introduce la nota obtenida (0-10):”);
scanf(“%f”, ¬a);
if (nota>=5)
printf(“\n Enhorabuena, has aprobado”);
else printf(“\n Estas suspenso”);
return 0;
Tema: Estructuras de control
14
Estructura de Control: Alternativa Doble
Escribir un programa C que lea dos números enteros distintos
e indique cuál de los dos es mayor, el primer número o el
segundo.
#include <stdio.h>
int main ( )
{
int n1, n2;
printf( “introduce dos números enteros: \n”);
scanf(“%d%d”, &n1, &n2);
if (n1 > n2)
printf( “el mayor es el primero: %d”, n1);
else
printf( “el mayor es el segundo: %d”, n2);
return 0;
}
Tema: Estructuras de control
15
Estructura de Control: Alternativa Doble Anidada
Escribir un programa C que lea dos números enteros distintos e
indique cuál de los dos es mayor, el primer número, el segundo
o si son iguales.
#include <stdio.h>
int main ( )
{
int n1, n2;
printf( “introduce dos números enteros: \n”);
scanf(“%d %d”, &n1, &n2);
if (n1 > n2)
printf( “el mayor es el primero: %d”, n1);
else if (n2 > n1)
printf( “el mayor es el segundo: %d”, n2);
else printf( “los dos números son iguales);
return 0;
}
Tema: Estructuras de control
16
Estructura de Control: Alternativa Doble Anidada
Alternativa if doble anidada
• Una de las sentencias (sentencia1 y/o sentencia2) es a su vez
una sentencia if.
• Cuando se anidan alternativas dobles puede haber
ambigüedad, la regla de correspondencia es:
un else se asocia al if anterior más cercano que no tenga
asociado otro else. Para romper la regla se usan { }
Tema: Estructuras de control
17
Estructura de Control: Alternativas
Escribir un programa C que lea tres números enteros distintos e
indique cuál es el mayor de los tres con un mensaje en pantalla
Tema: Estructuras de control
18
Estructura de Control: Alternativa Múltiple
Estructura if-else-if
– Se utiliza para expresar más claramente las distintas alternativas.
– Si hay que elegir entre una lista de opciones, y únicamente
una de ellas es válida:
if (cond1) sentencia1;
else
if (cond2) sentencia2;
else
if (cond1) sentencia1;
else
if (cond2) sentencia2;
Equivale a:
else
if (cond3) sentencia3;
if (cond3) sentencia3;
else sentencia4;
else sentencia4;
}
Tema: Estructuras de control
19
Estructura de Control: Alternativa Múltiple
El formato de la sentencia switch es:
switch ( selector ) {
case constante1: [sentencia 1]
case constante2: [sentencia 2]
…
[default: sentencia n]
[break;]
[break;]
[break];
}
Selector: expresión de tipo ordinal (int o char). Se evalúa y se compara con
cada una de las etiquetas case.
Cada constante es un valor único del tipo del selector.
default: Si el valor del selector no coincide con ninguna de las constantes se
ejecuta sentencia n
Se evalúa el selector y se compara, por orden, con cada una de las
constantes del case. Si se encuentra el valor, se ejecutan la secuencia de
instrucciones asociadas con el case, hasta que se encuentra la instrucción
break o el final de la instrucción switch.
Tema: Estructuras de control
20
Estructura de Control: Alternativa Múltiple
Dado el siguiente programa codificarlo empleando la sentencia switch.
#include <stdio.h>
int main()
{
int num;
printf( "Introduce un número " );
scanf( "%d", &num );
if ( num==1 ) printf( "Es un uno\n" );
else if ( num==2 ) printf( "Es un dos\n" );
else
if (num==3) printf ( "Es un tres\n" );
else printf( "No era ni 1, ni 2, ni 3\n" );
return 0;
}
Tema: Estructuras de control
21
Estructura de Control: Alternativa Múltiple
Y codificado con la estructura if-else-if …
#include <stdio.h>
int main()
{
int num;
printf("Introduce un número ");
scanf("%d", &num);
if (num==1) printf("Es un uno\n");
else if (num==2) printf("Es un dos\n");
else if (num==3) printf("Es un tres\n");
else printf ("No era ni 1, ni 2, ni 3\n");
return 0;
}
Tema: Estructuras de control
22
Estructura de Control: Alternativa Múltiple
#include <stdio.h>
int main()
{
int num;
printf( "Introduce un número " );
scanf( "%d", &num );
switch( num ) {
case 1: printf( "Es un uno\n" );
break;
case 2: printf( "Es un dos\n" );
break;
case 3: printf( "Es un tres\n" );
break;
default: printf( "No es ni 1, ni 2, ni 3\n" );
}
return 0;
}
Tema: Estructuras de control
23
23
Estructura de Control: Iterativas
• Finalidad:
permite la repetición de una acción o un grupo de acciones .
• Componentes de un ciclo:
– valores iniciales
– condición de finalización
– cuerpo del ciclo
• Tipos de acciones iterativas.
– Mientas:
while
– Hacer … Mientras : do … while
– Para:
for
Tema: Estructuras de control
24
Estructura de Control: Iterativa Mientras
Representación en el lenguaje C
while (condición)
sentencia
condición es una expresión entera lógica que controla la secuencia
de repetición. Se evalúa antes de ejecutar la sentencia.
sentencia simple o compuesta, se ejecuta cuando la condición es
verdadera (distinta de cero).
El cuerpo del bucle while se ejecutará cero o más veces
Tema: Estructuras de control
25
Estructura de Control Iterativa
Ejemplo. Escribir los 10 primeros números naturales
#include <stdio.h>
int main()
{
int contador;
contador = 1;
while (contador <= 10)
{
printf ("%d \n", contador);
contador++;
}
return 0;
}
Tema: Estructuras de control
26
Estructura de Control Iterativa
Ejemplo. Escribir los 10 primeros números naturales
#include <stdio.h>
int main()
{
int contador;
contador = 0;
while (contador < 10)
{
contador++;
printf ("%d \n", contador);
}
return 0;
}
Tema: Estructuras
Comentarios de: Tema 3: Estructuras de control (0)
No hay comentarios