You are on page 1of 38

DESARROLLO DE SOFTWARE I

DESARROLLO DE SOFTWARE I
DESARROLLO DE SOFTWARE I
TABLA DE CONTENIDO
Que es un programa
Que son instrucciones
Definicin
Constantes
Variables
o Clase de ariables
Acumuladores
Contadores
E!presin
Que es un s"itc#
Que es una asignacin
Operadores
$artes de un programa
Entrada
$roceso
%alida
Que es un programa ob&eto
Que es un programa fuente
'undamentos de diagramacin
Estructura selectia doble( si)sino*
E&ercicio*
%entencias si) sino anidadas
Taller
Contador( acumulador
Estructuras repetitias +ciclo( bucle( la,o-
Estructura mientras*
.eglas de funcionamiento del ciclo mientras
Estructura #acer*** /ientras
DESARROLLO DE SOFTWARE I
Estructura selectia desde + para-*
.eglas de funcionamiento del ciclo desde*
'in de un bucle
E&ercicios
Arreglo 0arra12+ector( lista3 matri,( tabla-*
Arreglos unidimensionales +ector( lista-*
Almacenamiento de informacin en un ector4 directa
Indirecta o din5mica
o E&ercicios*
/6todo de ordenacin*
Arreglo bidimensional +matri,( tabla-*
Operaciones en arreglos*
DESARROLLO DE SOFTWARE I
ESTRUCTURA GENERAL DE UN PROGRAMA
CONCEPTO DE PROGRAMA
7n programa de computadora es un con&unto de instrucciones )rdenes dadas a la
m58uina) 8ue producir5n la e&ecucin de una determinada tarea* En esencia( un
programa es un medio para conseguir un fin*
El amplio conocimiento de todos los elementos de programacin 1 el modo de su
integracin en los programas constitu1en las t6cnicas de programacin 8ue todo
buen programador debe conocer*
BUCLES
7n bucle o la,o +loop- es un segmento de un algoritmo o programa( cu1as
instrucciones se repiten un n9mero determinado de eces mientras se cumple una
determinada condicin +e!iste o es erdadera la condicin-* %e debe establecer
un mecanismo para determinar las tareas repetitias* Este mecanismo es una
condicin 8ue puede ser erdadera o falsa 1 8ue se comprueba una e, a cada
paso o iteracin del bucle +total de instrucciones 8ue se repiten en el bucle-
7n bucle consta de tres partes4
decisin
cuerpo del bucle
salida del bucle
El bucle de esta figura es infinito( 1a 8ue las instrucciones :( ;( 1 <( se e&ecutan
indefinidamente( pues no e!iste salida del bucle( al no cumplirse una determinada
condicin*
%i tras la lectura de la ariable N se coloca una condicin( el bucle de&ar5 de ser
infinitio 1 tendr5 fin cuando la condicin sea erdadera*

DESARROLLO DE SOFTWARE I
Figura 3.3. Bucle infini!
CONTADORES
Los procesos repetitios son la base del uso de las computadoras* En estos
procesos se necesitan normalmente contar los sucesos o acciones del bucle(
como pueden ser los elementos de un fic#ero( el n9mero de iteraciones a reali,ar
por el bucle( etc* 7na forma de controlar un bucle es mediante un contador*
7n contador es una ariable cu1o alor incrementa o decrementa en una cantidad
constante en cada iteracin*
La siguiente figura muestra un diagrama de flu&o para un algoritmo 8ue se desea
repetir => eces3 el contador se representa en este e&emplo con la ariable CONT*
La instruccin 8ue representa a un contador es la asignacin CONT CONT?:
DESARROLLO DE SOFTWARE I
ACUMULADOR
7n acumulador o totali,ador es una ariable cu1a misin es almacenar cantidades
ariables resultantes de sumas sucesias* .eali,a la misma funcin 8ue un
controlador( con la diferencia de 8ue el incremento o decremento de cada suma es
ariable en lugar de constante( como en el caso del contador*
%e representa por la instruccin % % ? N( donde N es una ariable 1 no una
constante*
E&emplo
%umar los primeros @ n9meros enteros* El algoritmo correspondiente es4
1. inicio
2. leer (K)
3. N 0
4. SUMA 0
5. N N +1
6. SUMA SUMA +N
7. si N = K, ir_a (9)
8. ir_a (5)
9. escribir (K, SUMA)
10. in
DESARROLLO DE SOFTWARE I
DECISION O SELECCI"N
Cuando el programador desea especificar dos o m5s caminos alternatios en un
algoritmo +o un programa-( se debe utili,ar estructuras de decisin o seleccin*
7na instruccin de decisin o seleccin eal9a una condicin 1( en funcin del
resultado de esa condicin( se bifurcar5 un determinado punto*
En el caso anterior( se tiene una instruccin alternatia con dos posibles caminos3
si la condicin es erdadera( se e&ecuta la accin ':( 1 si la condicin es falsa( se
e&ecuta la accin ';*
ESCRITURA DE ALGORITMOS# PROGRAMAS
La escritura de un algoritmo mediante una #erramienta de programacin debe se
lo mas clara posible 1 estructurada( de modo 8ue su lectura facilite
considerablemente el entendimiento del algoritmo 1 su posterior codificacin en un
lengua&e de programacin*
Los algoritmos deben ser escritos en lengua&es similares a los programas* En
nuestro libro utili,aremos esencialmente el lengua&e algorAtmico( basado en
$seudocdigo( 1 la estructura del algoritmo re8uerir5 la lgica de los programas
escritos en el lengua&e de programacin estructurado3 por e&emplo $ascal*
7n algoritmo constar5 de dos componentes4 !na cabecera "e #ro$ra%as & !n
blo'!e al$ori(%o.
La ca$ecera %e &r!gra'a es una accin simple 8ue comien,a con la palabra
al$ori(%o* Esta palabra estar5 seguida del nombre asignado al programa
completo*
El $l!(ue alg!ri'! es el resto del programa 1 consta de dos componentes o
secciones4 las acciones de declaracin 1 las acciones e&ecutables*
Las declaraciones definen o declaran las ariables 1 constantes 8ue tengan
nombres* Las acciones e&ecutables son las acciones 8ue posteriormente deber5
reali,ar la computacin cuando el algoritmo conertido en programa se e&ecute*
DESARROLLO DE SOFTWARE I
CABECERA DEL PROGRAMA O ALGORITMO
Todos los algoritmos 1 programas deben comen,ar con una cabecera en la 8ue
e!prese el identificador o nombre correspondiente con la palabra reserada 8ue
seBale el lengua&e* En los lengua&es de programacin( la palabra reserada suele
ser &r!gra'a%a* En algoritmia se denomina alg!ri'!.
Alg!ri'! DE/O:
Declaraci)n %e *aria$le+
En esta seccin se declaran o describen todas las ariables utili,adas en el
algoritmo( list5ndose sus nombres 1 especificaciones sus tipos* Esta seccin
comien,a con la palabra reserada *ar +abreiatura de ariable- 1 tiene el formato
)ar
(i#o*1+ lis(a "e )ariables*1
(i#o*2+ lis(a "e )ariables*2
.
.
(i#o*n+ lis(a "e )ariables*n
Donde cada lista de ariables es una ariable simple o una lista de ariables
separadas por comas 1 cada tipo es uno de los tipos de datos b5sicos +entero(
real( car5cter o lgico-*
$or e&emplo( la seccin de declaracin de ariables
Algoritmo
Cabecera del programa
%eccin de declaracin
%eccin de acciones
DESARROLLO DE SOFTWARE I
)ar
en(era+ N!%ero*,%#lea"o
real+ -oras
real+ .%#!es(o
real+ Salario
/ "e %o"o e'!i)alen(e
)ar
en(era+ N!%ero*,%#lea"o
real+ -oras, .%#!es(os, Salario
Declara 8ue slo las tres ariables Cora( Impuesto 1 %alario son de tipo real*
Es una buena pr5ctica de programacin utili,ar nombres de ariables significatios
8ue sugieran lo 8ue ellas representan( 1a 8ue eso #ar5 m5s f5cil 1 legible el
programa*
Tambi6n es buena pr5ctica incluir brees comentarios 8ue indi8uen cmo se
utili,a la ariable*
)ar
en(era+ N0%ero_,%#lea"o 11n0%ero "e e%#lea"os
real+ -oras 112oras (raba3a"as
.%#!es(o 11i%#!es(o a #a$ar
Salario 11can(i"a" $ana"a
DECLARACION DE CONSTANTES NUMERICAS
En esta seccin se declaran todas las constantes 8ue tengan nombre* %u formato
es4
cons(
#i = 4.151592
(a%a6o = 54
DESARROLLO DE SOFTWARE I
2oras = 7.50
Los alores de estas constantes 1a no pueden ariar en el trascurso del algoritmo*
DECLARACION DE CONSTANTES , -ARIABLES CAR.CTER
Las constantes de car5cter simple 1 cadenas de caracteres pueden ser declaradas
en la seccin del programa c!n+( al igual 8ue las constantes num6ricas*
cons(
es(rella = .8.
rase = 12 "e oc(!bre
%ensa3e = 2ola %i nene
Las ariables de caracteres se declaran de dos modos4
:* Almacenar un solo car5cter*
ar car9c(er+ no%bre, inicial, no(a, le(ra
%e declaran no%bre, inicial, no(a & le(ra( 8ue almacenar5n slo un car5cter*
ESTRUCTURA SELECTI-A DOBLE/ +i ) +in!.
%i el resultado de la condicin o comparacin es erdadera( se reali,an una o
arias acciones 1 en caso de ser el resultado falso( se e&ecutan una o arias
acciones diferentes a las 8ue se reali,an cuando la condicin se cumple
+condicin erdadera-*
Si f!r'a!0
si(con"ici:n o e;#resi:n)
Acci:n 1
+
+
acci:n n
sino
acci:n 2
+
+
DESARROLLO DE SOFTWARE I
acci:n 2n
ins< =8 si>
E1e'&l!0
18se "e(er%ina si !n n!%ero lei"o es #ar o i%#ar81
18a!(or+ ................................................................81
18ec2a+.................................................................81
inicio
en(ero n!%, ?
cons( ca"ena %s$1 @el n0%ero es #ar@A
cons( ca"ena %s$2 @el n0%ero es i%#ar@
escribir(@in$rese !n n0%ero@)
leer(n!%)
?( n!% %o" 2
si (? = 0)
escribir (%s$2)
insi
in
num /sg : /sg ; %alida
D>
:::
El n9mero es par El n9mero es impar /sg :
/sg ;
DESARROLLO DE SOFTWARE I
E1e'&l!0
18"e(er%ina si !na #ersona es %a&or "e e"a" o no81
18a!(or+.....................................................................81
18ec2a+....................................................................81
inicio
en(ero e"a"
escribir e"a"
leer (e"a")
si (e"a"B=18)
escribir (Ceres %a&or "e e"a"D)
sino
escribir (Ceres %enor "e e"a"D)
insi
in
E1ercici!0
Desarrolle la prueba de escritorio para cada uno de los e&emplos anteriores*
SENTENCIAS SI2 SINO ANIDADAS
7na sentencia +i anidada se presenta cuando la sentencia de la rama erdadera o
la rama falsa es a su e, una sentencia +3* %e puede utili,ar para implementar
decisiones con arias alternatias*
Sina4i+0
si (con"ici:n)
sen(encia1
DESARROLLO DE SOFTWARE I
sino
si (con"ici:n)
sen(encia2
+
sino
si (con"ici:n n)
sen(encia n
sino
sen(encia n2
si
si
fsi
E1e'&l!0
18calc!lar el %a&or "e (res n0%eros81
18...........................................................81
18...........................................................81
en(ero a, b, c
.nicio
escribir(Cin$rese (res n0%eros) leer(a,b,c)8or%a(o )9li"o81
si(aBb)
si(aBc)
escribir(Cel %a&or es+D a)
sino
escribir(Cel %a&or+Dc)
si
DESARROLLO DE SOFTWARE I
sino
si(bBc)
escribir(Cel %a&or es+Db)
sino
escribir(Cel %a&or es+Dc)
si
si
in
Taller
:- Desarrolle un algoritmo representado en un seudocdigo 8ue diga si un
tri5ngulo es e8uil5tero( issceles o escaleno*
;- Desarrolle un algoritmo representado en un seudocdigo 8ue capture un
n9mero cual8uiera 1 determine si el n9mero es positio( negatio o cero*
<- Desarrolle un algoritmo 8ue lea tres n9meros diferentes 1 diga si est5n en
orden ascendente o descendente( muestre los n9meros*
E- Desarrolle un seudocdigo 8ue lea o capture los siguientes datos de un
empleado( n9mero de #oras normales( n9mero de #oras e!tras( alor de la
#ora*
Valide 8ue4 el cdigo del empleado sea superior a :>> e inferior a E>> las
#oras normales( no sean superiores a E>( las #oras e!tras no sean
superiores a F>*
/uestre si no es 5lido4 el cdigo del empleado acompaBado del mensa&e
Gno pueden ser ma1ores a E> las #oras normalesH n9mero de #oras e!tras
acompaBados del mensa&e Gno pueden ser ma1ores 8ue F> las #oras
e!trasH*
I %i todos los datos del empleado cumplen las condiciones( muestre
los datos del empleado acompaBado del mensa&e Gtodos los datos O@H*
DESARROLLO DE SOFTWARE I
=- Desarrolle un seudocdigo 8ue determine si un aBo es bisiesto* 7n aBo es
bisiesto si es m9ltiplo de E+por e&emplo :JDE-* %in embargo( los m9ltiplos
de :>> solo son bisiestos cuando a la e, son m9ltiples de E>> +por e&emplo
:D>> no es bisiesto( mientras 8ue ;>>> si lo ser5-
F- Desarrolle un algoritmo representado por medio de un seudocdigo( 8ue
calcule el 5rea de un tri5ngulo( +para ello solo se cuenta con la longitud de
sus lados-( si el tri5ngulo no es rect5ngulo*
K- Desarrolle un algoritmo representado en un seudo)cdigo 8ue capture o lea
4 nombre( edad( se!o 1 estado ciil( 1 muestre uno de los siguientes
mensa&es( acompaBado de nombre de la persona*
I G%igue go,ando la idaH si es arn soltero menor de <> aBos*
I GTe propongo matrimonioH si es mu&er soltera menor de ;= aBos*
GTe pito el trenH si es mu&er soltera ma1or de E= aBos*
Gsoltero ie&o erdeH si es arn soltero ma1or de E= aBos*
D- Desarrolle un algoritmo representado en un pseudo)cdigo 8ue calcule la
longitud de la #ipotenusa de un tri5ngulo*
J- Desarrolle un algoritmo representado en un seudocdigo( 8ue capture un
car5cter 1 diga si es una ocal no*
C!na%!r4 es una ariable num6rica 8ue aumenta o disminu1e de manera
constante( cada e, 8ue se reali,a la accin correspondiente*
$or lo general se iniciali,a en cero +>-3 pero puede iniciali,arse con un alor
diferente de cero( dependiendo del algoritmo 8ue se reali,a*
'ormato4
Nombre ar nombre ar ? +)- constante num6rica*
DESARROLLO DE SOFTWARE I
Acu'ula%!r0 es una ariable num6rica 8ue aumenta o disminu1e seg9n el
contenido de una ariable o el alor de una e!presin num6rica*
%u formato es4
Nombre ariable nombre ariable ? +)(I- e!presin
E&emplo4
Contador acumulador
a a?: ! >
escribir +Gingrese un alorH-
leer +1-
b b?: ! !?1
c c): ! !)1
d d):;>
ESTRUCTURAS REPETITI-AS 5cicl!/ $ucle ! la6!7
7n bucle es cual8uier construccin de algoritmo +programa- 8ue repite una
sentencia o secuencia de sentencias un n9mero determinado de eces* Las partes
de un ciclo son4
Cuerpo de ciclo4 es la accin o acciones 8ue se repiten en un ciclo*
Alteracin4 es cada repeticin del cuerpo del ciclo*
Las estructuras m5s utili,adas son4 mientras( #acer mientras( desde*
ESTRUCTURA MIENTRAS
%e conoce como un ciclo condicional 1a 8ue se reali,a mientras se cumple una
determinada condicin( es un ciclo pretest 1a 8ue 6l mismo se eal9a antes de
repetir el cuerpo del ciclo*
Esta estructura es recomendada cuando no se conoce con e!actitud el n9mero de
repeticiones( el cuerpo del ciclo puede o no reali,arse* %u formato es el siguiente4
%ien(ras (con"ici:n o e;#resi:n)
acci:n 1
+
DESARROLLO DE SOFTWARE I
acci:n n
in%ien(ras=8 %ien(ras>
8 es o#cional #or el !s!ario.
REGLAS DE FUNCIONAMIENTO DEL CICLO MIENTRAS
1) Ea con"ici:n o co%#araci:n (e;#resi:n l:$ica) se e)al0a an(es & "es#!Fs
"e ca"a e3ec!ci:n "el c!er#o "el ciclo. Si la res#!es(a es )er"a"era se
realiGa la acci:n in%e"ia(a al cierre "el %ien(ras (in%ien(ras, %ien(ras).
2) Si la #ri%era )eG '!e se e)al0a la con"ici:n el res!l(a"o es also, el c!er#o
"el ciclo no se e3ec!(ar9 3a%9s.
4) Hebe e;is(ir !na ins(r!cci:n "en(ro "el c!er#o "el ciclo '!e en !n %o%en(o
"e(er%ina"o 2a$a '!e el res!l(a"o "e la con"ici:n #ase "e )er"a"ero a
alsoI si es(a acci:n no e;is(e el ciclo se )a a re#e(ir in"eini"a%en(e (ciclo
sin in) & el al$ori(%o (#ro$ra%a) no (er%inara n!nca s! e3ec!ci:n.
E1e'&l!0
18al$ori(%o '!e %!es(ra los n0%eros en(eros consec!(i)os "el 1 al 1081
18a!(or+............................................................81
18ec2a+............................................................81
en(ero n!% 0 18se "eclara e inicialiGa la )ariable81
inicio
%ien(ras(n!%J=10)
n!% n!%+1
escribir (n!%)
%iien(ras
in
E1e'&l! 80
en(ero n!%
inicio
n!% 1
DESARROLLO DE SOFTWARE I
%ien(ras (n!%J=10)
escribir (n!%)
n!% n!%+1
in%ien(ras
in
N!a0 ,n a%bos e3e%#los el !so "e la es(r!c(!ra es si%ilar e;ce#(o '!e ca%bian
los )alores "e inicialiGaci:n "e las )ariables & la #osici:n in(erna "e las acciones,
realiGa la #r!eba "e escri(orio & concl!&e el #or'!F "e es(as "ierencias.
ESTRUCTURA 9ACER... MIENTRAS
Es un ciclo condicional en el 8ue se reali,an sus acciones al menos una e,( 1a
8ue la condicin se eal9a por primera e, despu6s de #aberse reali,ado las
acciones del cuerpo del ciclo 1 si el resultado de dic#a condicin es erdadero se
repiten las acciones 8ue #acen parte del cuerpo del bucle* Cuando el resultado de
la condicin es falso no se repiten las acciones del cuerpo del ciclo sino 8ue se
reali,a la accin siguiente*
F!r'a!0
-acer
Acci:n1
+
+
%ien(ras(con"ici:n o e;#resi:n)
Tenga en cuenta 8ue en el cuerpo de ciclo debe e!istir una accin 8ue( en un
momento dado( #aga 8ue el resultado de la condicin pase de erdadero a falso(
para 8ue el ciclo tenga un n9mero limitado de repeticiones3 de no e!istir dic#a
accin el ciclo se conierte en un bucle infinito 1 la e&ecucin de algoritmo +el
programa- nunca terminar5*
E1e'&l!
Ko"e%os (o%ar el e3e%#lo (ra(a"o con el ciclo %ien(ras.
18al$ori(%o '!e $enera & %!es(ra los 10 #ri%ero n0%eros en(eros81
DESARROLLO DE SOFTWARE I
18......................................................................81
18ec2a+............................................................81
en(ero n!%(0
2acer
n!% n!%+1
escribir (n!%)
%ien(ras (n!%J10)
in
ESTRUCTURA SELECTI-A DESDE 5PARA7
%e utili,a cuando el n9mero de repeticiones se conoce con e!actitud* El control del
n9mero de repeticiones es autom5tico*
F!r'a!0
Hes"e ()(LiI)=o#r_rel>LIinc="ec>)N)
Acci:n1
+
+
acci:n*n
in"es"e =8 "es"e>
4 ariable de control*
Vi( Vf4 alores inicial 1 final de V*
OprLrel4 operador de relacin +M(N(MO(NO(O(PO(MN-
inc(dec4 incremento o decremento*
DESARROLLO DE SOFTWARE I
N4 n9mero entero*
REGLAS DE FUNCIONAMIENTO DEL CICLO DESDE0
:- Es normal emplear como nombre de la ariable de control una letra( la
ariable de control debe ser num6rica entera( el alor inicial 1 final puede
ser4 constante( ariable o e!presin de tipo entera*
;- Al e&ecutarse por primer e, el ciclo( se le asigna el alor inicial +Vi- a la
ariable de control( 1 se e&ecuta el cuerpo del ciclo si4
a- El Vi es menor o igual 8ue el Vf3 si se trata de incremento*
b- El ViNOVf3 cuando se refiere a decremento*
<- Al encontrar el cierre del ciclo desde+fin ) desde-( la ariable de control se
incrementa o decrementa seg9n el caso* %e termina la repeticin cuando la
ariable de control es ma1or 8ue Vf( para el caso de incremento3 o el alor
de la ariable de control sea menor 8ue Vf( si se trata de decremento*
E- Cuando finali,a el ciclo desde( se e&ecuta la accin inmediata a fin%e+%e 1
el alor de la ariable de control 8ueda indefinido*
=- No se permite modificar dentro del cuerpo del ciclo el contenido o alor de
la ariable de control( Vi( Vf*
E1e'&l!
18se %!es(ran los n0%eros en(eros "es"e el 1 2as(a el 1081
18a!(or+................................................................................81
18ec2a+...............................................................................81
en(ero i
inicio
"es"e(i1 I iJ=10I inc 1)
escribir (i)
in"es"e
in
FIN DE UN BUCLE
E!isten arios m6todos utili,ados normalmente para terminar un bucle de entrada*
Algunos de estos casos son4
DESARROLLO DE SOFTWARE I
Lista encabe,ada por tamaBo4 Consiste en poder determinar el tamaBo de la pista
por anticipado( o bien preguntando al usuario el n9mero de repeticiones*
E1e'&l!0
,scribir(CM!9n(os "a(osND )
Eeer ((o(al)
"es"e (i1I 2as(a (o(alI inc)
escribir(Cin$rese no%breD)
leer(no%)
"es"e
$reguntar antes de iterar4 El segundo m6todo consiste en preguntar simplemente(
al usuario despu6s de cada iteracin del bucle( si el bucle debe ser o no iterado
nueamente*
Ejemplo:
/# CsD
%ien(ras (o#=DsD)
escribir(Cin$rese no%breD)
leer (no%)
escribir (C"esea con(in!ar s1nD)
leer (o#)
in%ien(ras
En este caso la lectura de datos se detendr5 cuando el usuario digite la letra GnH
Valor centinela4 7n alor centinela es a8uel 8ue es totalmente diferente de todos
los alores posibles de la lista 8ue se este le1endo( 1 de este modo sire para
indicar el alor de la lista*
18e3e%#lo "e )alor cen(inela (n0%ero ne$a(i)o)81
escribir (Cin$rese !n n0%ero #osi(i)oD)
DESARROLLO DE SOFTWARE I
escribir(C#ara (er%inar in$rese !n n0%ero ne$a(i)oD)
leer (n!%)
%ien(ras (n!% B= 0)
s!%as!%a+n!%
escribir(Cin$rese !n n0%eroD)
leer (n!%)
%ien(ras
escribir(Cla s!%a es+D s!%a)
En este e&emplo la lectura de datos terminara cuando el usuario digite un n9mero
negatio*
Bucle+ ani%a%!+0 Los bucles anidados constan de un bucle e!terno 1 uno o m5s
bucles internos* Cada e, 8ue s repite el bucle e!terno( los bucles e!ternos se
repiten( se reeal9an los componentes de control 1 se e&ecutan todas las
iteraciones re8ueridas*
E1e'&l!0
"es"e (i1I iJ=10I inc)
"es"e(31I 3B=20I inc)
acciones
"es"e
"es"e
El ciclo e!terno determina cuantas eces se deber5 reali,ar el ciclo interno con
sus respectias iteraciones*
E:ERCICIOS
DESARROLLO DE SOFTWARE I
:* Desarrolle un algoritmo representado en un seudocdigo 8ue muestre los
n9meros pares desde el JE #asta el JD> cada uno con su respectio cubo*
;* Desarrolle un algoritmo representado en un seudocdigo 8ue muestre los
n9meros impares desde el :=<K #asta el ;:( diga cu5ntos n9meros
impares se mostraron 1 cu5l es la suma de los mismos*
<* Desarrolle un algoritmo representado en un seudocdigo 8ue muestre las
tablas de multiplicar de JK( desde el : #asta el :;* La salida debe ser
JKI:***JKI;***etc*
E* /uestre los n9meros de la serie de 'ibonacci menores 8ue <;=>* .ecuerde
8ue la serie de 'ibonacci se calcula como la suma de los dos n9meros
anteriores asA4 >(:(:(;(<(=(D(:<(;:***
=* /uestre los DK> primeros n9meros de 'ibonacci*
F* Desarrolle un seudocdigo 8ue muestre los n9meros enteros desde el :
#asta el =;>( cada uno con su respectio factorial*
K* Desarrolle un seudocdigo 8ue muestre los n9meros enteros desde el uno
#asta el :;> con su respectio cuadrado* $ara el cuadrado la 9nica
operacin permitida es la suma*
D* Desarrolle un seudocdigo 8ue lea :DK> n9mero enteros positios( muestre
el total de n9meros pares 1 el total de n9meros impares*
J* Desarrolle un seudocdigo 8ue lea el salario de ;>> personas 1 diga cu5l
fue la ma1or suma ingresada( 1 cuantas eces se ingreso*
:>* Desarrolle un seudocdigo 8ue determine si un n9mero leAdo es primo o no*
::* Desarrolle un seudocdigo 8ue genere 1 muestre las tablas de multiplicar
del :K 1 :D( con multiplicadores del : al :=*
:;* Desarrolle un seudocdigo 8ue muestre las tablas de multiplicar desde $
#asta Q( siendo $ 1 Q dos n9meros leAdos* Tal 8ue $MOQ( los
multiplicadores an desde el : #asta el ;>*
:<* Desarrolle un algoritmo representado en un seudocdigo 8ue calcule 1
muestre la multiplicacin entre dos n9meros enteros / 1 N( para ello use
slo la suma*
:E* Desarrolle un algoritmo representado en un seudocdigo 8ue lea el nombre(
cantidad 1 alor unitario de ;>> artAculos( se debe mostrar el total a pagar
por cada artAculo acompaBado del nombre( alor unitario 1 cantidad del
mismo( al final se debe mostrar el total a pagar por todos los artAculos*
DESARROLLO DE SOFTWARE I
ARREGLO ;ARRA,< 5-ec!r/ Li+a/ Mari6/ Ta$la7
Es un con&unto finito 1 ordenado de elementos #omog6neos4
Ordenado4 es una propiedad 8ue significa 8ue cual8uier elemento del arreglo
puede ser identificado o referenciado por medio del nombre del arreglo
acompaBado de un subAndice*
%on #omog6neos( por8ue son del mismo tipo de dato*
Vector 1 matri,( es un concepto utili,ado en matem5ticas 1 lista 1 tabla es un
concepto aplicado originalmente en c5lculos financieros*
Los subAndices pueden ser constantes( ariables o e!presiones de tipo enteras*
Estos subAndices deben estar encerrados entre corc#etes*
Este subAndice es consecutio a partir de cero +utili,ando el est5ndar de C( C?? (
QAVA 1 Q??-
ARREGLOS UNIDIMENSIONALES 5-ec!r/ Li+a7
Es el tipo mas simple de un arreglo* Tiene una sola fila 1 n columnas( 1Ro n filas 1
una columna* $ara identificar referenciar un elemento se #ace por medio de del
nombre del arreglo acompaBado de un solo subAndice entre corc#ete*
Sr5ficamente un ector se representa de la siguiente manera4
S!b<n"ice in"ican"o la can(i"a" "e ele%en(os "el arre$lo.
'ormato de declaracin4
Tipo nomarreglo 0 subLind 2
Tipo4 es un tipo de dato primitio*
Nomarreglo 4 es un identificador alido
%ubLind4 es el rango( e!tensin o cantidad de elementos de arreglo*
DESARROLLO DE SOFTWARE I
Almacenamiento de informacin en un ector4 directa
Nombre0subLind2 alor
E1e'&l!0 RIse asignan n9meros o informacin de manera directa
al arreglo lista de tres elementosIR
lis(a= 1> 2
lis(a= 2> 4
lis(a= 2 > 5
Indirecta o din5mica4 esta se reali,a utili,ando una de las estructuras de repeticin
E1e'&l!0 %e desea reali,ar el listado de las E> notas definitias de un curso de
sistemas*

18 el ra$%en(o "e llena"o + !(iliGan"o la es(r!c(!ra 2acer ...%ien(ras.81
18..................................81
18...................................81
2acer
escribir (@in$rese la no(a@)
leer (no(a= i >)
%ien(ras ( i J= 50)
18el ra$%en(o "e llena"o + !(iliGan"o la es(r!c(!ra "es"e81
18no%bre...............................................81
DESARROLLO DE SOFTWARE I
18ec2a...................................................81
"es"e( i J* 1I i J= 50 I inc 1)
escribir(@in$rese no(a "eini(i)a@)
leer( no(a= i >)
"es"e
18se!"oc:"i$o #ara )is!aliGar el con(eni"o "e !n arre$lo81 !(iliGan"o la es(r!c(!ra
"es"e #ara el e3e%#lo an(erior.
"es"e (i 1 I i J= 50 I inc 1)
escribir( no(a = i >)
"es"e
E1e'&l!4
Desarrolle un algoritmo representado en un seudocdigo 8ue llene un arreglo
unidimensional( llamado notas( de E> elementos( a los cuales se le debe asignar la
nota de los E> estudiantes de contabilidad*
18llenar )ec(or no(as 81
18no%bre...................................81
18ec2a.......................................81
inicio
en(ero i
real no(a , no(as= 50 >
"es"e (i 1I i J= 50 I inc 1)
escribir(@in$rese la no(a "e con(abili"a"@)
leer(no(a)
no(as= i > no(a
DESARROLLO DE SOFTWARE I
"es"e
18 se %!es(ra el con(eni"o "el arre$lo 81
"es"e(i 1 I i J= 50 I inc 1)
escribir ( no(as = i >)
"es"e
in
Ejemplo+
Se "esea llenar !n )ec(or con las e"a"es "e 40 #ersonas & se "esea conocer el
#ro%e"io "e e"a"es.
18)ec(or e"a"es 81
18no%bre+.................................81
18ec2a+....................................81
inicio
en(ero #, i , e"a"es= 40 >
real #ro%
"es"e (. 1I iJ= 40 I inc 1)
escribir(@in$rese la e"a"@)
leer(e"a"es= i >)
# # + e"a"es= i >
"es"e
#ro% # 1 40
escribir ( @el #ro%e"io "e e"a"es es +@ #ro%)
in
DESARROLLO DE SOFTWARE I
MTODO DE ORDENACIN. MTODO DE LA BURBUJA
Este es uno de los m6todos mas f5ciles de ordenacin( consiste en ir #aciendo
arias pasadas al arreglo a la e, 8ue se reali,an sucesias comparaciones* %e
tiene el arreglo V de E elementos se desea ordenarlo en forma ascendente* V
Algoritmo de ordenacin4 m6todo de la burbu&a
:- %e empie,a comparando el primer elemento con los dem5s( si es ma1or se
intercambian de posicin* $rimera iteracin #a1 dos cambios*
<: N :DO erdadero4 se reali,a intercambio
;- A#ora se compara el primer elemento con el tercero
:D N ;: O falso4 no se reali,a intercambio*
<- A#ora se compara el primer t6rmino con el 9ltimo*
:D N K O erdadero4 se reali,a intercambio*
E- %egunda iteracin se compara el segundo termino con los dem5s e!cepto con
el primero*
=- %e compara el segundo termino con el tercero
<: N ;: O erdadero( se reali,a intercambio*
F- se compara el segundo termino con el cuarto*
DESARROLLO DE SOFTWARE I
;: N :D O erdadero( se reali,a intercambio*
K- Tercera iteracin se compara el tercer termino con el ultimo*
D- %e compara el tercer termino con el cuarto*
<: N ;: O erdadero( se reali,a intercambio*
J- Vector ordenado
Seu%!c)%ig!.
es"e ( i1IiJ=4Iinc 1)
es"e ( 3 i+1IJ= 5 I inc 1)
si ( )= i > B )= 3 > )
a!; )= i >
L= i > )= 3 >
L= 3 > a!;
Osi
"es"e
"es"e
E=PLICACI"N
I %e aplican ciclos anidados
DESARROLLO DE SOFTWARE I
I El e!terno a desde : #asta el pen9ltimo+n):- termino( puesto 8ue no tendrAa
ra,n comparar el ultimo termino con el mismo*
I El ciclo interno inicia siempre una posicin despu6s del ciclo e!terno+i?:- pues
no tendrAa caso comparar el primer termino consigo mismo 1 termina en el ultimo
termino + n -*
EJERCICIOS
:* Desarrolle un algoritmo representado en un seudocdigo( 8ue llene un ector
de K> elementos( asign5ndole a todos los elementos el numero ;D*
;* Desarrolle un algoritmo representado por un seudocdigo 8ue llene un ector de
J= elementos de la siguiente manera4
Elementos con Andice par deben llenarse con los m9ltiplos de = muestre la
sumatoria del contenido de los elementos de Andice par*
<* Desarrolle un seudocdigo 8ue sume dos ectores lista: de <> elementos 1
lista; de D> elementos +tienen n9meros enteros- 1 el resultado se almacene en un
tercer ector lista< de :;> elementos( par e&emplo el primer elemento de lista:
mas el primero de lista; se almacenara en lista<(asA sucesiamente( la suma se
reali,ara #asta donde se pueda*
E* Desarrolle un seudocdigo 8ue llene los elementos de un ector con nombres
de personas*
=* Desarrolle un algoritmo representado en un seudocdigo 8ue diga cuantos
ceros #a1 en un ector de :>> elementos+el ector esta lleno de n9meros enteros-*
F* Desarrolle un algoritmo representado en un seudocdigo 8ue recorra una lista
de :E> elementos +n9meros reales- 1 diga cuantos son positios 1 cuantos son
negatios
K* Desarrolle un algoritmo representado en un seudocdigo 8ue llene un arreglo
de :<>> elementos con n9meros enteros 1 lo muestre ordenado en forma
descendente*
ARREGLO BIDIMENSIONAL 5Mari6/ Ta$la7
DESARROLLO DE SOFTWARE I
Tiene dos dimensiones( se puede considerar como un ector de ectores( para
identificar o referenciar a cual8uier elemento se #ace par medio del nombre del
arreglo acompaBado de dos subAndices( los cuales est5n entre corc#etes3 el
primer subAndice indica el numero de filas en 8ue se encuentra 1 el segundo
subAndice indica la columna 8ue ocupa la relacin de dic#a fila*
REPRESENTACI"N GRAFICA DE UNA MATRI> O TABLA.
%ubAndice 8ue representa las columnas
:;<E= :;<E=
:(::(;:(<:(E:(= ;(;<(<<(EE(:E(E=(;=(=
%ubAndice 8ue representa las filas
'ormato4 tipo dato nomarreglo 0 fila2 0columna2

GRAFICO DE LA MATRI>
Las asignaciones de datos en la matri, se reali,an al igual 8ue en los ectores(
directa especificando la posicin con los dos subAndices la fila 1 la columna en la
8ue se ingresa la informacin* $ara una asignacin m5s din5mica de los datos es
necesaria la utili,acin de estructuras repetitias anidadas*
E1e'&l!0
Desarrolle un algoritmo representado en un seudocdigo 8ue llene un arreglo de K
filas 1 = columnas de la siguiente manera4 asign5ndole a cada elemento el te!to(
Tun mundo de triunfadoresT
18 llenar (abla.............................81
18no%bre+...................................81
18ec2a+......................................81
inicio
DESARROLLO DE SOFTWARE I
en(ero , c
ca"ena (e;(o =7> =5>
cons( ca"ena %s$@!n %!n"o "e (ri!na"ores@
"es"e( 1 I J=7 I inc 1)
"es"e(c 1 I cJ=5 I inc 1)
(e;(o= >= c > %s$
"es"e
"es"e
OPERACIONES EN ARREGLOS
%obre los arreglos podemos reali,ar las siguientes operaciones4
Llenar0 Insertar informacin en un arreglo*
Or%enar0 Organi,ar los elementos de un arreglo
Eli'inar0 suprimir de manera permanente un elemento de un arreglo*
Bu+car0 locali,ar informacin especAfica en un arreglo*
$ara saber m5s4 c!n+ula +!$re l!+ '?!%!+ %e !r%enaci)n @ $A+(ue%a.
E:ERCICIOS
:* Desarrolle un algoritmo representado en un seudocdigo 8ue llene los
elementos de un arreglo de =; filas 1 E; columnas( de la siguiente manera4 con
n9meros impares a partir del DE de manera ascendente* %e debe llenar par
columnas de arriba #acia aba&o empe,ando par la 9ltima columna 1 terminando en
la primera*
;* Desarrolle un algoritmo representado en un seudocdigo 8ue llene un arreglo
de JK filas 1 :>< columnas de la siguiente manera4 par filas iniciando en la
9ltima fila con su 9ltima columna 1 terminando en la primera fila 1 la primera
columna* AsAgnele a cada elemento m9ltiplos de :;: consecutiamente*
DESARROLLO DE SOFTWARE I
<* Desarrolle un algoritmo representado en un seudo cdigo 8ue asigne ceros a
los elementos 8ue est5 por encima de la diagonal principal en un arreglo cuadrado
de m ! m*
E* Desarrolle un algoritmo representado en un seudocdigo 8ue determine cuantos
elementos de la diagonal secundaria son primos( en un arreglo de :> !:>*
=* Desarrolle un algoritmo representado en un seudocdigo 8ue llene un arreglo
cuadrado de m filas por m columnas de la siguiente manera4
I Los numero pares por encima de la diagonal principal*
I Los n9meros impares deba&o de la diagonal principal*
I %i es cero en la diagonal principal*
F* Desarrolle un algoritmo representado en un seudocdigo 8ue recorra una matri,
de m ! n de la siguiente manera4
I $or filas empe,ando en el primer elemento de la primera fila*
I $or filas empe,ando en el 9ltimo elemento de la 9ltima fila*
I $or columnas empe,ando en el 9ltimo elemento de la primera fila*
I $or columnas empe,ando en el 9ltimo elemento de la 9ltima columna*
K* Desarrolle un algoritmo representado en un seudocdigo( 8ue permita llenar un
arreglo de <> ! :> elementos( con caracteres( de uno en uno( 1 diga4
I Cuantos son ocales*
I Cuantas TaT se #allaron*
I Cuantas TeT se #allaron*
I Cuantas TiT se #allaron*
I Cuantas ToT se #allaron*
I Cuantas TuT se #allaron*
DESARROLLO DE SOFTWARE I
SUB ALGORITMOS 5SUB PROGRAMAS7
%on unidades( mdulos o segmentos 8ue est5n diseBados para reali,ar alguna
tarea especAfica( se denominan tambi6n funciones o m6todos*
Las funciones o m6todos se escriben solo una e,( pero pueden ser llamados(
referenciados o inocados en diferentes puntos del algoritmo principal+programa
principal-* Esta t6cnica eita la duplicacin innecesaria de las acciones o
sentencias( es decir 8ue la importancia de las funciones o m6todos radica en 8ue
permite la reutili,acin de cdigos*
ParB'er!+ f!r'ale+0
%on las ariables 8ue se declaran en la cabecera del formato de una funcin o
m6todo* Estos par5metros se utili,an en el cuerpo de la funcin o del m6todo*
ParB'er!+ acuale+0
%on los argumentos utili,ados en el llamado de una funcin o procedimiento*
$ueden ser ariables( constantes o e!presiones de cual8uier tipo( seg9n los
par5metros formales de la funcin o m6todo 8ue se est6 inocando*
Llamado +referencia( inocacin- a una funcin o m6todo* El llamado a una
funcin o m6todo( se reali,a con el nombre de la funcin o el m6todo acompaBado
de sus correspondientes par5metros actuales* Cada e, 8ue se reali,a un
llamado a una funcin o m6todo desde el algoritmo principal se establece
autom5ticamente una correspondencia*
7no a uno( de i,8uierda a derec#a entre los par5metros formales 1 los par5metros
actuales* $or esta ra,n la cantidad de par5metros actuales( debe ser igual a la
cantidad de par5metros formales*
%inta!is4 nomfuncion +lista de par5metros-
Funci!ne+ ! '?!%!+0
DESARROLLO DE SOFTWARE I
.eali,an tareas especAficas* .eciben uno o mas datos 1 deuelen m5!imo un
solo alor +pueden no deoler nada( funciones de tipo acAo-*
'ormato4
Tipo devuelto nomfunc (met)
inicio
RI declaracin de par5metros localesIR
acciones
retorne +e!presin-
ffuncin0Ifin funcion2
tipo deuelto O es el tipo de dato 8ue deuele la funcin o m6todo 1 depende del tipo de
dato de los par5metros formales*
Nomfunc+met- O es el nombre de la funcin o m6todo+un identificador alido-*
Tipo O es un tipo de dato conocido+primitio-
$aram)nO es el nombre del par5metro formal( un identificador alido*
.etorne O palabra reserada 8ue indica 8ue este es el dato 8ue deuele*
E!presin O es el dato deuelto por la funcin o m6todo*
DECLARACI"N DE UNA FUNCI"N O MCTODO0
En declaracin de una funcin o m6todo( se inclu1e el tipo de dato deuelto( el
nombre de la funcin +m6todo-( seguido de su correspondiente lista de par5metros
formales( separados por +3-* A esto se le llama prototipo de la funcin +m6todo-*
Esta se debe reali,ar antes de iniciar el algoritmo o programa( es decir antes de la
palabra reserada inicio* El prototipo de una funcin +m6todo- debe ser igual a la
cabecera de la misma* En el siguiente e&emplo eremos los pasos para la
construccin de seudocdigos utili,ando funciones o m6todos +por conencin
DESARROLLO DE SOFTWARE I
utili,aremos el termino de funcin sin olidar 8ue para la solucin de problemas
son lo mismo-*
F!r'a!0
Tipo deuelto nombre +tipo param:3 tipo param;3***3tipo param)n-
Tipo deuelto4 es el tipo de dato deuelto por la funcin +m6todo-*
Nombre4 es el nombre de la funcin +m6todo-( asignado por el usuario*
Tipo 4 es el tipo de dato primitio del par5metro formal*
$aram:***param)n 4 son los par5metro formales de la funcin*
E:EMPLO4
Desarrolle un algoritmo representado par un seudocdigo 8ue capture un numero
entero 1 calcule el cubo del numero capturado ( 1 del numero capturado mas E(
utili,ando para esta operacin una funcin* /uestre el resultado en el algoritmo
principal*
18 c9lc!lo "el c!bo "e !n n!%ero81
18no%bre+.....................................81
18ec2a+........................................81
inicio
en(ero c!bo (en(ero n)
en(ero n, r
escribir (@in$rese !n n!%ero@)
leer (n)
r c!bo (n)
escribir (@el c!bo "e@ n @es +@ r)
r c!bo(n + 5)
DESARROLLO DE SOFTWARE I
escribir (@el c!bo "e@ n @%as c!a(ro es+@ r )
in
18a2ora "esarrolla%os la !nci:n 81
en(ero c!bo(en(ero P)
inicio
en(ero &
& ( ; Q 4
re(orne ( & )
Oin*!nci:n
NOTA0 Cuando se reali,a un llamado a una funcin o m6todo se e&ecutan los
siguientes pasos4
:- se transfiere el control a la funcin o m6todo 1 los par5metros formales( reciben
el contenido o alor de su correspondiente par5metro actual*
;- %e reali,a o e&ecuta la funcin o m6todo*
<- Cuando se termina la e&ecucin de la funcin o el m6todo( se deuele el
control al punto donde se #i,o la llamada( entregando o retornando ning9n alor o
uno seg9n el caso*
FUNCIONES O MCTODOS DE TIPO -ACDO0
Este tipo de funciones si bien reciben cual8uier numero de par5metros formales(
no deuelen ning9n alor( despu6s de reali,ar su correspondiente accin( por
e&emplo a8uellas funciones en las 8ue solo es necesario llenar un arreglo*
E:ERCICIOS
:- Desarrolle un seudocdigo 8ue capture D> n9meros enteros cada uno con su
respectio e!ponente entero* Calcule la potencia de cada uno par medio de una
funcin( muestre el resultado en el algoritmo principal*
DESARROLLO DE SOFTWARE I
;- Desarrolle una funcin 8ue capture una palabra 1 la muestre inertida+utilice
arreglos-*
<- Desarrolle un algoritmo por medio de funciones 8ue permita calcular el cociente
entero 1 el residuo entre dos n9meros enteros para ello solo puede utili,ar sumas
1 restas sucesias*
E- Desarrolle un algoritmo por medio de funciones 8ue permita reali,ar las
siguientes operaciones sobre un arreglo de :> filas 1 D columnas4 llenar con
n9meros enteros pedidos al usuario( ordenar dic#o arreglo en forma ascendente(
mostrar dic#o arreglo*
=- Escribir una funcin 8ue determine si una cadena de caracteres es palAndromo
+un palAndromo es un te!to 8ue s6 lee igual en sentido directo 1 en inerso4 radar-*
F- Escribir el inerso de un n9mero entero dado +:;<E inerso E<;:-*
K- Escribir una funcin 8ue lea un entero positio 1 a continuacin isualice sus
factores*

You might also like