• 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
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
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:
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
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”;
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;
Tipos de datos Descripción
Memoria
int Entero 2 bytes
float Flotante 4 bytes
double Flotante de doble 8 bytes
precisión
En todos los lenguajes de programación se utilizan
operadores para efectuar operaciones
aritméticas. Combinando las variables y constantes en expresiones aritméticas por medio de funciones adecuadas.
OPERADORES MATEMÁTICOS
Operador Significado
+ Suma
- Resta
* Multiplicación
/ División
^ Exponenciación
% Módulo
++ Incremento
En todos los lenguajes de programación se utilizan
operadores 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
En ocasiones en los programas se requiere realizar
comparaciones entre distintos valores, esto se realiza utilizando los operadores relacionales, los cuales se listan a continuación:
Operador Significado
< Menor
> Mayor
<= Menor que >= Mayor que
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 el
resultado de la ejecución de las operaciones indicadas, tomando los valores de las variables y constantes y aplicando las prioridades de las operaciones.
Según el tipo de operadores que se emplee en la
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
Las expresiones con más de dos operandos, requieren de reglas
matemá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ás internos.
2. Operadores (*, /) 3. Operadores (%) 4. Operadores (+, -)
5. Operadores (=, <, >, <=, >=, !=)
En caso de operadores de igual prioridad se evalúa la expresión de
izquierda a derecha.
Ejemplo:
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
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
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
a b a||b
verdadero verdadero verdadero
Verdadero falso verdadero
falso verdadero verdadero
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
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
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
¿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
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;
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
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
Deducir los valores que toman las variables a, b y c
tras 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
Escribir las siguientes expresiones en forma de
expresiones 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
Las operaciones que se requieren en los programas exigen en
numerosas ocasiones, además de las operaciones aritméticas básicas, un número determinado de operadores especiales que se denominan Funciones Internas, incorporadas o
estándar.
Ejemplo:
Expresión Resultado
raiz2 (25) 5
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
En las asignaciones no se pueden asignar valores a
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
#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();