Clase 2 Tipos de datos Asignación de valores Estructura IF Ejercicios.
Clase de Estructura de Datos
-
Upload
jose-venancino-hoyos -
Category
Documents
-
view
219 -
download
0
Transcript of Clase de Estructura de Datos
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 1/15
ALGORITMOS Y PROGRAMAS
Dispositivos de salida:
1. Unidad de control (CU)
2. Unidad aritmético lógica (Alu):
Memoria de accesp
RESOLUCIÓN DE PROBLEMAS POR COMPUTADORAS
Deriva del famoso matemtico ! astrónomo ra"e al#$%o&ari'mi siglo * +ue
escri"ió un conocido tratado so"re la manipulación de n,meros ! ecuaciones.
Un algoritmo puede ser de-nido como la secuencia ordenada de pasos sin
am"igedades +ue conduce a la solución de un pro"lema dado ! e/presado en
lengua0e natural. 0emplo: el castellano.
odo algoritmo de"e tener las siguientes caracter3sticas:
a) Preciso: ndicando el orden de reali'ación de cada uno de los pasos.
") Defnido: 4i se sigue el algoritmo varias veces proporcionndole los
mismos datos se de"en o"tener siempre los mismos resultados.
c) Debe ser fnito: Al seguir el algoritmo este en alg,n momento de"e
terminar es decir de"e tener un n,mero -nito de pasos.
5ara dise6ar un algoritmo se de"e comen'ar comen'ar por identi-car las
tareas ms importantes para resolver el pro"lema ! disponerlas en el orden enel +ue %an de ser e0ecutadas.
7os pasos en esta primera descripción de actividades de"en ser re-nados
a6adiéndose ms detalles a los mismos e incluso algunos de ellos pueden
re+uerir un re-namiento adicional antes de +ue podamos o"tener un algoritmo
claro preciso ! completo.
ste método de dise6o de los algoritmos en etapas signi-ca ir de los
conceptos generales a los de detalle a través de re-namientos sucesivos se
conoce como método descendente (método de top# do&n).
n un algoritmo se de"en considerar tres partes:
• Entrada: es la información dada al algoritmo.
• Proceso: 4on todas las operaciones con clculos necesarios para
encontrar la solución al pro"lema.• Salida: 4on las respuestas dadas por el algoritmo o los resultados
-nales de los clculos .
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 2/15
Como e0emplo: maginemos +ue deseamos calcular la super-cie de un
rectngulo proporcionndole su "ase ! altura los primero +ue de"er3amos
%acer es poder contestar las siguientes preguntas:
speci-caciones de entrada: 89ué datos son entrada8Cuantos datos se
introducirn 8Cuntos son datos de entrada validos
speci-caciones de salida:8Cules son los datos de salida8Cuantos datos de
salida se producirn8+ué precisión tendrn los resultados 84e de"e imprimir
una ca"ecera
4olución:
5aso 1: 5eriférico teclado: "ase ! altura.
5aso 2: proceso o calculo: calcular la super-cie: super-cie "ase multiplica
altura.
5aso ;: periférico de salida: Monitor. <ase altura super-cie.
l lengua0e algor3tmico de"e ser independiente de cual+uier lengua0e de
programación particular pero fcilmente traducirle a cada uno de ellos.
Alcan'ar estos o"0etivos nos conducir al empleo de métodos normali'ados
para la representación de algoritmos tales como: los diagramas de =u0o el
diagrama nassi#sc%nniderman o generalmente se conoce como 5seudocódigo.
>eri-cación del algoritmo:
Una ve' %a!amos terminado de escri"ir un algoritmo es necesario compro"ar
+ue reali'a las tareas para las +ue %a sido dise6ado ! produce el resultado
correcto ! esperado.
l modo ms normal de compro"ar un algoritmo es mediante la e0ecución
manual utili'ando datos signi-cativos +ue a"ar+uen todo el posi"le rango de
valores ! anotando en una %o0a de papel las modi-caciones +ue se producen
en las diferentes fases %asta la o"tención delos resultados este proceso se
conoce con la prue"a del algoritmo.
?ase de implementación: Una ve' +ue el algoritmo est dise6ado representado
gr-camente mediante una %erramienta de programación (diagrama de =u0o
diagrama n#s o pseudocodigo ) ! veri-cado se de"e pasar a la fase de
codi-cación +ue es la traducción del algoritmo aun determinada lengua0e de
programación +ue de"er ser completada con la e0ecución ! compro"ación del
programa en el ordenador.
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 3/15
Datos
s la e/presión general +ue descr3"elos o"0etos con los cuales opera el
algoritmo.
7os datos podrn ser de los siguientes tipos:
• Entero: s el su" con0unto -nito de los n,meros enteros cu!o
rango o tama6o depender del lengua0e en el +ue posteriormente
codi-+uemos el algoritmo.• Real: 4u"con0unto de los n,meros reales limitado no solo en
cuanto al tama6o sino tam"ién en cuanto a la precisión.• Lóico: Con0unto formado por los valores verdad ! falso.
• Car!cter: Con0unto -nito ! ordenado +ue los caracteres +ue la
computadora reconoce.• Cadena: 7os datos (o"0etos) de este tipo contendrn una serie
-nita de caracteres +ue podrn ser directamente tra3dos o
enviados a@desde consola.
ntero real lógico carcter cadena son tipos de datos prede-nidos en las
ma!or3a de lengua0es de programación. n los algoritmos para indicar +ue un
dato es de uno de estos tipos se declarara utili'ando directamente el
identi-cador o nom"re del tipo. Adems el usuario podr de-nir sus propios
tipos de datos.
5ara de-nir nuevos tipos de datos agrupando varones de otros tipos de-nidos
previamente o de tipos estndar por este motivo se conocen +ue estn
estructurados.
4i todos los valores agrupados fueran del mismo tipo este se le denomina tipo
"ase.
Al esta"lecer un tipo para un dato %a! +ue considerar las operaciones +ue
vamos %a reali'ar con el ! los instrumentos disponi"les.
Al esta"lecer el tipo se determina la forma de representación en memoria. 7os
datos pueden ser e/presados como: Constantes varia"les e/presiones o
funciones.
Constantes: 4on datos cu!o valor no cam"ia durante todo eldesarrollo del algoritmo. 7as constantes podrn ser literales o con
nom"res. 7as constantes sim"ólicas o con nom"re se identi-can por
su nom"re ! el valor asignado. Una constante literal es un valor de
cual+uier tipo +ue se utili'a como tal.
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 4/15
endremos pues las gt constantes: uméricas enteras. n el rango de los
enteros. Compuestas por el signo B# . 4eguidos de una serie de d3gitos
(B#) ()
uméricas reales: compuestas por el signo B# seguidos por una serie de
d3gitos (..) (.)(B#)() ! por supuesto de un punto decimal
llamado la mantisa.
7ógicas: 4olo e/isten dos contantes lógicas: verdad ! falso.
Constantes carcter: Cual+uier carcter del 0uego de caracteres utili'ado
colocado entre comillas simples o apostrofes. 7os caracteres +ue
reconocen las computadoras son d3gitos caracteres alfa"éticos tanto
ma!,sculas como min,sculas ! caracteres especiales.
Cadena: 4erie de caracteres validos encerrados entre comillas simple.
"aria#les: Una varia"le es un o"0eto cu!o valor puede cam"iardurante el desarrollo del algoritmo.
4e identi-ca por su nom"re ! por su tipo +ue podr ser cual+uiera !
es el +ue determina el con0unto de valores +ue podr tomar la
varia"le. n los algoritmos se de"en declarar las varia"les. Cuando
se traduce el algoritmo a un lengua0e de programación se e0ecuta el
programa resultante la declaración de cada de una de las varia"les
originara +ue se reserve un determinado espacio en memoria
eti+uetado con el correspondiente identi-cador.
/presiones: 4 la com"inación de operadores ! operando. 7osoperando podrn ser constantes varia"les u otras e/presiones ! los
operadores de cadena aritméticos relacionales o lógicos.
7as e/presiones se clasi-can seg,n el resultado +ue producen en:
uméricas: 7os operando +ue intervienen en ellas son numéricos el
resultado es tam"ién de tipo numérico ! se constru!en mediante los
operadores aritméticos. 4e pueden considerar anlogas a las
fórmulas matemticas.
De"ido a +ue son los +ue se encuentran en la ma!or parte de loslengua0es de programación los algoritmos utili'aran los sgtsoperadores aritméticos menos unario(#) multiplicación (E) división
real (@) e/ponenciación ^ , suma +, módulo de la .
Tenga en cuenta que la división real siempre dará un resultado real yque los operadores mod y div solo operan con enteros y el resulto esentero.
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 5/15
• Alfanuméricas: 7os operadores son de tipo alfanumérico !producen resultados tam"ién de dic%o tipo alfanuméricas.
• 4e constru!en mediante el operador de concatenaciónrepresentado por el s3m"olo (F) o con el mismo s3m"olo utili'ado
en las e/presiones aritméticas para la suma.• <ooleanas.: 4u resultado podr ser verdadero o falso. 4e constru!e
mediante los operadores relacionales ! lógicos. 7os operadores de
relación son: igual (G) distinto(HI) menor +ue (H) ma!or +ue (I)
ma!or igual(IG) menor igual (HG). Act,an so"re operandos del mismo
tipo ! siempre devuelven como un resultado de tipo lógico.
7os operadores lógicos "sico son: negación lógica(no) multiplicación lógica
(!) suma lógica (o) act,an so"re operando de tipo lógico ! devuelven
resultados del mismo tipJ.
a < o a A ! " A o ">erdad >erdad ?also verdad>erdad ?also >erdadero?also >erdad ?alsofalso ?also verdadero ?also
l orden de prioridad general adoptada no com,n en todo el lengua0e de
programación es el sgt:
• /ponenciación:Kperadores unarios Lno ! L menos
Kperadores multiplicativos @ Ediv mod !Kperadores aditivos B # oKperadores de relación: G distinto ma!or +ue menor +ue
7a evaluación delos operadores con la misma prioridad se reali'ara
siempre de i'+uierda a derec%a.4i una e/presión contiene su" e/presiones encerradas entre paréntesis
dic%as su" e/presiones se evaluaran primero.
areas:Nacer un cuadro lógico en /cel
nvestigar acerca de funciones
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 6/15
$%nciones: n los lengua0es de programación e/isten ciertas
funciones prede-nidas o internas +ue aceptan unos argumentos !
producen un valor denominado resultado.
Como funciones numéricas se pueden utili'ar:
?unción Descripción 5K D
AOPUMK
O4U7ADK
A"s(/) >alor a"soluto de/
ntero o real ntero o real
Arctan (/) Arcotangente de
/
ntero o real real
Cos (/) Coseno de / ntero o real realCuadrado(/) Cuadrado de / ntero o real ntero o realnt (/) ntero de / Oeal entero/p(/) elevado a / ntero o real real7n (/) 7ogaritmo
neperiano de /
ntero o real real
7g(/) 7ogaritmo "ase
1 de /
ntero o real real
Oa3' 2(/) Oa3' cuadrada de
/
ntero real
Oedondeo(/) Oedondea / al
entero ms
pró/imo
Oeal entero
4en(/) 4eno de / ntero o real real runc (/) 5arte entera de / Oeal entero
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 7/15
5or lo tanto las funciones se utili'aran escri"iendo su nom"re seguido de los
argumentos adecuados encerrados entre paréntesis.
Relas &ara la constr%cción de identi'cadores
7os identi-cadores son todos los nom"res +ue se dan a las constantessim"ólicas varia"les funciones procedimientos u otros o"0etos +ue manipula
el algoritmo.
7a regla para construir un identi-cador esta"lece:
1. De"e resultar signi-cativo sugiriendo lo +ue representa.2. o podr coincidir con pala"ras reservadas propias del lengua0e
algor3tmico. esto signi-ca +ue la representación de algoritmo mediante
seudocódigo va a re+uerir la utili'ación de ciertas pala"ras reservadas.;. 4e admitir un m/imo de ;2 caracteres.
Q. Comen'ar siempre por un carcter alfa"ético los siguientes podrn serletras d3gitos o el s3m"olo del su"ra!ado aR" o underline.
S. 5odr ser utili'ado indistintamente si lo escri"imos en ma!,sculas o en
min,sculas.
E(ercicios
1. Desarrollar los algoritmos +ue resuelvan los siguientes pro"lemas:a) r al cine.
$ase An!lisis del &ro#le)a: # datos de entrada: om"re de la
pel3cula %ora de pro!ección sala.
• Datos de salida: ver la pel3cula
• Datos au/iliares: entrada numero de asiento.
$ase Dise*o del alorit)o+
nicio: @@ selección de la pel3cula. omar un periódicoMientras no llegamos a la cartelera5asar las %o0as
Mientras no se aca"e cartelera7eer pel3culas4i no nos gusta recordamoslegir una de las pel3culas +ue nos gusta7eer la dirección del cine ! la %ora.Comprar entrada
rasladarse al cine4i no %a! entrada -n4i %a! cola
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 8/15
5óngase al -nal o ultimoMientras no lleguemos a la "oleter3aAvan'ar4i no %a! entrada -nComprar la entrada
@@ >er pel3cula<uscar la sala4i %a! cola5onerse al ,ltimoMientras no ingrese a la salaAvan'ar<uscar asientos vac3os4entarsever pel3cula
2. Oeparar un pinc%a'o de una "icicleta.
i, $ase An!lisis del &ro#le)a:# datos de entrada: "icicleta malograda.
• Datos de salida: <icicleta arreglada
•
ii, $ase Dise*o del alorit)o+
nicio@@ a=o0ar las tuercas +uitar la llanta de la "icicleta +uitar el tu"o +ue contiene la llanta colocar el parc%e para tapar el pinc%a'o aplicar pegamento de0ar secar el pegamento +ue contiene el parc%e colocar dentro de la llanta el tu"o +ue !a %a sido arreglado colocar la llanta en el cuadro de la "icicletaapretar las tuercas-n
;. Averiguar si una pala"ra es un pal3ndromo( s una pala"ra +ue se leeigual de i'+uierda a derec%a ! de derec%a a i'+uierda).
i) $ase An!lisis del &ro#le)a:# datos de entrada: introducir pala"ra.
• Datos de salida: mprimir :Lpala"ra pal3ndromo Lno es pala"ra
pal3ndromo•
ii, $ase Dise*o del alorit)o+
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 9/15
nicio@@ introducir pala"ra 4e lee la pala"ra4i la pala"ra leida tiene el mismo signi-cado leida al reves
mprime :Lpala"ra pal3ndromo• 4ino imprime Lno es pala"ra pal3ndromo
-n
M-TODOS PARA RESOL"ER UN ALGORITMO
1. Diagramas de =u0o: 4e utili'an para la representación gr-ca de las
operaciones e0ecutadas so"re los datos por lo tanto son todas las partes
de un sistema de procesamiento de información los diagramas de =u0o
sirven para la representación de las secuencias de pasos necesarios paradescri"ir un procedimiento particular. 7os diagramas de =u0o utili'an
unos s3m"olos normali'ados esto nos va %a permitir identi-car los
pasos del algoritmo escritos en el s3m"olo adecuado !estos s3m"olos
estn unidos por =ec%as denominadas l3neas de =u0o esto nos va%a
indicar el orden en el +ue los pasos de"en ser e0ecutados. 7os s3m"olos
principales son:
43m"olo ?unción
nicio ! -n del algoritmo
proceso
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 10/15
ntrada @ salida
Decisión
comentario
s importante ! necesario indicar +ue dentro década uno de os s3m"olos
de"e ir una operación especi-ca escrita por el programador.
0emplo: la"orar un programa +ue lea una temperatura en grados
cent3grados o celsius ! +ue calcule su valor en grados $elvin
4olución:Datos de entrada: temperatura CelsiusDatos de salida: emperatura $elvin
2. Diagrama de #4: 7os diagramas n#s denominados asi por sus inventores
es una %erramienta de programación +ue favorece la programación
estructurada ! re,ne caracter3sticas gra-cas propias de diagrama de
=u0o ! linguisticas propias de os pseudocodigos consta de una serie de
ca0as contiguas +ue se leern siempre de arri"a %acia a"a0o.
n los diagramas #4. se identi-caran tres estructuras "sicas de laprogramación estructurada: 4ecuenciales selectivas ! repetitivas.
s3m"olo ipo de estructura
4ecuencia 1
secuencias
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 11/15
4ecuencia 24ecuencia ;
repetitivas de9 a veces
(mientras)
Oepetitivas de 1 a veces(Oepetir %asta )
Oepetitivas de veces(for iG1 %asta )4electiva
0emplo ela"orar el algoritmo +ue lea una tempertura en grados celsiud ! +ue
escri"a su valor en grados $elvin.
4olución:
nicio7eer (Celsius)
Telvin #### Celsius B
2;.1Sscri"ir ($elvin )-n
;. 5seudocodigo: s un lengua0e de especi-cación de algoritmos +ue utili'apala"ras reservadas ! e/ige la indentacion(es la sangr3a en el margen
i'+uierdo de algunas l3neas).l pseudocódigo se conci"ió para superar las dos principales desventa0as
del diagrama de =u0o +ue son : lento de crear ! dif3cil de modi-car si un
nuevo rediuso. es una %erramienta mu! "uena para el seguimiento de la
lógica de un algoritmo ! para transformar con facilidad el algoritmo a
programar escritos en un lengua0e de programación especi-co.
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 12/15
l pseudocodigo comen'ara siempre con la pala"ra inicio ! terminara
con la pala"ra -n. Cuando se colo+ue un comentario de una sola l3nea se
de"er escri"ir precedido de @@4i el comentario es multilinea se de"er poner entre llaves.
5ara introducir un valor o serie de valores desde el dispositivo estndar !
almacenarlos en una o varias varia"les utili'aremos :leer (Hlista RdeR varia"lesI)Con(Hnom"re RdeR varia"lesI) ###### He/presiónIAlamacenaremos e una varia"le : Con(Hnom"re RdeR varia"lesI) ######
He/presiónIAlamnacenaremos unavaria"lecon unae/presion $elNa! +ue tener en cuenta +ue una ,nica constante varia"le o funcion
constitu!e una e/presion .5ara imprimir en el dispositivo estndar de salida una o varias
e/presiones emplearemos: escri"ir (HlistaRdeRe/presionesI).
Las distintas estr%ct%ras se re&resentaran de la si%iente .or)a:
• Decision simple: si HcondiciónI entonces Hacciones 1I ?in Rsi
• Decisión do"le: si HcondiciónI entonces Hacciones 1I
4iRnoHacciones 1I
?in Rsi
• Decisiones m,ltiples: seg,n sea He/presión RordinalI%acer HlistaR deR valoresR ordinalesI
: Hacciones 1IVsiRno @@ el corc%ete indica opcionalidad
Hacciones IW?inR seg,n
•
Oepetitivas: mientras HcondiciónI%acerHaccionesI?inR mientras
OepetirHaccionesINastaR+ue HcondiciónIDesde Hvaria"le XX.HvRinicialI%asta HvR-nalIVincrementoYdecrementoHincrementoIW %acerHAccionesI
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 13/15
?inRdesde
nicio -n leer escri"ir ! las pala"ras +ue aparecen en negrita en las distintasestructuras se consideran pala"ras reservadas ! no de"ern utili'arse en su
lugar otras similares.
0emplo: la"orar el algoritmo +ue calcula la temperatura en grados celsius a
grados $elvin escri"ir el pseudocodigo.
4olución:
nicio
7eer (Celsius)
TelvinZcelsius B 2;.1S
scri"ir ($elvin)
?in
0ercicios:
1. 8Cul de los siguientes datos son vlidos para procesar por una
computadora:a) ;.1Q1S") .1Qc) 12;QS.d) 1S.#Qe) 2.2;Q2f) 12Bg) 1.1#;%) #1S#.Qi) 12.S.;
0) .12;Q$) SAQ.1Q
l) A1.Qa"cdefg0 son validos
2. 8Cual de los identi-cadores siguientes son vlidosa) renta") al+uilerc) constanted) tom[se) dosR pulgadasf) C;5K
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 14/15
g) <ienvenido numeral S%)elementoi) QA2D2
0)1;nom"re$) om"reRanderle!Rapellidosl) om"reapellidos
a"cf%$l son validos.
;. scri"ir un algoritmo +ue lea un n,mero entero lo dupli+ue se
multipli+ue por 2S ! se visualice el resultado.
4olución:nicio 7eer ( numero entero) ,mero (n,mero /2)
Oesultado (n,mero/2S) scri"ir (resultado)-n
Q. Dise6ar un algoritmo +ue lea cuatro varia"les ! calcule e imprima su
producto suma ! su media aritmética.4olución: datos de entrada: /!'m datos de salida: producto
sumamedia aritmeticanicio 7eer( /!'m) 5roducto /E!E'Em 4uma /B!B'Bm Media 4uma@Q
scri"ir (producto suma media aritmética)-n
S. Dise6ar un programa +ue lea el peso de un %om"re en li"ras ! nos
devuelva su peso en $ilogramos ! gramos (una li"ra e+uivale a QS;S2
$g).\. 4i A es igual a \ < es igual a 2 ! C es igual a ; encontrar los valores de
las siguientes e/presiones:a) A#<BC") AE< div C
c) A div < B Cd) AE< mod Ce) AB< mod Cf) A div < div C
7/23/2019 Clase de Estructura de Datos
http://slidepdf.com/reader/full/clase-de-estructura-de-datos 15/15
. 9ue se o"tiene en las varia"les A ! < después de la e0ecución de las
siguientes instrucciones:
A Z S
<Z AB\
AZ AB1
<ZA#S
Nallar el resultado -nal de A ! <
]. scri"ir las siguientes e/presiones en forma de e/presiones algor3tmicas:a) M@ B Q") MB @(5#9)c) (4en * Bcos ^)@tan /d) (MB)@(5#9)
e) (5B(@9))@(9#(r@4))
f)−b+√ b2
−4 ac
2a
. Deducir los resultados +ue se o"tienen del siguiente algoritmo:nicio:
/Z1S!Z;_Z!#*
scri"ir (/^)scri"ir (_)
?in
1.scri"ir un algoritmo +ue calcule ! escri"a el cuadrado de ]21.11.Oeali'ar un algoritmo +ue calcule la suma de los enteros entre el 1 ! el
1