Teoría:

Operadores Lógicos y Relacionales

>, >=, <, <=

== igualdad

!= diferente

&& y

| | o

! no

La Estructura IF – ELSE

  • Prog014.cpp

/* 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:

  • Escribe el programa anterior utilizando tu compilador.
  • Grábalo con el nombre Prog014.cpp en TuCarpeta.
  • Ejecútalo un par o tres de veces

Ejecútalo en los siguientes casos, observando detenidamente lo que aparece:

  1. Si a= 70 y b= 2
  2. Si a= 50 y b=30
  3. Si a= 7 y b= 11
  4. Si a= 100 y b= 50
  5. Si a= 50 y b= 100

Estudio del programa PROG014:

  • Observa el uso de los operadores relacionales y lógicos:

(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.

  • Estructura de programación IF-ELSE

Observa en primer lugar la sintáxis diferente entre los 4 "IF" del programa:

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

/* 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;

}

}

  • Estructura de programación WHILE:

While (condición)

{

sentencia1;

sentencia2;

sentencia3;

------------;

------------;

}

Que quiere decir: mientras se cumpla la "condición", ejecuta las sentencias que hay entre llaves.

  • Observemos nuestro programa:

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.

  • El contador:

La sentencia x=x+1 se llama "contador" y es muy usada en programación como irás viendo.

Contadores:

  • Prog016

/* 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:

  • Escribe el programa anterior utilizando tu compilador.
  • Grábalo con el nombre Prog016.cpp en TuCarpeta.
  • Ejecútalo un par o tres de veces

Estudio del Prog016:

  • i++

Es equivalente a escribir i=i+1

  • j—

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

/* 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

/* 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:

  • Escribe el programa anterior utilizando tu compilador.
  • Grábalo con el nombre Prog018.cpp en TuCarpeta.
  • Ejecútalo un par o tres de veces

Observa:

  • Contador SUMA:

sum = sum + num

Es la forma que conseguimos acumular en la suma (variable sum) los diferentes valores de num.

  • Contador PRODUCTO:

pro = pro * num

Es la forma que conseguimos acumular en el producto (variable pro) los valores de num.

  • Observa también que la suma hemos de inicializarla por cero y el producto por uno.

La Estructura de Programación FOR

  • Prog019

/* 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:

  • La Estructura FOR:

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".

  • for(x=1;x<=10;x=x+1)

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

/* 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:

  • Escribe el programa anterior utilizando tu compilador.
  • Grábalo con el nombre Prog020.cpp en TuCarpeta.
  • Ejecútalo un par o tres de veces

Observa:

  • Si es una sola la sentencia a repetir por el "for", no se encierra entre llaves (en este aspecto funciona igual que la estructura IF-ELSE).
  • Recuerda que indice++ es equivalente a indice=indice+1
  • Podemos introducir en "los límites del for" una variable (en nuestro caso edad)
  • Prog021

/* 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)

{

 

Volver