Beruflich Dokumente
Kultur Dokumente
PARTEI
Ing.SandraRodrguezAvila 2016I
Paraquaprenderunlenguajede
Programacin?
El objetivo de aprender un lenguaje de
programacin, es poder utilizar la computadora
como una herramienta para resolver problemas,
de diversos tipos.
Para esto, de manera general y muy simple, la
resolucin de un problema se puede dividir en 3
etapas:
Anlisis del Problema.
Diseo de un algoritmo.
Elaboracin de un programa para computadora y
probar los resultados o hacer una prueba de
escritorio en papel.
Queesunproblema?
Es un planteamiento que demanda una
respuesta o solucin para conseguir un fin.
Haydiversasestrategiaspararesolver
problemas.UnadeellassonlosALGORITMOS.
Enelcurso,resolveremosproblemas
deestaforma:
Pruebade
escritorio
AnlisisdelProblema
DiseodeunAlgoritmo
Un algoritmo es un mtodo o conjunto de reglas (sin
ambigedades) que se aplican paso a paso en forma
ordenada para solucionar un problema.
Caractersticas de un Algoritmo:
Debe ser preciso: es decir debe indicar el orden exacto de
realizacin de cada etapa, evitando acciones innecesarias.
Debe estar definido: significa que si se ejecuta un algoritmo 2
o ms veces, con los mismos valores iniciales, se debe obtener
el mismo resultado todas las veces.
Debe ser finito: esto significa que si se sigue un algoritmo, se
debe terminar en algn momento, es decir, debe tener un
nmero finito de pasos.
TiposdeAlgoritmos
Algoritmosdelavidadiaria
Sonlosqueaplicamosdaadapararesolver
problemasorealizartareasespecficas
Algoritmosaritmticos
Sonaquellosqueseempleanpararesolver
problemas aritmticoscomosumas,restas,
multiplicaciones,etc.
Algoritmoscomputacionales
Sonaquelloqueseempleanparaeldesarrollode
programasencomputadora
Ejemplosdeproblemasyalgoritmos
delavidadiaria
PROBLEMA: Que hago para tomar una taza de T?
ALGORTIMO para tomar una taza de T.
PROBLEMA: Qu debo hacer para ver una Pelcula ABC?
ALGORTIMO para ver una Pelcula ABC.
PROBLEMA: Qu debo hacer para venir a la UNC desde mi
casa?
ALGORTIMO para venir a la UNC desde mi casa.
PROBLEMA: Qu debo hacer para comprar un peridico?
ALGORTIMO para comprar un peridico.
Ejemplosdeproblemasyalgoritmos
delavidadiaria
PROBLEMA: Que hago para cambiar la rueda pinchada de un
automvil teniendo una gata mecnica en buen estado, una
rueda de reemplazo y una llave inglesa?
ALGORTIMO para cambiar la rueda pinchada de un automvil
teniendo una gata mecnica en buen estado, una rueda de
reemplazo y una llave inglesa.
PROBLEMA: Qu debo hacer para conseguir un ejemplar del
libro Programacin en Java en la biblioteca?
ALGORTIMO para conseguir un ejemplar del libro Programacin
en Java en la biblioteca.
Algoritmoparatomarunatazadet
1.Inicio
2.Dirigirsealacocina.
3.Cogerlataza.
4.Echarenlatazaunpocodeaguahervida.
5.Escogerlainfusin(TE)quesedeseatomar
6.Introducirlainfusinenlataza.
7.Agregarelazcar(lacantidadquesedesee)
8.BeberelTE.
9.Fin
Algoritmoparacambiarlaruedapinchadadeun
automvilteniendounagatamecnicaenbuenestado,
unaruedadereemplazoyunallaveinglesa
Los pasos del algoritmo son:
1. Inicio
2. Aflojar los tornillos de la rueda pinchada con la llave
inglesa.
3. Ubicar la gata mecnica en su sitio.
4. Levantar la gata hasta que la rueda pinchada pueda girar
libremente.
5. Quitar los tornillos y la rueda pinchada.
6. Poner rueda de repuesto y los tornillos.
7. Bajar la gata hasta que se pueda liberar.
8. Sacar la gata de su sitio.
9. Apretar los tornillos con la llave inglesa.
10. Fin.
Algoritmoparaobtenerunejemplardellibro
ProgramacinenJavaenlabiblioteca
Lospasosdelalgoritmoson:
1.Inicio.
2.Entregarcarnetdellector
3.LeerelpedidodelejemplardellibroProgramacin
enJava.
4.Aceptarelpedidodelejemplar
5.Entregarejemplarallector.
6.Fin.
Algoritmoconcondiciones
UnlectorhaceunpedidodeunejemplardellibroProgramacin
enJavaalbibliotecario.Elbibliotecarioexaminaensubancode
datossihayalmenosunejemplardelmismo,
sihayelejemplarentonceselbibliotecarioaceptaelpedidoy
entregaallectorellibro;encasocontrariorechazaelpedido.
Lospasosdelalgoritmoson:
1.Inicio.
2.Entregarcarnetdellector
2.Leerelpedidodelejemplar.
3.Examinarelpedidodelejemplar.
4.Sihayunejemplar
entonces
Aceptarpedido,
Entregaejemplarallector.
encasocontrario(sino)
Rechazarpedido.
5.Fin.
Algoritmoconcondiciones:Tomarunatazadet
1.Inicio
2.Dirigirsealacocina.
3.Cogerlataza.
4.Echarenlatazaunpocodeaguahervida.
5.Siesquenohayaguacaliente
entonces
Hervirunpoco
Servirenlatazaelaguarecinhervida
sino
Irapaso6
6.Escogerlainfusinquesedeseatomar.
7.Introducirlainfusinenlataza.
8.Agregarelazcar(lacantidadquesedesee)(supuesto:hay
azcar)
9.BeberelTe.
11.Fin
TALLER
Desarrollar 2 algoritmos, uno sencillo y otro ms
complejo, puede ser utilizando condicionales
para solucionar los siguientes problemas:
1. Disear un algoritmo para comprar una caja de
chocolates.
2. Disear un algoritmo para hacer una llamada
telefnica desde un telfono pblico.
3. Disear un algoritmo o receta para preparar una
hamburguesa.
4. Disear un algoritmo para rendir un examen.
FORMASDEDESCRIBIRUNALGORITMO
1.LENGUAJENATURAL
La primera y ms sencilla forma de describir un algoritmo.
Ventaja fundamental: facilidad de comprensin, cualquier
persona (hispanoparlante, por supuesto) que lea dicho
algoritmo podra entenderlo y aplicarlo.
Problemas que plantea describir un algoritmo de esta forma:
El lenguaje natural no es universal
El lenguaje natural es ambiguo y, por tanto, susceptible de
errores.
El lenguaje natural es muy amplio, lo que para una persona
puede ser una instruccin sencilla, puede no serlo para
otra y, desde luego, no lo ser para un computador.
Otras formas estn mejor delimitadas y no son ambiguas.
FORMASDEDESCRIBIRUNALGORITMO
2.PSEUDOCODIGO
FORMASDEDESCRIBIRUNALGORITMO
3.DIAGRAMADEFLUJO
Representaciones grficas de algoritmos; usan
smbolos conectados con flechas para indicar la
secuencia de instrucciones y estn regidos por
ISO (Organiz. de estndares internacionales)
Ventajas
Lossmbolossonuniversales.
Sonmenospropensosalaambigedad.
Porestarbasadosenunnmeropequeodebloquesy
reglasparasuempleopermitendelimitarmejorlos
algoritmos.
Seaproximanmsalaformaenquetrabajaelordenador
FORMASDEDESCRIBIRUNALGORITMO
3.DIAGRAMADEFLUJO
Desventajas
El hecho de emplear smbolos supone que una
persona que desconozca los smbolos puede tener
dificultades para comprender el algoritmo o no
entenderlo en absoluto.
Aunque los smbolos son universales el texto que se
coloca en su interior sigue siendo lenguaje natural.
La representacin grfica puede resultar bastante
tediosa y en el caso de algoritmos complejos
extremadamente confusa.
Un ordenador no es capaz de utilizar una
representacin visual como descripcin de un
algoritmo
FORMASDEDESCRIBIRUNALGORITMO
4.DIAGRAMANASSISCHNEIDERMANONS
Demanerageneral,enunalgoritmosedebendefinir
claramentelassiguientespartes:
Declaracin(Inicializacin)devariables.
Entradadedatos.
Procesosaseguir.
Salidaderesultados.
Otroaspectoaconsiderareselmtodoelegidopara
representarlosalgoritmos:
DiagramasdeFlujo(convencional)
Pseudocdigo
DiagramasdeFlujoEstructurado(NassiSchneiderman oNS).
Elempleodeindentacin (justificacinosangrado)enla
escrituradelosalgoritmos(Pseudocdigo)facilitasu
lecturaycomprensin.
INDENTACION
Inicio
Enterob,h,a,p
Leerb,h
a=b*h
p=2(b+h)
Escribir"rea:",a
Escribir"permetro:",p
Fin
ElaboracindeunProgramapara
Computadora:
EstafasesedenominaProgramacinyconstadelassiguientes
partes:
Codificacin: proceso de convertir un algoritmo a un
programa, escrito en un lenguaje de programacin.
Requiere el uso de un programa editor que permita crear
los programas a las que se denomina Programas Fuente.
CompilacinyEjecucin:Yaescritoelprogramafuente,se
debetraduciralenguajemquina,paraobtenerel
correspondienteprogramaobjeto,queeselqueejecutala
computadora.Sidurantelatraduccinsedetectanerrores
desintaxis,elcompiladorinformaalusuarioculessony
cualessuposibleubicacin.
Depuracin:Eselprocesodelocalizarycorregirerrores.
Existen3posiblestiposdeerrorescuandoseejecutaun
programa:
ErroresdeSintaxis,ErroresdeEjecucinyErroresLgicos:
Verificacin:Constatarsiefectivamentehaceloquese
desea,ysinolohace,entoncesdeterminarlascausaspor
lasquefalta.
Optimizacin:Cuandoseconsiguehacefuncionar
correctamenteunprograma,elpasosiguientees
perfeccionarloparaquefuncionemejor.Laoptimizacines
unaetapaderefinamiento,quepuedeincluir:eliminar
instruccionesinnecesarias,hacermejorespresentaciones
dereportes,etc.
Documentacin:paradescribirloquehaceunprograma,
comofueconstruido,paraqusirvendeterminadas
variablesobloquesdeinstruccionesycomotienequeser
utilizado
Mantenimiento:Sedenominaasalprocesode
actualizacincontinuadeunprograma,conlarealizacin
decambiosqueseanconsideradosnecesarios.
ESTRUCTURASBASICASDECONTROL
Durante el desarrollo del curso, emplearemos
para describir algoritmos: Pseudocdigo,
Diagrama de Flujo y Diagramas NS.
Estas 3 formas permiten implementar las 3
estructuras Bsicas de Control:
A. Estructura Secuencial
B. Estructura Condicional o de Decisin o Selectiva
C. Estructura Repetitiva o Iterativa
Algoritmoparacambiarunalmpara(foco)
quemada
Algoritmoparalavarselasmanos
(secuentacongrifoocaodeaguafraycaliente,
jabn,papelycorrientedeairecaliente)
Algoritmoparaendulzarunatazadecafconleche
utilizandosobrecitosdeazcar
A.ESTRUCTURASECUENCIAL
La estructura secuencial es aquella en la que
una accin sigue a otra en secuencia. Las
operaciones se suceden de tal modo que la
salida de una es la entrada de la siguiente y as
sucesivamente hasta el fin del proceso
A.EstructuraSecuencialEJEMPLO1:Disearun
algoritmoparacalcularelreayelpermetrodeun
rectngulo
PASO 1: Definicin del problema
Calcular rea y permetro de un rectngulo
PASO 2: Anlisis del problema
Para desarrollar este problema es necesario conocer
las frmulas para obtener tanto el rea como el
permetro de un rectngulo.
Sea b = base, h = altura, a=rea y p=permetro, las
frmulas a utilizar son:
a = b * h y p = 2 * (b + h)
Datos de entrada: b y h (base y altura)
Datos de salida: a y p
Procesos: a = b * h y p = 2 * (b + h)
b,h
ENTRADA
a=b*h
p=2*(b+h)
PROCESO
a,p
SALIDA
PASO3:Diseodelasolucinodel
Algoritmo PSEUDOCODIGO
Inicio
//Declaracindevariables
Entero b,h,a,p
//Entradadedatos
Leer b,h
//Procesodeclculo
a=b*h
p=2*(b+h)
//Salidaderesultados
Escribir Area:",a
Escribir Permetro:",p
Fin
PASO3:Diseodelasolucinodel
Algoritmo DIAGRAMADEFLUJO
INICIO
Enterob,h,a,p
Leerb,h
a=b*h
*h
p=2*(b+h)
Escribir
Area:,a
Perimetro:,p
FIN
PASO3:Diseodelasolucinodel
Algoritmo DIAGRAMANS
IInicio
Enterob,h,a,p
Leerb,h
a=b*h
p=2*(b+h)
EscribirArea=,a
EscribirPermetro=,p
Fin
CONCEPTOSBSICOSENELDISEO
DEALGORITMOS
Estructurasecuencial:
Formado por instrucciones que se ejecutan una
despus de otra. Se tienen tres tipos de instrucciones
secuenciales:
1. La declaracin de variables,
2. Asignacin,
3. Instruccin Leer e instruccin Escribir.
Variable
Objetocuyovalorpuedesermodificadoalolargodela
ejecucindeunprograma.
Seleasignaunnombre:contador,rea,suma.
VARIABLES
DIRECCCIONES
001
MEMORIA
VALORESDE
v
VARIABLES
b
h
002
3
SKSKSD
003
15
16
004
NOMBREDEVARIABLES
(IDENTIFICADORES)
Declaracindevariables
Consisteenescribireltipodedatosylalista
deidentificadoresquesetendrndedicho
tipo,separandocadaidentificadorpormedio
decomasy:paraseparareltipodedatosde
lalistadeidentificadores.
Ejemplo:
Enteroedad
Realestatura,peso,sueldo
Cadenanombre,direccin
Declaracindeunavariable:
tipo nombre
Declaracindevariasvariablesconelmismotipodedato:
tipo nombre1,nombre2,nombre3,...,nombreN
Donde:
TipoEseltipodedatodelavariablequepuedeser:Entero(silavariable
almacenarunnmeroentero),Real(silavariablealmacenarun
nmeroconpartedecimal),Caracter (silavariablealmacenarun
caracter),Cadena(silavariablealmacenarunconjuntodecaracteres)o
Logico (silavariablealmacenarelvalorverdaderooelvalorfalso).
nombre1,nombre2,...,nombreN
Nombresdelasvariables.Elnombredeunavariabledebecomenzarcon
unaletra,unsmbolodesubrayadoounsmbolodedlar.Losdems
caracteresdelnombrepuedenserletras,nmeros,smbolosde
subrayadoosmbolosdedlar.Debeconsiderarsetambinqueunaletra
maysculaseconsideradiferentedeunaletraminscula.
Asignacin
Asignar un valor a una variable equivale a decir que se
guarda dicho valor en la posicin de memoria reservado
para la variable en mencin. Por lo tanto, para poder
realizar una asignacin es necesario primero haber
declarado una variable.
variable=expresin variableexpresin
Laexpresinpuedeestarformadaporunvalor,porun
conjuntodevaloresyoperadoresoporunafuncin.
Ejemplosdeasignacin:
edad=10//Alavariableedadseleasignaelvalorde10
estatura=1.80//Alavariableestaturaseleasignaelvalorde1.80
resultado=2*3//Alavariableresultadoseleasignaelvalor6
resultantedelaexpresin2*3
Instruccin Leer
Se utiliza para enviar informacin desde un
dispositivo de entrada de datos hacia la memoria.
En la memoria los datos son ubicados mediante
el nombre de variable utilizado como
complemento de la instruccin LEER.
Ejemplo:
Leer a, b
Donde "a" y "b" son las variables que recibirn los
valores y que deben haberse declarado
previamente.
Instruccin Escribir
Permite enviar datos desde la memoria hacia un
dispositivo de salida como la pantalla o la impresora.
La informacin que se enva puede ser constante o
tambin el contenido de variables.
Ejemplo:
Escribir a, b //Se imprimen los valores de las variables a y b
Cuando se escriben ms de una variable es necesario
separarlas con comas (,) y los mensajes se escriben
entre comillas dobles .
Escribir Area = , a
//Se imprime el texto Area = seguido del valor resultante de la
variable a
Contador
Es una variable que sirve para llevar la cuenta de las
veces que se repite una operacin
Generalmente se incrementa o decrementa de uno en
uno.
En el ejemplo, son contadores: c, i, apr, des , con
c=c+1
Acumulador
Es una variable en la cual se va almacenando la suma
de los valores sucesivos que va tomando otra variable.
sum=sum+1
PASO3:DiseodelasolucinodelAlgoritmo
PSEUDOCODIGO
Inicio
//Declaracindevariables
Realmetro,acent,apies,apulg,ayard
//Entradadedatos
Leermetro
//Procesodeclculo
acent =metro*100
apulg =acent /2.54
apies =apulg /12
ayard =apies /3
//Salidaderesultados
EscribirCentmetros:,acent,cm
EscribirPulgadas:,apulg,pulg
EscribirPies:,apies,pies
EscribirYardas:,ayard,yardas
Fin
PASO3:Diseodelasolucinodel
Algoritmo DIAGRAMADEFLUJO
INICIO
Entero
Leer
FIN
PASO3:Diseodelasolucinodel
Algoritmo DIAGRAMANS