Vous êtes sur la page 1sur 38

Definicin de Algoritmo.

Caractersticas de los algoritmos.


Anlisis Descendente.
Estructuras Algortmicas.
Programacin estructurada
Pasos de la Programacin.
Codificacin vs. Programacin.

ALGORITMO
Un algoritmo es un conjunto ordenado y finito de
instrucciones que conducen a la solucin de un problema.
ALGORITMO COMPUTACIONAL
Si un algoritmo puede ser ejecutado por una computadora

PROBLEMA
PROBLEMA

ALGORITMO
ALGORITMO

PROGRAMA
PROGRAMA

PROGRAMA
Un programa es la implementacin o expresin de un
algoritmo en un determinado lenguaje de programacin
siguiendo las reglas establecidas por el lenguaje elegido

CARACTERISTICAS DEL ALGORITMO


Debe ser preciso, es decir, cada instruccin
debe indicar de forma inequvoca que se tiene
que hacer.
Debe ser finito, es decir, debe tener un
nmero limitado de pasos.
Debe ser definido, es decir, debe producir los
mismos resultados para las mismas
condiciones de entrada.

PASOS PARA CREAR UN BUEN


ALGORITMO ( Anlisis Descendente )
1. Descomposicin del problema en
subproblemas ms simples.
2. Combinando las estructuras algortmicas
bsicas, resolver cada subproblema.
3. Ensamblar las soluciones de cada subproblema.

VENTAJAS
Reutilizar algoritmos existentes.
Permite lo que se conoce como programacin
modular

PARTES DE UN ALGORITMO
Entrada de datos.
Proceso.
Salida de resultados.

ENTRADA
ENTRADA

PROCESO
PROCESO

SALIDA
SALIDA

Algoritmo: Expresar en centmetros y pulgadas una


cantidad dada en metros.
Entrada:
La cantidad M de metros
Proceso:
Clculo de centmetros : C = M*100
Clculo de pulgadas : P = C/2.54
Salida :
La cantidad C de centmetros y la cantidad P de
pulgadas
algoritmo computacional escrito en lenguaje natural

PSEUDOCODIGO
Es un lenguaje de pseudoprogramacin utilizado para
escribir algoritmos computacionales.
El pseudocdigo es una imitacin de uno o ms lenguajes
de programacin, conservando lo bsico del Leng natural.
No hay estndares.
INICIO
// Declaracin de variables
REAL base, altura, area, perimetro
// Entrada de datos
LEER base, altura
// Proceso de clculo
area = base*altura
perimetro = 2*(base+altura)
// Salida de resultados
IMPRIMIR area, perimetro
FIN

Algoritmo: Halle
el rea y el
permetro de un
rectngulo.

ESTRUCTURAS ALGORITMICAS
1. Secuencia: Sucesin simple de dos o mas acciones, una
despus de la otra, en el mismo orden en que aparecen.
2. Seleccin: Estructura SI-CIERTO-FALSO, plantea la seleccin
entre dos alternativas con base en el resultado de la evaluacin
de una condicin; equivale a la instruccin IF de todos los
lenguajes de programacin
3. Iteracin: Estructura HACER-MIENTRAS-QUE, corresponde a la
ejecucin repetida de una instruccin mientras que se cumple
una determinada condicin.
REPRESENTACION GRAFICA

SECUENCIA

SELECCION

ITERACION

PROGRAMACION ESTRUCTURADA
EL Teorema de la Programacin estructurada,
demostrado por Edsger Dijkstra (1930-2002) en
los aos sesenta, demuestra que todo programa
puede escribirse utilizando nicamente las tres
instrucciones LOGICAS de control : SECUENCIA,
SELECCIN E ITERACION.
Un programa estructurado se compone de
funciones, segmentos, mdulos y/o subrutinas,
cada una con una sola entrada y una sola
salida., y en ejecucin no tiene partes por las
cuales nunca pasa, ni tiene ciclos infinitos.
"programacin sin GOTO"

PASOS EN LA PROGRAMACION
1.- Definicin del problema
El problema debe estar bien definido, y deben eliminarse
las ambigedades y la incertidumbre.
1.a.- Especificacin de entradas
- Descripcin de los datos de entrada del programa:
- Valores especficos de entrada, Formato, Rango de
validez
1.b.- Especificacin de salidas
- Descripcin de los datos de salida del programa:
- Valores que deben ser producidos: Formato: precisin,
cifras significativas, ubicacin en la pantalla, Rango de
validez
1.c- Procesamiento especial
- Verificar y procesar ciertas condiciones que podran
llevar a error o que requieran un procesamiento especial.

PASOS EN LA PROGRAMACION
2.- Esquema de la solucin
Un programa no se compone de una nica tarea,
sino de varias tareas interrelacionadas. Hay que
descomponer un problema en sub-partes y hacer
un esquema de la solucin.
3.- Seleccin y Representacin de Algoritmos
Seleccionar los algoritmos que resolvern las
sub-tareas que conforman el programa

PASOS EN LA PROGRAMACION
4.- Codificacin
Es el Proceso de traducir los algoritmos a un lenguaje
de programacin.
5.- Eliminacin de Errores
Debemos ubicar y corregir los inevitables errores.
6.- Prueba y validacin
Resultados correctos, en todos los posibles casos.
7.- Documentacin
Documentacin tcnica, manuales, ayuda referente al
programa y su funcionamiento.

PROGRAMACION
Serie completa de pasos involucrados
en la resolucin de un problema
utilizando el computador

CODIFICACION
Se refiere al proceso de escribir
instrucciones en un lenguaje de
programacin particular.

Estructura Secuencial
Una estructura secuencial es aquella en la que las
instrucciones estn una a continuacin de la otra
siguiendo una secuencia nica, sin cambios de ruta.
La estructura secuencial tiene una entrada y una salida.
Diagrama de Flujo

Pseudo cdigo

Inicio
.
accin 1
accin 2
accin 3

Fin

Algoritmo: Expresar en centmetros y pulgadas una


cantidad dada en metros.
Entrada: metros, Pre-cond: numero real positivo
La cantidad M de metros
Proceso:
Clculo de centmetros: C = M*100
Clculo de pulgadas: P = C/2.54
Salida : Post-cond: valores reales positivos
La cantidad C de centmetros y la cantidad P de
pulgadas
algoritmo computacional escrito en lenguaje natural

PSEUDOCODIGO
Es un lenguaje de pseudo programacin utilizado para
escribir algoritmos computacionales.

Algoritmo: Halle
el rea y el
permetro de un
rectngulo.

INICIO
// Declaracin de variables
// variables de entrada
REAL base, altura
// variables de proceso y salida
REAL area, perimetro
// Entrada de datos Pre: reales positivos
LEER base, altura
// Proceso de clculo
area = base*altura
perimetro = 2*(base+altura)
// Salida de resultados Post: reales
IMPRIMIR area, perimetro
FIN

Variables
Una variable es una localizacin o casillero en la memoria
principal que almacena un valor
Para almacenar un dato, se necesita una variable.
Partes de una variable: nombre, tipo y valor.
Las variables deben ser declaradas antes de asignarles un valor.
Declaracin de una variable:
tipo nombre
Declaracin de varias variables con el mismo tipo de dato:
tipo nombre1, nombre2, nombre3, ..., nombren
Tipo puede ser: ENTERO, REAL, CARCTER,
CADENA o LOGICO

Variables
Nombre: El nombre de una variable debe comenzar con una letra,
puede tener nmeros y el smbolo _ .

EJEMPLOS: Declaracin de variables


ENTERO edad
REAL descuento
Esto crea los casilleros de memoria edad y descuento.
edad
descuento
ENTERO nota_1, nota_2, nota_3
Esto crea los casilleros de memoria nota_1, nota_2 y nota_3.
nota_1
nota_2
nota_3

Instrucciones Algortmicas Bsicas


3. Asignacin:
Asignar a una variable el valor de una expresin. La expresin
puede ser una simple variable, un simple literal o una
combinacin de variables, literales y operadores
variable = expresin
La variable y el valor de expresin deben tener el mismo tipo de
dato.
Cuando se asigna un valor ENTERO a una variable REAL,
entonces el valor ENTERO se convertir en REAL antes de
almacenarse.
Ej: REAL metro, centimetro
LEER metro
centimetro = metro * 100

// asignacin, Valor de la variable

Ejemplo: Disee un pseudo cdigo que halle el rea y el permetro de


un rectngulo. Usando valores dados de la base y la altura
Considere que: area = base x altura ; perimetro = 2 x (base+altura).

INICIO
// Declaracin de variables de entrada
// Precondicin: base y altura deben ser mayor que cero
REAL base, altura
// Declaracin de variables de salida
REAL area, perimetro
// Entrada de datos
LEER base, altura
// Proceso de clculo
area = base*altura
perimetro = 2*(base+altura)
// Salida de resultados
IMPRIMIR area, perimetro
FIN

Como es todo esto en el Lenguaje C ??


El lenguaje de programacin C, tiene una
sintaxis particular para definir variables,
literales, instrucciones bsicas de
entrada, salida y asignacin, y
operaciones aritmticas y lgicas
Esta sintaxis debe ser correcta, de otra
manera el compilador del lenguaje no
creara el cdigo binario ejecutable para el
computador.

Lenguaje C
Imprimir en pantalla
Para imprimir se usa la funcin
printf( Hola Mundo );
Entre las comillas es lo que vamos a sacar por
pantalla.
Para utilizar la funcin printf en nuestros
programas debemos incluir la directiva:
#include <stdio.h>
Al principio del programa

Lenguaje C - Cuerpo principal


El primer programa:
#include <stdio.h>
void main()
{
/* Aqu va el cuerpo del programa */
printf( Hola Mundo );
}
Este programa lo nico que hace es sacar por Consola el mensaje:

Hola Mundo

Lenguaje C - Cuerpo principal


Explicacin:
#include es una directiva. Sirve para indicar al compilador que incluya
otro archivo (stdio.h, standard input-output). Este archivo contiene
declaraciones de funciones que el programa necesita usar, en
particular, contiene la declaracin de la funcin printf.
Todos los programas de C deben tener una funcin llamada main,
Las llaves { indican el Inicio de la funcin,
/* xxx */, es un comentario, no se ejecuta
La funcin printf muestra un mensaje por la pantalla.
una cadena de caracteres van encerradas entre dobles comillas
El smbolo \n indica un cambio de lnea.
C requiere un punto y coma al final de cada sentencia (;)
} Finaliza la funcin main,.

Lenguaje C - Cuerpo principal


Libreras o bibliotecas:
En el estndar C se definen un conjunto de libreras de
funciones, que satisfacen servicios elementales.
Las interfaces a estos servicios se definen en unos archivos
cabeceras ( header files ) que terminan en .h
Algunos de los servicios proporcionados por las bibliotecas
estndares son:

entrada y salida de datos (stdio.h)


manejo de cadenas (string.h)
memoria dinmica (stdlib.h)
rutinas matemticas (math.h)

Ejemplo:

#include <stdio.h>

Lenguaje C - Cuerpo principal


Comentarios
En el C original, tienen la forma /* cualquier texto */
Los comentarios se pueden extender varias lneas
No se pueden anidar comentarios (comentarios dentro de otros)
Ejemplos:
{
/* Esto es un comentario
que ocupa varias lneas */
/* esto es otro comentario */
/* este no es /* valido */ en C */
}

Lenguaje C - Cuerpo principal


Ejercicio:
Busca los errores en este programa:
void main()
{
/* Aqu va el cuerpo del programa */
Printf( "Hola mundo\n" );
}
C es case sensitive,
archivo cabecera stdio.h

Lenguaje C - Cuerpo principal


Al compilar:
ERROR: que nos indicar que no hemos definido la
funcin Printf
SOLUCION: incluir la librera stdio.h
#include <stdio.h>
ERROR: nos dice que desconoce Printf.
SOLUCION: C es case sensitive, debe ser en minscula,
osea, printf

Lenguaje C - Imprimir en pantalla


printf( "Cadena\n" );
printf( "Segunda\n" );
printf( "Primera cadena" "Segunda cadena" );
printf( "Primera texto en medio Segunda \n" );
printf( "Esto es \"importante\"\n" );
printf( "Hola\\Adios\n" );
"\n". Es el indicador de retorno de carro. Lo que hace es saltar
el cursor de escritura a la lnea siguiente.
la contrabarra '\' sirve para indicarle al compilador que escriba
caracteres que de otra forma no podramos, como , como la
misma \, y caracteres especiales como n (newcarrie),
Ej: \n \\ \

Lenguaje C - Variables
Nombres:
No se pueden poner ms que letras de la 'a' a la 'z' (la no
vale), nmeros y el smbolo '_'. No se pueden poner signos de
admiracin, ni de interrogacin...
El nombre de una variable comienza con letra.
Camiones camiones
Numero
NUMERO
buffer
BuffeR
a1
J10hola29
num_alumnos
1ab
nombre?
num/alumnos
main

VALIDOS
minsculas y maysculas
son diferentes en C
case sensitive
INVALIDOS
No se pueden usar las
palabras reservadas de C

Lenguaje C - Variables
Tipos de datos bsicos:
C provee 4 tipos de datos bsicos para almacenar
caracteres, nmeros reales y nmeros enteros.

Tipo

Bytes de
almacenamiento

Rango

char

-128 a 127

int

32768 a 32767

float

3'4 E-38 a 3'4 E+38

double

1'7 E-308 a 1'7 E+308

Lenguaje C - Asignacin con =


Se usa el smbolo = para asignar el valor de una expresin
a una variable.
variable = expresion
Ej:
/* declaracin de las variables */
int
n, m; /* n y m son de tipo entero */
float x, y; /* x y y son de tipo real */
/* distintos ejemplos de asignacin */
n = 3 * m + 2;
x = 20.4;
y = (x+1)*20 / (18.9 x);

Lenguaje C - Variables
Tipos de datos bsicos:
C permite asignar un valor a las variables al momento de su
declaracin.
char Para almacenar caracteres. Ejemplos:
char firstInitial = 'J';
char secondInitial = 'K';
int Para almacenar nmeros enteros. Ejemplos:
int count;
int number_of_students = 30;
float y double Para almacenar nmeros reales. Los nmeros reales
contienen una parte entera y una decimal. La diferencia entre float y
double est en el nmero de bytes empleados para almacenar la
variable. Double permite valores mas grandes que float.
float owned = 0.0;

Lenguaje C - Variables
Imprimir valores de variables:
La rutina printf permite la aparicin de valores numricos, caracteres y
cadenas de texto por pantalla.

printf( control, arg1, arg2... );


Cuando se usan argumentos debe indicarse en la cadena de control
tantos modificadores como argumentos se quieran presentar.
Los modificadores ms utilizados son:
%c
%i
%d
%u
%e
%f
%s

Un nico carcter,
Un entero
Un entero con signo, en base decimal
Un entero sin signo, en base decimal,
Un nmero real en coma flotante, con exponente
Un nmero real en coma flotante, sin exponente
Una cadena de caracteres

Lenguaje C - Variables
Imprimir valores de variables con printf
Ejemplo:
#include <stdio.h>
void main()
{
char InicialAp = J;
int m = 2;
float x = 2.3;
double num_grande;
num_grande = 2.9979e+120;
printf(Mi Inicial es %c \n,InicialAp);
printf(Entero m es %i \n,m);
printf(Real x es %f y double es %e \n,x, num_grande);
}

Lenguaje C - Variables
Leer valores de variables:
La rutina scanf permite leer valores numricos, caracteres y cadenas
de texto del teclado. El prototipo de la funcin scanf es:

scanf( control, arg1, arg2... );


Ej:

int Edad;
printf("Introduzca la Edad:");
scanf("%d", &Edad);

Losmodificadoresdelcontrolestarnformadosporelcaracter%
seguidodeuncaracterdeconversin.Losargumentosindicados
sern,nuevamente,lasvariables.
Laprincipalcaractersticadelainstruccinscanfesquenecesita
saberladireccindememoriaenqueseencuentralavariablepara
poderalmacenarlainformacinobtenida.Paraindicarleestaposicin
utilizaremoselsmboloampersand(&),quecolocaremosdelantedel
nombredecadavariable.

Lenguaje C - Variables
Leer valores de variables:
Cuando se usan varios argumentos o variables, debe indicarse en la
cadena de control tantos modificadores como argumentos se quieran
leer.
Ej:

int Edad, sexo;


float salario;
printf("Introduzca la Edad, sexo y salario \n");
scanf("%d %c %f", &Edad, &sexo, &salario);

Los modificadores ms utilizados son:


%c
%i
%d
%u
%e
%f
%s

Un nico carcter,
Un entero
Un entero con signo, en base decimal
Un entero sin signo, en base decimal,
Un nmero real en coma flotante, con exponente
Un nmero real en coma flotante, sin exponente
Una cadena de caracteres

PROGRAMACION ESTRUCTURADA
VENTAJAS
Los programas son ms fciles de entender.
Reduccin del esfuerzo en las pruebas.
Reduccin de los costos de mantenimiento.
Programas ms sencillos y ms rpidos.
Aumento en la productividad del programador.
Los programas quedan mejor documentados.

Vous aimerez peut-être aussi