Lenguajes de programación · PDF fileLenguajes de programación Un computador...
-
Upload
vuongxuyen -
Category
Documents
-
view
221 -
download
0
Transcript of Lenguajes de programación · PDF fileLenguajes de programación Un computador...
![Page 1: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/1.jpg)
Lenguajes de programación
Un computador solo entiende lenguaje binario
Un procesador tiene un conjunto finito de operaciones binarias
Un programa de computador es una secuencia de estas instrucciones
![Page 2: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/2.jpg)
Etapas en la construcción de un programa
¿Problema? Resolución
Codificación y
Edición
Prueba Compilación
Sin
errores
¡A usar el
programa!
Con errores
Sin errores
Errores de sintaxis
Archivo fuente
Archivo objeto
Archivo
ejecutable
![Page 3: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/3.jpg)
Lenguajes de programación
compilador
Código fuente
if(x>0)
Y=10;
Código Objeto 0011001
Sintaxis
gramática
Código Ejecutable 0011001
linker
![Page 4: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/4.jpg)
Lenguajes de programación
• Proceso de creación de un programa
– Generación de código fuente
– Compilación • Se analiza la sintaxis del programa
• Se analiza la gramática del programa
• Se genera código objeto
– Enlace • Se combina el código objeto con bibliotecas del sistema
• Se genera programa ejecutable
– Ejecución
![Page 5: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/5.jpg)
Lenguajes de programación
Código fuente
Código objeto
Código ejecutable
bibliotecas
Compilación
Ejecución
Enlace
![Page 6: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/6.jpg)
Estructura general de un programa C
Todo programa C
Está formado por un conjunto de funciones
En particular, una función que no puede faltar es la función main (programa principal).
Llama a otras funciones:
Definidas por nosotros en el programa
Predefinidas, en bibliotecas.
![Page 7: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/7.jpg)
Programa en C
Declaraciones previas (opcional)
instrucciones
Inicio
Fin
![Page 8: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/8.jpg)
Las funciones en C 1. Funciones pre-definidas agrupadas en
bibliotecas – Ejemplos:
• #include <string.h >
• Incluye funciones de Manejo de strings
• #include <stdio.h >
• Incluye funciones de I/O
• #include <math.h >
• Incluye funciones matematicas • …
2. Funciones definidas por el usuario
![Page 9: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/9.jpg)
IWI-131 - Tema 2
Declaraciones previas
Código fuente
Código objeto bibliotecas
Compilación
Enlace
Cabeceras de bibliotecas
Pre procesamiento
Código fuente procesado
![Page 10: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/10.jpg)
Definición de una función en C
![Page 11: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/11.jpg)
Funcion main
#include<stdio.h>
int main(){
int a, b, c = 0;
printf(“Digite el primer numero: ”);
scanf(“%d”,&a);
printf(“Digite el segundo numero: ”);
scanf(“%d”,&b);
c = a + b;
printf(“El resultado de la suma es: %d\n”,c);
return 0;
}
Librerías (uso de directivas del preprocesador)
Declaración de variables (las variables son locales en este caso).
Instrucciones (Expresiones aritméticas y lógicas, condicionales (IF), ciclos (while, do… while, for).
Programa principal
ANATOMIA DE UN PROGRAMA EN C
![Page 12: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/12.jpg)
Primer programa en C
/* Mi primer programa C */
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf(“Hola mundo!\n”);
system("pause");
return 0;
}
![Page 13: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/13.jpg)
Definición de una función en C
Valor retornado en el cuerpo de la función
• Se usa sentencia return para devolver valor del tipo de retorno de la función.
• Puede no devolver nada (la función retorna tipo void).
– return;
– Sin sentencia return, retorna cuando encuentra }
![Page 14: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/14.jpg)
Definición de una función en C
Tipo del Valor de Retorno • Cuando la función no retorna nada se coloca void
void imprimeNumerosDesdeHasta(int x, int y){
for (int i = x; i <= y; i++)
printf(“%d\n”, i);
}
• Si retorna valor se coloca return
int potencia(int n, int m){
int i, p;
p = 1;
for (i = 1; i <= m; i++) p = p * n;
return p;
}
![Page 15: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/15.jpg)
Definición de una función en C Lista de parámetros formales
(opcionales)
• Si la función no tiene parámetros formales se coloca void
int flip(void){
/* genera un número ramdom */
int valor;
…
return valor;
}
![Page 16: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/16.jpg)
/* Función que eleva la base n a la
potencia m (m >= 0)*/
int potencia(int n, int m)
{
int i, p;
p = 1;
for (i = 0; i < m; i++)
p = p * n;
return p;
}
![Page 17: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/17.jpg)
Instrucciones
• Las instrucciones se escriben en el cuerpo del programa.
• Pueden ser
– Declaraciones de variables
– Asignaciones
– Estructuras de control
– Llamadas a funciones
• Por lo general, terminan con un punto y coma (“;”)
![Page 18: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/18.jpg)
Primer programa C
/* Mi primer programa C */
#include <stdio.h>
#include <stdlib.h>
Int main()
{
printf(“Hola mundo!\n”);
system("pause");
}
![Page 19: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/19.jpg)
Principales Secuencias de Escape en C Secuencia de
escape Descripción
\a Carácter de alarma (campana del sistema).
\n New line (Nueva línea). Posiciona el cursor de la pantalla al comienzo
de la próxima línea.
\r Carriage return (Retroceso de carro). Posiciona el cursor al comienzo
de la línea corriente sin avanzar a la próxima.
\t Tabulador horizontal. Mueve el cursor hasta la próxima marca de
tabulación.
\\ Backslash. Usado para imprimir el carácter backslash.
\” Comilla. Usado para imprimir la comilla.
\‟ Apóstrofo. Usado para imprimir el apóstrofo.
\? Signo de interrogación. Usado para imprimir el signo de interrogación.
![Page 20: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/20.jpg)
Constantes y Variables • Constantes o literales
– Ejemplos en C: 12, ‘a’, “hola”, 23.5
• Variables
– Nombre (Identificador)
• En C, letras, números y el carácter de subrayado (_), no pueden comenzar con un número.
• Cualquier longitud, reconoce hasta 31 caracteres.
• Case sensitive.
• No acepta palabras claves.
![Page 21: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/21.jpg)
Bit, Byte, Word
Definición: Unidades usadas para describir unidades de datos o memoria en el computador
Bit: Unidad mas pequeña de memoria usada para mantener uno de dos posibles valores, ‘1’ o ‘0’.
Byte: Unidad de memoria equivalente a 8 bits.
1
0
10010010
![Page 22: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/22.jpg)
SISTEMAS NUMERICOS
BASE 16 BASE 10 BASE 8 BASE 2
0 0 0 0000
1 1 1 0001
2 2 2 0010
3 3 3 0011
4 4 4 0100
5 5 5 0101
6 6 6 0110
7 7 7 0111
8 8 10 1000
9 9 11 1001
A 10 12 1010
B 11 13 1011
C 12 14 1100
D 13 15 1101
E 14 16 1110
F 15 17 1111
Relación entre las bases mas comunes
Realizar algunos ejercicios de conversión de bases
BASE 16 BASE 10 BASE 8 BASE 2
? 234 ? ?
? ? 417 ?
? ? ? 11100101
4AF ? ? ?
![Page 23: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/23.jpg)
Tipos de datos
• void
– 0 bytes.
![Page 24: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/24.jpg)
Tipos de datos numéricos
• int
– Tipo de dato entero
– Valores positivos y negativos
– Se almacena en 2 o 4 bytes
• int (16 bits): -32.768 a 32.768
• long int (32 bits): -2.147.483.648 a 2.147.483.648
• unsigned int (32 bits): 0 a 4.294.967.296 – Se puede abreviar como “unsigned”
![Page 25: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/25.jpg)
Modificadores
• Para modificar el tamaño de almacenamiento se utilizan tipos de datos modificados
• Modificadores – signed: reserva un bit para el signo
– unsigned: define solo valores positivos
– long: utiliza el mayor tamaño disponible
– short: utiliza el menor tamaño disponible
![Page 26: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/26.jpg)
Tipos de datos numéricos
• float – Tipo de dato real
– Precisión simple
– Valores positivos y negativos
– Se almacena en 4 bytes • 37 dígitos para parte entera
• 6 dígitos para parte decimal
• Rango: [3.4e-38 , 3.4e38]
– No acepta modificadores
![Page 27: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/27.jpg)
Tipos de datos numéricos
• double
– Tipo de dato real
– Precisión doble
– Valores positivos y negativos
– Se almacena en 8 bytes
• 37 dígitos para parte entera
• 10 dígitos para parte decimal
• Rango: [1.7e-308 , 1.7e308]
– long double (10 bytes)
![Page 28: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/28.jpg)
Tipos de datos numéricos
int main(){
int a = -10;
unsigned int b = 10;
float c = 10.1;
double d = 0.000000001;
}
![Page 29: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/29.jpg)
Tipos de datos alfabéticos
• char – Almacena cualquier carácter
– Ocupa un byte • Permite diferenciar 256 caracteres.
• signed char: -127 a 127
• unsigned char: 0 a 256
– El valor almacenado es el código ASCII que representa el carácter • Ej: @ = 64 , \ = 92 , A = 65
![Page 30: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/30.jpg)
TIPOS DE DATOS • Cuando declaro una variable la elección del tipo de dato depende del propósito para el cual voy a usar la variable.
Tipo Ejemplo Tamaño en bytes Rango (minimo-maximo)
char ´c´ 1 0,…,255
int 1024 2 (o 4, depende de la arquitectura)
-32768,…,32767 (si el tamaño en bytes es 2)
float 10.5 4 3.4E-38 ,….,3.4E38
double 1e-8 8 1.7E-308,…,1.7E308
tipo nom_var1 = valor_inicial, nom_varN;
![Page 31: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/31.jpg)
Cast
• Se puede forzar al compilador para hacer una conversión de tipos.
• Se vera su utilidad al estudiar los operadores. void main(){
double d1=4.7, d2=2.4;
int i = ((int)d1)/((int)d2);
printf("%d\n", i);
}
![Page 32: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/32.jpg)
Entrada/Salida
– Entrada estándar: teclado
• getchar: lee un caracter
• scanf: lee entradas con formato
– Salida estándar: pantalla
• printf: imprime datos con formato
• Existen otras formas …
32
![Page 33: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/33.jpg)
Salida formateada con printf • Cada especificador de conversión:
– Empieza con %
– Termina con un carácter de conversión.
33
![Page 34: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/34.jpg)
IMPRIMIENDO VARIABLES EN PANTALLA - ASPECTOS BASICOS
Para imprimir variables en pantalla usando la función printf, cada tipo de dato tiene su especificador de control, la siguiente tabla muestra los especificadores basicos
Especificador Significado
%d Usado para imprimir un valor entero en decimal
%o Usado para imprimir datos enteros en notación octal
%x (%X) Usado para imprimir variables enteras en notación hexadecimal
%f Permite imprimir variables reales
%u Permite imprimir valores enteros sin signo
%ld Permite imprimir variables tipo long
%lo Imprime variables tipo long en formato octal
%lx Imprime variables tipo long en formato hexadecimal
![Page 35: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/35.jpg)
IMPRIMIENDO VARIABLES EN PANTALLA - ASPECTOS BASICOS
Especificador Significado
%h Permite imprimir variables tipo short
%hd Imprime variables tipo short en formato decimal
%hx Imprime variables tipo short en formato decimal
%lu Imprime variables tipo unsigned long
%lld Permite imprimir variables tipo long
%llu Permite imprimir variables tipo long sin signo
%c Usado para imprimir caracteres sencillos
%s Usado para imprimir cadenas de caracteres
![Page 36: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/36.jpg)
Salida de datos #include <stdio.h>
#include<stdlib.h>
int main(){
char c='A';
int i=126;
double d=12.0346;
printf("La letra %c es el numero %d\n", c,c);
printf("El numero decimal %d es el %x en hexadecimal \n",i,i);
printf("El numero %f se redondea a %010.3f \n",d,d);
printf("Inserte aqui su mensaje: < %s > \n","este es mi mensaje");
system("pause"); return (0);
}
La letra A es el numero 65 El numero decimal 126 es el 7e en hexadecimal El numero 12.034600 se redondea a 000012.035 Inserte aqui su mensaje: < este es mi mensaje >
![Page 37: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/37.jpg)
Ingreso de datos
#include <stdio.h>
#include<stdlib.h>
int main()
{
int entero,entero1,entero2 ;
char c;
scanf (“%d”, &entero); /* lee un entero */
scanf (“%d, %d”, &entero1, &entero2); /* ha leido dos enteros*/
scanf (“%d %c \n”, &ent3, &c );
/* lee un entero, ent3, y un carácter, c, */
…..
}
![Page 38: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/38.jpg)
Suma=0
Ingrese a y b
a,b
Suma=a +b
a,b,Suma
#include <stdio.h> #include<stdlib.h> int main() { int a,b,Suma=0 ; printf(“ ingrese a y b\n”); scanf(“%d%d",&a,&b); Suma= a +b; printf(“La suma de %d + %d es = a %d\n“,a,b,Suma); system("pause"); return (0); }
![Page 39: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/39.jpg)
![Page 40: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/40.jpg)
Operadores y expresiones aritméticas en C Operador
aritmetico
en C
Operadores
relacionales
en C
+ ==
!=
- <=
* >=
/ >
% <
![Page 41: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/41.jpg)
Operadores y expresiones lógicas en C
• No hay tipo booleano o lógico
– 0 representa falso
– 1 representa verdadero
• 1 == 1 1 (verdadero)
• 10 <= 5 0 (falso)
![Page 42: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/42.jpg)
Operadores y Expresiones Lógicas en C Operador
lógico
Operador
lógico en
C
Ejemplo de uso Significado
and && i != 0 && j > 1
i distinto de 0 y j mayor
que 1
or || c == „a‟ || n == 0
c igual al carácter „a‟ o n
igual a 0
not
! !encontrado
la variable encontrado
no es verdadera
(encontrado igual 0)
Orden de evaluación: 0 && _ 0
1 || _ 1
![Page 43: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/43.jpg)
Operadores de asignación aritméticos
Operador
de
asignación
aritmético
Ejemplo Versión
descomprimida
Resultado asignado a
variable a asumiendo
la declaración
int a = 3;
+= a+=4 a = a + 4 7
-= a-=4 a = a - 4 -1
*= a*=4 a = a * 4 12
/= a/=4 a = a / 4 0
![Page 44: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/44.jpg)
Operadores de incremento y decremento en C
Operador Explicación Ejemplo de uso Efecto
a++
Devuelve el valor de a
y luego lo incrementa
en 1.
i = a++;
Asigna el valor de a a la variable i y luego
incrementa a en 1. Es equivalente a
i = a; a = a + 1;
++a Incrementa el valor de a en 1 y devuelve ese
valor.
i = ++a; Incrementa en 1 la variable a y ese valor lo
asigna a la variable i. Es equivalente a
a = a + 1; i = a;
a--
Devuelve el valor de a
y luego lo decrementa
en 1.
printf(“%d”, a--);
Imprime el valor de a y luego decrementa
en 1 su valor. Es equivalente a
printf(“%d”, a); a = a - 1;
--a Decrementa el valor de a en 1 y devuelve ese
valor.
printf(“%d”, --a); Decrementa en 1 la variable a y luego
muestra su valor por pantalla. Equivalente a
a = a – 1; printf(“%d”, a);
![Page 45: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/45.jpg)
Conversiones Implícitas de Tipos en C
int i = 5;
float f = 3.0;
float y;
f = i;
y = f + i;
![Page 46: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/46.jpg)
Conversiones Explícitas de Tipos en C Operador cast
• Forma general: (nombre-de-tipo) expresión • Ejemplos:
float resultado;
int i = 9;
int j = 5;
resultado = i / j;
resultado = (float)i / j;
resultado = i / (float)j;
resultado = (float)(i / j);
resultado = (float)i / (float) j;
![Page 47: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/47.jpg)
Programación Estructurada
• Metodología de programación
• C. Böhm y G. Jacopini, 1966
• Edsger W. Dijkstra, 1968
• Estructuras de Control
– Secuencia
– Selección
– Iteración
![Page 48: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/48.jpg)
Secuencia en C • ; es un finalizador de sentencia:
– y = 4 y j++ y scanf(…) son expresiones en C
– y = 4; j++; scanf(…); son sentencias en C
• { } para crear sentencias compuestas o bloques:
– Agrupan declaraciones y sentencias.
– Ejemplo: llaves en declaración de función main.
![Page 49: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/49.jpg)
Selección • Selección de rama vacía o simple
if (cond)
sentencia;
• Ejemplos:
if (a==1 && b) if (a==1 && b){
a++; a++;
b+=5;
}
![Page 50: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/50.jpg)
Selección • Selección de dos ramas
if (cond)
sentencia;
else
sentencia;
• Si hay if anidados ambiguos, asocia else al if mas interno:
if (a==1 && b) if (a==1 && b){
if (b < 0) if (b < 0)
b = 0; b = 0;
else }
a++; else
a++;
![Page 51: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/51.jpg)
Selección • Selección múltiple en C
switch (expresión) {
case constanteEntera1: sentencias;
case constanteEntera1 : sentencias;
…
case constanteEntera1 : sentencias;
default: sentencias;
}
• Ejemplo 1: switch (i) {
case 1: printf(“uno\n”);
case 2: printf(“dos\n”);
case 3: printf(“tres\n”);
}
![Page 52: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/52.jpg)
Selección • Ejemplo 2: switch (i) {
case 1: printf(“uno\n”); break;
case 2: printf(“dos\n”); break;
case 3: printf(“tres\n”); break;
default: printf(“distinto de 1, 2 y 3\n”);
}
• Ejemplo 3: switch (ch) {
case „,‟:
case „;‟:
case „.‟: printf(“signo de puntuacion\n”); break;
default: printf(“no es un signo de puntuacion\n”);
}
![Page 53: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/53.jpg)
Iteración
• while
• do/while
• for
![Page 54: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/54.jpg)
Iteración while while (expresión)
sentencia;
Ejemplo:
int i = 0;
while (i < 10) {
printf(“i = %d”, i);
i++;
}
![Page 55: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/55.jpg)
Iteración for for (expresión1; expresión2; expresión3)
sentencia;
Ejemplos:
int suma = 0;
for (i = 0; i <= n; i++)
suma = suma + i;
int suma;
for (i=0, suma=0; i <= n; i++, suma+= i);
![Page 56: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/56.jpg)
Iteración do/while do
sentencia;
while (expresión);
Ejemplo: do {
printf(“Ingrese un numero natural”
“mayor o igual a cero: ”);
scanf(“%d”, &n);
} while (n < 0);
![Page 57: Lenguajes de programación · PDF fileLenguajes de programación Un computador solo entiende lenguaje binario Un procesador tiene un conjunto finito de operaciones binarias Un programa](https://reader031.fdocuments.net/reader031/viewer/2022021501/5a7a39137f8b9a71348da246/html5/thumbnails/57.jpg)