Está en la página 1de 26

Tema2 Conceptosbsicosdeprogramacin

FundamentosdeInformtica

ndice

Metodologadelaprogramacin Programacinestructurada

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

MetodologadelaProgramacin

Pasosaseguirparaeldesarrollodeunprograma(fases):
Anlisisdelproblema. Diseodeel/losalgoritmos. Codificacindelprograma. Compilacin. Verificacin/depuracin. Documentacin.

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

MetodologadelaProgramacin
Anlisisdelproblema

ANLISIS DEL PROBLEMA

DATOS DE ENTRADA

DEFINICIN PROBLEMA

DATOS DE SALIDA (Resultados)

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

MetodologadelaProgramacin
Anlisisdelproblema

Ejemplo Leerelradiodeuncrculoycalculareimprimirsusuperficieylalongitudde lacircunferencia. Anlisis Entradas:Radiodelcrculo(variableRADIO). Salidas:Superficiedelcrculo(variableAREA),Circunferenciadelcrculo (variableCIRCUNFERENCIA). Variables:RADIO,AREA,CIRCUNFERENCIA(tiporeal).

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

5 5

MetodologadelaProgramacin

Diseodeel/losalgoritmos

Conjuntopreescritodeoperaciones(reglasoinstrucciones)bien definidaspararesolverunproblemaenunnmerofinitodepasos Unalgoritmo:Finito(Resultadoeneltiempo),Definido(Nopuedeser ambiguo),Preciso(ejecucinpasoapaso). Eldiseodelalgoritmoesbastanteindependientedellenguajede programacin(s dependedelenfoque) Definirpasoapasocondetalle Diseodescendenteomodular:


Divisindelproblemaensubproblemas
PROBLEMA

DATOS DE ENTRADA

DEFINICIN PROBLEMA Problema 1

DATOS DE SALIDA

Dato 1.

Dato 2. Subproblema 1. 1 Subproblema 1.2 6


Tema2:Conceptosbsicosdeprogramacin

Salida 1.

Salida 2.

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

MetodologadelaProgramacin
Diseodeel/losalgoritmos
Diagramadeflujo
Acumuladores a cero s=0 INICIO

Contador a cero n=0

Introducir un nmero en a

SI Promedio p=s/n

a=0

NO Contarlo n=n+1

Imprimir Promedio

Acumulativo s=s+a

Introducir un nmero
DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

FIN Tema2:Conceptosbsicosdeprogramacin

MetodologadelaProgramacin
Diseodeel/losalgoritmos Diagramadeflujo
TERMINAL

ENTRADA-SALIDA

PROCESO

SI NO

DECISIN

CONECTOR

COMENTARIOS 8 8

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

MetodologadelaProgramacin
Diseodeel/losalgoritmos Diagramadeflujo

SUBRUTINA

PANTALLA

IMPRESORA

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

9 9

MetodologadelaProgramacin

Diseodeel/losalgoritmos
Pseudocdigo
Se trata de un lenguaje imitacin del de un ordenador. No est estandarizado.
Cada programador tiene el propio. Mezcla de lenguaje natural, smbolos, trminos y caractersticas de varios lenguajes de programacin.
Ejemplo: Definicin de variables_componentes. Inicio Escribir_texto (entrada de dato); Leer_Dato(dato); Proceso salida = dato * 2; Escribir_resultado_proceso (salida); Fin

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

10

MetodologadelaProgramacin

Codificacindelprograma

Escribirelalgoritmoenunlenguajedeprogramacin Permiteserledoyejecutadoporelordenador. Tiposdelenguajes: Debajonivel(dependendelamquinasobrelaqueseejecuta):


LenguajeMquina(escrituraenbinario) Ensambladores:(escriturasimblica) Imperativos: Estructurados FORTRAN C PASCAL Declarativos: LISP/PROLOG

Dealtonivel(nodependendelamquina):

OrientadosaObjeto i Java i C++ i Ada95

Lasalidadelafasedecodificacinsonlosprogramasfuente(quetodavanose puedenejecutardirectamentesobreelordenador) Unprogramasecomponedeunconjuntodeinstruccionesqueindicanlas operacioneselementalesaejecutarylamaneraenqueseencadenan.


Tema2:Conceptosbsicosdeprogramacin

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

11

MetodologadelaProgramacin

Compilacinyenlace

Salvoqueelprogramaseescribadirectamenteenlenguaje mquina(muyimprobable)siempredebeexistirun traductor. Lafasedecompilacinyenlacepermiteleerelprograma escritoenlenguajedealtonivelytraducirloalenguaje maquina. Haytrestiposdetraductores:


Compiladores. Interpretes. Ensambladores


Traductor

PROGRAMA FUENTE

Compilador

PROGRAMA OBJETO

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

12

MetodologadelaProgramacin
PROGRAMA

Compilacin
Fasesdeun compilador

FUENTE

Analizador Morfolgico Analizador Sintctico Analizador Semntico


Programa en lenguaje intermedio

Optimizador Generador de Cdigo

Programa Objeto
DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI Tema2:Conceptosbsicosdeprogramacin

13

MetodologadelaProgramacin Compilacinyenlace
Errores de Compilacin (lxicos, sintcticos y semnticos)

Archivos includos Programa Objeto

Archivos de Biblioteca

Programa Fuente (texto)

Compilador

Enlazador

Otros programas objetos Programa Ejecutable


DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI Tema2:Conceptosbsicosdeprogramacin

14

MetodologadelaProgramacin

Verificacin/depuracin

Erroresentiempodeejecucin divisinporcero,aperturadeficherosinexistentes,... Erroreslgicos(losmsdifcilesdedetectar) Resultadosincorrectos Optimizacindelalgoritmo.

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

15

MetodologadelaProgramacin
Compilacinyenlace+ Verificacinydepurado
Errores de Compilacin (lxicos, sintcticos y semnticos)

Archivos includos Programa Objeto

Archivos de Biblioteca

Programa Fuente (texto)

Compilador

Enlazador

Errores de ejecucin Errores lgicos

Resultados Correctos
DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Verificacin y Depurado
Tema2:Conceptosbsicosdeprogramacin

Programa Ejecutable

16

MetodologadelaProgramacin

Documentacin

Segeneraalolargodetodaslafases Debepermitiraccederalprogramaaunapersonadistintaal programador. Interna: Cdigodeprogramafuente Comentarios Externa:


Especificacinderequisitos Listadodeprogramafuente Explicacindelosalgoritmos(CLAROyCONCISO) Diagramasdeflujoopseudocdigo. Especificacindedatos,formatosdepantalla,...

...

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

17

MetodologadelaProgramacin:Fases
Problema

Anlisis

Definicin del Problema Datos de Entrada Datos de Salida

Diseo

Divisin modular del Problema (Pseudocdigo, Diagrama de Flujo) DE, DS

Codificacin Documentacin
Programa fuente Pseudocdigo Diagrama de Flujo Manual de Usuario Especificacin de los Datos ...
DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Programa Fuente Errores de Compilacin Errores de Ejecucin Errores de Lgica

Compilar y Enlazar
Programa Ejecutable

Verificar y Depurar
Tema2:Conceptosbsicosdeprogramacin

18

ProgramacinEstructurada

Unprogramaestructuradosebasaenlaaplicacinsistemticadelassiguientesreglas: Diseomodular:descomponerunmdulocomplejoenotrossubmdulos ms simples DiseoDescendente Programarcadamdulodemaneralomsindependienteposible Razonamientodelogeneralaloparticular. Ventajas:


Mejoralalegibilidaddelprograma Facilitaelentendimientodelprograma Simplificaelmantenimiento Minimizalacomplejidad Cadamdulopuedeserprogramadoporpersonasdiferentes Utilizacindeunametodologadeprogramacindisciplinada Favoreceeltrabajoenequipo

Problema:Noexisteunmtodoestndarparadividirenmdulosunprograma

Teorema de la Programacin Estructurada


Todoalgoritmopuedeserdescritoutilizandosolamentetrestiposde estructurasdecontrol:secuencial,alternativa,yrepetitiva.

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

19

ProgramacinEstructurada

Secuencia

Todaslasaccionesseejecutan sucesivamente,unaacontinuacin deotrasinposibilidadde bifurcaciones. Unaestructuraalternativabifurcael flujodeunalgoritmosegnse cumplanunaovariascondiciones.

Accin 1

SentenciasAlternativa

Accin 2

Accin 3

Falso Condicin

Cierto

Falso Condicin

Cierto

Accin

Accin 1

Accin 2

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

20

ProgramacinEstructurada

SentenciasRepetitivas:

Unaestructuradecontrolrepetitivapermiteejecutarunaovarias accionesunnmerodevecesquepuedeestardefinidoapriorio indefinidohastaquesecumplaunadeterminadacondicin. PARA:Eln derepeticionesseconoceantesdeiniciarelbucle. MIENTRAS:Repitelasaccionesmientraslacondicinsecumple. HACERMIENTRAS:Serealizasiempreunavezlaaccinyluegose vuelvearealizarmientraslacondicinsecumpla REPETIRHASTA:Repitelasaccionesmientraslacondicinsea falsa(noexisteenC)

Tiposdesentenciasdecontrolrepetitivas:

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

21

ProgramacinEstructurada
PARA
Falsa

ndices
Cierta

Accin

HACER MIENTRAS

MIENTRAS

Falso Accin Condicin Cierta Condicin Falsa


DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI Tema2:Conceptosbsicosdeprogramacin

Cierta

Accin

22

Ejemplos

Disearunalgoritmoqueresuelvaunaecuacindesegundogrado: Datosdeentrada:

Coeficientesa,b,c Solucionesdelaecuacinsilashay Elalgoritmonicamenteresolver laecuacinenel casodeexistir2solucionesdiferentes(opcin1) Encualquierotrocasomostraraunmensajedeerror.

Datosdesalida:

Nota:

Disearelalgoritmoparahacerunatortilladepatata Disearelalgoritmoqueresuelvalaecuacindesegundogrado dandotodaslasposiblessoluciones(opcin2).

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

Tema2:Conceptosbsicosdeprogramacin

23

Ejemplo(opcin1): EcuacindeSegundoGrado Diagramadeflujo

INICIO
Entrada de datos: a , b , c NO

a!= 0
SI

SI No ecuacin de 2 grado x1=(-b+sqrt(b*b-4*a*c))/2*a

DECISIN b*b >4*a*c

NO

Datos Incorrectos

FIN

x2=(-b-sqrt(b*b-4*a*c))/2*a Salida x1, x2

FIN

DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI

FIN

Tema2:Conceptosbsicosdeprogramacin

24

Ejemplo(opcin1): EcuacindeSegundoGrado Pseudocdigo


Algoritmo Ecuacin de segundo grado {Clculo de una ecuacin de segundo grado} Variables a, b, c; /*Introducir las constantes con sus signos*/ x1, x2 /*Valores de Salida*/ Inicio Escribir (Introduzca dato A:); /*Entrada de Datos*/ Leer (a); Escribir (Introduzca dato B:); Leer (b); Escribir (Introduzca dato C:); Leer (c); Si (a != 0) entonces Si (b2-4*a*c > 0) /*Condicin para evitar la raz cuadrada de un n negativo*/ x1:=(-b+sqrt((b*b)-(4*a*c)))/(2*a); x2:=(-b-sqrt((b*b)-(4*a*c)))/(2*a); Escribir (Valor x1=,x1,y Valor x2=,x2); sino /* Raz negativa */ Escribir (Datos Incorrectos); fin_si sino Escribir ( No se trata de una ecuacin de 2 grado) fin_si Fin
DepartamentodeSistemasInformticos EscuelaTcnicaSuperiordeIngenieraICAI Tema2:Conceptosbsicosdeprogramacin

25

EscuelaTcnicaSuperiordeIngenieraICAI AlbertoAguilera25 28015Madrid Tel +34915422800 Fax+34915423176 Iwww.icai.upcomillas.es

www.upcomillas.es