universidad rafael urdaneta escuela de ingeniería de ... · pdf...
Post on 06-Feb-2018
238 Views
Preview:
TRANSCRIPT
• 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
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
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
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.
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
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;
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
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
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
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
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.
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.
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)
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.
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.
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
a b a||b
verdadero verdadero verdadero
Verdadero falso verdadero
falso verdadero verdadero
falso falso falso
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.
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
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
¿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
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)
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)
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.
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
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
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
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
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.
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);
#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();
}
Resolver los ejercicios del
libro de Joyanes desde la
página 112 a la página 127.
top related