Estructuras de Control en C
Estructuras de Control en C
int main( ) {
/*Aquí se declaran las variables que se usan en el programa, asignándoles
un valor se así se requiere y luego se desarrolla el programa */
Ejecuta o
Compila el
programa
Estructuras de Control en C
Asignación
Estructuras de Control en C
Entrada de Datos
scanf("cadena_de_control", &variables);
La función lee de la entrada estándar elementos que son convertidos, según las
especificaciones de conversión contenidas en la cadena_de_control, y asignados
a las variables cuyas direcciones se pasan en la lista.
int main( ) {
return 0;
}
Entrada formateada: Función scanf()
La Operación de conversión
Entrada formateada: Función scanf()
Ejemplo de uso de la Operación de conversión
La función scanf
/* Ejemplo 9.- Introducción de datos por teclado */
#include <stdio.h>
int main () {
int i;
float x;
scanf("%d", &i);
scanf("%f", &x);
return 0;
}
Estructuras de Control en C
Salida de Datos
printf("cadena_de_control", argumentos);
printf("%s %c %d","es una cadena", ’C’, 100); /* Sale → es una cadena C 100*/
printf("esto es una cadena %d", 100); /* Sale->esto es una cadena 100*/
printf("el %d es decimal, %f es real", 10, 5.23); /* Sale->el 10 es decimal, 5.23 es
real*/
Existe una serie de caracteres no imprimibles que el editor los toma como comandos, por lo que
la manera de acceder a ellos es mediante una secuencia de escape
La función printf
/* ejemplo 8.- Ilustra formatos con reales y enteros */
#include <stdio.h>
#define va_int 805
#define va_float 332.41e-1
int main () {
printf(" %f ", va_float);
return 0;
}
Estructuras de Control en C
Secuencia de instrucciones
{
scanf(“%d”,&B);
a=2;
T=”texto”;
c=a*B;
printf(“%d”,c);
}
}
Control de flujo en C
En adelante, cuando nos refiramos a sentencias, debe entenderse
que estas pueden ser:
●
simples (terminadas en “;” )
●
compuestas (un bloque de sentencias simples encerradas entre
llaves { }).
Estructuras de Control en C
Decisión
if (expresión)
sentencia_1;
else
sentencia_2;
if (expresión)
sentencia_1;
else /* Opcional */
sentencia_2;
Por ejemplo:
maximo = a > b ? a : b
Estructuras de Control en C
Decisión
if (a>b)
printf(“%d”,a);
else
printf(“%d”,b);
if (a==b)
printf(“Son iguales”);
if (Resp==bien)
{ Nota++;
printf(“%d”,Nota);
}
else
{ Nota++;
printf(“%d”,Nota);
}
Estructuras de Control en C
Repetición (Para)
Desde
En pasos de
Hasta
Estructuras de Control en C
Repetición (Para)
while (condición)
{
sentencia;
{
while (a!=0)
scanf(“5d”,&a);
Bucle while
Estructura general:
while (condición_de_continuación)
sentencia;
#include <stdio.h>
int main () {
char c, palabra[21];
int i;
printf("Teclee una palabra de menos de 20 letras:");
scanf("%s", palabra);
i = 0;
while(palabra[i++] != '\0');
printf("%s tiene %d letras.", palabra, i);
printf("%s escrita al revés es: ", palabra);
while (i > 0)
printf("%c", palabra[--i]);
return 0;
}
Estructuras de Control en C
Repetición (Hacer .. Mientras)
do
{
scanf(“%d”,&a);
}while (a!=0);
Sentencia do-while
Estructura general:
do
sentencia;
while (condición_de_continuación);
#include <stdio.h>
int main() {
int num=0,suma=0;
do {
suma=suma+num;
printf("un número: ");
scanf("%d",&num);
} while(num>=0);
printf("suma es: %d",suma);
return 0;
}
Estructuras de Control en C
Selección Múltiple
1: 2: 3: 4: Sino:
switch (a)
{
case 1: printf(“Uno”);
case 2: printf(“Dos”);
case 3: printf(“Tres”);
case 4: printf(“Cuatro”);
default: printf(“El número no esta entre Uno yCuatro”);
}
Sentencia switch
Es una solución más elegante para múltiples sentencias if anidadas.
switch (expresión)
{
case cte_1: sentencia_11; sentencia_12;
...
case cte_2: sentencia_21; sentencia_22;
...
...
...
case cte_n: sentencia_n1; sentencia_n2;
...
default: sentencia_default1; sentencia_default2;
...
}
Si coincide el valor de expresión (que debe ser de un tipo entero) con las
constantes de tipo entero que siguen a case, denominadas etiquetas, y que no
pueden hallarse duplicadas, se ejecuta el bloque de sentencias correspondiente,
y se continua con todas las sentencias hasta el final del switch.
Si se desea finalizar la ejecución del switch, debe añadirse al final del bloque
de sentencias la sentencia break,
Ejemplos:
int n=2;
switch(n) {
case 1: printf("Uno\n");
case 2 : printf("Dos\n");
case 3 : printf("Tres\n");
default : printf("default\n");
}
Introduciendo el break
int n=2;
switch(n) {
case 1 : printf("Uno\n");
break;
case 2 : printf("Dos\n");
break;
case 3 : printf("Tres\n");
break;
default : printf("Default\n");
}
Ejemplo 11: La instrucción switch
#include <stdio.h>
int main() {
int nota;
printf(" Inserte una nota: "); scanf("%d",¬a);
switch(nota) {
Case 0: printf(”\nSuspenso"); break;
Case 1: printf("\nSuspenso"); break;
Case 2: printf("\nSuspenso"); break;
Case 3: printf("\nSuspenso"); break;
Case 4: printf("\nSuspenso"); break;
Case 5: printf("\nAprobado"); break;
Case 6: printf(”\nBien"); break;
Case 7: printf(”\nNotable"); break;
Case 8: printf("\nNotable"); break;
Case 9: printf("\nSobresaliente"); break;
Case 10: printf(”\nSobresaliente"); break;
default: printf(”esa nota es incorrecta");
}
return 0;
}
Ejemplo 12: La instrucción switch
#include <stdio.h>
int main() {
int nota;
printf(" Inserte una nota: "); scanf("%d",¬a);
switch(nota) {
case 0: case 1: case 2: case 3: case 4:break;
case 5: printf("\nAprobado"); break;
case 6: printf(”\nBien"); break;
case 7: printf(”\nBien"); break;
case 8: printf("\nNotable"); break;
case 9: printf("\nNotable"); break;
case 10: printf(”\nSobresaliente"); break;
default: printf(”esa nota es incorrecta");
}
return 0;
}
Ejemplo 13: La instrucción switch
/* ejemplo 12.- Conversión entre euros y pesos */
#include <stdio.h>
#define euro 14.6386
int main() {
float n,x; int opcion;
printf("la cantidad: ");
scanf("%f",&n);
printf(”1-Pesos a Euros 2-Euros a pesos"); scanf("%d",&opcion);
switch(opcion) {
case 1: x=n/euro;
printf("%f Pesos son %f Euros",n,x); break;
case 2: x=n*euro;
printf("%f Euros son %f Pesos",n,x); break;
default: printf("incorrecta");
}
return 0;
}
Estructuras de Control en C
Otras Formas de Entrada de Datos
int getchar(void)