universidad rafael urdaneta escuela de ingeniería de ... · pdf...

32
Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos. Asignación de variables. Operadores (aritméticos, relacionales y lógicos) Evaluación de expresiones. Funciones estándar. Funciones de entrada y salida. MSc Jaime Soto Universidad Rafael Urdaneta Escuela de Ingeniería de Computación

Upload: hoangxuyen

Post on 06-Feb-2018

228 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

• Números enteros (cortos, largos y sin signo)

• Números reales (precisión simple y doble)

• Carácter y cadenas de caracteres. Lógicos.

• Asignación de variables.

• Operadores (aritméticos, relacionales y lógicos)

• Evaluación de expresiones.

• Funciones estándar. Funciones de entrada y salida.

MSc Jaime Soto

Universidad Rafael Urdaneta

Escuela de Ingeniería de Computación

Page 2: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Los enteros son aquellos números que no tienen

componente fraccionario o decimal y dentro de la

computadora son un subconjunto finito de los

números enteros. Estos números pueden ser

negativos o positivos y el rango es de –32,768 a

32,767.

Ejemplo: 6, -6, 65, -98, 1900, -5672

En Lenguaje C es: int a

Page 3: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Son aquellos números que tienen una parte fraccionaria y

pueden ser positivos y negativos dentro de la

computadora forman un subconjunto de los números

reales. Para representar números muy pequeños o muy

grandes se emplea la notación de punto flotante, que es

una generalización de la notación científica. En esta

notación se considera al número real como mantisa y al

exponente la potencia de 10 a la que se eleva este

número.

Ejemplo: 0.08, -52.364, 3.0, -7.0

36.75201 x 1018 36.75201 mantisa 18 exponente

En Lenguaje C es:

1. float a precisión simple

2. double b doble precisión

Page 4: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Este tipo de dato es aquel que solo puede tomar uno de 2

valores: verdadero (true) o falso (false).

C no posee ninguna implementación primitiva del tipo

booleano. Entonces, para declarar variables de este tipo, hace

falta definirlo previamente. La manera de hacerlo es añadir o

crear nuevos nombres para tipos definidos de datos:

typedef enum {FALSO=0, VERDADERO=1} booleano;

booleano tiene_hijos;

tiene_hijos = FALSO;

Que define el tipo booleano y asigna a sus elementos FALSO y

VERDADERO los valores 0 y 1 respectivamente.

Page 5: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

El dato tipo carácter puede tomar un valor de un

conjunto finito y ordenado de caracteres o símbolos que la

computadora reconoce (código ASCII). Este tipo de dato

ocupa un byte y almacena un solo carácter.

char opcion;

opcion = „A‟;

Existe también el dato tipo cadena (compuesto) que es

una sucesión de caracteres que se encuentran delimitados

por comillas, la longitud de una cadena es el número de

caracteres comprendidos entre los delimitadores. En

lenguaje C no hay un tipo definido de cadena. Se requiere

definir un arreglo de datos tipo carácter.

char nombre[10]=“Jaime”;

gets(nombre); // función para capturar cadena

Page 6: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Las variables hay que definirlas primero. El C no permite

una variable a la que no se asocie un tipo de dato. Después

de definida la variable, se le pueden asignar valores.

El operador de asignación es el símbolo igual “=“

int edad;

edad = 25;

Page 7: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Tipos de datos Descripción Memoria

int Entero 2 bytes

float Flotante 4 bytes

double Flotante de doble 8 bytes

precisión

char Carácter 1 byte

Page 8: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

En todos los lenguajes de programación se utilizanoperadores para efectuar operacionesaritméticas. Combinando las variables y constantes enexpresiones aritméticas por medio de funcionesadecuadas.

OPERADORES MATEMÁTICOS

Operador Significado

+ Suma

- Resta

* Multiplicación

/ División

^ Exponenciación

% Módulo

++ Incremento

-- Decremento

Page 9: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

En todos los lenguajes de programación se utilizanoperadores para realizar divisiones reales (/), enteras (\ -no vale para C) y módulos (%).

19 / 6 = 3.16 19 \ 6 = 3 19 % 6 = 1

15 / 6 = 2.5 15 \ 6 = 2 15 % 6 = 3

Expresión Resultado Expresión Resultado

10.5/3.0 3.5 10\3 3

1/4 0 18\2 9

2.0/4.0 0.5 30\30 1

6/1 6.0 6\8 0

30/30 1.0 10%3 1

6/8 0.75 10%2 0

Page 10: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

En ocasiones en los programas se requiere realizarcomparaciones entre distintos valores, esto se realizautilizando los operadores relacionales, los cuales selistan a continuación:

Operador Significado

< Menor

> Mayor

<= Menor que

>= Mayor que

== Igual

!= Diferente

&& Y

|| O

! Negación

RELACIONALES

LÓGICOS

Page 11: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Las expresiones son combinaciones de constantes,variables, símbolos de operación (operadores),paréntesis y nombres de funciones especiales.

Ejemplo: sqrt ((p-a)*(p-b)*(p-c));

(a+b+c) / p;

Una expresión toma un valor que se determina por elresultado de la ejecución de las operacionesindicadas, tomando los valores de las variables yconstantes y aplicando las prioridades de lasoperaciones.

Según el tipo de operadores que se emplee en laexpresión, estas se clasifican en: aritméticas, lógicas,relacionales, de caracteres o mixtas.

Page 12: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Este tipo de expresiones nos sirve para representar

formulas matemáticas y utilizan los operadores

aritméticos.

Las expresiones que tienen 2 o más operadores

requieren reglas de precedencia que permiten

determinar el orden en que habrán de efectuarse

dichas operaciones. Por ejemplo:

5 + 8 * 2 //Primero se hace 8 * 2 y luego se suma 5

5 +16 = 21

10%3 = 1 //Regresa el residuo de la división entera

Nota: En caso de coincidir la prioridad de varios operadores en

una expresión el orden en el que se efectúan es de izquierda

a derecha.

Page 13: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Las expresiones con más de dos operandos, requieren de reglasmatemáticas que aseguren su correcta interpretación.

Por Ejemplo: 3 * 4 + 5 Puede ser interpretada como:

(3 * 4) + 5 = 17 ó bien 3 * (4 +5) = 27

Para evitar confusión, C Sigue las siguientes normas de prioridad:

1. Operaciones entre paréntesis, se evalúan primero los másinternos.

2. Operadores (*, /)

3. Operadores (%)

4. Operadores (+, -)

5. Operadores (=, <, >, <=, >=, !=)

En caso de operadores de igual prioridad se evalúa la expresión deizquierda a derecha.

Ejemplo:

2 * 2 + 3 * 3 + 6 / 2 % 2 = (2*2) + (3*3) + ((6 / 2) % 2)

Page 14: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

La expresión lógica mas simple es una variable o

constante lógica que puede establecerse a valores

verdadero (true) o falso (false).

Las expresiones lógicas pueden combinarse para

formar expresiones mas complejas utilizando los

operadores lógicos and, or y not. Estos se utilizan

con constantes lógicas.

[operando1] operador operando2

El operando1 según el tipo de operador puede no

existir.

Page 15: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

La operación and combina dos condiciones simples y

produce un resultado verdadero solo si los dos

operandos son verdaderos. La operación or es

verdadera si uno de los dos operandos es verdadero.

La operación not actúa sobre una sola condición

simple u operando y simplemente niega (o invierte)

su valor. Esto se describe mas fácilmente usando

unas tablas denominadas 'tablas de verdad'.

Cuando la expresión lógica contiene varios tipos de

operadores, es preciso seguir un nuevo orden de

precedencia o prioridad para obtener el valor final

de la expresión.

Page 16: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Operador Lógico Expresión lógica Significado

! No !p Negación de p

&& p&&q (p and q) Conjunción de p y q

|| p||q (p||q) Disyunción de p y q

a no a

verdadero falso

falso verdadero

a b a y b

verdadero verdadero verdadero

verdadero falso falso

falso verdadero falso

falso falso falso

No (6>10) es verdaderaYa que (6>10) es falsa

Page 17: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

a b a||b

verdadero verdadero verdadero

Verdadero falso verdadero

falso verdadero verdadero

falso falso falso

Page 18: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Para evitar confusión, C Sigue las siguientes normas

de prioridad:

1. Operaciones entre paréntesis, se evalúan primero los

más internos.

2. Operadores (^, !)

3. Operadores (*, /,\,%, &&)

4. Operadores (+, -, ||)

5. Operadores (=, <, >, <=, >=, !=)

Cuando la expresión lógica contiene varios tipos de

operadores, es preciso seguir un nuevo orden de

precedencia o prioridad para obtener el valor final

de la expresión.

Page 19: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Ejemplo:

Si num1, num2, son variables enteras con valores

asignados 3 y 6, respectivamente, entonces:

(2+3*num1) <> 6+(num2-1) falso

2+3*num1 = 11 falso

6+(5) = 11 verdadero

5>3 && 6>2 verdadero

año%4 == 0 && año%100 != 0 || año%400 == 0 falso

Page 20: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

El resultado de una expresión lógica es un valor de

tipo lógico: verdadero o falso.

Cuando se aplican a elementos de tipo carácter se

verifican en orden alfabético, tomando en cuenta el

orden del código ASCII. De la siguiente manera:

0 < 1 < 2 ... < 9

a < b < c ... < z

A < B < C ... < Z

Page 21: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

¿Cuál es el resultado de las siguientes expresiones?

a. 3+6*14 = 3 + 84 = 87

b. 8+7*3+4*6 = 8 + 21+ 24 = 29+24 = 53

c. -4*7+2^3/4-5 = -4*7+8/4-5 = -28+2-5 = -26-5 = -31

Page 22: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Encontrar el valor de la variable z.

a. z = 4.0 * 5 b. x=3.0 y=2.0 z=x^y-y

c. z=5 x=3 z=z*x

Deducir el resultado de las siguientes instruciones.

Int x,y;

x=1;

y=5;

printf (x,y)

Page 23: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Deducir el valor de las siguientes expresiones; siendo

a=5, b=25 y c=10

a. x = a+b+c

b. x = a+b*c

c. x = a+b/c

d. x = a+b\c

e. x = a+b%c

f. x = (a+b)\c

g. x = a+(b/c)

Page 24: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Calcular el valor de las siguientes expresiones:

a. 8+7*3+4*6

b. -2^3

c. (33+3*4)/5

d. 2^2*3

e. 3+2*(18-4^2)

f. 16*6-3*2

g. 3*3+4-7^2\7

Escribir un algoritmo que intercambie los valores de

dos variables a y b.

Page 25: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Deducir los valores que toman las variables a, b y ctras la ejecución de las instrucciones.

a. a=4 b. a=5

b=a b=a+6

b=a+3 a=a+1

b=a-5

c. a = 3 d. a =10

b = 20 b = 5

c = a+b a = b

b = a+b b = a

a = b-c

Page 26: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Escribir las siguientes expresiones en forma deexpresiones algorítmicas:

a. M + P b. M+ N

N P-Q

c. M+N d. M+N

P+Q P

Q - R

S

e. Sen(x)+Coseno(x)

tan(x)

f. -b+√b2-4ac

2

Page 27: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Las operaciones que se requieren en los programas exigen ennumerosas ocasiones, además de las operaciones aritméticasbásicas, un número determinado de operadores especialesque se denominan Funciones Internas, incorporadas oestándar.

Ejemplo:

Expresión Resultado

raiz2 (25) 5

redondeo(6.5) 7

redondeo(3.1) 3

redondeo(-3.2) -3

trunc(5.6) 5

trunc(3.1) 3

trunc(-3.8) -3

cuadrado(4) 16

abs(9) 9

abs(-12) 12

Page 28: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Función Descripción Argumento Resultado

abs(x) Valor Absoluto de (x) Entero o Real Entero o Real

sin(x) Seno de (x) Entero o Real Real

cos(x) Coseno de (x) Entero o Real Real

asin(x) Arco Seno de (x) Real Real

acos(x) Arco Coseno de (x) Real Real

atan(x) Arco tangente de (x) Real Real

exp(x) Exponencial de (x) Real o Entero Real

log(x) Logaritmo natural de (x) Real o Entero Real

log10(x) Logaritmo base 10 de (x) Real o Entero Real

ceil(x) Aproxima x al entero Real Entero

inmediato superior

pow(x,n) x elevado a la n Real o Entero Real o Entero

sqrt(x) Raíz Cuadrada de (x) Real o Entero Real

Page 29: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

En las asignaciones no se pueden asignar valores a

una variable de un tipo diferente del suyo. Se

presentará un error si se trata de asignar valores de

tipo carácter a una variable numérica o un valor

numérico a una variable tipo carácter.

Page 30: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Como se mencionó anteriormente, es necesario

conocer las entradas y las salidas del problema

para poder resolverlo. Para que C reciba estos

datos utilizamos las funciones de biblioteca scanf

para la entrada y printf para la salida. Su sintaxis

es la siguiente:

//Lee el valor y lo guarda en una variable

scanf ("%d", &variable);

//Imprime en pantalla el texto y el valor

printf ("El valor es %d", variable);

Page 31: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

#include <stdio.h>

#include <conio.h>

#include <math.h>

Void main() {

int r, a, p;

printf ("Programa que calcula el área y perímetro de un circulo");

printf ("\nIntroduce el radio: ");

scanf ("%d", &r);

a = M_PI * pow(r,2);

p = M_PI * (r+r);

printf ("\nEl área es: %d", a);

printf ("\nEl perímetro es: %d", p);

getch();

}

Page 32: Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF file•Números enteros (cortos, largos y sin signo) •Números reales (precisión simple y doble) •Carácter y

Resolver los ejercicios del

libro de Joyanes desde la

página 112 a la página 127.