Está en la página 1de 6

LAS CADENAS DE CARACTERES

Las computadoras normalmente sugieren operaciones aritméticas ejecutadas sobre datos numéricos. Sin embargo,
ese concepto no es estadísticamente cierto, sino que, al contrario, hoy día es cada vez más frecuente el uso de las
computadoras para procesar problemas de tipo esencialmente alfanuméricos o de tipo texto. En el Capítulo 3 se
estudió el concepto de tipo de datos carácter (char) y se definió un carácter como un símbolo del juego de
caracteres de la computadora. Un constante carácter se definió como cualquier carácter encerrado entre
separadores (apóstrofos o dobles comillas). Una secuencia finita de caracteres se denomina normalmente una
cadena (string), y una constante tipo cadena consiste en una cadena encerrada entre apóstrofos o dobles comillas
Código ASCII

El código ASCII se compone de los siguientes tipos de caracteres:

• Alfabéticos (a, b, ..., z/A, B, ..., Z).


• Numéricos (0, 1, 2, 3, ..., 8, 9).
• Especiales (+, –, *, /, {, }, <, >, etc.).
• De control son caracteres no imprimibles y que realizan una serie de funciones relacionadas con la escritura,
transmisión de datos, separador de archivos, etc., en realidad con los dispositivos de entrada/salida. Destacamos
entre ellos:

DEL eliminar o borrar


STX inicio de texto
LF avance de línea
FF avance de página
CR retorno de carro

Código EBCDIC

Este código es muy similar al ASCII, incluyendo también, además de los caracteres alfanuméricos y especiales,
caracteres de control. Es propio de computadoras de IBM, con la excepción de los modelos PC, XT, AT y PS/2.

DATOS TIPO CARÁCTER

Es un tipo de datos utilizado por la computadora para almacenar datos tipo carácter, los mismos pueden ser.

Constantes:
Una constante tipo carácter es un carácter encerrado entre comillas y una constante de tipo cadena es un conjunto
de caracteres válidos encerrados entre comillas —apóstrofos— para evitar confundirlos con nombres de variables,
operadores, enteros, etc. Si se desea escribir un carácter comilla, se debe escribir duplicado.

Variables
Una variable de cadena o tipo carácter es una variable cuyo valor es una cadena de caracteres. Las variables de tipo
carácter o cadena se deben declarar en el algoritmo y según el lenguaje tendrán una notación u otra. Nosotros, al
igual que muchos lenguajes, las declararemos en la tabla o bloque de declaración de variables.
También existen cadenas de longitud Fija, Cadena a de longitud variable con un máximo y cadena de longitud
indefinida

OPERACIONES CON CADENAS

El tratamiento de cadenas es un tema importante, debido esencialmente a la gran cantidad de información que se
almacena en ellas. Según el tipo de lenguaje de programación elegido se tendrá mayor o menor facilidad para la
realización de operaciones.

• Cálculo de la longitud.
• Comparación.
• Concatenación.
• Extracción de subcadenas.
• Búsqueda de información.

Subprogramas (subalgoritmos):
Funciones
Un método ya citado para solucionar un problema complejo es dividirlo en subproblemas problemas más sencillos y a
continuación dividir estos subproblemas en otros más simples, hasta que los problemas más pequeños sean fáciles de
resolver. Esta técnica de dividir el problema principal en subproblemas se suele denominar “divide y vencerás” (divide and
conquer).

El problema principal se soluciona por el correspondiente programa o algoritmo principal también denominado
controlador o conductor (driver) y la solución de los subproblemas mediante subprogramas, conocidos como
procedimientos (subrutinas) o funciones. Los subprogramas, cuando se tratan en lenguaje algorítmico, se denominan
también subalgoritmos.

Un subprograma puede realizar las mismas acciones que un programa:


1) aceptar datos,
2) realizar algunos cálculos
3) devolver resultados.
Un subprograma, sin embargo, se utiliza por el programa para un propósito específico. El subprograma recibe datos desde
el programa y le devuelve resultados.
Las ventajas de los subprogramas son múltiples:

 Facilitan la modularidad y estructuración de los algoritmos.


 Facilitan la lectura e inteligibilidad de los algoritmos.
 Permiten economizar el esfuerzo del programador al permitir reutilizar el mismo código en varios puntos del
mismo algoritmo.
 Facilitan la depuración y mantenimiento de los programas.
 Las funciones son subprogramas con 0 ó más argumentos que siempre devuelven un valor de retorno.
 Las funciones pertenecen entonces a un tipo determinado.
 La invocación de una función puede formar parte de:
o Una expresión.
o La parte derecha de una asignación.
 Una invocación de una función no puede formar:
o Una sentencia aislada.
o La parte izquierda de una asignación.

FUNCIONES
Matemáticamente una función es una operación que toma uno o más valores llamados argumentos y produce un valor
denominado resultado valor de la función para los argumentos dados. Todos los lenguajes de programación tienen
funciones incorporadas, intrínsecas o internas.

Declaración de funciones

La declaración de una función requiere una serie de pasos que la definen. Una función como tal subalgoritmo o
subprograma tiene una constitución similar a los algoritmos, por consiguiente, constará de una cabecera que comenzará con
el tipo del valor devuelto por la función, seguido de la palabra función y del nombre y argumentos de dicha función.

Funciones intrínsecas: Las funciones intrínsecas son proporcionadas directamente por el lenguaje de programación.

Funciones de usuario (i):


 En muchas ocasiones el usuario estará interesado en definir sus propias funciones.
 Las funciones de usuario deben estar definidas dentro del algoritmo principal:

definiciones de constantes
declaraciones de variables
inicio
sentencias del algoritmo
DEFINICIONES DE FUNCIONES
Fin

entero funcion maximo (a ÎÎ entero, b ÎÎ entero)


inicio
si a>b entonces
maximo fl a
si no
maximo fl b
fin si
fin

Una llamada a la función implica los siguientes pasos:


1. A cada parámetro formal se le asigna el valor real de su correspondiente parámetro actual.
2. Se ejecuta el cuerpo de acciones de la función.
3. Se devuelve el valor de la función y se retorna al punto de llamada.
PROCEDIMIENTOS (SUBRUTINAS)

Aunque las funciones son herramientas de programación muy útiles para la resolución de problemas, su alcance está muy
limitado. Con frecuencia se requieren subprogramas que calculen varios resultados en vez de uno solo, o que realicen la
ordenación de una serie de números, etc. En estas situaciones la función no es apropiada y se necesita disponer del otro tipo
de subprograma: el procedimiento o subrutina.
Un procedimiento o subrutina1 es un subprograma que ejecuta un proceso específico. Ningún valor está asociado con el
nombre del procedimiento; por consiguiente, no puede ocurrir en una expresión. Un procedimiento se llama escribiendo su
nombre, por ejemplo, SORT, para indicar que un procedimiento denominado SORT (ORDENAR) se va a usar. Cuando se
invoca el procedimiento, los pasos que lo definen se ejecutan y a continuación se devuelve el control al programa que le
llamó.

Procedimiento versus función

Los procedimientos y funciones son subprogramas cuyo diseño y misión son similares; sin embargo, existen unas
diferencias esenciales entre ellos.

1. Un procedimiento es llamado desde el algoritmo o programa principal mediante su nombre y una lista de parámetros actuales, o bien
con la instrucción llamar_a (call). Al llamar al procedimiento se detiene momentáneamente el programa que se estuviera realizando y el
control pasa al procedimiento llamado. Después que las acciones del procedimiento se ejecutan, se regresa a la acción inmediatamente
siguiente a la que se llamó.
2. Las funciones devuelven un valor, los procedimientos pueden devolver 0,1 o n valores y en forma de lista
de parámetros.
3. El procedimiento se declara igual que la función, pero su nombre no está asociado a ninguno de los resultados
que obtiene.

COMUNICACIÓN CON SUBPROGRAMAS: PASO DE PARÁMETROS

Cuando un programa llama a un subprograma, la información se comunica a través de la lista de parámetros y se establece
una correspondencia automática entre los parámetros formales y actuales.

Los métodos más empleados para realizar el paso de parámetros son:


• paso por valor (también conocido por parámetro valor),
• paso por referencia o dirección (también conocido por parámetro variable),
• paso por nombre,
• paso por resultado.

UTILIDADES O VENTAJAS
 Disminuye la complejidad del algoritmo
 Reutilización de Código
 Ahorro de tiempo de programación
 División de la programación entre un equipo de programadores
 Facilidad en la depuración: comprobación individual de los módulos
 Programas más fáciles de modificar
RECURSIVIDAD
La recursividad (recursión) es aquella propiedad que posee una función por la cual dicha
función puede llamarse a sí misma. Se puede utilizar la recursividad como una alternativa a
la iteración. Una solución recursiva es normalmente menos eficiente en términos de tiempo
de computadora que una solución iterativa debido a las operaciones auxiliares que llevan
consigo las llamadas suplementarias a las funciones; sin embargo, en muchas circunstancias
el uso de la recursión permite a los programadores especificar soluciones naturales, sencillas,
que serían, en caso contrario, difíciles de resolver. Por esta causa, la recursión es una
herramienta poderosa e importante en la resolución de problemas y en la programación.

RECURSIVIDAD DIRECTA E INDIRECTA

En recursión directa el código del subprograma recursivo F contiene una sentencia que
invoca a F, mientras que en recursión indirecta el subprograma F invoca al subprograma G
que invoca a su vez al subprograma P, y así sucesivamente hasta que se invoca de nuevo al
subprograma F.

Si una función, procedimiento o método se invoca a sí misma, el proceso se denomina


recursión directa; si una función, procedimiento o método puede invocar a una segunda
función, procedimiento o método que a su vez invoca a la primera, este proceso se conoce
como recursión indirecta o mutua.

Un requisito para que un algoritmo recursivo sea correcto es que no genere una secuencia
infinita de llamadas sobre sí mismo. Cualquier algoritmo que genere una secuencia de este
tipo no puede terminar nunca. En consecuencia, la definición recursiva debe incluir un
componente base (condición de salida) en el que f(n) se defina directamente (es decir, no
recursivamente) para uno o más valores de n.

La recursividad indirecta se produce cuando un subprograma llama a otro, que


eventualmente terminará llamando de nuevo al primero. El programa ALFABETO.CPP
visualiza el alfabeto utilizando recursión mutua o indirecta.

La recursión infinita significa que cada llamada recursiva produce otra llamada recursiva y
ésta a su vez otra llamada recursiva y así para siempre. En la práctica dicho código se
ejecutará hasta que la computadora agota la memoria disponible y se produzca una
terminación anormal del programa.

CONCEPTOS
 VARIABLES GLOBALES: Son todas aquellas que pueden ser accesadas por cualquier método de la clase o clases.

 VARIABLES LOCALES: Son aquellas que solo pueden ser accedidas por el método donde estén declaradas.

 PARAMETROS DE ENTRADA: Un método puede recibir o no parámetros, estos parámetros son los datos que el
método no conoce y que necesita para hacer su trabajo. Cuando un método recibe parámetros estos deben ser
recibidos en variables del mismo tipo de dato.

 PARAMETROS DE SALIDA: Son parámetros cuyos valores se calcularán en el procedimiento y se deben devolver al
programa principal para su posterior proceso

También podría gustarte