0% encontró este documento útil (0 votos)
9 vistas12 páginas

Fundamentos de C: Operadores y Estructuras

Cargado por

LucianoLago
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas12 páginas

Fundamentos de C: Operadores y Estructuras

Cargado por

LucianoLago
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Universidad Tecnológica Nacional Fundamentos de Informática

Facultad Regional Haedo Computación

Universidad Tecnológica Nacional


Facultad Regional Haedo

Fundamentos de Informática / Computación

Profesora: Lic. Graciela D’Agostino


JTP : Ing. Cristina Pérez Berro
AP: Ing. Juan Pablo Pla

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

% resto de una división entera – solo para operandos 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

cast o casting : Modificación temporal del tipo de dato de una variable


z = (float) a / b ;  el resultado es real  0.85714
2
Preparado por: Ing. Cristina Pérez Berro

Ing. Cristina Pérez Berro 1


Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

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 ;

hh = 3754 / 3600 = 1  hh = segundos / 3600 printf("Ingresar cantidad de segundos ");


scanf("%ld", &segundos);
resto = 3754 % 3600 = 154  resto = segundos % 3600 hh = segundos / 3600 ;
resto = segundos % 3600 ;
mm = 154 / 60 = 2  mm = resto / 60 mm = resto / 60 ;
ss = resto % 60 ;

ss= 154 % 60 = 34  ss = resto % 60 printf("Cantidad de horas: %d\n", hh);


printf("Cantidad de minutos: %d\n", mm);
printf("Cantidad de segundos: %d\n", ss);
1 hora 2 minutos 34 seg  hh, mm, ss
S system(“PAUSE");
}

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

Ing. Cristina Pérez Berro 2


Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

Una estructura de decisión, también conocida como estructura condicional o de selección,


permite presentar distintos caminos posibles de ejecución, cada uno constituido por una o más
acciones a realizar.
La estructura de decisión simple permite seleccionar un camino entre dos posibles, según el
resultado de verdad de una condición, la cual puede ser una relación o una expresión booleana
o lógica.

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 ;

printf("Ingresar las tres notas del alumno: ");


(prom >= 4) scanf("%d %d %d",&n1, &n2, &n3);
V F
prom = (n1 + n2 + n3 ) / 3.0 ;
Las relaciones siempre
if (prom >= 4) van entre paréntesis
“ Aprobado “ “ Desaprobado “ {
printf("Promedio: %.2f\n", prom); Camino del
printf("El alumno esta APROBADO\n"); VERDADERO
S S }
else
{
printf("Promedio: %.2f\n", prom); Camino del
printf("El alumno esta DESAPROBADO\n"); FALSO
Cuando hay más de una acción a realizar }
en cualquiera de las ramas del if, hay system("PAUSE");
que encerrarlas entre llaves }

Preparado por: Ing. Cristina Pérez Berro 6

Ing. Cristina Pérez Berro 3


Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

Enunciado: Dados dos números, calcular e informar el cociente

Programa C
Diagrama de Flujo
#include <stdio.h>

dividendo, divisor main()


E {
float dividendo, divisor, cociente;
(divisor != 0)
V F printf("Ingrese dividendo: ");
scanf("%f",&dividendo);
cociente = dividendo/divisor printf("Ingrese divisor: ");
scanf("%f",&divisor);
“ No se puede dividir Las relaciones siempre
por cero “ van entre paréntesis
cociente if(divisor!=0)
{
S S cociente=dividendo/divisor; Camino del
printf("Cociente=%.2f\n",cociente); VERDADERO
}
else Camino del
printf("No se puede dividir por cero\n"); FALSO

Cuando hay más de una acción a realizar system("PAUSE");


en cualquiera de las ramas del if, hay }
que encerrarlas entre llaves

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.

Diagrama de Flujo Programa C


#include <stdio.h>

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

Ing. Cristina Pérez Berro 4


Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

Ejercicio 1a: Dados los tres lados de un triángulo informar su tipo


(escalenos, equilátero, isósceles)

l1, l2, l3
E
(l1==l2)
V F
(l2==l3) (l2==l3)
V F V F
(l1==l3)
V F

“Equilátero” “Isósceles” “isósceles” “Isósceles” “Escaleno”

S S S S S

9
Preparado por: Ing. Cristina Pérez Berro

#include <stdio.h>

main()
{
float l1, l2, l3;

printf("Ingresar los tres lados de un triangulo: ");


scanf("%f %f %f",&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");
}

Preparado por: Ing. Cristina Pérez Berro 10

Ing. Cristina Pérez Berro 5


Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

Expresiones lógicas o booleanas :


El lenguaje C define los siguientes operadores lógicos

Operadores Lógicos

&& Y - conjunción
|| O - o inclusiva
! No - Negación

Los operandos son de tipo lógicos ( verdadero (v) – falso (f) )


El resultado de estas expresiones se obtiene por medio de las Tablas de Verdad

Operador Y Operador O Operador No

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

El lenguaje C define como jerarquía de operaciones, es decir, el orden de


evaluación o precedencia, la siguiente :

Jerarquía de operadores

1 No ( ! )
2 * , / , % , Y ( && )
3 +, - , O ( || )
4 < , > , <> , = , <= , >=

• Los operadores que se indican en la misma fila tienen la misma jerarquía


• Del nivel 1 al 4 es como se realizan las operaciones de primeras a últimas
• Los paréntesis se utilizan para alterar este orden
• Para operaciones del mismo nivel de jerarquía se establece que la evaluación
es de izquierda a derecha.
Ejemplos :
3+5*6-2  (5*6)+3-2
!a == b  ( !a ) == b
4 / 3 + 5.9  ( 4 / 3 ) + 5.9
a || b && c  ( b && c ) || a

Preparado por: Ing. Cristina Pérez Berro 12

Ing. Cristina Pérez Berro 6


Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

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

Ejercicio 2 : Dadas las coordenadas de un punto en el plano, informar si el mismo


pertenece al origen de coordenadas, si está sobre alguno de los ejes
o si está en algún cuadrante

Segundo Cuadrante Primer Cuadrante

( 0 , +/- y )
pertenece al eje y

(-x , +y) (+x , +y)

(0, 0)
-x x
( +/- x , 0 )
pertenece al eje x

(+x , -y)
(-x , -y)

Tercer Cuadrante Cuarto Cuadrante


-y

Preparado por: Ing. Cristina Pérez Berro 14

Ing. Cristina Pérez Berro 7


Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

Ejercicio 2 : Dadas las coordenadas de un punto en el plano, informar si el mismo


pertenece al origen de coordenadas, si está sobre alguno de los ejes
o si está en algún cuadrante

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

Preparado por: Ing. Cristina Pérez Berro 15

#include <stdio.h>

main()
{
float x, y;

printf("Ingresar coordenadas de un punto (x , y): ");


scanf("%f%f",&x,&y);

if (x==0 && y==0)


printf("Pertenece al origen de coordenadas\n" );
else
if (x==0)
printf("Pertenece al eje y\n" );
else
if (y==0)
printf("Pertenece al eje x\n" );
else
if (x>0 && y>0)
printf("Pertenece al primer cuadrante\n" );
else
if (x<0 && y>0)
printf("Pertenece al segundo cuadrante\n" );
else
if (x<0 && y<0)
printf("Pertenece al tercer cuadrante\n" );
else
printf("Pertenece al cuarto cuadrante\n" );
system("PAUSE");
}

Preparado por: Ing. Cristina Pérez Berro 16

Ing. Cristina Pérez Berro 8


Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

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

“Tiene (anio%400 ==0 || anio%4==0 &&


31 anio%100 !=0) “Tiene
V F “Error” 30
días”
días”
“Tiene 29 “Tiene 28
días” días”
S S S S S

17
Preparado por: Ing. Cristina Pérez Berro

#include <stdio.h>

main()
{
int mes, anio;

printf("Ingresar mes: ");


scanf("%d",&mes);

if (mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes ==10 || mes==12)


printf("El mes tiene 31 dias\n" );
else
if (mes==2)
{
printf("Ingresar el anio: ");
scanf("%d",&anio);
if (anio%400 ==0 || anio%4==0 && anio%100!=0)
printf("El mes tiene 29 dias\n");
else
printf("El mes tiene 28 dias\n");
}
else
if (mes>12 || mes<1)
printf("El numero no corresponde a un mes valido\n");
else
printf("El mes tiene 30 dias\n");

system("PAUSE");
}

18
Preparado por: Ing. Cristina Pérez Berro

Ing. Cristina Pérez Berro 9


Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

La estructura de decisión múltiple permite seleccionar un camino entre varios posibles,


según el contenido de una variable entera o caracter. Esta estructura evalúa el contenido de
una variable y en caso de ser igual a alguno de los valores enumerados, se realizarán las
acciones indicadas en la rama correspondiente a ese valor. En caso que el contenido de la
variable no sea ninguno de los valores indicados, tomará la rama identificada con la palabra
reservada default.

variable
< valor1> < valor2> …… < valorn> default

Acciones a Acciones a Acciones a Acciones a


realizar en el realizar en el realizar en el realizar si el
caso que el caso que el caso que el contenido de
contenido de contenido de contenido de la variable no
la variable sea la variable sea la variable sea es ninguno de
igual al valor1 igual al valor2 igual al valorn los valores
enumerados

19
Preparado por: Ing. Cristina Pérez Berro

Ejercicio 3b : 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.
Resolver usando la estructura de decisión múltiple: switch

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

Ing. Cristina Pérez Berro 10


Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

#include <stdio.h>

main()
{
int mes, anio;

printf("Ingresar mes: ");


scanf("%d",&mes);
La variable a evaluar solamente puede ser entera o caracter
switch (mes)
y se pone siempre entre paréntesis
{
case 1:
case 3:
case 5: La palabra reservada
case 7: break indica que debe
case 8: salir de la estructura
case 10:
case 12: printf("El mes tiene 31 dias\n" ); break;
Para enumerar cada case 2:
printf("Ingresar el anio: "); El cuerpo del
valor significativo de
scanf("%d",&anio); switch se indica
la variable, se
if (anio%400 ==0 || anio%4==0 && anio%100!=0) entre llaves
antepone la palabra
case a cada valor printf("El mes tiene 29 dias\n");
else
printf("El mes tiene 28 dias\n");
break;
case 4:
case 6:
case 9:
case 11: printf("El mes tiene 30 dias\n"); break;
El camino por default lo default: printf("El numero no corresponde a un mes valido\n");
toma cuando el contenido }
de la variable no es
ninguno de los system("PAUSE");
enumerados en cada }
case

21
Preparado por: Ing. Cristina Pérez Berro

[Link]
[Link]

22
Preparado por: Ing. Cristina Pérez Berro

Ing. Cristina Pérez Berro 11


Universidad Tecnológica Nacional Fundamentos de Informática
Facultad Regional Haedo Computación

[Link]
[Link]

23
Preparado por: Ing. Cristina Pérez Berro

[Link]
[Link]

24
Preparado por: Ing. Cristina Pérez Berro

Ing. Cristina Pérez Berro 12

También podría gustarte