Está en la página 1de 19

Los operadores son el medio por el cual se realizan clculos y comparaciones.

A continuacin se
mostraran los operadores que posee el lenguaje C para este fin.
Operadores aritmticos
Estos se encargan de realizar operaciones aritmticas.

Operador Propsito Ejemplo
+ Suma dos valores x=x+3
- Resta dos valores x=x-3
* Multiplica dos valores x=x*3
/ Divide dos o mas valores x= x/3
++ Incrementa en 1 una variable x++
-- Decrementa en 1 una variable x--
% Calcula el residuo de una
divisin
x=x%2


Operadores relacionales
Estos se encargan de realizar la comparacin de valores para la toma de decisiones.

Operador Propsito
> Para comparar cual es la mayor de dos
cantidades
< Para comparar cual es el menor de dos
cantidades
>= Para comparar si una cantidad es mayor
o igual que otra
<= Para comparar si una cantidad es menor
o igual que otra
!= Para indicar si una cantidad es diferente
de otra
== Para indicar que una cantidad es igual
que otra


En C existen operadores de asignacin simple y asignacin compuesta. El operador de asignacin
simple es = y se usan de la siguiente forma:

x=3
x=y+4
s= s+2
x=x+1

En todos los ejemplos anteriores el signo de igual indica asignacin, es decir, que el valor que
resulte de la operacin se guarda en la variable que se encuentra a la izquierda.
Los operadores de asignacin compuesta hacen dos cosas:

Realizan una operacin.
Asignan el valor a la variable que se encuentra a la izquierda.

En la siguiente tabla se muestran estos operadores.

Operador Propsito Ejemplo
+= Se suma y asigna el resultado
o la variable del lado izquierdo
x+=3
-= Se resta y asigna el resultado o
la variable del lado izquierdo
x-=3
*= Multiplica y asigna el resultado
a la variable del lado izquierdo
x*=3
/= Divide y asigna el resultado a
la variable del lado izquierdo
x/=3
%= Calcula el residuo y asigna el
resultado a la variable del lado
izquierdo

x%=3

Operadores Lgicos
Adems de los operadores anteriores, existen los llamados operadores lgicos , que tambin son
ocupados para la realizacin de comparaciones y toma de decisiones, estos son:

Operador Significado
&& Y
|| O
| No


Escriba un programa que lea en una funcin 100 nmeros y nos retorne el mayor. (mayor.cpp)

#include <stdio.h>
#include <conio.h>
int mayor (void);

void main()
{
int r;
clrscr();
r=mayor();
printf("El mayor es= %d",r);
getche();
}

int mayor (void)
{
int i,n;
int major=0;

for(i=1; i<=5; i++)
{
printf("Numero:");
scanf ("%d", &n);
if(n>major)
major=n;
}
return major;
}


Pasos de parmetro por referencia
Cuando se pasa una variable a una funcin por referencia, lo que se manda en realidad es la
direccin de memoria de la variable y para ello es necesario ocupar una variable especial
denominada PUNTERO.
Un puntero es una variable que guarda direcciones de memoria, es decir, que nos dice en que
posicin de la memoria se encuentra ubicado un valor.

Para declarar punteros en C utilizamos la siguiente simbologa:
Tipo de dato *Nombre de la variable;

Ejemplo:
int *pentero; //Este es un puntero a un entero
Float *f; //Este es un puntero a un flotante

Para usar los punteros es necesario ocupar las siguientes operadores:
* Operador que hace referencia al contenido de la direccin a la que apunta.
& Operador que indica la direccin de memoria de una variable.
Ejemplo de aplicacin:

#include <stdio.h>
#include <conio.h>

Int *p,n;
Void main (void)
{
Clrscr();
Printf(Numero:);
Scanf(%d, &n);
p=&n; //Pasamos la direccin de memoria de n a p
*p++; //Alteramos el valor de p usando el puntero para acceder al contenido
Printf(%d, n);
Getch();
}

En este ejemplo p es un puntero de tipo entero y n es una variable de tipo entero. Al inicio del
programa se lee el valor de n para despus pasar su direccin de memoria a p.
Esto ocurre en el momento en que se dice p=&n.
Una vez que tiene p la direccin de n se puede acceder y modificar el contenido utilizando a p.
Esto se ejemplifica cuando se hace: *p++.
Tomando como base lo anterior podemos decir que cuando se desea pasar una variable por
referencia se debe hacer como un paso por referencia, el cual se indica desde la declaracin de la
funcin, de este modo cualquier cambio que se haga ala variable que se pase por referencia
tendr efecto en el cdigo principal.

Escriba un programa que lea la apotema y el valor del lado de un hexgono utilizando paso por
referencia y utilizando paso por referencia, imprimir su rea. (areahexagono.cpp)

A= Pxa/2

#include <stdio.h>
#include <conio.h>
Void area (int,int,int*);
Int l,a,c;

Void main ()
{
Printf(Lado:);
Scanf(%d, &l);
Printf(Apotema:);
Scanf(%d, &a);
rea(l,a,&c);
Printf(Area=%d, c);
Getch();
}

Void area (int x, int y, int* z)
{
*z=(x*6)/2;
}


Realizar el programa del cubo de un nmero con paso por referencia. (cubo2.cpp)

#include <stdio.h>
#include <conio.h>
Void area (int,int*);
Int a,c;

Void main ()
{
Printf(Dato:);
Scanf(%d, &a);
Cubo(a,&c);
Printf(Cubo=%d, c);
Getch();
}

Void cubo (int x, int* y)
{
*y=x*x*x;
}


Escriba un programa usando parmetros por referencia, use una funcin que realice la suma,
resta, multiplicacin y divisin de 2 nmeros.

#include <stdio.h>
#include <conio.h>
void operacion(int,int,int*,int*,int*,int*);

void main()
{
int n1,n2,s,r,m,d;
clrscr();
printf("Dato 1:");
scanf("%d", &n1);
printf("Dato 2:");
scanf("%d", &n2);
operacion(n1,n2,&s,&r,&m,&d);
printf("Suma:%d", s);
printf("Resta:%d", r);
printf("Multiplicacion:%d", m);
printf("Division:%d", d);
getch();
}

void operacion(int d1,int d2,int* s,int* r,int* m,int* d)
{
*s=d1+d2;
*r=d1-d2;
*m=d1*d2;
*d=d1/d2;
}

Escriba un programa que utilizando parmetros por referencias construya una funcin, que dado
como dato un numero entero devuelve uno si el numero es positivo o cero en caso contrario.

//Ejemplo de aplicacin (signo.cpp):




#include <stdio.h>
#include <conio.h>
void signo(int,int*);

void main()
{
int a,r;
clrscr();
printf("Dato:");
scanf("%d",&a);
signo(a,&r);
if (r==1)
printf("El numero es Positivo");
else
printf("El numero es Negativo");
getch();
}

void signo(int x,int* y)
{
if (x>0)
*y=1;
else
*y=0;
}

Dado como dato el sueldo de un trabajador, aplquele un aumento del 15% si su sueldo es inferior
a $1000. Imprima en este caso, el nuevo sueldo del trabajador. Porcentaje.cpp

#include <conio.h>
#include <stdio.h>

void main ()
{
int s,r;
clrscr();
printf("Sueldo:");
scanf("%d",&s);
if(s<1000)
{
Int y;
y=s*1.15;
printf("Sueldo total: %d", y);
}
getch();
}

Modifique el programa anterior considerando que si el sueldo es superior a $1000 pesos aplique
un aumento del 12%. Imprima el nuevo sueldo. Porcentaje2.cpp

#include <conio.h>
#include <stdio.h>

void main ()
{
int s,r;
clrscr();
printf("Sueldo:");
scanf("%d", &s);
if(s<1000)
{
int y;
y= s*1.15;
printf("Sueldo total: %d", y);
}
else
{
int z;
z=s*1.12;;
printf("Sueldo total: %d", z);
}
getch();
}

Switch
Es una estructura de control que se utiliza para seleccionar una opcin dentro un conjunto de
opciones que se encuentran relacionados con una sola variable.

La sintaxis del switch es la siguiente:

Switch(valor)
{
case constante 1: sentencia1 ;
sentencia2;
sentencia3;
break;

case constante 2: sentencia1;
break;
default sentencia(s)
}



Debe notarse que cada sentencia case termina con un break que indica el fin del grupo de
sentencias correspondientes a un valor dado.
El default se usa en caso de que los valores no correspondan con algunos de los anteriores.
Cabe mencionar que slo se selecciona una opcin a la vez.
Si no se coloca el break la sentencia se ejecutara en secuencia hasta encontrarla y si no existe solo
se ejecutaran hasta salir del switch y pasar con la siguiente instruccin.

Ejemplo de aplicacin:
Escriba un programa en C que lea un nm. de da y nos imprima el da en palabras.

#include <stdio.h>
#include <conio.h>
Int dia;
{
Clrscr();
Printf(Dia:);
Scanf(%d, &dia);

Switch(dia)
{
Case 1: printf(Lunes);
Break;
Case 2: printf(Martes);
Break;
Case 3: printf(Miercoles);
Break;
Case 4: printf(Jueves);
Break;
Case 5: printf(Viernes);
Break;
Case 6: printf(Sabado);
Break;
Case 7: printf(Domingo);
Break;
Default: printf(Ese dia no existe);
}
Getch();
}

Construya un programa que lea la categora y el sueldo de un trabajador y calcule el aumento
correspondiente a la siguiente tabla. Imprima la categora del trabajador y su nuevo sueldo.

Trabajador Aumento
1 15%
2 10%
3 8%
4 7%

#include <stdio.h>
#include <conio.h>
int x,y,r;

void main()
{
clrscr();
printf("Categoria:");
scanf("%d", &x);
printf("Sueldo:");
scanf("%d", &y);

switch(x)
{
case 1: r=y*1.15;
printf("Categoria: %d\n", x);
printf("Sueldo: %d", r);
break;
case 2: r=y*1.1;
printf("Categoria: %d\n", x);
printf("Sueldo: %d", r);
break;
case 3: r=y*1.08;
printf("Categoria: %d\n", x);
printf("Sueldo: %d", r);
break;
case 4: r=y*1.07;
printf("Categoria: %d\n", x);
printf("Sueldo: %d", r);
break;
default: printf("Esa categoria no existe");
}
getch();
}


El costo de las llamadas telefnicas internacionales depende de la zona geogrfica en la que se
encuentra el pas destino y el numero de minutos hablados. En la siguiente tabla se presenta el
costo de minuto por zona. A cada zona se le a asociado una clave. Escriba un programa que le
permita calcular e imprimir el costo total de una llamada.








Clave Zona Precio
12 Amrica del norte 2
15 Amrica central 2.2
18 Amrica del sur 4.5
19 Europa 3.5
23 Asia 6
25 frica 6
29 Oceana 5

#include <stdio.h>
#include <conio.h>
int x,y;
float r;

void main()
{
clrscr();
printf("Clave:");
scanf("%d", &x);
printf("Tiempo (min):");
scanf("%d", &y);

switch(x)
{
case 12: r=y*2;
printf("Costo de la llamada: $%.02f", r);
break;
case 15: r=y*2.2;
printf("Costo de la llamada: $%.02f", r);
break;
case 18: r=y*4.5;
printf("Costo de la llamada: $%.02f", r);
break;
case 19: r=y*3.5;
printf("Costo de la llamada: $%.02f", r);
break;
case 23: r=y*6;
printf("Costo de la llamada: $%.02f", r);
break;
case 25: r=y*6;
printf("Costo de la llamada: $%.02f", r);
break;
case 29: r=y*5;
printf("Costo de la llamada: $%.02f", r);
break;

default: printf("Esa zona no existe");
}
getch();
}

En un hospital se ah hecho un estudio sobre los pacientes registrados durante los ltimos 10 aos
con el objeto de hacer una aproximacin de los costos de internacin por paciente. Se obtuvo un
costo promedio diario segn el tipo de enfermedad que aqueja al paciente. Adems se pudo
determinar que en promedio todos los pacientes con edad entre 14 y 22 aos implican un costo
adicional del 10%. La siguiente tabla expresa los costos diarios, segn el tipo de enfermedad.

Tipo de enfermedad Costo/paciente/dia
1 1600
2 2500
3 2800
4 3200

Construya un programa que calcule e imprima el costo total que representa un paciente.
Categoriaswitch2.cpp

#include <stdio.h>
#include <conio.h>
int d,t,e,r;

void main()
{
clrscr();
printf("Tipo de enfermedad:");
scanf("%d", &t);
printf("Dias:");
scanf("%d", &d);
printf("Edad:");
scanf("%d", &e);

switch(t)
{
case 1: if(e>=14 && e<=22)
r=(1600*d)*1.1;
else
r=1600*d;
printf("Costo: %d", r);
break;
case 2: if(e>=14 && e<=22)
r=(2500*d)*1.1;
else
r=2500*d;
printf("Costo: %d", r);
break;
case 3: if(e>=14 && e<=22)
r=(2800*d)*1.1;
else
r=2800*d;
printf("Costo: %d", r);
break;
case 4: if(e>=14 && e<=22)
r=(3200*d)*1.1;
else
r=3200*d;
printf("Costo: %d", r);
break;

default: printf("Error");
}
getch();
}


Escriba un programa que realice las siguientes operaciones:
1.- Resuelva el problema que tienen en una gasolinera. Los surtidores de la misma registran lo que
surten en galones, pero el precio de la gasolina esta fijado en litros. El programa deber calcular
e imprimir lo que hay que cobrarle al cliente. Consideraciones: cada galn tiene 3.785 litros y el
precio del litro es de 8.20.

2.- El nmero de sonidos emitidos por un grillo en un minuto, es una funcin de la temperatura.
Como resultado de esto es posible determinar el nivel de la temperatura haciendo uso de un
grillito como termmetro. La formula para la funcin es: T=(N/4)+40 donde T representa a
temperatura en grados centgrados y N el numero de sonidos emitidos por minuto. Construya un
programa que le permita calcular la temperatura, teniendo en cuenta el numero de sonidos
emitidos por el grillo.

3.- Construya un programa que calcule e imprima el numero de segundos que hay en un
determinado numero de das.

4.- Construya un programa que dado el costo de un articulo vendido y la cantidad de dinero
entregada por el cliente, calcule e imprima el cambio que se le debe de dar al mismo.

#include <stdio.h>
#include <conio.h>
int x; //Variable a usar en switch

void main()
{
clrscr();
printf("MENU");
printf("\n1.- Galones");
printf("\n2.- Temperatura");
printf("\n3.-Segundos");
printf("\n4.-Articulo");
printf("\nOpcion:");
scanf("%d", &x);

switch(x)
{
case 1: float t;
int gal;
printf("Galones:");
scanf("%d", &gal);
t=gal*3.785*8.20;
printf("Total a cobrar: $%.2f", t);
break;

case 2: int s,temp;
printf("Numero de sonidos emitidos:");
scanf("%d", &s);
temp=(s/4)+40;
printf("Temperatura= %d C", temp);
break;

case 3: int dia,seg;
printf("Numero de dias:");
scanf("%d", &dia);
seg=(24*60*60)*dia;
printf("Total: %d seg", seg);
break;

case 4: float art;
float pag;
float camb;
printf("Costo del articulo:");
scanf("%f", &art);
printf("Cantidad pagada:");
scanf("%f", &pag);
camb=pag-art;
printf("Cambio: %.2f", camb);
break;

default: printf("Ese programa no esta capturado.");
}
getch();
}






Estructuras cclicas
1.- For
Sintaxis:

For(valor inicial,valor final,incremento)
{
Sentencias
}

Ejemplo:
For(i=1; i<=10; i++)
{
s=s+i;
printf(%d,s);
}

En este ciclo for los incrementos se hacen de uno en uno y la condicin es que i sea menor o igual
a diez para permanecer dentro del ciclo.

Tambin es posible realizar ciclos for con incrementos diferentes a uno tal y como se muestra en
el ejemplo:

for (i=1; i<=10; i+=2);
{
s=s+i;
printf(%d,s);
}

Tambin es posible que en un ciclo se desee decrementar en lugar de incrementar y esto tambin
es posible. Al igual que en el caso anterior tambin es posible decrementar en valores diferentes
de uno:

for (i=10; i>=1; i--);
{
s=s+i;
printf(%d,s);
}

for (i=10; i>=1; i-=2);
{
s=s+i;
printf(%d,s);
}





Escriba un programa que utilize una funcion que lea 10 nombres y lo imprima.

#include <conio.h>
#include <stdio.h>
void funcion (void);;

void main()
{
clrscr();
funcion();
getch();
}

void funcion()
{
char nom[40];
int i;
for (i=1; i<=10; i++)
{
printf("Cual es su nombre:");
scanf("%d",nom);
printf("Nombre: %s",nom);
}
}


Escriba un programa que lea 100 numeros en una funcion e imprima solo aquellos que sean pares
y utilizando un parametro por referencia devuelva la suma de estos: (for.ccp)

#include <stdio.h>
#include <conio.h>
void funcion (int*);

void main()
{
int r;
clrscr();
funcion(&r);
printf("Suma: %d",r);
getch();
}

void funcion (int* x)
{
*x=0;
int i,a,c;
for (i=1; i<=10; i++)
{
printf("Numero:");
scanf("%d",&a);
c=a%2;
if (c==0)
*x=*x+a;
}
}


Escriba un programa que utilizando parametro por referencia lea en una funcion 100 numeros e
imprima:
a) Cuantos son pares
b) Cuantos son impares
c) Cuantos son positivos
d) Cuantos negativos
e) Cuantos estan en el rango de 15-20

#include <stdio.h>
#include <conio.h>
void funcion (int*,int*,int*,int*,int*);

void main()
{
int a,b,c,d,e;
clrscr();
funcion(&a,&b,&c,&d,&e);
printf("Pares: %d",a);
printf("\nImpares: %d",b);
printf("\nPositivos: %d",c);
printf("\nNegativos: %d",d);
printf("\nDentro del rango 15-20: %d",e);
getch();
}

void funcion (int *u, int *v, int *w, int *x, int *y)
{
*u=0;
*v=0;
*w=0;
*x=0;
*y=0;
int i,r,s;
for (i=1; i<=10; i++)
{
printf("Numero:");
scanf("%d",&r);

//Par o Impar
s=r%2;
if (s==0)
*u=*u+1;
else
*v=*v+1;

// Positivo o Negativo
if(r>0)
*w=*w+1;
else
*x=*x+1;

//Rango 15-20
if((r>=15 && r<=20))
*y=*y
+1;
}
}

Escriba un programa que use una funcin con parmetros por referencia para obtener la suma de
los gastos que hicimos en nuestro ultimo viaje, pero no sabemos exactamente cuantos fueron.

#include <stdio.h>
#include <conio.h>
void gastos (float*);

void main()
{
float t;
clrscr();
gastos(&t);
printf("Total gastado= %.2f",t);
getch();
}

void gastos (float *g)
{
float gas;
int x;
*g=0;
for(;;)
{
printf("Gasto:");
scanf("%f", &gas);
*g=*g+gas;
printf("Mas facturas (0 continua -1 termina):");
scanf("%d", &x);
if(x==-1)
break;
}
}



De una empresa con N empleados necesitamos obtener el numero de empleados y el sueldo del
trabajador con el mayor sueldo de la empresa. Haga el programa correspondiente haciendo uso de
una funcin.

#include <stdio.h>
#include <conio.h>
void empresa (int*,int*);

void main()
{
int s,e;
clrscr();
empresa(&e,&s);
printf("\nNumero de empleados= %d",e);
printf("\nSueldo mas alto= $%d",s);
getch();
}

void empresa (int *x,int *y)
{
int a,p;
*x=0;
*y=0;
for(;;)
{
printf("Sueldo del trabajador:");
scanf("%d", &a);
*x=*x+1;

if(a>*y)
*y=a;

printf("Mas Trabajadores? (0 continua -1 Termina):");
scanf("%d", &p);
if(p==-1)
break;
}
}




While
Sintaxis:

While (condicion)
{
Sentencias;
}

Mientras se cumpla la condicion entrar al ciclo y ejecutara las sentencias y una vez que no se
cumpla se saldr del ciclo.

Ejemplo de aplicacin:
Escriba un programa en C que lea 100 numeros e imprima su promedio:

#include <stdio.h>
#include <conio.h>
Int x,p,s,i;

Void main()
{
Clrscr();
s=0;
i=1;
while(i<=100)
{
Printf(Numero:);
Scanf(%d,x);
S+=x;
i++;
}
P=s/100;
Printf(Promedio: %d,s);
Getch();
}

También podría gustarte