Fundamentos de C: Operadores y Estructuras
Fundamentos de C: Operadores y Estructuras
1
Preparado por: Ing. Cristina Pérez Berro
Expresiones Aritméticas:
Operandos de tipo numérico y operadores aritméticos.
El lenguaje C define los siguientes operadores aritméticos
Operadores Aritméticos
+ suma
- resta
multiplicación
*
división real uno o ambos operandos deben ser reales
/
división entera ambos operandos deben ser enteros
Ejemplo: Supongamos:
int a = 6, b=7; float z;
z=a/b; el resultado es entero (sin decimales) 0
printf(“ %.2f ”, z ) ; informa 0.00
Ejemplo:
/ Calcula el cociente entero (sin decimales) de la división
Solo operandos 122 6
ENTEROS 20 cociente entero
% Calcula el resto de la división entera
2 resto
Ejemplo: Dada una cantidad de segundos, calcular e informar su equivalente en horas, minutos y
segundos.
#include <stdio.h>
Prueba de Escritorio
main()
{
3754 segundos long int segundos, hh ;
E int resto, mm, ss ;
3
Preparado por: Ing. Cristina Pérez Berro
Expresiones Relacionales:
Tienen como resultado: verdadero o falso
El lenguaje C define los siguientes Operadores Relacionales
Operadores Relacionales
> mayor
< menor
== igual
!= distinto
>= mayor o igual
<= menor o igual
Ejemplos:
RELACIÓN RESULTADO
33 > 20 verdadero
15 != 15 falso
10 == 10 verdadero
22 <= 22 verdadero
13 >= 15 falso
4
Preparado por: Ing. Cristina Pérez Berro
Condición
V ? F
Acciones a Acciones a
realizar si la realizar si la
condición es condición es
verdadera falsa
5
Preparado por: Ing. Cristina Pérez Berro
Enunciado: Dadas las tres notas de un alumno, calcular su promedio e informar si está
aprobado ( promedio >=4 ) o desaprobado ( promedio < 4).
Programa C
Diagrama de Flujo
#include <stdio.h>
main()
n1, n2, n3
E {
int n1, n2, n3 ;
prom = ( n1+ n2 + n3 ) / 3 float prom ;
Programa C
Diagrama de Flujo
#include <stdio.h>
7
Preparado por: Ing. Cristina Pérez Berro
Cuando hay más de dos posibles resultados, para poder plantear todas esas
posibilidades se usan estructuras de decisión anidadas, también conocidas como if
anidados, es decir una estructura de decisión dentro de cualquiera de las ramas de otra
estructura de decisión, pudiendo anidarse tantas como sean necesarias.
Enunciado : Dado un número entero, informar si es positivo, negativo o cero.
main()
nro {
E
int num;
(nro > 0)
V F printf("Ingresar un numero entero: ");
scanf("%d",&num);
(nro < 0)
V F if (num>0)
printf("El numero %d es positivo\n", num );
“Positivo” else
if (num<0)
“Negativo” “Cero” printf("El numero %d es negativo\n", num );
else
printf("El numero es cero\n");
S S S system("PAUSE");
}
8
Preparado por: Ing. Cristina Pérez Berro
l1, l2, l3
E
(l1==l2)
V F
(l2==l3) (l2==l3)
V F V F
(l1==l3)
V F
S S S S S
9
Preparado por: Ing. Cristina Pérez Berro
#include <stdio.h>
main()
{
float l1, l2, l3;
if(l1==l2)
if(l2==l3)
printf("El triangulo es equilatero\n");
else
printf("El triangulo es isosceles\n");
else
if(l2==l3)
printf("El triangulo es isosceles\n");
else
if(l1==l3)
printf("El triangulo es isosceles\n");
else
printf("El triangulo es escaleno\n");
system("PAUSE");
}
Operadores Lógicos
&& Y - conjunción
|| O - o inclusiva
! No - Negación
A B A && B A B A || B A !A
f f f f f f v f
f v f f v v f v
v f f v f v
v v v v v v
11
Preparado por: Ing. Cristina Pérez Berro
Jerarquía de operadores
1 No ( ! )
2 * , / , % , Y ( && )
3 +, - , O ( || )
4 < , > , <> , = , <= , >=
Ejercicio 1b: Dados los tres lados de un triángulo informar su tipo (escalenos, equilátero, isósceles).
Resolver usando OPERADORES LÓGICOS
#include <stdio.h>
main()
l1, l2, l3 {
E
float l1, l2, l3;
(l1==l2 && l2==l3)
V F printf("Ingresar los tres lados de un triangulo: ");
(l1==l2 || l1==l3 || scanf("%f %f %f",&l1,&l2, &l3);
l2==l3) F
V
if ((l1==l2)&&(l2==l3))
“Equilátero” printf("El triangulo es equilatero\n");
else
“isósceles” “Escaleno” if ((l1==l2) || (l1==l3) || (l2==l3))
printf("El triangulo es isosceles\n");
else
S S S printf("El triangulo es escaleno\n");
system("PAUSE");
}
13
Preparado por: Ing. Cristina Pérez Berro
( 0 , +/- y )
pertenece al eje y
(0, 0)
-x x
( +/- x , 0 )
pertenece al eje x
(+x , -y)
(-x , -y)
x,y
E
( x == 0 && y == 0 )
V F
(x==0)
V F
(y==0)
V F
(x>0 && y>0) F
“origen de V
coordenadas”
(x<0 && y>0) F
“ Eje y” V
“ Eje x” (x<0 && y<0)
“ P.C.” V F
“ S.C.”
“ T.C.” “C. C.”
S S S S S S S
#include <stdio.h>
main()
{
float x, y;
Ejercicio 3a : Dado un número de mes, informar la cantidad de días de dicho mes. En caso
de ser el mes 2, ingresar el año para evaluar si es o no bisiesto. Tener en
cuenta que el número ingresado puede no corresponder a un número de mes
válido.
mes
E
(mes==1 || mes==3 || mes==5 || mes==7 || mes==8
|| mes ==10 || mes==12)
V F
(mes==2)
V F
(mes>12 ||
E anio V mes<1) F
17
Preparado por: Ing. Cristina Pérez Berro
#include <stdio.h>
main()
{
int mes, anio;
system("PAUSE");
}
18
Preparado por: Ing. Cristina Pérez Berro
variable
< valor1> < valor2> …… < valorn> default
19
Preparado por: Ing. Cristina Pérez Berro
mes
E
(mes)
1,3,5,7,8,10,12 2 4, 6, 9, 11 default
anio
E
(anio%400==0 || anio%4==0 &&
anio%100!=0)
V F
“Tiene “Tiene
31 30 “Error”
días” días”
“Tiene 29 “Tiene 28
días” días”
S S S S S
20
Preparado por: Ing. Cristina Pérez Berro
#include <stdio.h>
main()
{
int mes, anio;
21
Preparado por: Ing. Cristina Pérez Berro
[Link]
[Link]
22
Preparado por: Ing. Cristina Pérez Berro
[Link]
[Link]
23
Preparado por: Ing. Cristina Pérez Berro
[Link]
[Link]
24
Preparado por: Ing. Cristina Pérez Berro