Lenguaje C y Ejemplos de For While y Do While

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 14

1

C permite que vayamos una etapa más lejos y definir una variable, llamada
un indicador que contenga la dirección de otras variables, la dirección de la posición de
memoria en donde se almacena la variable puede ser encontrada poniendo un signo "&"
delante del nombre variable.

Los operadores se clasifican en aritméticos, alfanuméricos, relacionales, lógicos


y por último un pequeño grupo de operadores especiales que dependerá de los
diferentes lenguajes utilizados.

Operadores aritméticos:

 Para la suma y la resta se utilizan respectivamente los símbolos; "+" "-"


 Para la división y hallar el resto de la misma se utilizan respectivamente
los símbolos; "/" "%"
 Para multiplicar y elevar potencias se utilizan respectivamente los
siguientes símbolos; "*" "**"

Operadores alfanuméricos:
Son los utilizados para trabajar con cadenas.
Principalmente utilizamos el símbolo "+" para concatenar cadenas. Luego
dependiendo de el lenguaje puede funcionar o no el símbolo "-" para concatenar
cadenas eliminando los espacios en blanco.

Operadores relacionales:

 El símbolo "==" nos compara dos valores


 El símbolo "!=" significa distinto y nos devuelve verdadero si los valores
comparados son distintos.
 Luego tenemos lo demás signos como son; "<", ">", "<>", "<=", ">="

Operadores lógicos:
Como operadores lógicos nos encontramos con el símbolo "!" o "not" para la

negación y el símbolo " && " o "and" para la conjunción.

3)
Este tipo de sentencias permiten variar el flujo del programa
en base a unas determinadas condiciones.
Existen varias estructuras diferentes:

Estructura IF...ELSE
Sintaxis:
if (condición) sentencia;

La sentencia solo se ejecuta si se cumple la condición. En


caso contrario el programa sigue su curso sin ejecutar la
sentencia.
Otro formato:
if (condición) sentencia1;
else sentencia2;

Si se cumple la condición ejecutará la sentencia1, sinó


ejecutará la sentencia2. En cualquier caso, el programa
continuará a partir de la sentencia2.

EJEMPLO
/* Uso de la sentencia condicional IF. */

#include <stdio.h>

main() /* Simula una clave de acceso */

int usuario,clave=18276;

printf("Introduce tu clave: ");

scanf("%d",&usuario);

if(usuario==clave)

printf("Acceso permitido");

else

printf("Acceso denegado");

Otro formato:
if (condición) sentencia1;
else if (condición) sentencia2;
else if (condición) sentencia3;
else sentencia4;
Con este formato el flujo del programa únicamente entra en
una de las condiciones. Si una de ellas se cumple, se ejecuta
la sentencia correspondiente y salta hasta el final de la
estructura para continuar con el programa.
Existe la posibilidad de utilizar llaves para ejecutar más de
una sentencia dentro de la misma condición.

EJEMPLO

/* Uso de la sentencia condicional ELSE...IF. */

#include <stdio.h>

main() /* Escribe bebé, niño o adulto */

int edad;

printf("Introduce tu edad: ");

scanf("%d",&edad);

if (edad<1)

printf("Lo siento, te has equivocado.");

else if (edad<3) printf("Eres un bebé");


else if (edad<13) printf("Eres un niño");

else printf("Eres adulto");

Estructura / Operador SWITCH


Esta estructura se suele utilizar en los menús, de manera que
según la opción seleccionada se ejecuten una serie de
sentencias.
Su sintaxis es:

switch (variable){

case contenido_variable1:

sentencias;

break;

case contenido_variable2:

sentencias;

break;

default:

sentencias;

}
Cada case puede incluir una o más sentencias sin necesidad
de ir entre llaves, ya que se ejecutan todas hasta que se
encuentra la sentencia BREAK. La variable evaluada sólo
puede ser de tipo entero o caracter. default ejecutará las
sentencias que incluya, en caso de que la opción escogida no
exista.

EJEMPLO

/* Uso de la sentencia condicional SWITCH. */

#include <stdio.h>

main() /* Escribe el día de la semana */

int dia;

printf("Introduce el día: ");

scanf("%d",&dia);

switch(dia){

case 1: printf("Lunes"); break;


case 2: printf("Martes"); break;

case 3: printf("Miércoles"); break;

case 4: printf("Jueves"); break;

case 5: printf("Viernes"); break;

case 6: printf("Sábado"); break;

case 7: printf("Domingo"); break;

4(Obtención de números aleatorios en C


A veces queremos que nuestro programa obtenga números de forma aleatoria, por
ejemplo, para simular una tirada de dados o el reparto de cartas en un juego. En C de
linux tenemos varias funciones que nos permiten obtener estos valores aleatorios.

En esta explicación vamos a ver un uso básico de estas funciones. Algunas de las cosas
que contamos aquí no son útiles para aplicaciones más serias, en las que se requiere que
la secuencia de números aleatorios sea muy aleatoria, impredecible, que no se repita
hasta pasado muchos números, etc, etc. Sin embargo, las explicaciones aquí presentadas
servirán para la mayoría de nuestros programas.

LA FUNCIÓN rand()

En C, para obtener números aleatorios, tenemos la función rand(). Esta función, cada vez
que la llamamos, nos devuelve un número entero aleatorio entre 0 y el RAND_MAX (un
número enorme, como de 2 mil millones).

El primer problema que se nos presenta es que no solemos querer un número aleatorio
en ese rango, sería un dado muy curioso el que tenga tantas caras. Podemos querer, por
ejemplo, un número aleatorio entre 0 y 10. O de forma más general, entre 0 y N. La
cuenta que debemos echar para eso es esta.

En programación es común el uso de contadores y acumuladores, en


este post explico la diferencia porque frecuentemente quienes están
aprendiendo a programar confunden unos con otros.
5)

Un contador es una variable que se utiliza para contar algo.


Normalmente usamos un contador dentro de un ciclo y cambiamos su
valor sumándole o restándole una constante, es decir, siempre se le
suma o resta la misma cantidad. El caso más utilizado es incrementar
la variable en uno.

En el siguiente programa en C se tiene un arreglo de 10 números


enteros y se utiliza un ciclo con un contador para ver cuántas veces
aparece el número 3.

Programa contador.c
#include <stdio.h>

int main()
{
int numero = 3;
int x=0, contador=0;
int arreglo[10]={3,7,1,2,7,3,5,6,-2,7};

// Recorre el arreglo y cuenta cuántas veces aparece el valor que


contiene la variable numero
for (x=0; x<10; ++x)
{
if (arreglo[x] == numero)
/* El nuevo valor de la variable contador va a ser igual
a su valor actual más uno
Se puede escribir como preincremento ( ++contador ) o
como postincremento ( contador++ )
pero para que sea bastante evidente, lo escribí de
forma explícita ( contador = contador+1 )
*/
contador = contador+1;
}

printf("\n");
printf("El número %d aparece %d veces en el arreglo\n", numero,
contador);

return 0;
}

El siguiente programa en C es un ejemplo de un contador que se va


decrementando en uno; simula una cuenta regresiva.

Programa cuenta_regresiva.c
#include <stdio.h>

int main()
{
int contador=10;

// Imprime los números del 10 al cero


while (contador >= 0)
{
printf("Despegue en %d\n", contador);
contador = contador-1;
}

return 0;
}

Un acumulador es una variable que se utiliza para sumar valores. Al


igual que el contador, se utiliza normalmente dentro de un ciclo pero
cambiamos su valor sumándole una variable, es decir, no siempre se
le suma la misma cantidad.

En el siguiente programa, utilizamos el mismo arreglo del programa


contador.c, pero ahora no vamos a contar cuántas veces aparece un
número x, sino que vamos a sumar todos los valores que aparezcan
en el arreglo y que sean mayores a un número determinado.

Programa acumulador.c
#include <stdio.h>

int main()
{
int mayores_que = 3;
int x=0, suma=0;
int arreglo[10]={3,7,1,2,7,3,5,6,-2,7};

// Recorre el arreglo y suma todos los números mayores al valor que


contiene la variable mayores_que
for (x=0; x<10; ++x)
{
if (arreglo[x] > mayores_que)
/* El nuevo valor de la variable suma va a ser igual a su valor
actual más el número
que se encuentra en la posición actual del arreglo
*/
suma = suma+arreglo[x];
}

printf("Todos los números mayores a %d en el arreglo suman %d\n",


mayores_que, suma);

return 0;
}
6)
Sentencia / Bucle While
Su sintaxis es:
while (condición) sentencia;

Con esta sentencia se controla la condición antes de entrar en


el bucle. Si ésta no se cumple, el programa no entrará en el
bucle.
Naturalmente, si en el interior del bucle hay más de una
sentencia, éstas deberán ir entre llaves para que se ejecuten
como un bloque.

EJEMPLO

/* Uso de la sentencia WHILE. */

#include

main() /* Escribe los números del 1 al 10 */


{

int numero=1;

while(numero<=10)

printf("%d\n",numero);

numero++;

Sentencia / Bucle DO...WHILE


Su sintaxis es:
do {
sentencia1;
sentencia2;
} while (condición);

Con esta sentencia se controla la condición al final del bucle.


Si ésta se cumple, el programa vuelve a ejecutar las
sentencias del bucle.
La única diferencia entre las sentencias while y do...while es
que con la segunda el cuerpo del bucle se ejecutará por lo
menos una vez.
/* Uso de la sentencia DO...WHILE. */

#include <stdio.h>

main() /* Muestra un menú si no se pulsa 4 */

char seleccion;

do{

printf("1.- Comenzar\n");

printf("2.- Abrir\n");

printf("3.- Grabar\n");

printf("4.- Salir\n");

printf("Escoge una opción: ");

seleccion=getchar();

switch(seleccion){

case '1':printf("Opción 1");

break;

case '2':printf("Opción 2");

break;
case '3':printf("Opción 3");

}while(seleccion!='4');

Sentencia / Bucle For


Su sintaxis es:
for (inicialización;condición;incremento) {
sentencia1;
sentencia2;
}

La inicialización indica una variable (variable de control)


que condiciona la repetición del bucle. Si hay más, van
separadas por comas:
for(a=1,b=100;a!=b;a++,b- -){ ... }

El flujo del bucle FOR transcurre de la siguiente forma:

Diagrama
Bucle For

También podría gustarte