Teoría:
Operadores Lógicos y Relacionales
>, >=, <, <=
== igualdad
!= diferente
&& y
| | o
! no
La Estructura IF – ELSE
/* Prog014.cpp */
#include <stdio.h>
void main()
{
float a, b;
printf("\nEscribe el primer número a= ");
scanf("%f",&a);
printf("\nEscribe el segundo número b= ");
scanf("%f",&b);
if (a==b) printf ("\nLos dos números son iguales\n");
if (a!=b) printf("\nLos dos números son distintos\n");
if (a>b) printf("\nEl número %f es mayor que %f\n ",a,b);
else printf("\nEl número %f no es mayor que %f\n",a,b);
if ((a>b) && (100>a))
{
printf("\nEl número %f es mayor que %f ",a,b);
printf("\nAdemás los dos son menores de 100");
}
else
{printf("\nEl número %f no es mayor que %f ",a,b);
printf(" O uno de los dos números es mayor de 100");
}
}
Recuerda:
Ejecútalo en los siguientes casos, observando detenidamente lo que aparece:
Estudio del programa PROG014:
(a == b) "a" igual a "b"
(a != b) "a" diferente a "b"
((a>b) && (100>a))
"a" es mayor que "b" y además "100 es mayor que "a"
Observa también que cada relación hemos de encerrarla entre paréntesis.
Observa en primer lugar la sintáxis diferente entre los
Los 2 primeros son iguales y más simples: IF (condición) sentencia;
Que quiere decir: Si se cumple la "condición" se ejecutará la sentencia.
El tercer "IF":
IF (condición) sentencia1 ;
else sentencia2 ;
Que quiere decir: Si se cumple la (condición) se ejecutará la sentencia1, en caso contrario se ejecutará la sentencia2.
El cuarto "IF" es el más completo:
IF (condición)
{
sentencia1;
sentencia2;
}
else
{
sentencia3;
sentencia4;
}
Que quiere decir: Si se cumple la "condición" se ejcutará la sentencia1 y la sentencia2, en caso contrario se ejecutará la 3 y la 4.
La Estructura WHILE
/* Prog015.cpp */#include <stdio.h>void main(){int x;x=0;while (x<6) { printf("\nEl valor de x es %d ",x);
x=x+1;
}
}
While (condición)
{
sentencia1;
sentencia2;
sentencia3;
------------;
------------;
}
Que quiere decir: mientras se cumpla la "condición", ejecuta las sentencias que hay entre llaves.
1) Definimos una variable entera (int) de nombre: x
2) Inicializamos el valor de la variable "x" a 0
3)
while (x<6)
{
printf("\nEl valor de x es %d ",x);
x=x+1;
}
Es decir: Mientras el valor de la variable "x" sea inferior al número 6
Escribe en pantalla el valor de "x"
El valor de "x" es igual al anterior valor de "x" pero + 1
Veamos:
Inicialmente el valor de x=0, por lo tanto se cumple la condición del "While":
En pantalla aparecerá 0
Y el nuevo valor de "x" será 1.
Cómo el valor actual de "x" es 1, se cumple la condición:
En pantalla aparecerá 1
Y el nuevo valor de "x" será 2.
Cómo el valor actual de "x" es 2, se cumple la condición:
En pantalla aparecerá 2
Y el nuevo valor de "x" será 3.
Cómo el valor actual de "x" es 3, se cumple la condición:
En pantalla aparecerá 3
Y el nuevo valor de "x" será 4.
Cómo el valor actual de "x" es 4, se cumple la condición:
En pantalla aparecerá 4
Y el nuevo valor de "x" será 5.
Cómo el valor actual de "x" es 5, se cumple la condición:
En pantalla aparecerá 5
Y el nuevo valor de "x" será 6.
Cómo el valor actual de "x" es 6, ya no cumplirá la condición. Es decir "saldremos del While" y se acaba nuestro programa.
La sentencia x=x+1 se llama "contador" y es muy usada en programación como irás viendo.
Contadores:
/* Prog016.cpp */
#include <stdio.h>
void main()
{
int i,j;
i=2;
j=7;
while (i<j)
{
printf("\n i= %d --- j= %d ",i,j);
i++;
j--;
}
}
Recuerda:
Estudio del Prog016:
Es equivalente a escribir i=i+1
Es equivalente a escribir j=j-1
Vamos a hacer un programa que repita 10 veces nuestro nombre. Está claro que la solución al problema es el uso de un "contador" dentro de un "While".
/* Prog017.cpp */#include <stdio.h>void main(){int x;char nom[20];x=1;printf("\nEscribe tu nombre: ");scanf("%s",nom);
while (x<=10)
{
printf("%d - ",x);
printf("%s \n",nom);
x++;
}
}
/* Prog018.cpp */
#include <stdio.h>
void main()
{
double num,sum,pro;
sum=0;
pro=1;
printf("\nEscribe un número diferente de 0 = ");
scanf("%lf",&num);
while (num != 0)
{
sum=sum+num;
pro=pro*num;
printf("\nNúmero= %lf Suma= %lf Producto= %lf ",num,sum,pro);
printf("\nNuevo número (para acabar escribe 0)= ");
scanf("%lf",&num);
}
printf("\n\n\nSuma Total= %lf Producto Total= %lf",sum,pro);
}
Recuerda:
Observa:
sum = sum + num
Es la forma que conseguimos acumular en la suma (variable sum) los diferentes valores de num.
pro = pro * num
Es la forma que conseguimos acumular en el producto (variable pro) los valores de num.
La Estructura de Programación FOR
/* Prog019.cpp */
#include <stdio.h>
void main()
{
int x;
for(x=1;x<=10;x=x+1)
{
printf("\nEstructura FOR ");
printf("Ahora x= %d",x);
}
}
Estudio del PROG019:
for(valor inicial,valor final, paso)
{
sentencia 1;
sentencia 2;
-------------;
-------------;
}
Que quiere decir: Repite la ejecución de las sentencias de programa que hay encerradas entre llaves, tantas veces como te indico en "valor inicial, valor final, paso".
Las líneas de programa de nuestro "for" se repetiran: desde x=1 hasta x=10 de 1 en 1, es decir 10 veces.
Si escribiéramos: for(x=23;x<=76;x=x+4), querría decir: repite las líneas de programa desde x=23 hasta x=76 de 4 en 4.
Podríamos hacerlo más sofisticado: for(i=-0.23;i>=-67.78;i=i-1.567). Que traducido dice: repite las líneas de programa que hay dentro del "for" desde 1=0.23 hasta i=-67.78 de –1.567 en –1.567
/* Prog020.cpp */
#include <stdio.h>
void main()
{
int edad,indice;
char nom[25];
printf("\Escribe tu nombre: ");
scanf("%s",nom);
printf("\nEscribe tu edad: ");
scanf("%d",&edad);
for(indice=1;indice<=edad;indice++)
printf("\n%s",nom);
}
Recuerda:
Observa:
/* Prog021.cpp */
#include <stdio.h>
void main()
{
int mult;
float total;
total=0;
for(mult=11;mult<3000;mult=mult+11)
{
printf("%d-",mult);
total=total+mult;
}
printf("\n\nSuma= %f",total);
}
Ejecútalo varias veces hasta descubrir lo que hace el programa.
Vamos a hacer un programa que sirva para calcular el factorial de un número. Recuerda que el factorial de un número x es 1*2*3*4....*x
- Prog022
/* Prog022.cpp */
#include <stdio.h>
void main()
{
int i,num;
double fa;
printf("\nCálculo del factorial del número: ");
scanf("%d",&num);
fa=1;
for(i=1;i<=num;i++) fa=fa*i;
printf("\nEl Factorial de %d es %lf",num,fa);
}
Observa la línea que contiene el for: como sólo contiene una instrucción, puede escribirse todo el "ciclo for" en una sóla línea de programa.
Vamos a hacer un programa que calcule la suma de los 10 primeros múltiplos del número que queramos.
- Prog023
/* Prog023.cpp */
#include <stdio.h>
void main()
{
int num,i;
double sum,mult;
printf("\nMúltiplos de qué número: ");
scanf("%d",&num);
sum=0;
for(i=1;i<=10;i++)
{
mult=num*i;
printf("\nMúltiplo= %lf",mult);
sum=sum+mult;
printf("\nSuma Parcial= %lf",sum);
}
printf("\nSuma Total= %lf",sum);
}
Vamos a hacer un programa que calcule la tabla de valores de una función dada.
- Prog024
/* Prog024.cpp */
#include <stdio.h>
void main()
{
float x1,x2,paso;
float y,i;
printf("\nTabla de valores para la función Y=X*X-5*X+10");
printf("\n\nIntroduce el valor menor de X: ");
scanf("%f",&x1);
printf("\nIntroduce el valor mayor de X: ");
scanf("%f",&x2);
printf("\nIntroduce el incremento del valor de X: ");
scanf("%f",&paso);
for(i=x1;i<=x2;i=i+paso)
{