fundamentos de la informática int. a la programación resolución de problemas y...

35
Lenguaje TIMBA 2018 Fundamentos de la Informática Int. a la Programación Resolución de Problemas y Algoritmos Área de Servicios Dpto. De Informática - FCFMyN

Upload: others

Post on 28-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Lenguaje TIMBA

2018

Fundamentos de la Informática – Int. a la ProgramaciónResolución de Problemas y Algoritmos

Área de Servicios – Dpto. De Informática - FCFMyN

Page 2: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Ellenguaje“TIMBA”recibeestenombrepor:TerriblyImbecileMachineforBoringAlgorithms.

FuedesarrolladoporunequipodetrabajoenlaUNSL,comounlenguajesencillodeprogramaciónparatrabajarconlaestructuradepilas.

ElequipofuedirigidoporelIng.HugoRyckeboerqueenlaactualidadesaúnProfesordenuestraCasa.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

OrígenesLenguaje Timba

2018

Page 3: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

El Lenguaje TIMBA

Maneja pilas de cartas y tiene sólo tres operaciones elementales sobre ellas.No es posible una gran capacidad de programación.Permite definir pilas y consta de las operaciones elementales sobre las pilas de tomar y depositar cartas, e invertir la carta que en ese momento se analiza.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 4: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Programa en TIMBA

Un programa es una secuencia de órdenes o sentencias a un ejecutor, UCP.

UCP es responsable de los resultados y del análisis de errores y reconoce las pilas por su nombre, las operaciones “tomar” y “depositar”, las estructuras de control y un ente especial, llamado “CARTA” o “LA CARTA”.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 5: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Programa en TIMBAConstadedospartes:

unadefinicióndelprocesoalgorítmico

losdatosdepila.

Ladefinicióndelprocesocomienzaconlaspalabrasclaves:DEFINICION DE PROGRAMA,ylassentenciasquedescribenelalgoritmoacontinuación,vanseparadasentresípor“,”.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

Separadasentresíporelsímbolo“;”

2018

Page 6: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Programa en TIMBALassentenciassondetrestipos:

Operativas:

De selección:

Iterativas: ordenanaUCPlarealizacióndeuna,

ningunaovariasvecesunbloquedesentencias

actúansobrelaspilasolacarta

ordenanaUCPcursosalternativosdelproceso

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 7: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Actúansobrelaspilasolacarta.

Sentencias Operativas

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

Comienzansiempreporunverboenimperativo,queesinterpretadoporUCPcomounaorden.

Losverbosposiblesson:a. TOME;b. INVIERTA;

c. DEPOSITE.2018

Page 8: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Sentencias de SelecciónPermitenordenaraUCPcursosalternativosdelflujodeproceso,bajociertascondicionesverificablesenejecución.

ComienzanconSI,seguidodelacondiciónylassentenciasaejecutarsiéstaesverdadera.

Sinohaydossecuenciasalternativas,lasentenciaSIfinalizaconlaspalabrasclavesSINO NADA MAS.

Sihayunasecuenciaarealizarsilacondiciónfuerafalsa,selaincluyeentrelaspalabrasclavesSINOyNADA MAS.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 9: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Sentencias Iterativas

PermitenordenaraUCPlarealizacióndeuna,ningunaovariasvecesunbloquedesentencias,bajocontroldeunacondiciónverificableenejecución.

ComienzansiempreconMIENTRAS,queesseguidoporlacondición,elbloqueaejecutarylapalabraclaveREPITA.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 10: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

PilasSudescripcióndedatoscomienzaporlaspalabrasclave“UCP EJECUTE CON LAS SIGUIENTES CARTAS:”,seguidaporladescripcióndelaspilas,separadaspor“,”yesdeunadelasdosformas:

PILA <nombre> NO TIENE CARTAS

PILA <nombre> TIENE <lista de cartas>

Pila Vacía

Pila

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2.  Descripcióndecontenidodepila.

1.  Descripcióndepilavacía.

2018

Page 11: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Sintaxis de TIMBAParaescribircorrectamentelosprogramasenunlenguaje,sedebenespecificarlasreglasatenerencuenta.

Elconjuntodereglasformalasintaxisdellenguaje.

Usaremoslosiguiente:

<>,

[],

{},

*

  PalabrasclavesdeTIMBA  Signosdepuntuación

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 12: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Sintaxis de TIMBALaspalabrasenmayúsculasonpalabrasclavesdeTIMBA,ydebenescribirsecomoaparecen.

Laspalabrasenminúsculaentrecorchetesangularesdebenreemplazarseporsudefinición.

Siaparecendosomásítemsentrellaves,seeligeentreellosaquélqueseajustealproblemaaresolver.

Siunítemestáentrecorchetessepuedeoptarporescribirloono.

Siunítemestáentrecorchetesseguidosdeunasterisco∗,sepuedeomitirelítemoescribirlouna,dosomásveces.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 13: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Sintaxis de TIMBA Lenguaje Timba

2018

Page 14: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

EjemploProblema:Setieneunapilade3cartasconel1deoros,el2decopas(ambasbocaarriba)yel3debastosbocaabajo.Sequiereinvertiréstaúltimaparadejarlastodasbocaarriba.

TOME DE PILA A,

INVIERTA LA CARTA,

DEPOSITELA EN PILA A;

UCP EJECUTE CON LAS SIGUIENTES CARTAS: PILA A TIENE 1 DE OROSh - 2 DE COPASh - 3 DE BASTOS.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

DEFINICION DE PROGRAMA

2018

Page 15: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

UCP Ejecuta DEFINICION DE PROGRAMA

TOME DE PILA A, INVIERTA LA CARTA, DEPOSITELA EN PILA A;

UCP EJECUTE CON LAS SIGUIENTES CARTAS: PILA A TIENE 1 DE OROSh - 2 DE COPASh - 3 DE BASTOS.

PILA A

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 16: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

SentenciasSonelelementoconstitutivodeTIMBAylamínimaunidadlógica.

Sondedosgrandestipos:OperativasydeControl.

Lasoperativasrealizancambiossobrelaspilas,oestadodelacartaqueUCPanalizaenesemomento:“lacartaqueUCPtieneenlamano”.

Lasdecontrolpermitencontrolarlasecuenciadeoperaciones,sinseroperacionesensí:SIyMIENTRAS.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 17: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

SentenciasCuandoenunadescripciónformalaparecelapalabrasentencias,sequieresimbolizar:

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

Dondeformalmente<sentencia>puedeser:

2018

Page 18: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Sentencias OperativasSontres,formalmente:

Ejemplo: TOME DE PILA A

Ejemplo: INVIERTA LA CARTA

Ejemplo: DEPOSITELA EN PILA A

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 19: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Sentencias OperativasLacartaquefiguraaltopedelapilaestomada.CualquierreferenciaaCARTAseinterpretarácomoalaúltimacartatomada,quenohayasidodepositada.DEPOSITEordenadejarlacartaquetieneenlamanoenesemomento,enunapiladeterminada.Lapiladebeserdeclaradaenlasegundapartedelprograma.

Ejemplo: PILA A TIENE 1 DE OROSh - 2 DE COPASh - 3 DE BASTOS.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 20: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Detección de ErroresUCP detectará error de ejecución si no tuviera una carta en la mano y se le ordenara DEPOSITE. UCP no admite la ejecución de dos TOME sin un DEPOSITE entre ellos.UCP reconoce error de ejecución al intentar tomar una carta de una pila vacía.INVIERTA presupone la existencia de carta, sino UCP detecta un error de ejecución.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 21: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Errores de Ejecución

Ejemplo 1: ME PIDE UD. QUE TOME DE PILA ⟨nombre⟩ QUE ESTA VACIA.

Ejemplo2:ME PIDE UD. QUE TOME PILA ⟨nombre⟩ Y YO YA TENGO UNA CARTA: el ⟨número⟩ de ⟨palo⟩.

Ejemplo 3: ME PIDE UD. QUE DEPOSITE EN PILA ⟨nombre⟩ Y YO NO TENGO CARTA.

Ejemplo 4: ME PIDE UD. QUE INVIERTA LA CARTA, PERO YO NO TENGO CARTA.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 22: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

ProgramasSugiereelempleodesólotresestructurasdecontrol,comoúnicascomponenteselementalesdeunprograma:

Lasecuencia,laselecciónylarepetición,

En TIMBAsecuencialidad natural de las sentencias separadas por el símbolo ,sentencias SI. . .SINO. . .NADA MAS

sentencias MIENTRAS . . . REPITA

f. Unión, enlace entre ideas o actos

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 23: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Sentencia SIFormalmentedebeescribirse:

Ejemplos:

•  TOME LA CARTA DE PILA A, SI CARTA ESTA BOCA ABAJO INVIERTA LA CARTA, DEPOSITE LA CARTA EN PILA A SINO DEPOSITELA EN PILA B NADA MAS

•  TOME LA CARTA DE PILA A, SI LA CARTA NO ESTA BOCA ABAJO, SI LA CARTA ES EL 1 DE OROS DEPOSITELA EN PILA A SINO NADA MAS SINO NADA MAS

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 24: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Ejecución condicionalTOME LA CARTA DE PILA A, SI CARTA ESTA BOCA ABAJO INVIERTA LA CARTA, DEPOSITE LA CARTA EN PILA A SINO DEPOSITELA EN PILA B NADA MAS

Pila A Pila B

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 25: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Ejecución condicionalTOME LA CARTA DE PILA A, SI CARTA ESTA BOCA ABAJO INVIERTA LA CARTA, DEPOSITE LA CARTA EN PILA A SINO DEPOSITELA EN PILA B NADA MAS

Pila A Pila B

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 26: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Sentencia MIENTRASFormalmente,debeescribirse:

Ejemplo:sisequierepasartodaslascartasdelaPILA B alaCyluegotomarunacartadelaPILA D

MIENTRAS LA PILA B NO ESTA VACIA

TOME DE PILA B,

DEPOSITE EN PILA C

REPITA,

TOME DE PILA D

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 27: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

CondiciónEsunaproposiciónlógica,queemiteunjuiciosobreelestadodelaspilasolacarta,yquepuedeserevaluadacomo“Verdadera”o“Falsa”.

Ejemplo:•  LA CARTA ES DEL PALO OROS Y LA CARTA ES DEL VALOR 1

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 28: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Condición Lenguaje Timba

TOME LA CARTA DE PILA A,

SI CARTA ESTA BOCA ABAJO

INVIERTA LA CARTA,

DEPOSITE LA CARTA EN PILA A

SINO

DEPOSITELA EN PILA B

NADA MAS

 Ejemplos:

TOME LA CARTA DE PILA A,

SI LA CARTA NO ESTA BOCA ABAJO,

SI CARTA ES IGUAL A 1 y CARTA ES DEL PALO OROS

DEPOSITELA EN PILA A

SINO NADA MAS

SINO NADA MAS

2018

Page 29: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Proposición

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 30: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Problemas

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Dadas3pilasdecartasnovacíasycontodaslascartasbocaarriba,sepideintercambiarrotativamente(enelsentidodelasagujasdelreloj)lostopesdelasmismasSINUSARPILASAUXILIARES.

Porejemplo:EstadoInicial EstadoFinal

Separar de una pila A donde las cartas se pueden encontrar en cualquierestado,todaslascartasdepaloespada.

ABC ABC 1 2 3 3 1 2

DadaunapilaAdondesóloexistencartasdeoroybasto,generarotrapilaBdondeaparezcanintercaladoslosorosybastos.

Page 31: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Descripción de Pila

Formalmente,seescribe:

Ejemplo:•  PILA A TIENE 1 DE OROSh - 2 DE COPASh - 3 DE BASTOS.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 32: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Backus Naur Form

UnaespecificaciónBNFesunconjuntodereglasdederivaciónquepermitendescribirlasintaxisdeunlenguaje.Lasreglasseescribencomo:<símbolo>::=expresión,<símbolo>esunno-terminalexpresiónconsistedeunaomássecuenciasdesímbolos;separadas|,paraindicarunaelecciónposible.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 33: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Backus Naur Form

Cadaopcióndelladoderechopuedesustituircompletoal<símbolo>delaizquierda.

Lossímbolosquenoaparecendelladoizquierdosonlosterminales.

Lossímbolosdelaizquierdasonno-terminalesyaparecenencerradosentre<>.

Elsímbolo::=indicaqueelsímbolodelaizquierdadebesustituirseporlaexpresióndeladerecha.

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 34: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Backus Naur FormEjemplo:

No-terminal distinguidoNo-terminales

Terminales

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018

Page 35: Fundamentos de la Informática Int. a la Programación Resolución de Problemas y ...dirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · 2018-09-07 · Comienzan con SI, seguido

Ejemplo de Derivación<Programa timba>

<proceso> <declaraciones> . ;

TOME DE PILA A, INVIERTA LA CARTA, DEPOSITELA EN PILA A; UCP EJECUTE CON LAS SIGUIENTES CARTAS: PILA A TIENE 1 DE OROSh - 2 DE COPASh - 3 DE BASTOS.

DEFINICION DE PROGRAMA

DEFINICION DE PROGRAMA <sentencias> UCP EJECUTE CON LAS SIGUIENTES CARTAS : <lista de pilas>

<sentencias> <sentencia>

<sentencias> <sentencia>

<sentencia>

<operativa>

<operativa>

<operativa>

<descripcion de pila>

<contenido> <nombre> <pila>

...

...

...

PILA A TIENE <lista de cartas>

...

Área de Servicios – Dpto. De Informática – FCFMyN - UNSL

Lenguaje Timba

2018