7/21/2019 Algoritmos y Programas Baltazar 2015
1/195
ALGORITMOS Y PROGRAMAS:
TEMA 1:
Sistemas de procesamiento de la informacin.
Concepto de algoritmo.
Lenguaje de programacin.
Datos, tipos de datos y operaciones primitivas.
Constantes y variables.
Expresiones: tipos y operadores.
unciones internas.
La operacin de asignacin.
Entrada y salida de la informacin.
1. SISTEMAS DE PROCESAMIENTO DE LA INFORMACIN:
Un ordenador es una mquina de procesamiento de informacin. Es una mquina porquetiene cables, chips,... , procesa porque es capaz de procesar cosas, e informacin porquemaneja conjuntos ordenados de datos).
Para procesar la informacin est el hardware (microprocesador, !",...), # el software (quesir$e para manejar el hardware).
2. CONCEPTO DE ALGORITMO:
El al%oritmo trata de resol$er problemas mediante pro%ramas.
&ases' Anlisis preliminar o evaluacin del problema: Estudiar el problema en
general y ver !ue parte nos interesa.
Defnicin o anlisis del problema: "er !ue es lo !ue entra y !ue es lo !ue sale,las posibles condiciones o restricciones, ...
Diseo del algoritmo: Dise#ar la solucin.
El programa: Codi$cacin del algoritmo en un lenguaje de programacin.
Ejecucin del programa y las pruebas: "er si el programa %ace lo !ue!uer&amos.
Qu es un alg!"#$%:
Es una formula para resol$er un problema. Es un conjunto de acciones o secuencia deoperaciones que ejecutadas en un determinado orden resuel$en el problema. Eisten nal%oritmos, ha# que co%er el ms efecti$o.
aracter*sticas'
7/21/2019 Algoritmos y Programas Baltazar 2015
2/195
'iene !ue ser preciso.
'iene !ue estar bien de$nido.
'iene !ue ser $nito.
+a pro%ramacin es adaptar el al%oritmo al ordenador.
El al%oritmo es independiente se%n donde lo implemente.
&. EL LENG'A(E DE PROGRAMACIN:
Eisten diferentes tipos, de bajo ni$el # de alto ni$el.
-nstrucciones en una computadora # sus tipos'
Una instruccin es cada paso de un al%oritmo, pero que lo ejecuta el ordenador. Un pro%ramaes un conjunto de instrucciones que ejecutadas ordenadamente resuel$en un problema.
T")s *e "ns#!u++"nes:
E/S: (asar informacin del exterior al interior del ordenador y al rev)s. Aritmtico-lgicas: *ritm)ticas: +,,-,... Lgicas: or, and, /, 0, ...
Selectivas: (ermiten la seleccin de una alternativa en funcin de una condicin.
epetitivas: 1epeticin de un n2mero de instrucciones un n2mero $nito de veces.
T")s *e lengua,es:
!enguaje m"uina: 'odo se programa con 3 y 4, !ue es lo 2nico !ue entiende elordenador.
entaja' /o necesita ser traducido.
-ncon$eniente' +a dificultad, la confusin, para corre%ir errores, es propia de cada mquina.
De bajo nivel o ensamblador: Se utili5an mnemot)cnicos 6abreviaturas7.
entaja' /o es tan dif*cil como el len%uaje mquina.
-ncon$enientes' ada mquina tiene su propio len%uaje, necesitamos un proceso detraduccin.
El programa escrito en ensamblador se llama programa fuente y el programa !uese obtiene al ensamblarlo se llama programa objeto.
!enguajes de alto nivel: Los m8s cercanos al lenguaje %umano.
entaja' 0on independientes de cada maquina (los compiladores aceptan las instruccionesestndar, pero tambi1n tienen instrucciones propias).
-ncon$eniente' El proceso de traduccin es mu# lar%o # ocupa ms recursos. !pro$echamenos los recursos internos.
P!+es *e #!a*u++"-n e,e+u+"-n *e un )!g!a$a es+!"# en un lengua,e a al# n"/el:
7/21/2019 Algoritmos y Programas Baltazar 2015
3/195
Usamos un editor # obtenemos el pro%rama fuente, # el compilador es el que traduce elpro%rama al len%uaje mquina. El compilador internamente ha sido dise2ado para traducir.
El compilador obtiene el pro%rama o el fichero objeto. El compilador tiene que buscar loserrores.
/ormalmente no sale un ejecutable, sino que necesita elementos, librer*as, ..."ediante un lin3ador juntamos el pro%rama objeto # las librer*as, # se forma un pro%ramaejecutable.
uando se ejecuta el pro%rama, el car%ador lle$a al pro%rama a memoria para que 1ste puedaser ejecutable.
4ebbu%er' 4epura el pro%rama ejecutndolo paso a paso, $iendo la memoria paso a pasopara encontrar el error.
Pro%rama fuente (Editor)
ompilador
Error
Pro%rama objeto +ibrerias
+in3ador
Ejecutables
Para traducir puedo utilizar el compilador o un interprete, con el compilador cojo todo elpro%rama al completo # el interprete lee cada instruccin # lo $a ejecutando.
El interprete es ms rpido, pero menos eficiente.
5odos los len%uajes tienen compiladores, pero no todos tienen interpretes.+-0P (+en%uaje de inteli%encia artificial) ' 0lo tiene interpretes.
0. DATOS TIPOS DE DATOS OPERACIONES PRIMITI3AS:
4 Da#: Es un objeto o elemento que tratamos a lo lar%o de di$ersas operaciones.
T"enen & +a!a+#e!"s#"+as'
9n nombre !ue los diferencia del resto.
9n tipo !ue nos determina las operaciones !ue podemos %acer con ese dato.
9n valor !ue puede variar o no a lo largo de la operacin.
Eisten diferentes tipos de datos.
4 Ca!a+#e!"s#"+as *e ls #")s:
Cada tipo se representa o almacena de forma diferente en la computadora.
6it'789: 6#te;< bits.
9n tipo agrupa a los valores !ue %acen las mismas operaciones.
7/21/2019 Algoritmos y Programas Baltazar 2015
4/195
Si tiene de$nida una relacin de orden es un tipo escalar.
Cardinalidad de un tipo: 2mero de valores distintos !ue puede tomar un tipo.
Pueden ser finitos (caracteres), # si son infinitos el ordenador los toma como finitos porqueesta limitado por el tama2o de los b#tes en el que la cifra es almacenada.
4 Ls *a#s )ue*en se!:
Simples: 9n elemento.
Compuestos: "arios elementos.
4 Ls #")s )ue*en se!:
Estandar: ;ue vienen en el sistema por defecto.
o estandar: Son los !ue crea el usuario.
4 Ls #")s s"$)les $5s "$)!#an#es sn:
um)ricos. Lgicos.
Caracteres.
#umricos$
Entero: Subconjunto $nito del conjunto matem8tico de los num)ros enteros. otiene parte decimal. El rango de los valores depende del tama#o !ue se les da enmemoria.
1eal: Subconjunto $nito del conjunto matem8tico de los n2meros reales. Llevansigno y parte decimal. Se almacenan en < =ytes 6dependiendo de losmodi$cadores7. Si se utili5an n2meros reales muy grandes, se puede usar notacincient&$ca !ue se divide en mantisa, base y exponente tal !ue el valor se obtienemultiplicando la mantisa por la base elevada al exponente.
!gicos o booleanos$
*!uel !ue slo puede tomar uno de los dos valores, verdadero o falso 63>47.
%arcter$
*barca al conjunto $nito y ordenado de caracteres !ue reconoce la computadora6letras, digitos, caracteres especiales, *SC??7.
5ipo de cadena o 0trin%' onjunto de caracteres, que $an a estar entre =>.El propio len%uaje puede a2adir ms tipos, o se pueden a2adir modificadores.
Entero ' -nt +on% int
En al%unos len%uajes se definen tipos especiales de fecha # hora, sobre todo en los msmodernos.
6. CONSTANTES 3ARIA7LES:
7/21/2019 Algoritmos y Programas Baltazar 2015
5/195
%onstantes$'ienen un valor $jo !ue se le da cuando se de$ne la constante y !ueya no puede ser modi$cado durante la ejecucin.
&ariables$El valor puede cambiar durante la ejecucin del algoritmo, pero nuncavaria su nombre y su tipo.
!ntes de usar una $ariable ha# que definirla o declararla, al hacerlo ha# que dar su nombre #su tipo. El nombre que le damos tiene que ser un nombre si%nificati$o, $a a ser un conjunto decaracteres que dependiendo del len%uaje ha# restricciones. 5iene que empezar por una letra,# el tama2o depende del len%uaje.
-dentificador' Palabra que no es propia del len%uaje.
El $alor de la $ariable si al declararla no se la inicializa, en al%unos len%uajes toma una pordefecto. En cualquier caso el $alor de la $ariable podemos darle uno incial o podemos ir$ariandolo a lo lar%o de la ejecucin.
+as constantes pueden lle$ar asociados un nombre o no, si no lo lle$an, se llaman literales. 0u$alor ha# que darlo al definir la constante # #a no puede cambiar a lo lar%o de la ejecucin, #
en cuanto al tipo, dependiendo de los len%uajes en al%unos ha# que ponerlo, # en otros nohace falta ponerlo porque toma el tipo del dato que se le asi%na. onst P-;?,7@7A.
Ba# que inicializar todas las $ariables.
C D Ba# que poner al%o obli%atoriamente.
F Puede lle$ar al%o o no lle$arlo.
+a $entaja de usar constantes con nombre es que en cualquier lu%ar donde quiera que $a#a laconstante, basta con poner su nombre # lue%o el compilador lo sustituira por su $alor.
+as constantes sin nombres son de $alor constante' G, A, HaI, =hola>.
uando una cadena es de tipo carcter, se encierra entre HI HaI.
elacin entre $ariables # constantes en memoria'
!l detectar una $ariable o una constante con nombre, automaticamente se reser$a enmemoria espacio para %uardar esa $ariable o constante. El espacio reser$ado depende deltipo de la $ariable.
En esa zona de memoria es en la que se %uarda el $alor asociado a la $ariable o constante #cuando el pro%rama use esa $ariable, ira a esa zona de memoria a buscar su $alor.
8. E9PRESIONES: TIPOS OPERADORES:
Una epresin es una combinacin de constantes, $ariables, si%nos de operacin, par1ntesis# nombres especiales (nombres de funciones estandar), con un sentido un*$oco # definido #de cu#a e$aluacin resulta un nico $alor.
5oda epresion tiene asociada un tipo que se corresponde con el tipo del $alor que de$uel$ela epresion cuando se e$alua, por lo que habr tantos tipos de epresiones como tipos dedatos. Babra epresiones num1ricas # l%icas.
/um1ricas' Jperadores aritm1ticos.
7/21/2019 Algoritmos y Programas Baltazar 2015
6/195
0on los que se utilizan en las epresiones num1ricas (una combinacin de $ariables #8oconstantes num1ricas con operadores aritm1ticos # que al e$aluarla de$uel$e un $alornum1rico.
K, L, M, 8.
O)e!a+"-n !es#' +o que de$uel$e es el resto de una di$isin entera."od' Pascal. G mod ? ; N
O' .
D"/"s"-n en#e!a' /os de$uel$e el cociente de una di$isin entera (en la que no se sacandecimales).
4i$' Pascal. G di$ ? ; 7
' .
Potencia' Q GQN.
5odos estos operadores son binarios (el operador se situa en medio), el menos tambien puedeser unario (lle$a un nico operando) # si%nifica si%no ne%ati$o.
e%las de precedencia'
El problema es cuando una epresin entera se%n como la e$alue pueda dar diferentes$alores.
RM?K@ NG
@S
+a solucin es aplicar prioridad entre los operadores, de modo que ante la posibilidad de usar
$arios siempre aplicaremos primero el de ma#or prioridad.ada len%uaje puede establecer sus propias re%las de prioridad o precedencia de operadores.0i no nos acordamos, siempre podemos poner ( ).
7T) Q
NT) M 8 di$ mod
?T) K L
Entre dos operaciones que tienen la misma precedencia para resol$er la ambi%edad, ha# queusar la re%la de la asociati$idad. +a ms normal es la de la asociati$idad a izquierdas (primerolo de la izquieda).
E)!es"nes l-g"+as: O)e!a*!es !ela+"nales l-g"+s.
Una epresin l%ica es aquella que slo puede de$ol$er dos $alores (erdadero o &also). +os$alores que pueden aparecer en una epresin l%ica son de N tipos' l%icos # relacionales.
+a particularidad de las epresiones l%icas es que mientras en una epresin num1rica porde$ol$er un $alor num1rico los operandos solo pueden ser nmeros, en una epresin l%icalos operandos no tienen porque ser booleanos aunque se de$uel$a un $alor booleano. Esto es
7/21/2019 Algoritmos y Programas Baltazar 2015
7/195
lo que ocurre cuando en la epresin l%ica utilizamos operadores relacionales con lo cual seobtienen $alores l%icos o booleanos a partir de otros que no lo son.
En cambio cuando los operadores son l%icos los operandos obli%atoriamente tambien tienenque ser l%icos.
Jperadores relacionales'C
D
;
CD en ' V;
W
W
C Jperando7D operador C JperandoND
G D ? erdadero
Xmo se e$alua una epresin relacionalY'
(rimero se evalua el primer operando y se sustituye por su valor.
Luego se evalua el seguno operando y se sustituye por su valor.
inalmente se aplica el operador relacional y se devuelve el valor booleanocorrespondiente.
((?MN)K7LGQN) C (NL7)
L7< C 7 erdadero.El problema del tipo real'
4esde la informtica, los numeros reales son finitos, #a que tenemos un mimo de cifrasdecimales. uando trabajamos con un ;, matematicamente da un $alor eacto, peroinformaticamente no es eacto.
78G M G ;7
7.98G.9 MG.9 CD7.9
0oluciones'
La !ue nos aporte el propio lenguaje de programacin. Se considera un valor deerror.
'rabajar con n2meros enteros siempre !ue sea posible.
9tili5ar las comparaciones /0 en ve5 de @ @ si es posible.
Si %ay !ue preguntar por igual, cambiar la condicin utili5ando valores absolutos yun valor m&nimo de error.
7/21/2019 Algoritmos y Programas Baltazar 2015
8/195
0i la diferencia C 9.99999997 # !60 (!L6)C min : son i%uales.
Jperadores l%icos'
El problema es que a $eces queremos pre%untar o e$aluar por ms de una condicin al mismotiempo # para esto estan los operadores l%icos.
Z and [[
J or VV
/o not \V
Z, J, son operadores binarios (necesitan N operandos de tipo lo%ico).
Jperando 7 Jperador Jperando N
El /o es unario # se coloca primero el /o, # despues el operando.
El resultado es l%ico # depende de'
Aperando 3 Aperando B *D A1
" " " "
" "
" "
El /o nie%a '
A' 3>4
"
"
Prioridades de los operadores'
Lo m8s prioritario es el A'
Luego el y el A.
/, 0 ,...
5abla de prioridades'
Q /J
8 di$ mod #
K L J
7/21/2019 Algoritmos y Programas Baltazar 2015
9/195
C, D, ;, CD,...
;. F'NCIONES INTERNAS:
0on funciones matemticas diferentes de las operaciones bsicas pero que se incorporan allen%uaje # que se consideran estandar. 4ependen del len%uaje. /ormalmente se encuentran
en la librer*a de matemticas del len%uaje de pro%ramacin.&rmulas'
!bs ()
!rctan ()
os ()
0en ()
Ep ()
+n ()
+o% 79 ()
edondeo ()
5runc ()
uadrado ()
aiz ()
a =ue #ene! en +uen#a%:
7/21/2019 Algoritmos y Programas Baltazar 2015
10/195
En la parte i5!uierda slo puede %aber una variable.
La variable a la !ue se le asigna el valor pierde su valor anterior.
La variable !ue aparece en la derec%a ya !ue como se evalua primero la de laderec%a cuando se tenga !ue evaluar el valor de esa variable se tomara su valor
antiguo. EL '?(A DEL "*LA1 ;9E SE A='?EE *L E"*L9*1 L* (*1'E DE1EC* '?EE ;9E
SE1 EL F?SFA ;9E EL '?(A DE L* "*1?*=LE DE L* (*1'E ?G;9?E1D*, ES DEC?1 *9* "*1?*=LE SALA SE LE (9EDE D*1 "*LA1ES DE S9 F?SFA '?(A.
L En Pascal da un error.
L En , no da error porque el compilador trunca el numero.
!' entero
! N
! ?M! K ! ;
Top Related