SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Sesión 2B
Programación Estructurada en ANSI C
Rafael Menéndez de Llano Rozas
DEPARTAMENTO DE INFORMÁTICA Y ELECTRÓNICA
Este material se publica bajo licencia:
Creative Commons BY-NC-SA 4.0
Índice
1. Introducción.
1. Elementos lexicográficos y estructura.
1. Datos escalares, expresiones y entrada/salida básica.
2. Selección.
2. Iteración.
3. Funciones, punteros y estructuración.
4. Datos estructurados.
5. Otros aspectos.
Universidad de Cantabria. Grado de Informática. RMЯ 47
2. Iteración: Bucles
 Una sentencia de iteración o bucle se basa en
repetir otra sentencia de acuerdo a una
determinada condición.
 En general existen tres tipos de bucles:
 Bucle while: No se sabe el número de iteraciones y
la expresión se evalúa antes.
while ( condición )
sentencia(s);
 Bucle do-while (repeat - until): No se sabe el
número de iteraciones y la expresión se evalúa
después (se ejecuta al menos una vez).
do repeat
sentencia(s); sentencia(s);
while ( condición ); until (condición);
 Bucle for: se sabe el número de iteraciones y se
evalúa antes.
for (inic; cond ; next) for i=ini to fin (step)
sentencia(s); sentencia(s);
Universidad de Cantabria. Grado de Informática. RMЯ 48
2. Comparación de iteración
Java C
while (exp_booleana) {
instrucciones;
}
while (exp_entera) {
instrucciones;
}
while (true) {
instrucciones;
}
while (1) {
instrucciones;
}
do {
instrucciones;
} while (exp_booleana);
do {
instrucciones;
} while (exp_entera);
Universidad de Cantabria. Grado de Informática. RMЯ 49
Java C
for (int i=v_inic; i<=v_fin; i++)
{
instrucciones;
}
for (i=v_inic; i<=v_fin; i++)
{
instrucciones;
}
Ejercicio 10: Sentencias de iteración
1. Bájate el programa 11.c y guárdalo en tu directorio.
2. Ábrelo con un editor y examínalo y comprende las
operaciones que hay.
3. Introduce varios pares de números para ver que se
dan diversas vueltas.
4. Cambia el programa para que sea un conversor de
base.
50Universidad de Cantabria. Grado de Informática. RMЯ
2. Iteración: while
#include <stdio.h>
int main()
{
int dividendo, divisor, resto;
int contador = 0;
printf ("Introduce dividendo y divisor : n");
scanf("%d %d", &dividendo, &divisor);
while (dividendo >= divisor) /* solo sigo si es mayor */
{
resto = dividendo % divisor; /* hago la division */
dividendo = dividendo / divisor; // /=
printf("%d %5d | ", dividendo, resto); /* a la derecha */
contador++; /* aumento contador de divisiones */
}
printf ("Lo que queda es %d ", dividendo);
printf("El numero de divisiones : %d n", contador);
return 0;
}
Universidad de Cantabria. Grado de Informática. RMЯ 51
Ejercicio 11: Sentencias de iteración
1. Bájate los programas 12.c y 13.c
2. Guárdalos en tu directorio.
3. Se trata de sumar los números introducidos hasta
que se escriba uno negativo.
4. Date cuenta que si empiezas por uno negativo el
do–while no vale.
52Universidad de Cantabria. Grado de Informática. RMЯ
2. Iteración: while / do-while
#include <stdio.h>
int main()
{
int numero, suma = 0;
scanf("%d", &numero);
while (numero >= 0)
{
suma += numero;
scanf("%d", &numero);
}
printf("La suma es : %dn", suma);
return 0;
}
Universidad de Cantabria. Grado de Informática. RMЯ 53
/* cambialo para que funcione */
#include <stdio.h>
int main()
{
int numero, suma = 0;
do {
scanf("%d", &numero);
suma += numero;
}
while (numero >= 0);
printf ("La suma es : %dn",
suma);
return 0;
}
 Bucle for: “se sabe” el número de iteraciones y se evalúa antes:
for (inicialización; condición; siguiente)
sentencia(s);
 El bucle for es también
como un while encubierto:
cont = 1;
while (cont <= numero)
{
printf("holan");
cont++;
}
for (cont =1; cont <= numero; cont++)
printf("holan");
2. Iteración: for
Universidad de Cantabria. Grado de Informática. RMЯ 54
1
2,5,8…
3,6,9…
4,7,10…
Ejercicio 12: Sentencias de iteración
 Debido a su gran flexibilidad, existen muchas
maneras de utilizarlo:
1. Bájate el programa 14.c y guárdalo en tu
directorio.
2. Ábrelo con un editor, examínalo y comprende las
operaciones que hay dentro de los bucles for.
3. Cambia algunos de los ejemplos.
Universidad de Cantabria. Grado de Informática. RMЯ 55
2. Sentencias de control
 continue: para salir de una iteración (bucles).
while ((ch = getchar()) != EOF)
{
if (ch == ‘a')
continue;
putchar(ch);
}
 break: en bucles se sale del todo.
while ((ch = getchar()) != EOF)
{
if (ch == ‘a')
break;
putchar(ch);
}
Universidad de Cantabria. Grado de Informática. RMЯ 56
Ejercicio 13: Sentencias de control
 Bájate los programas 15.c y 16.c guárdalos en tu
directorio.
1. Ábrelos con un editor, examínalo y comprende las
operaciones que hay dentro del bucle while.
2. Indica cuando terminará el programa 15.
3. Indica que aparecerá y que no, cuando ejecutes el
programa 16.
4. ¿Es el 16 una algoritmo propio?
Observación: Estas dos sentencias son equivalentes al goto (de forma
encubierta), en la programación estructurada está denostado el uso de
esta sentencia, ya que puede ser sustituida por otras que harán los
programas más claros. En mi opinión sólo son justificables en casos de
detección de error y acompañadas de una condición.
Universidad de Cantabria. Grado de Informática. RMЯ 57

Más contenido relacionado

La actualidad más candente

Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1David
 
Prueba programacion
Prueba programacionPrueba programacion
Prueba programacionMarti Matura
 
Entrada y salida de datos en c
Entrada y salida de datos en cEntrada y salida de datos en c
Entrada y salida de datos en cDenisse C
 
Repeticiones
RepeticionesRepeticiones
Repeticionesyesid19
 
Guia 2nd o & 3er
Guia 2nd o & 3erGuia 2nd o & 3er
Guia 2nd o & 3ermartell024
 
Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4camnav
 
Sesion02resuelto
Sesion02resueltoSesion02resuelto
Sesion02resueltoBenjamin Ch
 
Unidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre AlgoritmosUnidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre Algoritmosmarthaill10
 
Recursividad Con C#
Recursividad Con C#Recursividad Con C#
Recursividad Con C#rezzaca
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programaciónNorma Vaquilema
 
Clase lenguaje c
Clase lenguaje c Clase lenguaje c
Clase lenguaje c Mar15marian
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIJorge Iván Alba Hernández
 
Condicion Si ANIDADA
Condicion Si ANIDADACondicion Si ANIDADA
Condicion Si ANIDADACami Ochoa
 

La actualidad más candente (19)

Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1Lenguaje de programacion C++ 1
Lenguaje de programacion C++ 1
 
Prueba programacion
Prueba programacionPrueba programacion
Prueba programacion
 
Entrada y salida de datos en c
Entrada y salida de datos en cEntrada y salida de datos en c
Entrada y salida de datos en c
 
Repeticiones
RepeticionesRepeticiones
Repeticiones
 
Guia 2nd o & 3er
Guia 2nd o & 3erGuia 2nd o & 3er
Guia 2nd o & 3er
 
Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4Lenguajesdeprogramacion c nivel1-unidad4
Lenguajesdeprogramacion c nivel1-unidad4
 
Plataformas tecnologicas introduccion visual studio
Plataformas tecnologicas introduccion visual studioPlataformas tecnologicas introduccion visual studio
Plataformas tecnologicas introduccion visual studio
 
Lenguaje C_Curso Secap
Lenguaje C_Curso SecapLenguaje C_Curso Secap
Lenguaje C_Curso Secap
 
Php Lab03
Php Lab03Php Lab03
Php Lab03
 
Sesión 09 Fund Programación
Sesión 09 Fund ProgramaciónSesión 09 Fund Programación
Sesión 09 Fund Programación
 
Algoritmo ibrahim ishtay
Algoritmo ibrahim ishtayAlgoritmo ibrahim ishtay
Algoritmo ibrahim ishtay
 
Sesion02resuelto
Sesion02resueltoSesion02resuelto
Sesion02resuelto
 
Unidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre AlgoritmosUnidad Iii Generalidades Sobre Algoritmos
Unidad Iii Generalidades Sobre Algoritmos
 
Recursividad Con C#
Recursividad Con C#Recursividad Con C#
Recursividad Con C#
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Elemento3
Elemento3Elemento3
Elemento3
 
Clase lenguaje c
Clase lenguaje c Clase lenguaje c
Clase lenguaje c
 
Practica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FIPractica 9 Laboratorio de Computación para Ingenieros FI
Practica 9 Laboratorio de Computación para Ingenieros FI
 
Condicion Si ANIDADA
Condicion Si ANIDADACondicion Si ANIDADA
Condicion Si ANIDADA
 

Similar a Sesion 3

Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje ctbjs
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje ctbjs
 
EJERCICIOS BUCLES REPETITIVOS LENGUAJE C
EJERCICIOS BUCLES REPETITIVOS LENGUAJE CEJERCICIOS BUCLES REPETITIVOS LENGUAJE C
EJERCICIOS BUCLES REPETITIVOS LENGUAJE CGato Rivitas
 
Introduccion a la programación Parte II
Introduccion a la programación Parte IIIntroduccion a la programación Parte II
Introduccion a la programación Parte IIYelixa Araque Angulo
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++Tensor
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++Tensor
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++Tensor
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosmarigelcontreras
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosmarigelcontreras
 
Tema 2 - Programación básica en C (III)
Tema 2  - Programación básica en C (III)Tema 2  - Programación básica en C (III)
Tema 2 - Programación básica en C (III)Pablo Haya
 
Por que java
Por que javaPor que java
Por que javareivax
 
Grupo 6 turbopascal apesteguia (1)
Grupo 6 turbopascal apesteguia (1)Grupo 6 turbopascal apesteguia (1)
Grupo 6 turbopascal apesteguia (1)tonytenorio2
 

Similar a Sesion 3 (20)

Práctica N°3.pdf
Práctica N°3.pdfPráctica N°3.pdf
Práctica N°3.pdf
 
Plan de clase
Plan de clasePlan de clase
Plan de clase
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Tutorial lenguaje c
Tutorial lenguaje cTutorial lenguaje c
Tutorial lenguaje c
 
Sesion 4
Sesion 4Sesion 4
Sesion 4
 
EJERCICIOS BUCLES REPETITIVOS LENGUAJE C
EJERCICIOS BUCLES REPETITIVOS LENGUAJE CEJERCICIOS BUCLES REPETITIVOS LENGUAJE C
EJERCICIOS BUCLES REPETITIVOS LENGUAJE C
 
Introduccion a la programación Parte II
Introduccion a la programación Parte IIIntroduccion a la programación Parte II
Introduccion a la programación Parte II
 
03 iteracion
03 iteracion03 iteracion
03 iteracion
 
Guia 5 dev c++
Guia 5 dev c++Guia 5 dev c++
Guia 5 dev c++
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
Introduccion a C++.pdf
Introduccion a C++.pdfIntroduccion a C++.pdf
Introduccion a C++.pdf
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 
Estructuras iterativas
Estructuras iterativasEstructuras iterativas
Estructuras iterativas
 
Estructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestosEstructuras iterativas y ejemplos propuestos
Estructuras iterativas y ejemplos propuestos
 
Estructuras iterativas
Estructuras iterativasEstructuras iterativas
Estructuras iterativas
 
Tema 2 - Programación básica en C (III)
Tema 2  - Programación básica en C (III)Tema 2  - Programación básica en C (III)
Tema 2 - Programación básica en C (III)
 
Por que java
Por que javaPor que java
Por que java
 
Grupo 6 turbopascal apesteguia (1)
Grupo 6 turbopascal apesteguia (1)Grupo 6 turbopascal apesteguia (1)
Grupo 6 turbopascal apesteguia (1)
 

Último

Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaSantiagoSanchez353883
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7luisanthonycarrascos
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENSLuisLobatoingaruca
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxEverardoRuiz8
 

Último (20)

Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
TALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación públicaTALLER PAEC preparatoria directamente de la secretaria de educación pública
TALLER PAEC preparatoria directamente de la secretaria de educación pública
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7sistema de construcción Drywall semana 7
sistema de construcción Drywall semana 7
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENSMANIOBRA Y CONTROL INNOVATIVO LOGO PLC  SIEMENS
MANIOBRA Y CONTROL INNOVATIVO LOGO PLC SIEMENS
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
Unidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptxUnidad 3 Administracion de inventarios.pptx
Unidad 3 Administracion de inventarios.pptx
 

Sesion 3

  • 1. Sesión 2B Programación Estructurada en ANSI C Rafael Menéndez de Llano Rozas DEPARTAMENTO DE INFORMÁTICA Y ELECTRÓNICA Este material se publica bajo licencia: Creative Commons BY-NC-SA 4.0
  • 2. Índice 1. Introducción. 1. Elementos lexicográficos y estructura. 1. Datos escalares, expresiones y entrada/salida básica. 2. Selección. 2. Iteración. 3. Funciones, punteros y estructuración. 4. Datos estructurados. 5. Otros aspectos. Universidad de Cantabria. Grado de Informática. RMЯ 47
  • 3. 2. Iteración: Bucles  Una sentencia de iteración o bucle se basa en repetir otra sentencia de acuerdo a una determinada condición.  En general existen tres tipos de bucles:  Bucle while: No se sabe el número de iteraciones y la expresión se evalúa antes. while ( condición ) sentencia(s);  Bucle do-while (repeat - until): No se sabe el número de iteraciones y la expresión se evalúa después (se ejecuta al menos una vez). do repeat sentencia(s); sentencia(s); while ( condición ); until (condición);  Bucle for: se sabe el número de iteraciones y se evalúa antes. for (inic; cond ; next) for i=ini to fin (step) sentencia(s); sentencia(s); Universidad de Cantabria. Grado de Informática. RMЯ 48
  • 4. 2. Comparación de iteración Java C while (exp_booleana) { instrucciones; } while (exp_entera) { instrucciones; } while (true) { instrucciones; } while (1) { instrucciones; } do { instrucciones; } while (exp_booleana); do { instrucciones; } while (exp_entera); Universidad de Cantabria. Grado de Informática. RMЯ 49 Java C for (int i=v_inic; i<=v_fin; i++) { instrucciones; } for (i=v_inic; i<=v_fin; i++) { instrucciones; }
  • 5. Ejercicio 10: Sentencias de iteración 1. Bájate el programa 11.c y guárdalo en tu directorio. 2. Ábrelo con un editor y examínalo y comprende las operaciones que hay. 3. Introduce varios pares de números para ver que se dan diversas vueltas. 4. Cambia el programa para que sea un conversor de base. 50Universidad de Cantabria. Grado de Informática. RMЯ
  • 6. 2. Iteración: while #include <stdio.h> int main() { int dividendo, divisor, resto; int contador = 0; printf ("Introduce dividendo y divisor : n"); scanf("%d %d", &dividendo, &divisor); while (dividendo >= divisor) /* solo sigo si es mayor */ { resto = dividendo % divisor; /* hago la division */ dividendo = dividendo / divisor; // /= printf("%d %5d | ", dividendo, resto); /* a la derecha */ contador++; /* aumento contador de divisiones */ } printf ("Lo que queda es %d ", dividendo); printf("El numero de divisiones : %d n", contador); return 0; } Universidad de Cantabria. Grado de Informática. RMЯ 51
  • 7. Ejercicio 11: Sentencias de iteración 1. Bájate los programas 12.c y 13.c 2. Guárdalos en tu directorio. 3. Se trata de sumar los números introducidos hasta que se escriba uno negativo. 4. Date cuenta que si empiezas por uno negativo el do–while no vale. 52Universidad de Cantabria. Grado de Informática. RMЯ
  • 8. 2. Iteración: while / do-while #include <stdio.h> int main() { int numero, suma = 0; scanf("%d", &numero); while (numero >= 0) { suma += numero; scanf("%d", &numero); } printf("La suma es : %dn", suma); return 0; } Universidad de Cantabria. Grado de Informática. RMЯ 53 /* cambialo para que funcione */ #include <stdio.h> int main() { int numero, suma = 0; do { scanf("%d", &numero); suma += numero; } while (numero >= 0); printf ("La suma es : %dn", suma); return 0; }
  • 9.  Bucle for: “se sabe” el número de iteraciones y se evalúa antes: for (inicialización; condición; siguiente) sentencia(s);  El bucle for es también como un while encubierto: cont = 1; while (cont <= numero) { printf("holan"); cont++; } for (cont =1; cont <= numero; cont++) printf("holan"); 2. Iteración: for Universidad de Cantabria. Grado de Informática. RMЯ 54 1 2,5,8… 3,6,9… 4,7,10…
  • 10. Ejercicio 12: Sentencias de iteración  Debido a su gran flexibilidad, existen muchas maneras de utilizarlo: 1. Bájate el programa 14.c y guárdalo en tu directorio. 2. Ábrelo con un editor, examínalo y comprende las operaciones que hay dentro de los bucles for. 3. Cambia algunos de los ejemplos. Universidad de Cantabria. Grado de Informática. RMЯ 55
  • 11. 2. Sentencias de control  continue: para salir de una iteración (bucles). while ((ch = getchar()) != EOF) { if (ch == ‘a') continue; putchar(ch); }  break: en bucles se sale del todo. while ((ch = getchar()) != EOF) { if (ch == ‘a') break; putchar(ch); } Universidad de Cantabria. Grado de Informática. RMЯ 56
  • 12. Ejercicio 13: Sentencias de control  Bájate los programas 15.c y 16.c guárdalos en tu directorio. 1. Ábrelos con un editor, examínalo y comprende las operaciones que hay dentro del bucle while. 2. Indica cuando terminará el programa 15. 3. Indica que aparecerá y que no, cuando ejecutes el programa 16. 4. ¿Es el 16 una algoritmo propio? Observación: Estas dos sentencias son equivalentes al goto (de forma encubierta), en la programación estructurada está denostado el uso de esta sentencia, ya que puede ser sustituida por otras que harán los programas más claros. En mi opinión sólo son justificables en casos de detección de error y acompañadas de una condición. Universidad de Cantabria. Grado de Informática. RMЯ 57