Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


estructuras de control, Apuntes de Ingeniería Mecánica

Asignatura: informatica, Profesor: pepito flores, Carrera: Grado en Ingeniería Mecánica, Universidad: UNEX

Tipo: Apuntes

2013/2014

Subido el 17/01/2014

ismaelportillocandin
ismaelportillocandin 🇪🇸

3.5

(4)

7 documentos

1 / 30

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
Programación estructurada
Estructuras condicionales
La sentencia if
La cláusula else
Encadenamiento y anidamiento
El operador condicional ?:
La sentencia switch
Estructuras repetitivas/iterativas
El bucle while
El bucle for
El bucle do…while
Bucles anidados
Cuestiones de estilo
Vectores y matrices
Algoritmos de ordenación
Algoritmos de búsqueda
Las estructuras de control
controlan la ejecución de las instrucciones de un programa
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e

Vista previa parcial del texto

¡Descarga estructuras de control y más Apuntes en PDF de Ingeniería Mecánica solo en Docsity!

Estructuras de controlEstructuras de controlEstructuras de controlEstructuras de control

Programación estructurada

Estructuras condicionales

La sentencia if

La cláusula else

Encadenamiento y anidamiento

El operador condicional ?:

La sentencia switch

Estructuras repetitivas/iterativas

El bucle while

El bucle for

El bucle do…while

Bucles anidados

Cuestiones de estilo

Vectores y matrices

Algoritmos de ordenación

Algoritmos de búsqueda

Las estructuras de control

controlan la ejecución de las instrucciones de un programa

Programación estructuradaProgramación estructurada Programación estructuradaProgramación estructurada

IDEA CENTRAL:

Las estructuras de control de un programa

sólo deben tener un punto de entrada y un punto de salida.

La programación estructurada...

mejora la productividad de los programadores.

mejora la legibilidad del código resultante.

La ejecución de un programa estructurado progresa

disciplinadamente ,

en vez de saltar de un sitio a otro de forma impredecible

Gracias a ello, los programas…

resultan más fáciles de probar

se pueden depurar más fácilmente

se pueden modificar con mayor comodidad

EstructurasEstructurasEstructurasEstructuras de controlde controlde controlde control

condicionalescondicionalescondicionalescondicionales

Por defecto,

las instrucciones de un programa se ejecutan secuencialmente:

El orden secuencial de ejecución no altera el flujo de control

del programa respecto al orden de escritura de las instrucciones.

Sin embargo, al describir la resolución de un problema, es normal

que tengamos que tener en cuenta condiciones que influyen sobre

la secuencia de pasos que hay que dar para resolver el problema:

Según se cumplan o no determinadas condiciones,

la secuencia de pasos involucrada en la realización de una tarea

será diferente

Las estructuras de control condicionales o selectivas nos permiten

decidir qué ejecutar y qué no en un programa.

Ejemplo típico

Realizar una división sólo si el divisor es distinto de cero.

La estructura de control condicional if

La sentencia if nos permite elegir

si se ejecuta o no un bloque de instrucciones.

Sintaxis

if ( condición ) sentencia ;

if ( condición ) { bloque }

donde bloque representa un bloque de instrucciones.

Bloque de instrucciones :

Secuencia de instrucciones encerradas entre dos llaves {....}

Falsa

Cierta

SI−ENTONCES

Cierta Falsa

SI−ENTONCES−SINO

Bloque_

Bloque_

Condición_

Bloque_

Bloque_

Bloque_

Condición_

Ejemplo

Decir si un número es positivo

#include <stdio.h>

int main (int argc, char *argv[]) { int x;

printf(“Déme un numero”); scanf(“%d”,&x);

if ( x>0 ) { printf(“El numero %d es positivo”,x); }

return 0; }

La cláusula else

Una sentencia if, cuando incluye la cláusula else,

permite ejecutar un bloque de código si se cumple la condición

y otro bloque de código diferente si la condición no se cumple.

Sintaxis

if ( condición ) sentencia1; else sentencia2;

if ( condición ) { bloque } else { bloque }

Los bloques de código especificados

representan dos alternativas complementarias y excluyentes

Falsa

Cierta

SI−ENTONCES

Cierta Falsa

SI−ENTONCES−SINO

Bloque_

Bloque_

Condición_

Bloque_

Bloque_

Bloque_

Condición_

Encadenamiento

Las sentencias if se suelen encadenar:

if … else if …

#include <stdio.h>

void main () { float nota;

printf(“Déme una nota: ”); scanf(“%f”,&nota); if ( nota>=9 ) { printf(“Sobresaliente”); } else if ( nota>=7 ) { printf(“Notable”); } else if ( nota>=5 ) { printf(“Aprobado”); } else { printf(“Suspenso”); } }

El if encadenado anterior equivale a:

if ( nota>=9 ) { printf(“Sobresaliente”); } if (( nota>=7 ) && ( nota<9 )) { printf(“Notable”); } if (( nota>=5 ) && ( nota<7 )) { printf(“Aprobado”); } if ( nota<5 ) { printf(“Suspenso”); }

Anidamiento

Las sentencias if también se pueden anidar unas dentro de otras.

Ejemplo

Resolución de una ecuación de primer grado ax+b = 0

#include <stdio.h>

void main() { float a,b;

printf(“Coeficientes de la ecuación ax+b=0:”); scanf (“%f %f”,&a,&b);

if (a!=0) { printf(“La solución es %f”, -b/a); } else { if (b!=0) { printf(“La ecuación no tiene solución.”); } else { printf(“Solución indeterminada.”); } } }

El if anidado anterior equivale a …

if (a!=0) { printf(“La solución es %f”, -b/a); }

if ((a==0) && (b!=0)) { printf(“La ecuación no tiene solución.”); }

if ((a==0) && (b==0)) { printf(“Solución indeterminada.”); }

En este caso, se realizarían 5 comparaciones en vez de 2.

Selección múltiple con la sentencia switch

Permite seleccionar entre varias alternativas posibles

Sintaxis

switch ( expresión ) {

case expr_cte1 : sentencia1;

case expr_cte2 : sentencia2; ... case expr_cteN : sentenciaN;

default: sentencia; }

  • Se selecciona a partir de la evaluación de una única expresión.
  • La expresión del switch ha de ser de tipo entero.
  • Los valores de cada caso del switch han de ser constantes.
  • La etiqueta default marca el bloque de código que se ejecuta

por defecto (cuando al evaluar la expresión se obtiene un valor

no especificado por los casos del switch).

  • En C, se ejecutan todas las sentencias incluidas a partir del

caso correspondiente, salvo que explícitamente usemos break:

switch ( expresión ) { case expr_cte1 : sentencia1; break; case expr_cte2 : case expr_cte3 : sentenciaN; }

switch ( expresión ) { case expr_cte1 : sentencia1; break; case expr_cte2 : sentencia2; break; default: sentencia; }

Estructuras de control - 13 - © Fernando Berzal

Ejemplo

#include <stdio.h>

void main() { int nota;

printf(“Calificación: ”); scanf(“%d”, &nota);

switch ( nota ) {

case 0 : case 1 : case 2 : case 3 : case 4 : printf(“Suspenso”); break;

case 5 : case 6 : printf(“Aprobado”); break;

case 7 : case 8 : printf(“Notable”); break;

case 9 : printf(“Sobresaliente”); break;

case 10: printf(“Matrícula”); break;

default: printf(“Error”); } }

Si trabajamos con datos de tipo real,

tendremos que usar sentencias if encadenadas.

El bucle while

while ( condición ) sentencia;

while ( condición ) { bloque }

MUY IMPORTANTE

En el cuerpo del bucle debe existir algo que haga variar el valor

asociado a la condición que gobierna la ejecución del bucle.

Condición Bloque

No

Ejemplo

Tabla de multiplicar de un número

#include <stdio.h>

void main () { int n, i;

printf (“Introduzca un número: ”); scanf (“%d”, &n);

i=0; // Inicialización del contador

while (i<=10) { printf (“%d x %d = %d\n“, n, i, n*i); i++; } }

Ejemplo

Divisores de un número

#include <stdio.h>

void main () { int n; int divisor;

printf (“Introduzca un número: ”); scanf (“%d”, &n);

printf (“Los divisores del número son:\n”);

divisor = n;

while (divisor>0) {

if ((n%divisor) == 0) printf (“%d\n”, divisor);

divisor--; } }

En los ejemplos anteriores se conoce de antemano el número de

iteraciones que han de realizarse (cuántas veces se debe ejecutar

el bucle):

En este caso, la expresión del while se convierte en una simple

comprobación del valor de una variable contador (una variable

que se incrementa o decrementa en cada iteración y nos permite

contabilizar la iteración en la que nos encontramos).

En otras ocasiones, puede que no conozcamos de antemano

cuántas iteraciones se han de realizar.

Ejemplo

Sumar una serie de números

hasta que el usuario introduzca un cero

#include <stdio.h>

void main() { double suma; // Suma de los datos double n; // Número leído desde el teclado

suma = 0; // Inicialización de la suma

printf (“Introduzca un número (0 para terminar): ”); scanf (“%lf”, &n);

while (n!=0) {

suma = suma + n;

printf (“Introduzca un número (0 para terminar): ”); scanf (“%lf”, &n); }

printf (“Suma total = %lf\n”, suma); }

El valor introducido determina

si se termina o no la ejecución del bucle.

El bucle for

Se suele emplear en sustitución del bucle while

cuando se conoce el número de iteraciones que hay que realizar.

Sintaxis

for (exp1; exp2; exp3) { bloque; }

Equivalencia entre for y while

for (expr1; expr2; expr3) { bloque; }

equivale a expr1;

while (expr2) { bloque; expr3; }