Vous êtes sur la page 1sur 44

GENERALIDADES SOBRE

ALGORITMOS
MENU DEL DIA
Pseudocdigo,
diagramas de flujo y
algo de C.
Introduccin al
lenguaje C. programa.
Manejo de variables.
Expresiones.
Entrada y salida en C.
Ejemplos

PSEUDOCODIGO, DIAGRAMAS
DE FLUJO Y ALGO DE C
PSEUDOCODIGO, DIAGRAMAS DE
FLUJO Y ALGO DE C
Problema
Realizar un algoritmo que solicite al usuario dos
nmeros enteros, realice su suma y la imprima en
pantalla.

PSEUDOCODIGO, DIAGRAMAS DE
FLUJO Y ALGO DE C
Solucin a punta de parlacho:
Datos de entrada: Los dos
nmeros (necesito dos
variables para llevarlos.
Bauticmoslas como a y b).
Datos de salida: Variable en
la cual se almacena el
resultado de la suma (c).
Proceso: Que es lo que
tengo que hacer?
Solicitar al usuario los datos
de entrada.
Sumar los dos datos de
entrada.
Desplegar el resultado.

PSEUDOCODIGO, DIAGRAMAS DE
FLUJO Y ALGO DE C
Solucin a punta de pseudocdigo:
Algoritmo(sumar)
Variables:
entero: a, b, c
INICIO
ESCRIBA(Digite el primer numero (entero))
LEA(a)
ESCRIBA(Digite el segundo numero (entero))
LEA(b)
c a + b
ESCRIBA(La suma es: ,c)
FIN_INICIO
Fin(sumar)
PSEUDOCODIGO, DIAGRAMAS DE
FLUJO Y ALGO DE C
Solucin en diagrama de flujo:
PSEUDOCODIGO, DIAGRAMAS DE
FLUJO Y ALGO DE C
Todo lo anterior esta bien, pero a la hora de la
verdad eso no entiende el computador como
llevarlo a cabo.
Lenguajes de alto nivel (Lenguaje C).
Computadora
mata a
Flanders
???????
PSEUDOCODIGO, DIAGRAMAS DE
FLUJO Y ALGO DE C
Qu es eso del C?, Con
que se come?
Bsicamente el primer
paso es familizarnos con la
sintaxis (expresiones,
reglas, etc.).
Formulacin del algoritmo
en termino de esa nueva
sintaxis.
PSEUDOCODIGO, DIAGRAMAS DE
FLUJO Y ALGO DE C
Algoritmo(sumar)
Variables:
entero: a, b, c
INICIO
ESCRIBA(Digite el primer numero (entero))
LEA(a)
ESCRIBA(Digite el segundo numero (entero))
LEA(b)
c a + b
ESCRIBA(La suma es: ,c)
FIN_INICIO
Fin(sumar)
#include<stdio.h>

int main(){
int a, b, c = 0;
printf(Digite el primer numero (entero): );
scanf(%d,&a);
printf(Digite el segundo numero (entero): );
scanf(%d,&b);
c = a + b;
printf(El resultado de la suma es: %d\n,c);
return 0;
}
INTRODUCCION AL LENGUAJE C
#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;

}
Libreras (uso de directivas
del preprocesador)
Declaracin de variables
(las variables son locales en
este caso).
Instrucciones (Expresiones
aritmticas y lgicas,
condicionales (SI), ciclos
(HAGA, MIENTRAS)).
Programa principal
ANATOMIA DE UN PROGRAMA EN C
INTRUCCION AL LENGUAJE C
Plantilla bsica de un programa en C
INTRUCCION AL LENGUAJE C
Esto nos lleva a la siguiente conclusion
algoritmo (nombre_algoritmo)
variables:
tipo_1: lista_variables_1
tipo_2: lista_variables_2
. . .
tipo_N: lista_variables_N
constantes:
lista_identificadores = valor
INICIO
sentencia_1
sentencia_2
. . .
sentencia_N
FIN_INICIO
fin(nombre_algoritmo)
#include <librerias_del_sistema>
#include librerias_propias

variables_globales;

int main() {
variables_locales;
sentencia_1;
sentencia_2;
. . .
sentencia_N;
Return 0;
}
MANEJO DE VARIABLES
Variables: Existen tres tipos de datos bsicos; los enteros, los nmeros de
coma flotante (reales) y caracteres.
C cuenta con varias clases de tipos de datos fundamentales: enteros,
caracteres y datos de coma flotante.

float
double
int
char alfanumricas
Enteras
Reales
Variables en C (Tipos de datos) Variables Pseudocdigo
MANEJO DE VARIABLES
Declaracin: consiste en definir cada una de las variables que van a ser usadas en
el programa. Sigue la siguiente Sintaxis:
tipo nom_var1 <, nom_var2, nom_var3 <= valor_inicial>, nom_varN>;
En C Toda variable debe ser declarada antes de ser usada. Cosa que no se declara
cosa que no existe y error!!!. La inicializacin de esta es opcional
TABLA SENCILLA DE EQUIVALENCIAS C-PSEUDOCODIGO
Pseudocdigo Lenguaje C
entera int
real float
double
alfanumrica char
variables:
entero: num_estudiantes
real: prom_grupo, estatura, peso
entero: num_clases = 0
int num_estudiantes;
float prom_grupo, estatura, peso;
int num_clases = 0;
PARENTESIS (Bit, Byte, Word)
Definicin: Unidades usadas para describir unidades de datos o memoria en el computador
Bit: Unidad mas pequea de memoria
usada para mantener uno de dos
posibles valores, 1 o 0.
Byte: Unidad de memoria equivalente a
8 bits.
Word: Unidad de memoria que
depende de la arquitectura del
computador.
1
0
10010010
PARENTESIS (SISTEMAS NUMERICOS)
Por sistema numrico nos referimos a la forma como un dato numrico es representado. Este
consiste bsicamente de un conjunto ordenado de smbolos llamados dgitos, con relaciones
definidas para la suma (+), resta (-), multiplicacin (x) y divisin ()

Se emplean dos tipos de notaciones, la notacin posicional y la notacin polinomial.
BASE SISTEMA NMERICO DIGITOS
2 Binario 0, 1
8 Octal 0, 1, 2, 3, 4, 5, 6, 7
10 Decimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
16 Hexadecimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
1 9 8 5 . 2 5 6
Parte Entera Parte
Fraccionaria

10
256 . 1985 N
3 2 1 0 1 2 3
10 6 10 5 10 2 10 5 10 8 10 9 10 1

N
PARENTESIS (SISTEMAS NUMERICOS - 3)
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
Relacin entre las bases mas comunes

Realizar algunos ejercicios de conversin
de bases
BASE 16 BASE 10 BASE 8 BASE 2
? 234 ? ?
? ? 417 ?
? ? ? 11100101
4AF ? ? ?
VARIABLES ENTERAS (TIPO int)
Declaracin:

int nom_var1 <, nom_var2, nom_var3 <= v_inicial3>,,nom_varN>;
Tamao de almacenamiento: Depende de la arquitectura puede ser 2 o 4 bytes.
Rango de la variable: Depende del tamao de almacenamiento
2 bytes: -32768 a 32767
4 bytes: -2147483648 a 2147483647
Archivos cabecera relacionados: limits.h (En el cual se definen un numero de
identificadores tiles para definir los limites de datos de tipo entero)
entero: num_vacas
entero: num_perros, num_gatos , num_gallos
entero: num_est = 45, num_prof = 3
entero: num_x = -9, num_y, num_z
entero: num_deudas = 400000
int num_vacas;
int num_perros, num_gatos , num_gallos;
int num_est = 45, num_prof = 3;
int num_x = -9, num_y, num_z;
int num_deudas = 400000;
VARIABLES DE REALES (TIPO float o
double)
Declaracin: Se manejan dos tipos de datos para las variables reales, por un lado estn los
datos tipo float empleadas para variables con precisin simple por el otro estn los datos tipo
double para variables con doble precisin. La sintaxis para declarar este tipo de variables se
muestra a continuacin:

float nom_var1 <, nom_var2, nom_var3 <= v_inicial3>,,nom_varN>;
double nom_var1 <, nom_var2, nom_var3 <= v_inicial3>,,nom_varN>;

Tamao de almacenamiento: Depende de la precisin del tipo de dato:
float: 4 bytes. (Precisin de 6 dgitos).
double: 8 bytes (Precisin de 15 dgitos).
Rango de la variable:
float: -3.4e38 a 3.4e38. (Siendo 1.2e-38 el valor positivo mas pequeo posible)
double : -1.7e308 a 1.7e308 . (Siendo 2.3e-308 el valor positivo mas pequeo
posible)
Archivos cabecera relacionados: float.h

real: x
real: y
real: a = 4.5, b = 3.0
real: c = -9., d, e = 1.5e-15
real: f = 4.03e19, g =.03
float x;
double y;
float a = 4.5, b = 3.0;
float c = -9., d, e = 1.5e-15;
double f = 4.03e19, g =.03;
VARIABLES TIPO CARACTER (TIPO char)
Declaracin: Estas variables son empleadas para el manejo de datos alfanumericos tales
como letras del alfabeto y otros caracteres tales como #, $, % y * entre otros, tambien pueden
ser usadas para la representacin de nmeros enteros:

char nom_var1 <, nom_var2, nom_var3 <= v_inicial3>,,nom_varN>;
Tamao de almacenamiento: 1 byte
Rango de la variable: -128 a 127
Los caracteres representados se hallan en la tabla ASCII la cual asocia un valor entero
positivo a un carcter determinado.
Nota: Es de anotar que solo hablamos de un solo carcter. El caso de las cadenas
alfanumricas despus lo trataremos.
alfanumerico: sexo = F
alfanumerico: grado = A, caracter = 64
alfanumerico: letra
char sexo = F;
char grado = A, caracter = 64;
char letra
SOBRE LOS NOMBRES DE LAS
VARIABLES
Identificadores: Nombres que se le dan a las constantes o variables.
Reglas a seguir en el momento de nombrar una variable:
Los identificadores no pueden tener el mismo nombre de las palabras reservadas.
Elegir nombres significativos (es decir, relacionados con aquello a lo que esta
haciendo referencia la variable).
El primer carcter del nombre de una variable puede ser un letra (mayscula o
minscula) o una raya baja (_).
Un nombre de una variable puede tener como caracteres letras (maysculas y
minsculas), dgitos y el carcter raya baja (_).
Declaracin errnea
de las variables
Declaracin correcta
de las variables
PALABRAS RESERVADAS
RECORDERIS TIPOS FUNDAMENTALES
DE DATOS
Cuando declaro una variable la eleccin del tipo de dato depende del propsito para el cual
voy a usar la variable.
Tipo Ejemplo Tamao en bytes Rango (minimo-maximo)
char c 1 0,,255
int 1024 2 (o 4, depende de
la arquitectura)
-32768,,32767 (si el tamao en bytes es 2)
float 10.5 4 3.4E-38 ,.,3.4E38
double 1e-8 8 1.7E-308,,1.7E308
Declaracin e inicializacin de variables
tipo nom_var1 <, nom_var2, nom_var3 <= valor_inicial>, nom_varN>;
RECORDERIS TIPOS FUNDAMENTALES
DE DATOS (2)
Una variable no puede ser usada
antes no ha sido previamente
declarada.
MANEJO DE VARIABLES
Hemos visto que las variables
tienen un rango Pero
que pasa si una variable
determinada se pasa del
rango?
Respuesta: Sucede un
overflow de la variable.
Hay un conjunto de
calificadores que pueden
ser aplicados a los tipos
bsicos (int, char, double y
float).



Modificador Descripcin
long Fuerza a un tipo int a ser de
4 bytes, y fuerza a un tipo
double a ser mas largo que
double. No puede ser usado
con short
short Fuerza a un tipo int a ser de
2 bytes de longitud. No
puede ser usado con long.
unsigned Causa que el compilador (y
CPU) para tratar el numero
como positivo solamente.
(para un entero de 16 bit: -
32768 a 32767 0 a
65535).
MANEJO DE VARIABLES
MANEJO DE VARIABLES
Tipo Sufijo Ejemplo
long L long a = -5L
long long LL long long b = 0xALL
unsigned long UL unsigned long c = 3UL
Unsigned long
long
ULL Unsigned long long d =
9ULL
Algunas veces usted podria desear que el compilador almacene un pequeo
numero como un entero long. Para hacer que una constante pequea sea tratada
como un tipo long, se aada l o L como sufijo. Asi un sistema con int de 16 bit y con
long de 32 bit tratara el entero 7 como un entero de 16 bits y el entero 7L como un
entero de 32 bits.
ENTRADA Y SALIDA EN C
IMPRIMIENDO VARIABLES EN
PANTALLA - ASPECTOS BASICOS (1)
Como hemos visto ya hemos trabajado con algunos de los diferentes tipos de datos
que C nos brinda pero aun no tenemos manera de ver que valor tienen pues no las
hemos desplegado en pantalla.
C proporciona varias funciones para imprimir
datos en pantalla, por ahora solo nos vamos
a centrar en la funcin printf la cual es una
de las implementaciones en C de la funcin
ESCRIBA (vista antes por nosotros en
Pseudocdigo).
IMPRIMIENDO VARIABLES EN
PANTALLA - ASPECTOS BASICOS (2)
ESCRIBA(cadena1,,cadenaN,var1,var2,,varN);
printf(cadena_de_control_y_formato, <dato1,dato2,. . .,datoN>);
Cadena de control: Contiene los datos y la forma de
mostrarlos. Es lo que va entre comillas.
Datos (dato1, dato2,,datoN): Variables, constantes o en
general expresiones de salida.
IMPRIMIENDO VARIABLES EN
PANTALLA - ASPECTOS BASICOS (3)
Para imprimir variables en pantalla usando la funcin 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 notacin
octal
%x (%X) Usado para imprimir variables enteras en notacin
hexadecimal
%#o, %#x Permite imprimir variables enteras en cualquiera de
los dos formatos mostrando los prefijos
%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
IMPRIMIENDO VARIABLES EN
PANTALLA - ASPECTOS BASICOS (4)
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
IMPRIMIENDO VARIABLES EN
PANTALLA - ASPECTOS BASICOS (5)
MANEJO DE VARIABLES COMO ENTRAR
INGRESAR VALORES A LAS VARIABLES?
Ahora entramos en el caso opuesto como puedo yo como usuario y no como
programador asignar el valor a una variable, es decir como llevo un valor ingresado
por teclado a una variable?
Al igual que en el caso escriba, C proporciona
varias funciones para la entrada de datos.
Una de las funciones de C que implementa la
funcin LEA (implementada en
Pseudocdigo) es la funcin scanf.
ASPECTOS BASICOS DE LA ENTRADA
EN C
LEA(var1,var2,,varN);
printf(especificacion_de_formato, <<&>dato1,<&>dato2,. . .,<&>datoN>);
Especificacin de formato: Contiene caracteres de control asociados a las variables a las
cuales sern los datos llevados.
Datos (dato1, dato2,,datoN): Variables, en las cuales seran almacenados los datos
ingresados desde el teclado.
EXPRESIONES
Que es una expresin? Es una
sucesin de operadores y
operandos debidamente
relacionados
Realizacin de operaciones.
Similitud al Pseudocdigo.
Como lo hago en C?

EXPRESIONES
EXPRESIONES
Operadores y expresiones:
Aritmticos, lgicos y relacionales (+, - , *, /, %).
De manipulacin de bits
Condicionales.
Especiales.
Cuando concurren en una misma expresin
diferentes tipos de operadores se dan las
reglas de prioridad y asociatividad.
EXPRESIONES
Aterrizando un poco lo anterior
puntaje = -(2 + 5)*6 + (4 + 3*(2 + 3));
a = b = 4*6 + (4 + 3*(2 + 3));
EXPRESIONES
Operadores
Operador de asignacin (=)
Sintaxis:
Variable = expresin
Ejemplos: a = b*n, c = c + 1; d = d%3
Abreviados (a = a op b, donde op puede ser +,-,*,/,%).
Operadores aritmticos
Binarios (+, -, *, /, %): c = a+b
Unitarios (++,--).
Pre(incremento/decremento): ++c, --c
Post(incremento/decremento): d++, d--.
Cuando concurren en una misma expresin diferentes tipos de operadores se dan las reglas de
prioridad y asociatividad.

Prioridad (mayor a menor) Asociatividad
() Izquierda - derecha
+,- (unitario) Derecha - izquierda
*,/,% Izquierda derecha
+,- Izquierda - derecha
= Derecha - izquierda
EXPRESIONES
Operadores
Relacionales (==, !=, <, >, <=, >=)
Sintaxis:
operador_1 operador_relacional operador_2
Lgicos (!, &&, ||)


Nombre del operador Simbolo en C
NOT !
AND &&
OR ||
EXPRESIONES
Operadores
Operadores de manipuladion de bits
Solo se aplican a variables o constantes char, int o long.
Algunos son: &, |, ^, ~, <<, >>
Se pueden combinar con el operador de asignacion para formar abreviados. (a<<=b es lo mismo que a = a << b)
Operadores especiales
Algunos son: *, &, ., ->
Operador condicional ternario (?)
Operador coma (,): Llamadas de funciones, declaracion de variables.
Operador(): Sirve para la agrupacion de expresiones.
Operador []: Usado en arrays.
Operador sizeof(). Devuelve el tamao en bytes de una variable o tipo de dato.
Cast: Permite la conversin explicita de tipos.

Y COMO DICE UN VIEJO AMIGO

Vous aimerez peut-être aussi