Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF...
-
Upload
hoangxuyen -
Category
Documents
-
view
238 -
download
1
Transcript of Universidad Rafael Urdaneta Escuela de Ingeniería de ... · PDF...
![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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/1.jpg)
• 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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/2.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/3.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/4.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/5.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/6.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/7.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/8.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/9.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/10.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/11.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/12.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/13.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/14.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/15.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/16.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/17.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/18.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/19.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/20.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/21.jpg)
¿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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/22.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/23.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/24.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/25.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/26.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/27.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/28.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/29.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/30.jpg)
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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/31.jpg)
#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](https://reader031.fdocuments.mx/reader031/viewer/2022020104/5a797ad37f8b9a770a8c42c7/html5/thumbnails/32.jpg)
Resolver los ejercicios del
libro de Joyanes desde la
página 112 a la página 127.