Вы находитесь на странице: 1из 33

Algoritmos Resueltos

Javier Crocco Mendez

ALGORITMOSRESUELTOS

T1.GIFTEMA1

Buclesytomasdedecision

1.Hacerunpseudocodigoqueimprimalosnumerosdel1al100.
PROGRAMAcontador1
ENTORNO:
c<0
ALGORITMO:
Borrar_pantalla()
MIENTRASc<101HACER
ESCRIBIRc
c<c+1
FINMIENTRAS
FINPROGRAMA

2.Hacerunpseudocodigoqueimprimalosnumerosdel100al0,enorden
decreciente.
PROGRAMAcontador2
ENTORNO:
c<100
ALGORITMO:
Borrar_pantalla()
MIENTRASc<=0HACER
ESCRIBIRc
c<c1
FINMIENTRAS
FINPROGRAMA

3.Hacerunpseudocodigoqueimprimalosnumerosparesentre0y100.
PROGRAMApares
ENTORNO:
c<2
ALGORITMO:
Borrar_pantalla()
MIENTRASc<101HACER
ESCRIBIRc
c<c+2
FINMIENTRAS
FINPROGRAMA

4.Hacerunprogramaqueimprimalasumadelos100primerosnumeros.
PROGRAMAsuma
ENTORNO:
c<1
suma<0
ALGORITMO:
Borrar_pantalla()
MIENTRASc<=100HACER
suma<suma+c
c<c+1
FINMIENTRAS

Algoritmos Resueltos

ESCRIBIR"Lasumadelos100primerosnmeroses:"
ESCRIBIRsuma
FINPROGRAMA

5.Hacerunpseudocdigoqueimprimalosnumerosimpareshastael100yque
imprimacuantosimpareshay.
PROGRAMAimpares
ENTORNO:
c<1
son<0
ALGORITMO:
Borrar_pantalla()
MIENTRASc<100
ESCRIBIRc
c<c+2
son<son+1
FINMIENTRAS
ESCRIBIR"Elnmerodeimpares:"
ESCRIBIRson
FINPROGRAMA

6.Hacerunpseudocodigoqueimprimatodoslosnumerosnaturalesquehay
desdelaunidadhastaunnumeroqueintroducimosporteclado.
PROGRAMAnatural
ENTORNO:
i<0
n<0
ALGORITMO:
Borrar_pantalla()
ESCRIBIR"Introduceunnmero:"
LEERn
MIENTRASi<nHACER
i<i+1
ESCRIBIRi
FINMIENTRAS
FINPROGRAMA

7.Introducirtantasfrasescomoqueramosycontarlas.
PROGRAMAfrases
ENTORNO:
res<"S"
frase<Espacios(30)
c<0
ALGORITMO:
Borrar_pantalla()
MIENTRASres="S"HACER
ESCRIBIR"Frase:"
LEERfrase
c<c+1
ESCRIBIR"Deseasintroducirmsfrases(S/N):"
LEERres
FINMIENTRAS
ESCRIBIR"Elnmerodefrasesintroducidasson:"
ESCRIBIRc
FINPROGRAMA

Javier Crocco Mendez

Algoritmos Resueltos

8.HacerunpseudocodigoquesolonospermitaintroducirSoN.
PROGRAMAsn
ENTORNO:
res<""
ALGORITMO:
Borrar_pantalla()
MIENTRASres<>"S"Yres<>"N"HACER
ESCRIBIR"IntroduceSoN"
LEERres
res<Convertir_maysculas(res)
FINMIENTRAS
FINPROGRAMA

9.Introducirunnumeroporteclado.Quenosdigasiespositivoonegativo.
PROGRAMAsigno
ENTORNO:
num<0
ALGORITMO:
Borrar_pantalla()
ESCRIBIR"Introduceunnmero:"
LEERnum
SInum>=0ENTONCES
ESCRIBIR"espositivo"
SINO
ESCRIBIR"esnegativo"
FINSI
FINPROGRAMA

10.Introducirunnumeroporteclado.Quenosdigasiesparoimpar.
PROGRAMAparidad
ENTORNO:
num<0
ALGORITMO:
Borrar_pantalla()
ESCRIBIR"Introduceunnmero:"
LEERnum
SInum=int(num/2)*2ENTONCES
ESCRIBIR"espar"
SINO
ESCRIBIR"esimpar"
FINSI
FINPROGRAMA

Javier Crocco Mendez

Algoritmos Resueltos

11.Imprimirycontarlosmultiplosde3desdelaunidadhastaunnumeroque
introducimosporteclado.
PROGRAMAmultiplo3
ENTORNO:
i<3
n<0
c<0
ALGORITMO:
Borrar_pantalla()
ESCRIBIR"Nmero:"
LEERn
MIENTRASi<=nHACER
SIi=int(i/3)*3ENTONCES
ESCRIBIRi
c<c+1
FINSI
i<i+1
FINMIENTRAS
ESCRIBIR"Elnmerodemltiplosde3son:"
ESCRIBIRc
FINPROGRAMA

12.Hacerunpseudocodigoqueimprimalosnumerosdel1al100.Quecalculela
sumadetodoslosnumerosparesporunlado,yporotro,ladetodoslos
impares.
PROGRAMApar_impar
ENTORNO:
i<1
sumapar<0
sumaimp<0
ALGORITMO:
Borrar_pantalla()
MIENTRASi<101HACER
SIi=int(i/2)*2ENTONCES
sumapar<sumapar+i
SINO
sumaimp<sumaimp+i
FINSI
i<i+1
FINMIENTRAS
ESCRIBIR"Lasumadelospareses:"
ESCRIBIRsumapar
ESCRIBIR"Lasumadelosimpareses:"
ESCRIBIRsumaimp
FINPROGRAMA

13.Imprimirycontarlosnumerosquesonmultiplosde2ode3quehayentre
1y100.

Javier Crocco Mendez

Algoritmos Resueltos

PROGRAMAmultiplo_2_3
ENTORNO:
i<1
c<0
ALGORITMO:
Borrar_pantalla()
MIENTRASi<101HACER
SIi=int(i/2)*2Oi=int(i/3)*3ENTONCES
c<c+1
ESCRIBIRi
FINSI
i<i+1
FINMIENTRAS
ESCRIBIR"Elnmerodemltiplosesde:"
ESCRIBIRc
FINPROGRAMA

14.Hacerunpseudocodigoqueimprimaelmayoryelmenordeunaseriede
cinconumerosquevamosintroduciendoporteclado.
PROGRAMAmayor_menor
ENTORNO:
con<0
n<0
maximo<0
minimo<99999
ALGORITMO:
Borrar_pantalla()
MIENTRAScon<=5HACER
ESCRIBIR"Nmero:"
LEERn
SIn>maximoENTONCES
maximo=n
FINSI
SIn<minimoENTONCES
minimo<n
FINSI
con<con+1
FINMIENTRAS
ESCRIBIR"Elmayordelosnmeroses:"
ESCRIBIRmaximo
ESCRIBIR"Elmenordelosnmeroses:"
ESCRIBIRminimo
FINPROGRAMA

15.Introducirdosnumerosporteclado.Imprimirlosnumerosnaturalesque
hayentreambosnumerosempezandoporelmspequeo,contarcuantoshayy
cuantosdeellossonpares.Calcularlasumadelosimpares.
PROGRAMApar_impar
ENTORNO:
num1<0
num2<0
aux<0
son<0
pares<0
sumaimpa<0
ALGORITMO:
Borrar_pantalla()
ESCRIBIR"Nmero:"
LEERnum1
ESCRIBIR"Nmero:"
LEERnum2

Javier Crocco Mendez

Algoritmos Resueltos

SInum1>num2ENTONCES
aux<num1
num1<num2
num2<aux
FINSI
MIENTRASnum1>=num2HACER
ESCRIBIRnum1
son<son+1
SInum1=int(num1/2)*2ENTONCES
pares<pares+1
SINO
sumaimpa<sumaimpa+num1
FINSI
num1<num1+1
FINMIENTRAS
ESCRIBIR"Nmerosvisualizados:"
ESCRIBIRson
ESCRIBIR"Pareshay:"
ESCRIBIRpares
ESCRIBIR"Lasumadelosimpareses:"
ESCRIBIRsumaimpa
FINPROGRAMA

TEMA2

Buclesanidadosysubprogramas

16.Imprimirdiezveceslaseriedenumerosdel1al10.
PROGRAMAdiez
ENTORNO:
serie<0
ALGORITMO:
Borrar_pantalla()
MIENTRASserie<=10HACER
numero<1
MIENTRASnumero<=10HACER
ESCRIBIRnumero
numero<numero+1
FINMIENTRAS
serie<serie+1
FINMIENTRAS
FINPROGRAMA

17.Imprimir,contarysumarlosmultiplosde2quehayentreunaseriede
numeros,talqueelsegundoseamayoroigualqueelprimero.
PROGRAMAmultiplo2
ENTORNO:
res<"S"
ALGORITMO:
Borrar_pantalla()
MIENTRASres="S"HACER
c<0
sum<0
num1<0
num2<999
ESCRIBIR"Nmero:"
LEERnum1
ESCRIBIR"Nmeromayorqueelanterior"
MIENTRASnum1>=num2HACER
LEERnum2

Javier Crocco Mendez

Algoritmos Resueltos

FINMIENTRAS
num1<num1+1
MIENTRASnum1<=num21HACER
SInum1=int(num1/2)*2ENTONCES
ESCRIBIRnum1
c<c+1
sum<sum+num1
FINSI
num1<num1+1
FINMIENTRAS
ESCRIBIR"Nmerodemltiplosde2:"
ESCRIBIRc
ESCRIBIR"Susumaes:"
ESCRIBIRsum
res<Espacios(1)
MIENTRASres<>"S"Yres<>"N"HACER
ESCRIBIR"Otraseriedenmeros(S/N):"
LEERres
res<Convertir_maysculas(res)
FINMIENTRAS
FINMIENTRAS
FINPROGRAMA

18.Hacerunpseudocodigoquecuentelasvecesqueapareceunadeterminada
letraenunafrasequeintroduciremosporteclado.
PROGRAMAletra
ENTORNO:
frase<Espacios(30)
letra<Espacios(1)
longitud<0
a<0
res<"S"
ALGORITMO:
MIENTRASres="S"HACER
Borrar_pantalla()
ESCRIBIR"Introduceunafrase:"
LEERfrase
longitud<Hallar_longitud(frase)
i<1
ESCRIBIR"Letraabuscar:"
LEERletra
MIENTRASi<=longitudHACER
SIletra=Caracter(frase,i,1)ENTONCES
a<a+1
FINSI
i<i+1
FINMIENTRAS
Borrar_pantalla()
ESCRIBIR"Elnmerodevecesqueaparecelaletra"
ESCRIBIRletra
ESCRIBIR"enlafrase"
ESCRIBIRfrase
ESCRIBIR"esde"
ESCRIBIRa
res<Espacios(1)
MIENTRASres<>"S"Yres<>"N"HACER
ESCRIBIR"Deseaintroducirm&aacutesfrases(S/N):"
LEERres
res<Convertir_maysculas(res)
FINMIENTRAS
FINMIENTRAS
FINPROGRAMA

Javier Crocco Mendez

Algoritmos Resueltos

19.Hacerunpseudocodigoquesimuleelfuncionamientodeunrelojdigitaly
quepermitaponerloenhora.
PROGRAMAreloj
ENTORNO:
horas<0
minutos<0
segundos<0
res<"S"
ALGORITMO:
Borrar_pantalla()
ESCRIBIR"Horas:"
LEERhoras
ESCRIBIR"Minutos:"
LEERminutos
ESCRIBIR"Segundos:"
LEERsegundos
MIENTRASres="S"HACER
MIENTRAShoras<24HACER
MIENTRASminutos<60HACER
MIENTRASsegundos<60HACER
ESCRIBIRhoras
ESCRIBIRminutos
ESCRIBIRsegundos
segundos<segundos+1
FINMIENTRAS
minutos<minutos+1
segundos<0
FINMIENTRAS
horas<horas+1
minutos<0
FINMIENTRAS
horas<0
FINMIENTRAS
FINPROGRAMA

20.Calcularelfactorialdeunnumero,mediantesubprogramas.
PROGRAMAfactorial
ENTORNO:
res<"S"
ALGORITMO:
MIENTRASres="S"HACER
Borrar_pantalla()
factorial<1
ESCRIBIR"Nmero:"
LEERnumero
SInumero<0ENTONCES
ESCRIBIR"Notienefactorial"
SINO
HACERCalculos
FINSI
HACERMas
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMACalculos
MIENTRASnumero>1HACER
factorial<factorial*numero
numero<numero1
FINMIENTRAS
HACERImprimir

Javier Crocco Mendez

Algoritmos Resueltos

FINSUBPROGRAMA

SUBPROGRAMAMas
res<""
MIENTRASres<>"S"Yres<>"N"HACER
ESCRIBIR"Deseacalcularm&aacutesfactoriales(S/N):"
LEERres
res<Convertir_maysculas(res)
FINMIENTRAS
FINSUBPROGRAMA

SUBPROGRAMAImprimir
ESCRIBIR"Sufactoriales:"
ESCRIBIRfactorial
FINSUBPROGRAMA

21.Hacerunprogramaquecalculeindependientementelasumadelosparesy
losimparesdelosnumerosentre1y1000,utilizandounswitch.
PROGRAMAsuma
ENTORNO:
par<0
impar<0
sw<0
i<1
ALGORITMO:
Borrar_pantalla()
MIENTRASi<=1000HACER
SIsw=0ENTONCES
impar<impar+i
sw<1
SINO
par<par+i
sw<0
FINSI
i<i+1
FINMIENTRAS
ESCRIBIR"Lasumadelospareses:"
ESCRIBIRpar
ESCRIBIR"Lasumadelosimpareses:"
ESCRIBIRimpar
FINPROGRAMA

TEMA3

Presentacionenpantallaycabeceras

22.Introducirunafraseporteclado.Imprimirlacincovecesenfilas

Javier Crocco Mendez

Algoritmos Resueltos

consecutivas,perocadaimpresionirdesplazadacuatrocolumnashaciala
derecha.
PROGRAMAfrase
ENTORNO:
frase<Espacios(30)
ALGORITMO:
Borrar_pantalla()
EN5,15ESCRIBIR"Frase:"
EN5,22LEERfrase
fi<8
co<15
veces<0
MIENTRASveces<=5HACER
ENfi,coESCRIBIRfrase
veces<veces+1
co<co+4
fi<fi+1
FINMIENTRAS
FINPROGRAMA

23.Hacerunpseudocodigoqueimprimalosnmerosdel0al100,controlando
lasfilasylascolumnas.
PROGRAMAnumeros
ENTORNO:
c<0
ALGORITMO:
Borrar_pantalla()
EN5,20ESCRIBIR"Losnmerosdel0al100son:"
fi<7
col<5
MIENTRASc<101HACER
ENfi,colESCRIBIRc
c<c+1
col<col+4
SIcol>75ENTONCES
fi<fi+2
col<5
FINSI
FINMIENTRAS
FINPROGRAMA

24.Comprobarsiunnumeromayoroigualquelaunidadesprimo.
PROGRAMAprimo
ENTORNO:
res<"S"
ALGORITMO:
MIENTRASres="S"HACER
Borrar_pantalla()
numero<0
sw<0
MIENTRASnumero<1HACER
EN8,10ESCRIBIR"Nmero:"
EN8,18LEERnumero
FINMIENTRAS
i<numero1
MIENTRASi>1Ysw<>1HACER
SInumero=Int(numero/i)*iENTONCES
sw=1
SINO

Javier Crocco Mendez

Algoritmos Resueltos

i<i1
FINSI
FINMIENTRAS
SIsw=1ENTONCES
EN10,10ESCRIBIR"noesprimo"
SINO
EN10,10ESCRIBIR"sesprimo"
FINSI
HACERMas
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMAMas
res<""
MIENTRASres<>"S"Yres<>"N"HACER
ESCRIBIR"Deseaintroducirmsnmeros(S/N):"
LEERres
res<Convertir_mayusculas(res)
FINMIENTRAS
FINSUBPROGRAMA

25.Introducirunnumeromenorde5000ypasarloanumeroromano.
PROGRAMAromano
ENTORNO:
res<"S"
ALGORITMO:
MIENTRASres="S"HACER
Borrar_pantalla()
num<0
MIENTRASnum<1Onum>5000HACER
EN8,10ESCRIBIR"Nmero:"
EN8,18ESCRIBIRnum
FINMIENTRAS
col<15
MIENTRASnum>=1000HACER
EN15,colESCRIBIR"M"
num<num1000
col<col+1
FINMIENTRAS
SInum>=900ENTONCES
EN15,colESCRIBIR"CM"
num<num900
col<col+2
FINSI
SInum>=500ENTONCES
EN15,colESCRIBIR"D"
num<num500
col<col+1
FINSI
MIENTRASnum>=100HACER
EN15,colESCRIBIR"C"
num<num100
col<col+1
FINMIENTRAS
SInum>=90ENTONCES
EN15,colESCRIBIR"XC"
num<num90
col<col+2
FINSI
SInum>=50ENTONCES
EN15,colESCRIBIR"L"
num<num50
col<col+1

Javier Crocco Mendez

Algoritmos Resueltos

FINSI
SInum>=40ENTONCES
EN15,colESCRIBIR"XL"
num<num40
col<col+2
FINSI
MIENTRASnum>=10HACER
EN15,colESCRIBIR"X"
num<num10
col<col+1
FINMIENTRAS
SInum=9ENTONCES
EN15,colESCRIBIR"IX"
num<num9
col<col+2
FINSI
SInum>=5ENTONCES
EN15,colESCRIBIR"V"
num<num5
col<col+1
FINSI
SInum>=4ENTONCES
EN15,colESCRIBIR"IV"
num<num4
col<col+2
FINSI
MIENTRASnum>0HACER
EN15,colESCRIBIR"I"
num<num1
col<col+1
FINMIENTRAS
HACERMas
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMAMas
res<""
MIENTRASres<>"S"Yres<>"N"HACER
ESCRIBIR"Deseaintroducirmsnmeros(S/N):"
LEERres
res<Convertir_mayusculas(res)
FINMIENTRAS
FINSUBPROGRAMA

26.Introducirunafraseporteclado.Imprimirlaenelcentrodelapantalla.
PROGRAMAcentro
ENTORNO:
res<"S"
frase<Espacios(40)
ALGORITMO:
MIENTRASres="S"HACER
Borrar_pantalla()
EN5,15ESCRIBIR"Frase:"
EN5,22LEERfrase
EN12,40Int(Longitud(frase)/2)ESCRIBIRfrase
HACERMas
FINMIENTRAS
FINPROGRAMA

27.Realizarlatablademultiplicardeunnumeroentre0y10.

Javier Crocco Mendez

Algoritmos Resueltos

PROGRAMAtabla
ENTORNO:
num<1
ALGORITMO:
HACERNumero
Borrar_pantalla()
EN5,10ESCRIBIR"Tablademultiplicardelnmero:"
EN5,40LEERnum
i<0
fi<8
MIENTRASi<=10HACER
ENfi,15ESCRIBIRnum
ENfi,19ESCRIBIR"*"
ENfi,23ESCRIBIRi
ENfi,25ESCRIBIR"="
ENfi,29ESCRIBIRnum*i
fi<fi+1
i<i+1
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMANumero
MIENTRASnum<0HACER
Borrar_pantalla()
EN10,25ESCRIBIR"Nmero:"
EN10,33LEERnum
FINMIENTRAS
FINSUBPROGRAMA

TEMA4

Numerosaleatoriosymenus

28.Simularellanzamientodeunamonedaalaireeimprimirsihasalidocara
ocruz.
PROGRAMAmoneda
ENTORNO:
res<"S"
ALGORITMO:
MIENTRASres="S"HACER
Borrar_pantalla()
SIRnd()<=0.5ENTONCES
EN10,35ESCRIBIR"Cara"
SINO
EN10,35ESCRIBIR"Cruz"
FINSI
HACERMas
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMAMas
res<Espacios(1)
MIENTRASres<>"S"Yres<>"N"HACER
EN20,30ESCRIBIR"Mslanzamientos(S/N):"
EN20,57LEERres
res<Convertir_mayusculas(res)
FINMIENTRAS
FINSUBPROGRAMA

29.Simularcientiradasdedosdadosycontarlasvecesqueentrelosdos
suman10.

Javier Crocco Mendez

Algoritmos Resueltos

PROGRAMAdado
ENTORNO:
c<0
i<0
ALGORITMO:
Borrar_pantalla()
MIENTRASi<101HACER
SIInt(Rnd()*6)+Int(Rnd()*6)+2=10ENTONCES
c<c+1
FINSI
i<i+1
FINMIENTRAS
EN10,20ESCRIBIR"Lasvecesquesuman10son:"
EN10,48ESCRIBIRc
FINPROGRAMA

30.Simularunacarreradedoscaballossicadaunotieneigualprobabilidad
deganar.
PROGRAMAcaballos
ENTORNO:
dibujo<"****"
col1<4
col2<4
ALGORITMO:
Borrar_pantalla()
EN10,col1ESCRIBIRdibujo
EN10,col2ESCRIBIRdibujo
MIENTRAScol1<=75Ycol2<=75HACER
SIRnd()<=0.5ENTONCES
EN10,col1ESCRIBIREspacios(4)
col1<col1+4
EN10,col1ESCRIBIRdibujo
SINO
EN12,col2ESCRIBIREspacios(4)
col2<col2+4
EN12,col2ESCRIBIRdibujo
FINSI
FINMIENTRAS
EN16,20ESCRIBIR"Elganadoreselcaballonmero:"
SIcol1>=75ENTONCES
EN16,54ESCRIBIR"1"
SINO
EN16,54ESCRIBIR"2"
FINSI
FINPROGRAMA

31.Introducirdosnymerosportecladoymedianteunmenu,calculesusuma,su
resta,sumultiplicacionosudivision.
PROGRAMAmenu1
ENTORNO:
op<0
ALGORITMO:
EN10,20ESCRIBIR"Nmero:"
EN10,29LEERn1
EN12,20ESCRIBIR"Nmero:"
EN12,29LEERn2
MIENTRASop<>5HACER
op<0
Borrar_pantalla()

Javier Crocco Mendez

Algoritmos Resueltos

EN6,20ESCRIBIR"Mendeopciones"
EN10,25ESCRIBIR"1.Suma"
EN12,25ESCRIBIR"2.Resta"
EN14,25ESCRIBIR"3.Multiplicacin"
EN16,25ESCRIBIR"4.Divisin"
EN18,25ESCRIBIR"5.Salirdelprograma"
EN22,25ESCRIBIR"Elijaopcin:"
EN22,39LEERop
Borrar_pantalla()
HACERCASO
CASOop=1
EN10,20ESCRIBIR"Susumaes:"
EN10,33ESCRIBIRn1+n2
Pausa()
CASOop=2
EN10,20ESCRIBIR"Surestaes:"
EN10,33ESCRIBIRn1n2
Pausa()
CASOop=3
EN10,20ESCRIBIR"Sumultiplicacines:"
EN10,33ESCRIBIRn1*n2
Pausa()
CASOop=4
EN10,20ESCRIBIR"Sudivisines:"
EN10,33ESCRIBIRn1/n2
Pausa()
FINCASO
FINMIENTRAS
FINPROGRAMA

32.Hacerunprogramaquenospermitaintroducirunnumeroportecladoysobre
elserealicenlassiguientesoperaciones:comprobarsiesprimo,hallar
sufactorialoimprimirsutablademultiplicar.
PROGRAMAmenu2
ENTORNO:
op<0
ALGORITMO:
EN10,20ESCRIBIR"Nmero:"
EN10,29LEERn
MIENTRASop<>4HACER
op<0
Borrar_pantalla()
EN6,30ESCRIBIR"Mendeopciones"
EN10,25ESCRIBIR"1.Comprobarsiesprimo"
EN12,25ESCRIBIR"2.Hallarsufactorial"
EN14,25ESCRIBIR"3.Tablademultiplicar"
EN16,25ESCRIBIR"4.Salirdelprograma"
EN22,25ESCRIBIR"Elijaopcin:"
EN22,39LEERop
HACERCASO
CASOop=1
HACERPrimo
CASOop=2
HACERFactorial
CASOop=3
HACERTabla
FINCASO
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMAPrimo
sw<0
i<n1

Javier Crocco Mendez

Algoritmos Resueltos

MIENTRASi>1Ysw<>1HACER
SIn=Int(n/i)*iENTONCES
sw<1
SINO
i<i1
FINSI
FINMIENTRAS
Borrar_pantalla()
SIsw=1ENTONCES
EN10,10ESCRIBIR"noesprimo"
SINO
EN10,10ESCRIBIR"sesprimo"
FINSI
Pausa()
FINSUBPROGRAMA

SUBPROGRAMAFactorial
fac<1
Borrar_pantalla()
SIn<0ENTONCES
EN10,10ESCRIBIR"Notienefactorial"
SINO
MIENTRASn>1HACER
fac<fac*n
n<n1
FINMIENTRAS
EN10,10ESCRIBIR"Sufactoriales:"
EN10,27ESCRIBIRfac
FINSI
Pausa()
FINSUBPROGRAMA

SUBPROGRAMATabla
i<0
fi<10
Borrar_pantalla()
MIENTRASi<=10HACER
EN8,10ESCRIBIR"Tablademultiplicar"
ENfi,10ESCRIBIRn
ENfi,15ESCRIBIR"*"
ENfi,20ESCRIBIRi
ENfi,25ESCRIBIR"="
ENfi,30ESCRIBIRn*i
i<i+1
FINMIENTRAS
Pausa()
FINSUBPROGRAMA

TEMA4

Arraysunidimensionales

33.Crearunarrayunidimensionalde20elementosconnombresdepersonas.
Visualizarloselementosdelalistadebiendoircadaunoenunafila
distinta.
PROGRAMAnombres
ENTORNO:
DIMENSIONAdatos[20]
i<1
ALGORITMO:
Borrar_pantalla()
fi<10
MIENTRASi<21HACER

Javier Crocco Mendez

Algoritmos Resueltos

ENfi,10ESCRIBIR"Nombre:"
ENfi,18LEERdatos[i]
i<i+1
FINMIENTRAS
Borrar_pantalla()
i<1
fi<3
EN1,20ESCRIBIR"Elementosdelalista"
MIENTRASi<21HACER
ENfi,28ESCRIBIRdatos[i]
fi<fi+1
i<i+1
FINMIENTRAS
FINPROGRAMA

34.Hacerunprogramaquelealascalificacionesdeunalumnoen10
asignaturas,lasalmaceneenunvectorycalculeeimprimasumedia.
PROGRAMAnotamedia
ENTORNO:
DIMENSIONAnotas[10]
suma<0
media<0
ALGORITMO:
Borrar_pantalla()
fi<7
PARAiDESDE1HASTA10HACER
ENfi,15ESCRIBIR"Nota"
ENfi,20ESCRIBIRi
ENfi,21ESCRIBIR":"
ENfi,23LEERnotas[i]
fi<fi+1
FINPARA
PARAiDESDE1HASTA10HACER
suma<suma+notas[i]
FINPARA
media<suma/10
EN20,20ESCRIBIR"Notamedia:"
EN20,32ESCRIBIRmedia
FINPROGRAMA

35.Usandoelsegundoejemplo,hacerunprogramaquebusqueunanotaenel
vector.
PROGRAMAbuscar
ENTORNO:
i<0
num<0
ALGORITMO:
Borrar_pantalla()
ESCRIBIR"Notaabuscar:"
LEERnum
ITERAR
i<i+1
SInotas[i]=numOi=10ENTONCES
SALIR
FINSI
FINITERAR
SInotas[i]=numENTONCES
ESCRIBIR"Encontradoenposici&oacuten:"
ESCRIBIRi
SINO

Javier Crocco Mendez

Algoritmos Resueltos

ESCRIBIR"Noexisteesanota"
FINSI
FINPROGRAMA

TEMA5

Arraysbidimensionales

36.Generarunamatrizde4filasy5columnasconnumerosaleatoriosentre1
y100,eimprimirla.
PROGRAMAmatriz
ENTORNO:
DIMENSIONARA[4,5]
i<1
fi<10
co<15
ALGORITMO:
Borrar_pantalla()
EN6,25ESCRIBIR"Elementosdelamatriz"
MIENTRASi<=4HACER
j<1
MIENTRASj<=5HACER
A[i,j]<Int(Rnd()*100)+1
ENfi,coESCRIBIRA[i,j]
co<co+5
j<j+1
FINMIENTRAS
co<15
fi<fi+2
i<i+1
FINMIENTRAS
FINPROGRAMA

37.Generarunamatrizde4filasy5columnasconnmerosaleatoriosentre1
y100,yhacersumatriztranspuesta.
PROGRAMAtranspuesta
ENTORNO:
DIMENSIONARA[4,5]
DIMENSIONARB[5,4]
fi<8
co<10
fit<8
cot<40
i<1
ALGORITMO:
Borrar_pantalla()
EN6,15ESCRIBIR"Matrizuno"
EN6,45ESCRIBIR"Transpuesta"
MIENTRASi<=4HACER
j<1
MIENTRASj<=5HACER
A[i,j]<Int(Rnd()*100)+1
B[j,i]<A[i,j]
ENfi,coESCRIBIRA[i,j]
ENfit,cotESCRIBIRB[j,i]
co<co+4
fit<fit+2
j<j+1
FINMIENTRAS
fi<fi+2

Javier Crocco Mendez

Algoritmos Resueltos

co<10
fit<8
cot<cot+4
i<i+1
FINMIENTRAS
FINPROGRAMA

38.Cargarenunamatrizlasnotasdelosalumnosdeuncolegioenfunciondel
numerodecursos(filas)ydelnmerodealumnosporcurso(columnas).
PROGRAMAnotas
ENTORNO:
i<1
j<1
ALGORITMO:
Borrar_pantalla()
EN10,20ESCRIBIR"Nmerodecursos:"
EN10,39LEERM
EN12,20ESCRIBIR"Nmerodealumnos:"
EN12,40LEERN
DIMENSIONARA[M,N]
Borrar_pantalla()
EN2,25ESCRIBIR"Introduccindelasnotas"
MIENTRASi<=MHACER
EN10,25ESCRIBIR"Curso:"
EN10,32ESCRIBIRi
MIENTRASj<=NHACER
EN14,25ESCRIBIR"Alumno:"
EN14,33ESCRIBIRj
EN16,25ESCRIBIR"Nota:"
EN16,32LEERA[i,j]
j<j+1
FINMIENTRAS
i<i+1
FINMIENTRAS
FINPROGRAMA

39.OrdenarunamatrizdeMfilasyNcolumnasporlaprimeracolumna
utilizandoelmtodoSHELL(porinsercion).
PROGRAMAordenar
ENTORNO:
i<1
j<1
fi<10
co<15
M<0
N<0
ALGORITMO:
Borrar_pantalla()
EN10,20ESCRIBIR"Filas:"
EN10,27LEERM
EN12,20ESCRIBIR"Columnas:"
EN12,30LEERN
DIMENSIONARA[M,N]
Borrar_pantalla()
MIENTRASi<=MHACER
MIENTRASj<=NHACER
A[i,j]=Int(Rnd()*100)+1
ENfi,coESCRIBIRA[i,j]
co<co+5
j<j+1

Javier Crocco Mendez

Algoritmos Resueltos

FINMIENTRAS
co<15
fi<fi+2
i<i+1
FINMIENTRAS
salto<Int(M/2)
MIENTRASsalto>=1HACER
sw<1
MIENTRASsw<>0HACER
sw<0
i<1
MIENTRASi<=MsaltoHACER
SIA[i,1]>A[i+salto,1]ENTONCES
HACERCambios
FINSI
i<i+1
FINMIENTRAS
FINMIENTRAS
salto<Int(salto/2)
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMACambios
j<1
MIENTRASj<=NHACER
aux<A[i+salto,j]
A[i+salto,j]<A[i,j]
A[i,j]<aux
j<j+1
FINMIENTRAS
sw<1
FINSUBPROGRAMA

TEMA6

Arraysmultidimensionales

40.Crearunatablade3paginas,4filasy5columnasdondeelprimer
elementovalga1,elsegundo2,eltercero3yassucesivamente,e
imprimirla.
PROGRAMAtabla
ENTORNO:
DIMENSIONARA[3,4,5]
i<1
j<1
k<1
b<0
fi<8
co<12
ALGORITMO:
MIENTRASi<=3HACER
Borrar_pantalla()
ENfi,coESCRIBIR"Elementosdelapgina:"
ENfi,co+24ESCRIBIRi
fi<fi+2
MIENTRASj<=4HACER
MIENTRASk<=5HACER
b<b+1
A[i,j,k]<b
ENfi,coESCRIBIRA[i,j,k]
co<co+4
k<k+1
FINMIENTRAS

Javier Crocco Mendez

Algoritmos Resueltos

fi<fi+2
co<12
j<j+1
FINMIENTRAS
ENfi+2,20ESCRIBIR"PulseINTROparacontinuar..."
Pausa()
i<i+1
FINMIENTRAS
FINPROGRAMA

41.Sedisponedeunatablade5pginas,10filasy20columnas,quese
refierenalcentro,alcursoyalnumerodealumnosdeuncolegio
respectivamente.Imprimirlanotamediaporcursoylanotamediamaximay
sucentrodepertenencia.
PROGRAMAnotas
ENTORNO:
max<1
sum<0
centro<0
i<1
j<1
k<1
fi<10
ALGORITMO:
Borrar_pantalla()
EN8,18ESCRIBIR"Centro"
EN8,38ESCRIBIR"Notamedia"
MIENTRASi<=5HACER
MIENTRASj<=10HACER
MIENTRASk<=20HACER
sum<sum+A[i,j,k]
k<k+1
FINMIENTRAS
j<j+1
FINMIENTRAS
ENfi,20ESCRIBIRi
ENfi,40ESCRIBIRsum/20
fi<fi+2
SIsum/20>maxENTONCES
max<sum/20
centro<i
FINSI
i<i+1
FINMIENTRAS
ENfi+2,20ESCRIBIR"Notamediamxima:"
ENfi+2,39ESCRIBIRmax
ENfi+4,20ESCRIBIR"pertenecealcentro:"
ENfi+4,41ESCRIBIRcentro
FINPROGRAMA

42.Unaempresaguardaenunatablade3x12x4lasventasrealizadasporsus
tresrepresentantesalolargodedocemesesdesuscuatroproductos,
VENTAS[representante,mes,producto].Queremosproyectarelarray
tridimensionalsobreunodedosdimensionesquerepresenteeltotalde
ventas,TOTAL[mes,producto],paralocualsumamoslasventasdecada
productodecadamesdetodoslosrepresentantes.Imprimirambosarrays.
PROGRAMAventas
ENTORNO:
**Lasvariablesestndefinidasencadasubprograma
ALGORITMO:

Javier Crocco Mendez

Algoritmos Resueltos

HACERVolcar
HACERImp_Tres
HACERImp_Dos
FINPROGRAMA

SUBPROGRAMAVolcar
DIMENSIONARTOTAL[12,4]
j<1
MIENTRASj<=12HACER
k<1
MIENTRASk<=4HACER
i<1
suma<0
MIENTRASi<=3HACER
suma<suma+VENTAS[i,j,k]
i<i+1
FINMIENTRAS
TOTAL[j,k]<suma
k<k+1
FINMIENTRAS
j<j+1
FINMIENTRAS
FINSUBPROGRAMA

SUBPROGRAMAImp_Tres
i<1
MIENTRASi<=3HACER
Borrar_pantalla()
fi<8
co<12
ENfi,coESCRIBIR"Ventasdelrepresentante:"
ENfi,co+26ESCRIBIRi
fi<fi+2
j<1
MIENTRASj<=12HACER
k<1
MIENTRASk<=4HACER
ENfi,coESCRIBIRVENTAS[i,j,k]
co<co+4
k<k+1
FINMIENTRAS
fi<fi+2
co<12
j<j+1
FINMIENTRAS
Pausa()
i<i+1
FINMIENTRAS
FINSUBPROGRAMA

SUBPROGRAMAImp_Dos
Borrar_pantalla()
j<1
EN8,20ESCRIBIR"Ventastotales"
fi<10
co<16
MIENTRASj<=12HACER
k<1
MIENTRASk<=4HACER
ENfi,coESCRIBIRTOTAL[j,k]
co<co+4
k<k+1
FINMIENTRAS
fi<fi+2
co<12
j<j+1

Javier Crocco Mendez

Algoritmos Resueltos

FINMIENTRAS
FINSUBPROGRAMA

TEMA7

Ficheros

43.Hacerunprogramaquenospermitadaraltasenelficherosecuencial
DATOS.DAT,cuyoscamposson:DNI,NOMBRE,APELLIDOS,DIRECCIONy
PROVINCIA.
PROGRAMAaltas
ENTORNO:
res<"S"
ALGORITMO:
MIENTRASres="S"HACER
ABRIR"DATOS.DAT"
sw<0
num<0
Borrar_pantalla()
EN5,10ESCRIBIR"D.N.I.:"
EN5,18LEERnum
MIENTRASNOEof()Ysw=0HACER
SIdni=numENTONCES
EN10,10ESCRIBIR"Altaduplicada"
EN15,10ESCRIBIR"PulseINTROparacontinuar"
Pausa()
sw<1
SINO
Siguiente_registro()
FINSI
FINMIENTRAS
SIsw=0ENTONCES
EN7,5ESCRIBIR"Nombre:"
EN9,5ESCRIBIR"Apellidos:"
EN11,5ESCRIBIR"Direcci&oacuten:"
EN13,5ESCRIBIR"Provincia:"
EN7,16LEERnombre
EN9,16LEERapellidos
EN11,16LEERdireccion
EN13,16LEERprovincia
dni<num
Final_fichero()
Escribir_registro()
FINSI
CERRAR"DATOS.DAT"
res<Espacios(1)
HACERMas
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMAMas
MIENTRASres<>"S"Yres<>"N"HACER
ESCRIBIR"Deseamsaltas(S/N):"
LEERres
res<Convertir_mayusculas(res)
FINMIENTRAS
FINSUBPROGRAMA

44.HacerunprogramaquenospermitadarbajasenelficheroDATOS.DAT.
PROGRAMAbajas

Javier Crocco Mendez

Algoritmos Resueltos

ENTORNO:
res<"S"
ALGORITMO:
MIENTRASres="S"HACER
ABRIR"DATOS.DAT"
sw<0
Borrar_pantalla()
EN5,10ESCRIBIR"D.N.I.:"
EN5,18LEERnum
MIENTRASNOEof()HACER
SIdni=numENTONCES
sw<1
SINO
ABRIR"AUX.DAT"
Final_fichero()
Escribir_registro()
FINSI
ABRIR"DATOS.DAT"
Siguiente_registro()
FINMIENTRAS
CERRAR"DATOS.DAT"
CERRAR"AUX.DAT"
SIsw=0ENTONCES
EN12,10ESCRIBIR"Bajainexistente"
EN16,10ESCRIBIR"PulseINTROparacontinuar"
BORRAR"AUX.DAT"
Pausa()
SINO
BORRAR"DATOS.DAT"
RENOMBRAR"AUX.DAT"COMO"DATOS.DAT"
FINSI
res=Espacios(1)
HACERMas
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMAMas
MIENTRASres<>"S"Yres<>"N"HACER
ESCRIBIR"Deseamsbajas(S/N):"
LEERres
res<Convertir_mayusculas(res)
FINMIENTRAS
FINSUBPROGRAMA

45.DadoelficherosecuencialDATOS.DAT,realizarunprogramaquenospermita
realizarmodificacionescuantasvecesdeseemos.
PROGRAMAmodifica
ENTORNO:
res<"S"
ALGORITMO:
MIENTRASres="S"HACER
ABRIR"DATOS.DAT"
sw<0
num<0
nom<Espacios(15)
ape<Espacios(30)
dir<Espacios(20)
pro<Espacios(20)
Borrar_pantalla()
EN5,10ESCRIBIR"D.N.I.:"
EN5,18LEERnum
MIENTRASNOEof()Ysw=0HACER
SIdni=numENTONCES

Javier Crocco Mendez

Algoritmos Resueltos

HACERImprimir
HACERCambios
sw<1
SINO
Siguiente_registro()
FINSI
FINMIENTRAS
SIsw=0ENTONCES
HACERDetener
FINSI
CERRAR"DATOS.DAT"
res<Espacios(1)
HACERMas
FINMIENTRAS
FINPROGRAMA

SUBPROGRAMAMas
MIENTRASres<>"S"Yres<>"N"HACER
ESCRIBIR"Deseamscambios(S/N):"
LEERres
res<Convertir_mayusculas(res)
FINMIENTRAS
FINSUBPROGRAMA

SUBPROGRAMAImprimir
EN7,5ESCRIBIR"Nombre:"
EN9,5ESCRIBIR"Apellidos:"
EN11,5ESCRIBIR"Direcci&oacuten:"
EN13,5ESCRIBIR"Provincia:"
EN7,16LEERnombre
EN9,16LEERapellidos
EN11,16LEERdireccion
EN13,16LEERprovincia
FINSUBPROGRAMA

SUBPROGRAMACambios
nom<nombre
ape<apellidos
dir<direccion
pro<provincia
EN7,16LEERnom
EN9,16LEERape
EN11,16LEERdir
EN13,16LEERpro
nombre<nom
apellidos<ape
direccion<dir
provincia<pro
Escribir_registro()
FINSUBPROGRAMA

SUBPROGRAMADetener
EN10,20ESCRIBIR"Registroinexistente"
EN20,18ESCRIBIR"PulseINTROparacontinuar"
Pausa()
FINSUBPROGRAMA

TEMA8

Informesyrupturasdecontrol

46.TenemoselficherosecuencialDATOS.DATcuyoscamposson:DNI,NOMBRE,
APELLIDOS,DIRECCIONyPROVINCIA.Listarporimpresoratodoslosregistros
cuyaprovinciaseaunadeterminadaqueintroduciremosporteclado.

Javier Crocco Mendez

Algoritmos Resueltos

PROGRAMAprovincia
ENTORNO:
fi<55
c<0
pag<1
pro<Espacios(15)
ALGORITMO:
Borrar_pantalla()
EN10,20ESCRIBIR"Provincia:"
EN10,32LEERpro
ABRIR"DATOS.DAT"
Activar_impresora()
MIENTRASNOEof()HACER
SIprovincia=proENTONCES
SIfi=55ENTONCES
HACERCabecera
FINSI
ENfi,5ESCRIBIRdni
ENfi,15ESCRIBIRnombre
ENfi,35ESCRIBIRapellidos
ENfi,65ESCRIBIRdireccion
fi<fi+1
c<c+1
FINSI
Siguiente_registro()
FINMIENTRAS
SIpag<>1ENTONCES
ENfi+2,20ESCRIBIR"Totaldepersonas:"
ENfi+2,39ESCRIBIRc
FINSI
Activar_pantalla()
CERRAR"DATOS.DAT"
FINPROGRAMA

SUBPROGRAMACabecera
Salto_pagina()
EN2,65ESCRIBIR"Pg.:"
EN2,71ESCRIBIRpag
EN4,10ESCRIBIR"Relacindelaspersonasquevivenenlaprovincia:"
EN4,62ESCRIBIRpro
EN6,7ESCRIBIR"D.N.I."
EN6,18ESCRIBIR"Nombre"
EN6,40ESCRIBIR"Apellidos"
EN6,68ESCRIBIR"Direccin"
EN7,4ESCRIBIR""
fi<9
pag<pag+1
FINSUBPROGRAMA

47.EnelficherosecuencialVENTAS.DAT,estnalmacenadaslasventasdelos
productosduranteelda,cuyoscamposson:NARTyVENTAS.Sedeseahacer
unprogramaquelisteporimpresoratodaslasventasrealizadasduranteel
da.
PROGRAMAventas
ENTORNO:
total<0
uno<0
fi<55
sw<0
aux<0
pag<1
ALGORITMO:

Javier Crocco Mendez

Algoritmos Resueltos

Borrar_pantalla()
Activar_impresora()
ABRIR"VENTAS.DAT"
MIENTRASNOEof()HACER
SIfi=55ENTONCES
HACERCabecera
FINSI
SIsw=0ENTONCES
aux<nart
sw<1
FINSI
SInart=auxENTONCES
uno<uno+ventas
SINO
HACERImprimir
uno<0
aux<nart
uno<ventas
FINSI
Siguiente_registro()
FINMIENTRAS
HACERImprimir
ENfi+2,20ESCRIBIR"Unidadesvendidas:"
ENfi+2,39ESCRIBIRtotal
Activar_pantalla()
CERRAR"VENTAS.DAT"
FINPROGRAMA

SUBPROGRAMAImprimir
ENfi,32ESCRIBIRaux
ENfi,42ESCRIBIRtotal
fi<fi+1
total<total+uno
FINSUBPROGRAMA

SUBPROGRAMACabecera
Salto_pagina()
EN2,65ESCRIBIR"Pg.:"
EN2,71ESCRIBIRpag
EN4,20ESCRIBIR"LISTADODELASVENTASDELOSPRODUCTOSALDIA:"
EN4,68ESCRIBIRFecha_sistema()
EN6,30ESCRIBIR"Nmero"
EN6,40ESCRIBIR"Cantidad"
EN7,18ESCRIBIR""
fi<9
pag<pag+1
FINSUBPROGRAMA

48.DadoelficherosecuencialARTICULOS.DAT,cuyoscamposson:NART,
ARTICULO,PVP,STOCKyMINIMO.EnotroficheroVENTAS.DAT,estn
almacenadaslasmodificacionesdelosproductosduranteelda,cuyos
camposson:NART2,VENTASyTIPO.ElcampoTIPOpuedetomarlosvalores0
(venta)y1(compra).Sedeseahacerunprogramaquerealiceuna
actualizacindelficherodeARTICULOSyunlistadoporimpresoradelas
entradasysalidasdelosartculos.
PROGRAMAmodifica
ENTORNO:
entra<0
sale<0
total<0
fi<55
sw<0
aux<0

Javier Crocco Mendez

Algoritmos Resueltos

pag<1
ALGORITMO:
Borrar_pantalla()
Activar_impresora()
ABRIR"ARTICULOS.DAT"
Primer_registro()
ABRIR"SALIDAS.DAT"
Primer_registro()
ABRIR"VENTAS.DAT"
Primer_registro()
SELECCIONAR"VENTAS.DAT"
MIENTRASNOEof()HACER
SIfi=55ENTONCES
HACERCabecompras
FINSI
SIsw=0ENTONCES
aux<nart2
HACERBuscar
sw<1
FINSI
SInart2=auxENTONCES
HACERCalculos
SINO
HACERGrabar
HACERCompra
entra<0
sale<0
aux<nart2
HACERBuscar
HACERCalculos
FINSI
Siguiente_registro()
FINMIENTRAS
HACERGrabar
HACERCompra
SELECCIONAR"SALIDAS.DAT"
fi<55
MIENTRASNOEof()HACER
SIfi=55ENTONCES
HACERCabesal
FINSI
MIENTRASnart3<>nartHACER
SELECCIONAR"ARTICULOS.DAT"
Siguiente_registro()
FINMIENTRAS
aux<nart3
HACERBuscar
HACERSale
SELECCIONAR"SALIDAS.DAT"
Siguiente_registro()
FINMIENTRAS
ENfi+4,55ESCRIBIR"Total:"
ENfi+4,62ESCRIBIRtotal
Activar_pantalla()
Cerrar_ficheros()
BORRAR"SALIDAS.DAT"
FINPROGRAMA

SUBPROGRAMACalculos
SItipo=0ENTONCES
entra<entra+ventas
SINO
sale<sale+ventas
FINSI
FINSUBPROGRAMA

Javier Crocco Mendez

Algoritmos Resueltos

SUBPROGRAMAGrabar
stock<stock+entrasale
SELECCIONAR"ARTICULOS.DAT"
Escribir_registro()
nart3<aux
ventas3<sale
SELECCIONAR"SALIDAS.DAT"
Final_fichero()
Escribir_registro()
FINSUBPROGRAMA

SUBPROGRAMACabecompras
Salto_pagina()
EN2,65ESCRIBIR"Pg.:"
EN2,71ESCRIBIRpag
EN4,20ESCRIBIR"LISTADODELASENTRADASDEARTICULOSALDIA:"
EN4,66ESCRIBIRFecha_sistema()
EN6,18ESCRIBIR"Nmero"
EN6,35ESCRIBIR"Artculo"
EN6,65ESCRIBIR"Cantidad"
EN7,15ESCRIBIR""
fi<9
pag<pag+1
FINSUBPROGRAMA

SUBPROGRAMACompra
ENfi,16ESCRIBIRaux
ENfi,30ESCRIBIRarticulo
ENfi,67ESCRIBIRentra
fi<fi+1
FINSUBPROGRAMA

SUBPROGRAMACabesal
Salto_pagina()
EN2,65ESCRIBIR"Pg.:"
EN2,71ESCRIBIRpag
EN4,20ESCRIBIR"LISTADODESALIDASDEARTICULOSALDIA:"
EN4,60ESCRIBIRFecha_sistema()
EN6,8ESCRIBIR"Nmero"
EN6,16ESCRIBIR"Artculo"
EN6,40ESCRIBIR"Cantidad"
EN6,54ESCRIBIR"PVP"
EN6,64ESCRIBIR"Importe"
EN7,6ESCRIBIR""
fi<9
pag<pag+1
FINSUBPROGRAMA

SUBPROGRAMASale
Salto_pagina()
SIstock<minimoENTONCES
ENfi,4ESCRIBIR"*"
FINSI
ENfi,6ESCRIBIRnart3
ENfi,14ESCRIBIRarticulo
ENfi,40ESCRIBIRventas
ENfi,54ESCRIBIRpvp
ENfi,65ESCRIBIRventas*pvp
total<total+ventas*pvp
fi<fi+1
FINSUBPROGRAMA

SUBPROGRAMABuscar
MIENTRASnart<>auxHACER
SELECCIONAR"ARTICULOS.DAT"
Siguiente_registro()

Javier Crocco Mendez

Algoritmos Resueltos

FINMIENTRAS
FINSUBPROGRAMA

TEMA9

Organizacinaleatoriaysecuencial

49.HacerunpseudocodigoquenospermitadaraltasenelficheroDATOS.DATde
organizacindirecta,controlandolasaltasduplicadas.Loscamposson:
DNI,NOMBRE,APELLIDOSYPUNTEROparaambosarchivos.
Algoritmo(dn)=
Blanco:grabamoselregistroenesaposicinyponemoselpunteroa
cero.
Cero:comprobamosculeselvalordelcampopuntero.Siescero,
grabamoselregistroenesaposicin(nohaysinonimos)ysiesdistinto
decero,comparamoselvalorconelcampoDNI,sisoniguales,alta
duplicadaydejamosdeleer,ysinosoniguales,introducimoselresto
delainformacion.
Distintodecero:hayunregistrograbadoenesaposicion.Siesigual
aldatointroducido,altaduplicada,ysinosoniguales,comprobamosel
valordelpuntero,siescerograbamoselregistro,ysinoescero,si
esigualalcampoDNI,altaduplicadaysinosegrabalainformacionen
elarchivoSINONIMOS.DAT.

PROGRAMAaltas
ENTORNO:
res<"S"
ALGORITMO:
ABRIR"DATOS.DAT"
ABRIR"SINONIMOS.DAT"
MIENTRASres="S"HACER
dn<0
nom<Espacios(15)
ape<Espacios(30)
dir<Espacios(35)
aux<Espacios(2)
hueco<Espacios(2)
swh<0
sw<0
num<0
donde<0
i<0
Borrar_pantalla()
EN10,20ESCRIBIR"D.N.I.:"
EN10,29LEERdn
num<Algoritmo(dn)
SELECCIONAR"DATOS.DAT"
LEERnum
SIdni=Str(dn)ENTONCES
HACERAlta_duplicada
SINO
SIVal(dni)=0Odni=Espacios()ENTONCES
swh<1
FINSI
SIVal(puntero)=0Opuntero=Espacios()ENTONCES
HACERIntroducir
puntero<Str(0)
GRABARnum
SINO
HACERBuscar

Javier Crocco Mendez

Algoritmos Resueltos

SIsw=0ENTONCES
HACERIntroducir
SIswh=1ENTONCES
GRABARnum
SINO
HACEREncontrar_sitio
SELECCIONAR"SINONIMOS.DAT"
GRABAR1
puntero<Str(donde)
SIi=0ENTONCES
SELECCIONAR"DATOS.DAT"
GRABARnum
SINO
SELECCIONAR"SINONIMOS.DAT"
GRABARVal(aux)
FINSI
puntero<Str(0)
SELECCIONAR"SINONIMOS.DAT"
GRABARdonde
FINSI
SINO
HACERAlta_duplicada()
FINSI
FINSI
FINSI
HACERMas
FINMIENTRAS
Cerrar_ficheros()
FINPROGRAMA

SUBPROGRAMAIntroducir
EN12,20ESCRIBIR"Nombre:"
EN14,20ESCRIBIR"Apellidos:"
EN16,20ESCRIBIR"Direccin:"
EN12,29LEERnom
EN14,32LEERape
EN16,32LEERdir
FINSUBPROGRAMA

SUBPROGRAMAEncontrar_sitio
SELECCIONAR"SINONIMOS.DAT"
LEER1
SIVal(nombre)<>0Ynombre<>Espacios()ENTONCES
donde<Val(nombre)
LEERdonde
hueco<Val(nombre)
nombre<Str(hueco)
SINO
donde<Val(dni)+1
dni<Str(donde)
FINSI
FINSUBPROGRAMA

SUBPROGRAMABuscar
aux<puntero
i<0
MIENTRASVal(puntero)<>0Ysw=0HACER
SELECCIONAR"SINONIMOS.DAT"
LEERVal(puntero)
SIdni=Str(dn)ENTONCES
EN20,10ESCRIBIR"Altaduplicada"
Pausa()
sw<1
SINO
SIVal(puntero)<>0ENTONCES
i<i+1

Javier Crocco Mendez

Algoritmos Resueltos

aux<puntero
FINSI
FINSI
FINMIENTRAS
FINSUBPROGRAMA

SUBPROGRAMAAlta_duplicada
EN20,10ESCRIBIR"Altaduplicada"
Pausa()
FINSUBPROGRAMA

50.TenemoselficheroDATOS.DAT,queestindexadoporelcampoAPELLIDOS,
cuyoscamposson:DNI,NOMBRE,APELLIDOS,DIRECCIONyPROVINCIA.Hacerun
programaquenospermitalistarporpantallatodoslosregistrosdel
fichero,controlandoelsaltodepginacuandolleguealalneaveinte.
PROGRAMAlistar
ENTORNO:
fi<22
ALGORITMO:
ABRIR"DATOS.DAT"INDICE"APELLIDO"
MIENTRASNOEof()HACER
SIfi=22ENTONCES
HACERCabecera
FINSI
ENfi,2ESCRIBIRdni
ENfi,12ESCRIBIRnombre
ENfi,28ESCRIBIRapellidos
ENfi,55ESCRIBIRdireccion
ENfi,69ESCRIBIRprovincia
fi<fi+1
SIfi=20ENTONCES
EN22,20ESCRIBIR"PulseINTROparacontinuar"
Pausa()
fi<22
FINSI
Siguiente_registro()
FINMIENTRAS
CERRAR"DATOS.DAT"
Cerrar_indices()
FINPROGRAMA

SUBPROGRAMACabecera
Borrar_pantalla()
EN3,4ESCRIBIR"D.N.I."
EN3,20ESCRIBIR"NOMBRE"
EN3,35ESCRIBIR"APELLIDOS"
EN3,60ESCRIBIR"DIRECCION"
EN3,70ESCRIBIR"PROVINCIA"
fi<5
FINSUBPROGRAMA

52.TenemoselficheroDATOS.DATconlamismaestructuraanterior,queesta
indexadoporelcampoDNI.Crearunprogramaquenospermitaconsultarun
registrosiemprequequeramos.
PROGRAMAconsulta
ENTORNO:
res<"S"
ALGORITMO:
ABRIR"DATOS.DAT"INDICE"DNI"
MIENTRASres="S"HACER

Javier Crocco Mendez

Algoritmos Resueltos

num<0
Borrar_pantalla()
EN8,20ESCRIBIR"D.N.I.abuscar:"
EN8,38LEERnum
BUSCARnum
SIEncontrado()ENTONCES
EN10,12ESCRIBIR"Nombre:",nombre
EN12,28ESCRIBIR"Apellidos:",apellidos
EN14,55ESCRIBIR"Direccin:",direccion
EN16,69ESCRIBIR"Provincia:",provincia
SINO
EN12,20ESCRIBIR"Noest"
EN16,20ESCRIBIR"PulseINTROparacontinuar"
Pausa()
FINSI
res<Espacios(1)
HACERMas
FINMIENTRAS
CERRAR"DATOS.DAT"
Cerrar_indices()
FINPROGRAMA

Javier Crocco Mendez

Вам также может понравиться