Está en la página 1de 62

lOMoARcPSD|9780745

TF Algoritmos 2017-2 - Nota: 20,00

Algoritmos (Universidad Peruana de Ciencias Aplicadas)

Studocu is not sponsored or endorsed by any college or university


Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

ALGORITMOS (IN220)
Sección: IV41

TRABAJO FINAL:
LIBRERÍA DE FUNCIONES PARA EL MANEJO DE TEXTOS.

Profesor:
GUEVARA PARKER, Hans Christian

Integrantes:
CALDERÓN PÉREZ, Cielo Mihaly (u201612225)
CHOCCE QUISPE, Vanessa Rocío (u201612236)
DALGUERRE LAMAS, Katia Vanessa (u201517115)
HUAMANI ROJAS, Carla Stefany (u201519184)
GUTIÉRREZ HIDALGO, Lessly Dafnner (u201612233)

2017
Resumen:
Una librería de funciones para el manejo de textos es de gran relevancia en los cursos de Lenguaje,
Redacción y Literatura, ya que en ellos se necesita un uso correcto de las palabras, oraciones,
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

expresiones, entre otros. Asimismo, este proyecto va dirigido a empresas encargadas de producir textos,
debido a que en la elaboración de estos ocurren diferentes errores, ya sea de escritura, coherencia, uso
incorrecto de mayúsculas y minúsculas, cohesión, etc.
Por ello, en el presente trabajo se ha elaborado un algoritmo que muestre soluciones a los principales
errores ortográficos como dar a conocer cuando se está aplicando palabras inadecuadas (cambiar estas
palabras por otras), eliminar (oraciones o palabras repetidas), cambiar de mayúscula a minúscula o
viceversa, saber la longitud del texto, insertar palabras nuevas, eliminar espacios en blanco, invertir la
oración para saber si pertenece o no al grupo de palíndromos e incluso para separar las palabras que
estén dentro de un texto u oración. En primer lugar, para la elaboración de esta librería de funciones se ha
identificado y descrito (tipo, rango, valor por defecto, tipo de uso) las variables en estudio. Luego, se buscó
los códigos que se usan para esta librería de funciones en el Visual Basic. Después, se desarrolló el
diagrama de flujo reconociendo cuales son los datos de entrada, proceso, condiciones y los datos de
salida; a partir de ello, se logró obtener el pseudocódigo, Nassi-Shneiderman y finalmente se comprobó en
el Visual Basic.
El principal objetivo de este proyecto es reducir los principales errores ortográficos que pueden cometer
algunas editoriales, periódicos, revistas, empresas publicitarias o hasta medios de comunicación como
noticieros que generalmente van dirigidas a un gran número de personas y tienen gran acogida en la
población. Con este proyecto se busca optimizar el proceso del control de calidad de las empresas que se
encargan de producir textos, por ejemplo, para el caso de las editoriales han lograse busca incrementar
sus ganancias al vender más ejemplares.

Palabras Claves:
Librería de funciones para el manejo de textos.

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

ÍNDICE

1. Introducción
2. Marco Teórico
3. Análisis y diseño de la solución
3.1. Análisis de datos de entrada, salida e intermedios (nombres y tipos de variables, significado, rango de
valores, valores por defecto)
3.2. Modelo matemático (descripción y explicación de las fórmulas empleadas)
3.3. Algoritmo de solución (representación en diagrama de flujo, pseudocódigo ó Diagrama de Nassi-S)

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

1. INTRODUCCIÓN:
En nuestra vida cotidiana, el lenguaje es una facultad fundamental del ser humano, el cual nos permite
comunicarnos para expresar ideas, emociones y sentimientos. Esta comunicación puede adoptar múltiples
formas, las más importantes son la comunicación verbal y la comunicación no verbal. Dentro de la
comunicación verbal se encuentra el lenguaje escrito que es representado mediante publicidades,
periódicos, libros, revistas, etc.
En diferentes ocasiones los diversos textos producidos presentan problemas de redacción. Esto es algo
que afecta a las editoriales, las cuales necesitarían tener un programa que se encargue de corregir estos
errores, que abarcan desde problemas en el uso inadecuado de una palabra, conversión de palabras en
mayúsculas o minúsculas, inserción de textos, depuración de espacios en blanco, contabilización de
palabras, y determinar si una palabra, frase o texto es palíndromo o no.

Para resolver dicho problema aplicamos los conceptos, teorías y prácticas básicas aprendidas en nuestro
curso de Algoritmos, el cual se basa en un método que permite resolver un problema aplicando una
secuencia lógica y finita de instrucciones. Dado un estado inicial y datos de entrada, siguiendo los pasos
sucesivos se llega a un estado final y se obtiene una solución (respuesta solicitada).

Mediante dicho aprendizaje, primero hemos identificado el problema de la situación, asimismo tomamos en
cuenta los datos proporcionados y la respuesta que debemos hallar. Luego de esto, hemos procedido a
elaborar los diagramas de flujo, diagrama de Nassi-Shneiderman (NS) y el pseudocódigo hasta tener un
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

correcto resultado de cada uno de ellos. Finalmente, se elaboró el Visual Basic (función del programa
Excel) para corroborar que el proceso elaborado es el correcto y nos muestre lo que pretendemos hallar.

Nuestra principal motivación para realizar el presente proyecto consiste en ayudar a las empresas
encargadas de producción de textos a mejorar su calidad en la elaboración de estos, para así disminuir su
tiempo de corrección de errores, aumentar sus ventas y, por último, obtener mejores resultados y
ganancias.

2. MARCO TEÓRICO:

El proyecto consiste en crear una librería de funciones para el manejo de textos, la cual se basa en
verificar la longitud del texto, invertir el texto y determinar si es palíndromo; es decir, textos cuyas
letras están dispuestas de tal manera que resulta la misma leída de izquierda a derecha que de
derecha a izquierda1, eliminar, reemplazar o insertar un subtexto; de igual manera, convertir a
mayúsculas, minúsculas, nombre propio, separar un texto en palabras, depuración eliminando
espacios en blanco, etc.

Por un lado, la idea que se pretende realizar en este trabajo es dar a conocer una manera más
simplificada de obtener una librería de funciones, la cual consiste en corregir los errores que las
editoriales cometen al momento de producir sus textos. Estos errores pueden ser palabras
inadecuadas, mal uso mayúsculas o minúsculas, espacios en blanco, oraciones que presentan
incoherencia, etc. Además, las editoriales pueden determinar si la palabra o frase pertenece al grupo
de palíndromos. Por otro lado, con este proyecto se busca resolver los problemas anteriormente
mencionados de las editoriales, al momento de producir textos. Por ejemplo, libros, obras, revistas,
panfletos, etc., y de esta manera, lograr optimizar la redacción de sus textos.

Asimismo, al desarrollar el algoritmo con las funciones que buscamos conseguir, comenzaremos por
identificar claramente cuáles serán nuestras variables de entrada, intermedias y de salida. Luego
emplearemos el uso de los diagramas de flujo, pseudocódigo y diagramas de Nassi-Shneiderman.
De igual modo, también se hará uso del Visual Basic, el cual es un lenguaje de programación
dirigido por eventos que permite ampliar la funcionalidad de las aplicaciones Office (Excel,
PowerPoint, Access, etc).

De este modo, podremos armar un algoritmo que sirva para las funciones mencionadas en párrafos
anteriores y, a la vez, solucione los errores que ocurren cuando se elaboran distintos tipos de textos.

1 http://dle.rae.es/srv/search?m=30&w=pal%C3%ADndromo
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

3. Análisis y diseño de la solución:


3.1. Análisis de datos de entrada, salida e intermedios:
Variable Descripción Tipo Rango Valor por Tipo de uso
defecto
Función Longitud
entrada Entrada del String Hasta 65536 Entrada
texto caracteres
c Contador Integer 0 a +32767 0 Intermedio
longitud Longitud del Integer 0 a +32767 0 Salida
texto
ingresado
Función Invertir
entrada Entrada del String Hasta 65536 Entrada
texto caracteres
c Contador Integer 0 a +32767 0 Intermedio
longitud Longitud del Integer 0 a +32767 0 Intermedio
texto
ingresado
salida Salida del String Hasta 65536 Salida
texto caracteres
invertido
Función Eliminar
entrada Entrada del String Hasta 65536 Entrada
texto caracteres
c Contador Integer 0 a +32767 Intermedio
longitudEntrada Longitud del Integer 0 a +32767 Intermedio
texto
ingresado
palabra Palabra a String Hasta 65536 Entrada
eliminar caracteres
longitudPalabra Longitud de Integer 0 a +32767 0 Intermedio
la palabra a
eliminar
inicio Indica la Integer 0 a +32767 Intermedio
posición de
la letra en el
texto
existe Indica si la Boolean True o False Intermedio
palabra que
se desea
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

eliminar
existe o no
dentro del
texto de
entrada
salida Salida del String Hasta 65536 Salida
texto sin la caracteres
palabra a
eliminar
Función Reemplazar
entrada Entrada del String Hasta 65536 Entrada
texto caracteres
c Contador Integer 0 a +32767 0 Intermedio
longitudEntrada Longitud del Integer 0 a +32767 0 Intermedio
texto
ingresado
palabra Palabra a String Hasta 65536 Entrada
reemplazar caracteres
longitudPalabra Longitud de Integer 0 a +32767 0 Intermedio
la palabra a
reemplazar
inicio Indica la Integer 0 a +32767 Intermedio
posición de
la letra en el
texto
existe Indica si la Boolean True o False Intermedio
palabra que
se desea
reemplazar
existe o no
dentro del
texto de
entrada
reemplazo Palabra de String Hasta 65536 Intermedio
reemplazo caracteres
salida Salida del String Hasta 65536 Salida
texto con la caracteres
palabra
reemplazada
Función Mayúscula
entrada Entrada del String Hasta 65536 Entrada
texto caracteres
c Contador Integer 0 a +32767 0 Intermedio
longitud Longitud del Integer 0 a +32767 0 Intermedio
texto
ingresado
char Carácter String Hasta 65536 Intermedio
caracteres
salida Salida del String Hasta 65536 Salida
texto en caracteres
mayúscula
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Función Minúscula
entrada Entrada del String Hasta 65536 Entrada
texto caracteres
c Contador Integer 0 a +32767 0 Intermedio
longitud Longitud del Integer 0 a +32767 0 Intermedio
texto
ingresado
char Carácter String Hasta 65536 Intermedio
caracteres
salida Salida del String Hasta 65536 Salida
texto en caracteres
minúscula
Función Depurar
entrada Entrada del String Hasta 65536 Entrada
texto caracteres
c Contador Integer 0 a +32767 0 Intermedio
longitud Longitud del Integer 0 a +32767 0 Intermedio
texto
ingresado
salida Salida del String Hasta 65536 Salida
texto sin caracteres
espacios
Función Separar
entrada Entrada del String Hasta 65536 Entrada
texto caracteres
c Contador Integer 0 a +32767 0 Intermedio
longitud Longitud del Integer 0 a +32767 0 Intermedio
texto
ingresado
fila Indica la fila Single Intermedio
en donde
debe
aparecer
cada palabra
salida Salida del String Hasta 65536 Salida
texto en caracteres
palabras
separadas
por cada fila
Función Insertar
entrada Entrada del String Hasta 65536 Entrada
texto caracteres
c Contador Integer 0 a +32767 0 Intermedio
longitud Longitud del Integer 0 a +32767 0 Intermedio
texto
ingresado
subtexto Subtexto a String Hasta 65536 Entrada
insertar caracteres
inicio Indica la Integer 0 a +32767 Intermedio
posición en
donde se
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

quiere
insertar el
subtexto
salida Salida del String Hasta 65536 Salida
texto de caracteres
entrada más
el subtexto
ingresado
Función Palíndromo
entrada Entrada del String Hasta 65536 Entrada
texto caracteres
c Contador Integer 0 a +32767 0 Intermedio
longitud Longitud del Integer 0 a +32767 0 Intermedio
texto
ingresado
salida String Hasta 65536 Intermedio
caracteres
inicio Indica la Integer 0 a +32767 Intermedio
posición de
la letra en el
texto
fin Indica la Integer 0 a +32767 Intermedio
posición de
la letra en el
texto
palíndromo Indica si el Boolean True o False Intermedio
texto
ingresado es
palíndromo
o no
Función Nombre propio
entrada Entrada del String Hasta 65536 Entrada
texto caracteres
c Contador Integer 0 a +32767 0 Intermedio
longitud Longitud del Integer 0 a +32767 0 Intermedio
texto
ingresado
char Carácter String Hasta 65536 Intermedio
caracteres
salida Salida del String Hasta 65536 Salida
texto con la caracteres
letra inicial
en
mayúscula

3.2. Modelo matemático:


No usamos ningún modelo matemático en nuestro proyecto.

3.3. Algoritmo de solución:


3.3.1. Diagramas de flujo:
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

1) Longitud:

INICIO

c=0

entrada

Mid (entrada, c + 1, 1) <> ""

c=c+1
longitud= c

longitud

FIN
2) Invertir:

INICIO
c=0
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

entrada

Mid (entrada, c + 1, 1) <> ""

c=c+1
longitud = c

2 Para i = 1 hasta longitud

Mid (entrada, i, 1) <> " "

1
1

salida = salida & Mid (entrada, i, 1)

2 siguiente i d=0
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Mid (salida, c + 1, 1) <> ""

d= d+1

inicio = 1
fin = c
palíndromo = True

inicio < fin

3
3

NO
Mid (salida, inicio, 1) <> Mid (salida, fin, 1)

SI

palindromo = False
"Es Palíndroma"
palindromo
FIN = True "No es Palíndroma"
SI NO
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

3) Eliminar:

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

4) Reemplazar

5) Mayúscula:

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

c=0

entrada

Mid (entrada, c + 1, 1) <> ""

c=c+1
longitud= c

Para i = 1 hasta longitud

3 char = Mid(entrada, i, 1) 4

5 Para j = 1 hasta 27

7
7 6 6

SI
Cells (j, 26) =
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

NO 1
5 Siguiente j

1 j = 28

salida = salida & Cells(j + 27, 26) 2

Salir Para

salida = salida & char


3
Siguiente i

salida
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

FIN
6) Minúscula:

INICIO
c=0

entrada

Mid (entrada, c + 1, 1) <> ""

c=c+1
longitud= c

5
5

Para i = 1 hasta longitud


3 4
char = Mid(entrada, i, 1)
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Para j = 28 hasta 54

SI
Cells(j, 26) =

NO 1
Siguiente j

j = 55

1
2

salida = salida & Cells(j - 27, 26)

Salir Para
2

3 salida = salida & char

Siguiente i

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

salida

FIN

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

7) Depurar:

8) Separar:

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

9)

Insertar un subtexto:

INICIO
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

c=0

entrada

Mid (entrada, c + 1, 1) <> ""

c=c+1
longitud= c

longitudEntrada = c
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Para i = 1 hasta longitudEntrada

salida = salida & Mid(entrada, i, 1)

NO
i = inicio
SI
salida = salida & “ ” & subtexto & “ ”

Siguiente i

salida

FIN

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

10)Nombre Propio:

11) Rev
erse
:

3.3.2. Pseud
ocódig
os:

1) L
o
n
g
it
u
d
:

INICIO
c=0
Mientras: Mid (entrada, c + 1, 1) <> ""
c=c+1
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Fin Mientras
Mostrar: "La longitud del texto es: " & c
FIN ALGORITMO

2) Invertir:
INICIO
c=0
Mientras: (Mid (entrada, c + 1, 1) <> "") hacer
c=c+1
Fin Mientras
longitud = c
Para i = 1 hasta longitud
Si (Mid (entrada, i, 1) <> " ") entonces
salida = salida & Mid (entrada, i, 1)
Fin si
Siguiente i
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

c=0
Mientras: (Mid (salida, c + 1, 1) <> "") hacer
c=c+1
Fin Mientras
inicio = 1
fin = c
palindromo = True
Mientras: (inicio <> fin) hacer
Si (Mid (salida, inicio, 1) <> Mid (salida, fin, 1)) entonces
palindromo = False
Fin Si
inicio = inicio + 1
fin = fin - 1
Fin Mientras
Si (palíndromo = True) entonces
Mostrar: ("Es Palíndroma")
Sino
Mostrar: ("No es Palíndroma")
Fin Si
FIN ALGORITMO

3) Eliminar:

Inicio
Leer: entrada
entrada = Range("F2")
Leer: c
c=0
Mientras (Mid (entrada, c + 1, 1) <> "") hacer
c=c+1
Fin mientras
Leer: longitudEntrada
longitudEntrada = c
Leer: palabra
palabra = InputBox ("Ingrese palabra a Eliminar", "Eliminar Palabra")
c=0
Mientras (Mid (palabra, c + 1, 1) <> "") hacer
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

c=c+1
Fin mientras
Leer: logitudPalabra
longitudPalabra = c
Leer: inicio
Leer: existe
Para i = 1 Hasta longitudEntrada
existe = True
Para j = 0 hasta longitudPalabra - 1
Si (Mid (entrada, i + j, 1) <> Mid (palabra, j + 1, 1)) entonces
existe = False
Fin si
Siguiente j
Si existe = True entonces
inicio = i
Salir For
Fin si
Siguiente i
Leer: salida
Para i = 1 Hasta longitudEntrada
Si i < inicio Or i >= inicio + longitudPalabra entonces
salida = salida & Mid (entrada, i, 1)
Fin si
Siguiente i
Mostrar = salida
Fin

4) Reemplazar:
Inicio
Leer: entrada
entrada = Range("F2")
Leer: c
c=0
Mientras (Mid (entrada, c + 1, 1) <> "") hacer
c=c+1
Fin mientras
Leer: longitudEntrada
longitudEntrada = c
Leer: palabra
palabra = InputBox ("Ingrese palabra a Reemplazar", "Reemplazar Palabra")
c=0
Mientras (Mid (palabra, c + 1, 1) <> "") hacer
c=c+1
Fin mientras
Leer: longitudPalabra
longitudPalabra = c
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Leer: inicio
Leer: existe
Para i = 1 Hasta longitudEntrada
existe = True
Para j = 0 Hasta longitudPalabra - 1
Si (Mid (entrada, i + j, 1) <> Mid (palabra, j + 1, 1)) Entonces
existe = False
Fin si
Siguiente j
Si existe = True Entonces
inicio = i
Salir for
Fin si
Siguiente i
Leer: reemplazo
reemplazo = InputBox ("Ingrese palabra de reemplazo", "Reemplazar Palabra")
Leer: salida
Para i = 1 Hasta longitudEntrada
Si i = inicio Entonces
salida = salida & reemplazo
Fin si
Si < inicio Or i >= inicio + longitudPalabra Entonces
salida = salida & Mid (entrada, i, 1)
Fin si
Siguiente i
Mostrar = salida
Fin
5) Mayúscula:

Inicio
Leer: entrada, texto, salida, char
c=0
Mientras: Mid (entrada, c + 1, 1) <> ""
c=c+1
Fin Mientras
longitud = c
Para i = 1 hasta longitud
char = Mid(entrada, i, 1)
Para j = 1 hasta 27
Si Cells (j, 26) = char entonces
salida = salida & Cells (j + 27, 26)
salirPara
Fin si
Siguiente j
Si j = 28 entonces
salida = salida & char
Fin Si
Siguiente i
Mostrar: salida
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Fin del algoritmo

6) Minúscula:

Inicio
Leer: entrada, texto, salida
c=0
Mientras: Mid (entrada, c + 1, 1) <> ""
c=c+1
Fin Mientras
longitud = c
Para i = 1 hasta longitud
char = Mid(entrada, i, 1)
Para j = 28 hasta 54
Si Cells(j, 26) = char entonces
salida = salida & Cells(j - 27, 26)
SalirPara
Fin si
Siguiente j
Si j = 55 entonces
salida = salida & char
Fin Si
Siguiente i
Mostrar: salida
Fin del algoritmo

7) Depurar:
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Inicio
c=0
Leer: entrada
Mientras (Mid(entrada, c + 1, 1) <> "")
c=c+1
Fin mientras
Mostrar: “longitud = c”
Para i = 1 hasta longitud
Si (Mid(entrada, i, 1) <> " ") entonces
Mostrar: “salida = salida & Mid(entrada, i, 1)”
Fin si
Siguiente i
Mostrar: “salida”
Fin Algoritmo

8) Separar:
Inicio
c=0
Leer: entrada
Mientras (Mid(entrada, c + 1, 1) <> "") Hacer
c=c+1
Fin mientras
Mostrar: “longitud = c”
Para i = 1 hasta longitud
Cells(fila, 6) = Cells(fila, 6) & Mid(entrada, i, 1)
Si Mid(entrada, i, 1) = " ") entonces
Mostrar:” fila = fila + 1”
Fin si
Siguiente i
Fin Algoritmo

9) Insertar un subtexto:
Inicio
Leer: texto, subtexto, inicio
c=0
Mientras: Mid (entrada, c + 1, 1) <> ""
c=c+1
Fin Mientras
longitud = c
Para i = 1 hasta longitudEntrada
salida = salida & Mid(entrada, i, 1)
Si i = inicio entonces
salida = salida & “ ” & subtexto & “ ”
Fin Si
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Siguiente i
Mostrar: salida
Fin del Algoritmo

10)Nombre Propio:
Inicio
c=0
Leer: entrada
Mientras (Mid (entrada, c+1, 1) <> “”) hacer
c = c+1
Fin mientras
longitud = c
char = Mid(entrada,1,1)
Para j = 1 hasta 27
Si Cells (j, 26)=char entonces
char= Cells (j+27,26)
Fin Si
Siguiente j
Mostrar: salida = char & Mid(entrada, 2, longitud-1)
Fin

11) Reverse:

Inicio
Leer: entrada
c=0
Mientras (Mid(entrada, c + 1, 1) <> "") Hacer
c=c+1
Fin Mientras
longitud = c
Para i = (longitud) hasta 1 Paso -1
salida = salida & Mid(entrada, i, 1)
Siguiente i
Mostrar: salida
Fin del Algoritmo

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

3.3.3. Diagramas Nassi-Shneiderman:

1) Longitud:

Inicio

Cadena: texto

Entero: c, longitud

c=0

Mientras: Mid (entrada, c + 1, 1) <> "")

c=c+1

longitud = c

Mostrar: longitud

Fin Algoritmo

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

2) Invertir:

Inicio

Cadena: texto, entrada, salida

Entero: c, longitud

c=0 d=0
inicio = 1
fin = d
palíndromo = True
c=c+1
longitud = c
Para i = 1 hasta longitud
Mid (entrada, i, 1) <> " "
SI NO

salida = salida & Mid (entrada, i, 1)

Siguiente i

Mientras: (Mid (salida, c + 1, 1) <> "")

d=d+1

Mientras:(inicio <> fin)


Mid (salida, inicio, 1) <> Mid (salida, fin, 1)
SI

palíndromo = False

inicio = inicio + 1
fin = fin - 1
(palíndromo = True)
SI NO
Mostrar: "Es Palíndroma" Mostrar: "No es Palíndroma"

Fin del Algoritmo

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

3) Eliminar:
inicio

Leer: entrada, c, longitudentrada, palabra, longitudpalabra, inicio, existe, eliminar, salida


entrada = Range("F2")
c=0
Mientras (Mid (entrada, c + 1, 1) <> "") hacer
c=c+1
Fin mientras
longitudEntrada = c
palabra = InputBox ("Ingrese palabra a eliminar", "eliminar Palabra")
c=0
Mientras (Mid (palabra, c + 1, 1) <> "") hacer
c=c+1
Fin mientras
longitudPalabra = c
Para i = 1 Hasta longitudEntrada
existe = True
Para j = 0 Hasta longitudPalabra - 1
(Mid (entrada, i + j, 1) <> Mid (palabra, j + 1, 1))

existe = False No
Siguiente j
existe = true

inicio = i No
Siguiente i
ingresar: reemplazo
ingresar: salida
Para i = 1 Hasta longitudEntrada
i < inicio Or i >= inicio + longitudPalabra

salida = salida & Mid (entrada, i, 1) No


Siguiente i
mostrar salida
Fin algoritmo

4) Reemplazar:
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

inicio

Leer: entrada, c, longitudentrada, palabra, longitudpalabra, inicio, existe, reemplazo, salida


entrada = Range("F2")
c=0
Mientras (Mid (entrada, c + 1, 1) <> "") hacer
c=c+1
Fin mientras
longitudEntrada = c
palabra = InputBox ("Ingrese palabra a Reemplazar", "Reemplazar Palabra")
c=0
Mientras (Mid (palabra, c + 1, 1) <> "") hacer
c=c+1
Fin mientras
longitudPalabra = c
Para i = 1 Hasta longitudEntrada
existe = True
Para j = 0 Hasta longitudPalabra - 1
(Mid (entrada, i + j, 1) <> Mid (palabra, j + 1, 1))

existe = False No
Siguiente j
existe = true

inicio = i No
Siguiente i
ingresar: reemplazo
reemplazo = InputBox ("Ingrese palabra de reemplazo", "Reemplazar Palabra")
ingresar: salida
Para i = 1 Hasta longitudEntrada
i = inicio

salida = salida & reemplazo No


i < inicio Or i >= inicio + longitudPalabra

salida = salida & Mid (entrada, i, 1) No


Siguiente i
mostrar salida
Fin algoritmo

5) Mayúscula:

Inicio

Cadena: entrada, char, salida

Entero: c, longitud
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

c=0

Mientras: Mid (entrada, c + 1, 1) <> "")

c=c+1

longitud = c

Para i = 1 hasta longitud

char = Mid(entrada, i, 1)

Para j = 1 hasta 27

SI Cells(j, 26) = char NO

salida = salida & Cells(j + 27, 26)

Salir Para

Siguiente j

j = 28 SI NO

salida = salida & char

Siguiente i

Mostrar: salida

Fin del Algoritmo

6) Minúscula:

Inicio

Cadena: entrada, char, salida

Entero: c, longitud

c=0

Mientras: Mid (entrada, c + 1, 1) <> "")

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

c=c+1

longitud = c

Para i = 1 hasta longitud

char = Mid(entrada, i, 1)

Para j = 28 hasta 54

SI Cells(j, 26) = char NO

salida = salida & Cells(j - 27, 26)

Salir Para

Siguiente j

j = 55 SI NO

salida = salida & char

Siguiente i

Mostrar: salida

Fin del Algoritmo

7) Depurar:
Inicio
Entero: c, longitud
Cadena: entrada, salida
Leer: entrada
c=0

Mientras (Mid(entrada, c + 1, 1) <> "") Hacer

c=c+1

Fin mientras
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Mostrar: “longitud = c”
Mid(entrada, i, 1) = " ")
si
Mostrar:
“salida = salida &
Mid(entrada, i, 1)”
Para i = 1 hasta longitud

Siguiente i
Mostrar: “salida”
Fin algoritmo

8) Separar:

Inicio
Entero: c, fila, longitud
Cadena: entrada
Leer: entrada
c=0

Mientras (Mid(entrada, c + 1, 1) <> "") Hacer


c=c+1
Fin mientras
Mostrar: “longitud = c”
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Cells(fila, 6) = Cells(fila, 6) &


Mid(entrada, i, 1)
Mid(entrada, i, 1) = " ")
si
Mostrar:
” fila = fila + 1”
Para i = 1 hasta longitud

Siguiente i
Fin algoritmo

9) Insertar un subtexto:

Inicio

Cadena: entrada, salida, subtexto

Entero: c, longitudEntrada, inicio

c=0

Mientras: Mid (entrada, c + 1, 1) <> "")

c=c+1

longitudEntrada = c

Leer: subtexto, inicio


Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Para i = 1 hasta longitudEntrada

salida = salida & Mid(entrada, i, 1)

SI i = inicio NO

salida = salida & “ ” & subtexto & “ ”

Siguiente i

Mostrar: salida

Fin del Algoritmo

10)Nombre Propio:

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

11) Reverse:

inicio
Leer: entrada, salida, c

entrada = Range("F2")
c=0
Mientras (Mid(entrada, c + 1, 1) <> "") hacer
c=c+1
Fin mientras
longitud = c
Para i = (longitud) hasta 1 Step -1
salida = salida & Mid(entrada, i, 1)
Siguiente i
Mostrar salida
Fin algoritmo

3.4. Poner que es lo que pide


1. Longitud:
Private Sub btnLongitud_Click()
Dim entrada As String
entrada = Range("F2")
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Dim c As Integer
c=0
Do While (Mid(entrada, c + 1, 1) <> "")
c=c+1
Loop
MsgBox ("La longitud del texto es: " & c)
End Sub

2. Invertir:
Private Sub btnPalindromo_Click()
Dim entrada As String
Dim salida As String
entrada = Range("F2")
Dim c As Integer
c=0
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Do While (Mid(entrada, c + 1, 1) <> "")


c=c+1
Loop
longitud = c
For i = 1 To longitud
If (Mid(entrada, i, 1) <> " ") Then
salida = salida & Mid(entrada, i, 1)
End If
Next i
Dim inicio As Integer
Dim fin As Integer
Dim palindromo As Boolean
c=0
Do While (Mid(salida, c + 1, 1) <> "")
c=c+1
Loop
inicio = 1
fin = c
palindromo = True
Do While (inicio < fin)
Dim a As String
Dim b As String
If (Mid(salida, inicio, 1) <> Mid(salida, fin, 1)) Then
palindromo = False
Exit Do
End If
inicio = inicio + 1
fin = fin - 1
Loop
If (palindromo = True) Then
MsgBox ("Es Palíndroma")
Else
MsgBox ("No es Palíndroma")
End If
End Sub

3. Eliminar espacios:
Private Sub btnEliminarEspacios_Click()
Dim entrada As String
Dim salida As String

entrada = Range("F2")

Dim c As Integer
c=0
Do While (Mid(entrada, c + 1, 1) <> "")

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

c=c+1
Loop

longitud = c

For i = 1 To longitud
If (Mid(entrada, i, 1) <> " ") Then
salida = salida & Mid(entrada, i, 1)
End If
Next i

Range("F11") = salida
End Sub

4. Eliminar palabra:
Private Sub btnEliminarPalabra_Click()
Dim entrada As String
entrada = Range("F2")
Dim c As Integer
c=0
Do While (Mid(entrada, c + 1, 1) <> "")
c=c+1
Loop
Dim longitudEntrada As Integer
longitudEntrada = c
Dim palabra As String
palabra = InputBox("Ingrese palabra a Eliminar", "Eliminar Palabra")
c=0
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Do While (Mid(palabra, c + 1, 1) <> "")


c=c+1
Loop
longitudPalabra = c
Dim inicio As Integer
Dim existe As Boolean
For i = 1 To longitudEntrada
existe = True
For j = 0 To longitudPalabra - 1
If (Mid(entrada, i + j, 1) <> Mid(palabra, j + 1, 1)) Then
existe = False
End If
Next j
If existe = True Then
inicio = i
Exit For
End If
Next i
Dim salida As String
For i = 1 To longitudEntrada
If i < inicio Or i >= inicio + longitudPalabra Then
salida = salida & Mid(entrada, i, 1)
End If
Next i
Range("F11") = salida
End Sub

5. Reemplazar:
Private Sub btnReemplazaPalabra_Click()
Dim entrada As String
entrada = Range("F2")
Dim c As Integer
c=0
Do While (Mid(entrada, c + 1, 1) <> "")
c=c+1
Loop
Dim longitudEntrada As Integer
longitudEntrada = c
Dim palabra As String
palabra = InputBox("Ingrese palabra a Reemplazar", "Reemplazar Palabra")
c=0
Do While (Mid(palabra, c + 1, 1) <> "")
c=c+1
Loop
Dim longitudPalabra As Integer
longitudPalabra = c
Dim inicio As Integer
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Dim existe As Boolean


For i = 1 To longitudEntrada
existe = True
For j = 0 To longitudPalabra - 1
If (Mid(entrada, i + j, 1) <> Mid(palabra, j + 1, 1)) Then
existe = False
End If
Next j
If existe = True Then
inicio = i
Exit For
End If
Next i
Dim reemplazo As String
reemplazo = InputBox("Ingrese palabra de reemplazo", "Reemplazar Palabra")
Dim salida As String
For i = 1 To longitudEntrada
If i = inicio Then
salida = salida & reemplazo
End If
If i < inicio Or i >= inicio + longitudPalabra Then
salida = salida & Mid(entrada, i, 1)
End If
Next i

Range("F11") = salida
End Sub
6. Mayúscula:
Private Sub btnConvertirMayuscula_Click()
Dim entrada As String
Dim salida As String

entrada = Range("F2")

Dim c As Integer
c=0
Do While (Mid(entrada, c + 1, 1) <> "")
c=c+1
Loop
Dim longitud As Integer
longitud = c

Dim char As String

For i = 1 To longitud
char = Mid(entrada, i, 1)

For j = 1 To 27
If Cells(j, 26) = char Then
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

salida = salida & Cells(j + 27, 26)


Exit For
End If
Next j

If j = 28 Then
salida = salida & char
End If
Next i

Range("F11") = salida

End Sub

7. Minúscula:
Private Sub btnConvertirMinuscula_Click()
Dim entrada As String
Dim salida As String
entrada = Range("F2")
Dim c As Integer
c=0
Do While (Mid(entrada, c + 1, 1) <> "")
c=c+1
Loop
Dim longitud As Integer
longitud = c
Dim char As String
For i = 1 To longitud
char = Mid(entrada, i, 1)
For j = 28 To 54
If Cells(j, 26) = char Then
salida = salida & Cells(j - 27, 26)
Exit For
End If
Next j
If j = 55 Then
salida = salida & char
End If
Next i
Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)
lOMoARcPSD|9780745

Range("F11") = salida
End Sub

8. Separar:
Private Sub btnSepararPalabras_Click()
Range("F3", "F100") = ""

Dim entrada As String


entrada = Range("F2")

Dim fila As Single


fila = 11

Dim c As Integer
c=0
Do While (Mid(entrada, c + 1, 1) <> "")
c=c+1
Loop

longitud = c

For i = 1 To longitud
Cells(fila, 6) = Cells(fila, 6) & Mid(entrada, i, 1)
If (Mid(entrada, i, 1) = " ") Then
fila = fila + 1
End If
Next i

End Sub

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

9. Insertar un subtexto:
Private Sub btnInsertarPalabra_Click()
Dim entrada As String
entrada = Range("F2")
Dim c As Integer
c=0
Do While (Mid(entrada, c + 1, 1) <> "")
c=c+1
Loop

Dim longitudEntrada As Integer


longitudEntrada = c

Dim subtexto As String

subtexto = InputBox("Ingrese el subtexto", "Insertar Subtexto")

Dim inicio As Integer


inicio = Val(InputBox("Ingrese la posición en la que quiere insertar el subtexto", "Insertar Subtexto"))

Dim salida As String

For i = 1 To longitudEntrada

salida = salida & Mid(entrada, i, 1)

If i = inicio Then
salida = salida & " " & subtexto & " "
End If

Next i

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

Range("F11") = salida
End Sub

10. Nombre Propio:


Private Sub btnNombrePropio_Click()
Dim entrada As String
Dim salida As String

entrada = Range("F2")

Dim c As Integer
c=0
Do While (Mid(entrada, c + 1, 1) <> "")
c=c+1
Loop
Dim longitud As Integer
longitud = c

Dim char As String

char = Mid(entrada, 1, 1)

For j = 1 To 27
If Cells(j, 26) = char Then
char = Cells(j + 27, 26)
Exit For
End If
Next j

salida = char
For i = 2 To longitud
salida = salida & Mid(entrada, i, 1)
Next i
Range("F11") = salida

End Sub

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

11. Reverse:
Private Sub btnReverse_Click()
Dim entrada As String
Dim salida As String

entrada = Range("F2")

Dim c As Integer
c=0
Do While (Mid(entrada, c + 1, 1) <> "")
c=c+1
Loop

longitud = c

For i = (longitud) To 1 Step -1


salida = salida & Mid(entrada, i, 1)
Next i

Range("F11") = salida

End Sub

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

3.5. Diseño de las interfaces de entrada/salida en Excel

3.5.1. LONGITUD :

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

3.5.2. REVERSE:

3.5.3. CONVERTIR A MAYÚSCULA:

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

3.5.4. CONVERTIR A MINÚSCULA:

3.5.5. ELIMINAR PALABRA:

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

3.5.6. ELIMINAR PALABRA:

3.5.7. NOMBRE PROPIO:

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

3.5.8. PALÍNDROMO:

3.5.9. SEPARAR PALABRAS:

3.5.10. INGRESAR SUBTEXTO:

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

3.5.11. ELIMINAR ESPACIOS:

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

3.5.12. REEMPLAZAR PALABRA:

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)


lOMoARcPSD|9780745

Downloaded by Antonella Orbegoso (antonellaorbegoso@gmail.com)

También podría gustarte