Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabajo
Prá ctico:Cadenas
Algoritmos y Estructuras de Datos
Pértile Franco Giuliano
1)------------------------------------------------
Algoritmo sin_titulo
leer cad
Escribir Mayusculas(cad)
FinAlgoritmo
2)---------------------------------------------
Algoritmo sin_titulo
leer cad1
leer cad2
si cad1=cad2
SiNo
FinSi
FinAlgoritmo
3)------------------------------
Algoritmo sin_titulo
//cadena menor.
leer cad1
leer cad2
si Longitud(cad1)>Longitud(cad2)
Escribir cad2
SiNo
Escribir cad1
FinSi
FinAlgoritmo
4)----------------------------
Algoritmo sin_titulo
//4. Realizar un programa que permita localizar todas las apariciones de una
leer cad
leer subcad
contador=0
si subcad= subcadena(cad,i,longitud(subcad)+i-1)
contador=contador+1
FinSi
FinPara
Escribir contador
FinAlgoritmo
5)------------------------
subproceso resultado=contar_vocales(caden)
caden=minusculas(caden)
contador=contador+1
FinSi
FinPara
resultado= contador
FinSubProceso
subproceso resultado=espacios(caden)
caden=minusculas(caden)
contador=contador+1
FinSi
FinPara
resultado= contador
FinSubProceso
subproceso resultado=letrasFM(caden)
caden=minusculas(caden)
contador=0
si i=1
si Subcadena(caden,i,i)="f" o Subcadena(caden,i,i)="m"
contador=contador+1
FinSi
FinSi
si Subcadena(caden,i+1,i+1)="f" O Subcadena(caden,i+1,i+1)="m"
contador=contador+1
FinSi
FinSi
FinPara
resultado= contador
FinSubProceso
Algoritmo sin_titulo
leer cad
FinAlgoritmo
6)---------------------------------
subproceso union(cade1,cade2)
Dimension vector(2000)
contador1=0
anterior1=1
letra=Subcadena(cade1,i,i)
si letra=" "
contador1=contador1+1
vector(contador1)=Subcadena(cade1,anterior1,i-1)
anterior1=i+1
FinSi
FinPara
contador1=contador1+1
vector(contador1)=Subcadena(cade1,anterior1,Longitud(cade1))
dimension vector2(2000)
contador2=0
anterior2=1
si letra=" "
contador2=contador2+1
vector2(contador2)=Subcadena(cade2,anterior2,i-1)
anterior2=i+1
FinSi
FinPara
contador2=contador2+1
vector2(contador2)=Subcadena(cade2,anterior2,Longitud(cade2))
Dimension vector_final(2000)
si i<=contador1
comprobacion=0
para j=1 hasta contador1 //busco si el los valores del vector estan en el
final
si vector(i)=vector_final(j)
FinSi
FinPara
vector_final(i)=vector(i)
contador_final=contador_final+1
FinSi
FinSi
FinPara
comprobacion=0
para j=1 hasta contador2 //busco si el los valores del vector estan en el final
si vector2(i)=vector_final(j)
FinSi
FinPara
contador_final=contador_final+1
vector_final(contador_final)=vector2(i)
FinSi
FinPara
Escribir "respuesta"
FinPara
FinSubProceso
Algoritmo sin_titulo
//texto con los caracteres que pertenecen a dos cadenas, pero no repetir
leer cad1
leer cad2
union(cad1,cad2)
FinAlgoritmo
7)------------------------------------------
SubProceso palabras_de_3_vocales(n)
Dimension vector(12345)
Dimension vector_letras(12345)
anterior=1
contador=0
FinPara
//ahora tengo todas las palabras en el vector, tengo que ver cuantas tienen mas de 3
vocales distintas
contador_vocales=0
estadoa=0
estadoi=0
estadoo=0
estadou=0
si vocal="a" y estadoa=0
contador_vocales=contador_vocales+1
FinSi
si vocal="e" y estadoe=0
estadoe=1
contador_vocales=contador_vocales+1
FinSi
si vocal="i" y estadoi=0
estadoi=1
contador_vocales=contador_vocales+1
FinSi
si vocal="o" y estadoo=0
estadoo=1
contador_vocales=contador_vocales+1
FinSi
si vocal="u" y estadou=0
estadou=1
contador_vocales=contador_vocales+1
FinSi
FinPara
FinSi
FinPara
//FinPara
FinSubProceso
letra=subcadena(cad,i,i)
anterior=i+1
FinSi
FinPara
vector_letras(contador)=subcadena(vector(j),anterior,Longitud(vector(j)))
FinSubProceso
Algoritmo sin_titulo
leer n
palabras_de_3_vocales(n)
FinAlgoritmo
8)----------------------------------------------
SubProceso palindroma(cade)
dimension vector(10000)
vector(i)=Subcadena(cade,i,i)
FinPara
palin=1
i=Longitud(cade)
FinSi
FinPara
si palin=1
SiNo
FinSi
FinSubProceso
Algoritmo sin_titulo
leer cad
palindroma(cad)
FinAlgoritmo
9)-----------------------------------------------
SubProceso invertir(cade)
dimension vector(10000)
vector(i)=Subcadena(cade,i,i)
FinPara
FinPara
FinSubProceso
Algoritmo sin_titulo
leer cad
invertir(cad)
FinAlgoritmo
10)------------------------------------------
si nombres(j)>nombres(j+1)
aux=nombres(j+1)
nombres(j+1)=nombres(j)
nombres(j)=aux
FinSi
FinPara
FinPara
// Escribir nombres(i)
//FinPara
anterior=1
para i=1 hasta Longitud(nombres(j))
letra=Subcadena(nombres(j),i,i)
si letra=" "
contador_espacios=contador_espacios+1
FinSi
si contador_espacios=1
anterior=i
FinSi
FinPara
si contador_espacios=2
lista(j,1)=Subcadena(nombres(j),1,anterior)
lista(j,2)=Subcadena(nombres(j),anterior+1,Longitud(nombres(j)))
FinSi
FinPara
// FinPara
// Escribir ""
//FinPara
//busco si la primera columna esta en alguna lado de la fila
repitencia=0
para j=1 hasta n-1 //me fijo si los apellidos son iguales en algun momentos
si lista(i,1)=lista(j+1,1)
repitencia=repitencia+1
FinSi
FinPara
si repitencia<>0
si lista(i,1)=lista(k+1,1)
si longitud(lista(i,2))<Longitud(lista(k+1,2))
aux=lista(i,2)
lista(i,2)=lista(k+1,2)
lista(k+1,2)=aux
FinSi
FinSi
FinPara
FinSi
FinPara
Escribir "---------"
FinPara
Escribir ""
FinPara
FinSubProceso
Algoritmo sin_titulo
//número de caracteres.
dimension nombres(1000)
leer n
Escribir "ingrese los ",n," nombres de la siguiente forma, apellido 1, apellido 2 , y nombre"
para i=1 hasta n
Leer nombres(i)
FinPara
ordenar(nombres,n)
FinAlgoritmo
11)---------------------------------
anterior=1
contador=0
letra=Subcadena(cad,i,i)
si letra=" "
contador=contador+1
vector(contador)=Subcadena(cad,anterior,i-1)
anterior=i+1
FinSi
si i=Longitud(cad)
contador=contador+1
vector(contador)=Subcadena(cad,anterior,Longitud(cad))
FinSi
FinPara
FinSubProceso
SubProceso cantidad_letra_y(vector,contador)
contador_de_y=0
para i=1 hasta contador //me dijo la cantidad de palabras con la letra y
si Subcadena(vector(i),j,j)="y"
FinSi
FinPara
FinPara
FinSubProceso
estado=0
si Subcadena(vector(i),j,j)="y"
contador_y=contador_y+1
FinSi
FinPara
FinSi
FinSi
contador_y=maximo_y
FinSi
FinPara
maximo_y=0
FinPara
FinSubProceso
SubProceso contador_y_por_palabras(vector,contador_y,contador)
dimension vector_contador_de_y(contador_y)
si contador_y <>0
si Subcadena(vector(i),j,j)="y"
FinSi
FinPara
vector_contador_de_y(cantidad_de_y)=vector_contador_de_y(cantidad_de_y)+1
FinSi
cantidad_de_y=0 //reinicio la variable aca, para que pase a la otra palabra
con 0 cantidad de y
FinPara
FinSi
si contador_y<>0
FinPara
FinSi
FinSubProceso
Algoritmo sin_titulo
//contienen una sola vez, dos veces, tres veces y así sucesivamente el
//carácter indicado.
Dimension vector(123123)
contador=0
contador_y=0
leer cad
cortar_en_letras(cad,vector,contador)
Escribir ""
cantidad_letra_y(vector,contador)
Escribir ""
mayor_palabra_con_y(vector,contador_y,contador)
Escribir ""
contador_y_por_palabras(vector,contador_y,contador)
FinAlgoritmo
12)------------------------------------
SubProceso cuadrado(cade)
x=longitud(cade)-3
para i=1 hasta longitud(cade)-1 //luego comienzo con la cuarta letra, seria la "s" y
asi
FinSi
si j=1
Escribir Subcadena(cade,longitud(cade)-x,(Longitud(cade)-
x)) Sin Saltar
x=x-1
FinSi
si j>1 y j<Longitud(cade)
FinSi
Escribir Subcadena(cade,longitud(cade)-i,longitud(cade)-i)
sin Saltar
FinSi //escribor la ultima palabra de la cad,-1 , para que se lea de
abajo hacia arriba
FinSi
Escribir Subcadena(cade,Longitud(cade)+1-j,Longitud(cade)+1-j)
Sin Saltar
FinSi
FinPara
Escribir ""
FinPara
FinSubProceso
Algoritmo sin_titulo
leer cad
cuadrado(cad)
FinAlgoritmo
13)-----------------------
SubProceso anagrama(cade1,cade2)
Dimension vector1(2000)
Dimension vector2(2000)
si subcadena(cade1,i,i)<>" "
contador1=contador1+1
vector1(contador1)=subcadena(cade1,i,i)
FinSi
FinPara
si subcadena(cade2,i,i)<>" "
contador2=contador2+1
vector2(contador2)=subcadena(cade2,i,i)
FinSi
FinPara
para i=1 hasta contador1//ve si la primera letra del vector se encuentra en la del
segundo y asi
existencia=0
existencia=1
FinSi
FinPara
si existencia=0
i=contador1
FinSi
FinPara
sino
FinSi
si existencia=1
FinSi
FinSubProceso
Algoritmo sin_titulo
//13. ver si una palabra es anagrama de otra
leer cad1
leer cad2
anagrama(cad1,cad2)
FinAlgoritmo
14)------------------------------
palabras(1)="cancer"
palabras(2)="rusia"
palabras(3)="argelia"
palabras(4)="escudo"
palabras(5)="espada"
palabras(6)="lanza"
palabras(7)="granada"
palabras(8)="ametralladora"
palabras(9)="rifle"
palabras(10)="mortero"
palabras(11)="escopeta"
palabras(12)="automatica"
palabras(12)="cadencia"
palabras(13)="distancia"
palabras(14)="tanque"
palabras(15)="helicoptero"
palabras(16)="avion"
palabras(17)="caza"
palabras(18)="aerotransportador"
palabras(19)="teletransportador"
palabras(20)="manco"
palabras(21)="inodoro"
palabras(22)="libro"
palabras(23)="jabon"
palabras(24)="dentrifrico"
palabras(25)="israel"
FinSubProceso
objet(i)=Subcadena(objetivo,i,i)
FinPara
puntaje=0
Repetir
estado=0
si jugador(i)=""
SiNo
FinSi
FinPara
Escribir ""
Escribir ""
Escribir "ingrese letra"
leer letra
si letra= objet(i)
jugador(i)=letra
estado=1
FinSi
FinPara
puntaje=puntaje+Aleatorio(1000,10000)
si estado=0
intento=intento+1
FinSi
comprobacion=1
si objet(i)<>jugador(i)
comprobacion=0
FinSi
FinPara
Escribir ""
si comprobacion= 1 y intento<8
intento=8
Escribir "ganaste"
FinSi
Escribir "Puntos:",puntaje
si intento=8 y comprobacion=0
Escribir "perdiste"
FinSi
FinSubProceso
Algoritmo sin_titulo
Dimension palabras(25)
Dimension adivinado(12312)
palabras_aleatorias(palabras)
estado=0
objetivo=palabras(Aleatorio(1,25))
//Borrar Pantalla
juego(palabras,estado,adivinado,objetivo)
FinAlgoritmo
15)---------------------------------------
subproceso resultado=reemplazo(cad,pri,seg)
dimension vector(1234)
vector(i)=Subcadena(cad,i,i)
FinPara
si vector(i)=pri
vector(i)=seg
FinSi
FinPara
resultado=resultado+vector(i)
FinPara
FinSubProceso
Algoritmo sin_titulo
//Y modifique a la cadena pasada de tal manera que cada ocurrencia del
leer cad
leer pri
leer seg
Escribir reemplazo(cad,pri,seg)
FinAlgoritmo
16).-----------------------------------
subproceso mejorar(cad)
si estado=0
letra=subcadena(cad,i,i)
cad=subcadena(cad,j+1,longitud(cad))
SiNo
estado=1
FinSi
FinPara
FinSi
cad=subcadena(cad,1,i)+subcadena(cad,i+2,longitud(cad))
i=i-1 //le resto uno a la I para que compara de nuevo, por si hay mas de 3
espacios si hay dos funca joya pero con mas de 3 le pongo eso y funka
FinSi
//me fijo al final si hay espacios en blanco, esto es independiente del PARA
principal
para k=1 hasta Longitud(cad)
letrilla=Subcadena(cad,Longitud(cad),Longitud(cad))
si letrilla=" " //me fijo si al final hay un espacio y si lo hay lo saco de la cad
cad=Subcadena(cad,1,Longitud(cad)-1)
FinSi
FinPara
FinPara
Escribir cad //,"<--" //si saco esas barras comprueba si funka al final o no
FinSubProceso
Algoritmo sin_titulo
//
//cuando:
leer cad
mejorar(cad)
FinAlgoritmo
17)-----------------------------
SubProceso acomodar(cad)
dimension vector(1123)
x=Longitud(cad)
vector(i)=subcadena(cad,i,i)
FinPara
Dimension vectoraux(4235)
vectoraux(i)=vector(i)
FinSi
si vector(i)<>" " y vector(i+1)<>" " //me fijo si no son espacios los dos
vectoraux(i)=vector(i)
FinSi
si vector(i)<>" " y vector(i+1)=" " //me fijo si es distinto del espacio y despues
espacio
vectoraux(i)=vector(i)
//porque tiene que quedar un espacio en blanco siempre que alla mas de
2, asi que si en el final hay mas de 2 deberia quedar 1, segun el enunciado
FinSi
FinPara
cad=""
cad =cad+vectoraux(i)
FinPara
Escribir cad,"<-"
FinSubProceso
Algoritmo sin_titulo
//17. Se pide construir un módulo que tenga como entrada una cadena de
//(' ','a','h',' ',' ',' ','c'), la cadena resultante debe ser (' ','a','h',' ','c') (usar
leer cade
acomodar(cade)
FinAlgoritmo
18)-------------------------
leer vector(i)
FinPara
FinSubProceso
para k=1 hasta n-1 //si son mas de 3 espacios va a ver 2 en blancos luego de la primera
permutacion y con esto se va a solucionar con una segunda vuelta o las que sean necesarias
vector(j)=vector(j+1)
vector(j+1)=aux
FinPara
FinSi
FinPara
FinPara
//para solucionar el problema de que al final me mete todos los espacios lo contro con
esto
FinSi
FinPara
//Escribir n
FinPara
FinSubProceso
Algoritmo sin_titulo
//(' ','a','h',' ',' ',' ','c'), el vector resultante debe ser (' ','a','h',' ','c')
dimension vector(123123)
leer n
carga(vector,n)
eliminar_doble_espacio(vector,n)
FinAlgoritmo
1-Complementario------------------------
SubProceso anagramas(palabras)
dimension ordenar(1000,1000)
Dimension auxiliar(123123)
ordenar(i,j)=subcadena(palabras(i),j,j)
FinPara
FinPara
//FinPara
Escribir ""
si ordenar(k,j)>ordenar(k,i)
aux=ordenar(k,i)
ordenar(k,i)=ordenar(k,j)
ordenar(k,j)=aux
FinSi
FinPara
FinPara
FinPara
// FinPara
// Escribir ""
//FinPara
auxiliar(i)=auxiliar(i)+ordenar(i,j)
FinPara
FinPara
// Escribir auxiliar(i)
//FinPara
//ahora solo me fijo si lo que esta en cada en el vector, se encuentra en algun otro lado del
mismo
para i=1 hasta 10
auxiliar(j)=""
FinSi
FinPara
FinPara
FinSubProceso
Algoritmo sin_titulo
Dimension palabras(10)
palabras(1)="cava"
palabras(2)="empresa"
palabras(3)="tope"
palabras(4)="torta"
palabras(5)="pote"
palabras(6)="trota"
palabras(7)="vaca"
palabras(8)="acva"
palabras(9)="presaem"
palabras(10)="tepo"
Escribir palabras(i)
FinPara
Escribir ""
Escribir "ANAGRAMAS:"
anagramas(palabras)
FinAlgoritmo