0% encontró este documento útil (0 votos)
27 vistas58 páginas

Recursividad en Programación: Fundamentos y Ejemplos

jnfoj

Cargado por

Williams Arias
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
27 vistas58 páginas

Recursividad en Programación: Fundamentos y Ejemplos

jnfoj

Cargado por

Williams Arias
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

-Público-

PROGRAMACIÓN II
I. ESTRUCTURAS RECURSIVAS
Un objeto es recursivo cuando se define en función de sí mismo, es decir, que
interviene en su propia definición. La recursividad es la propiedad mediante la
cual un subprograma o rutina puede llamarse así mismo, al hacer uso de ésta,
la resolución de un problema se reduce a uno que en esencia es igual, pero de
menor complejidad. (Serrano, s.f).
• La recursividad es un concepto fundamental en matemáticas y en
computación.
• Es una alternativa diferente para implementar estructuras de repetición
(ciclos). Los módulos se hacen llamadas recursivas.
• Se puede usar en toda situación en la cual la solución pueda ser
expresada como una secuencia de movimientos, pasos o
transformaciones gobernadas por un conjunto de reglas no ambiguas.

A. QUÉ ES LA RECURSIVIDAD EN PROGRAMACIÓN


La recursividad es un concepto que se indica cuando un método se llama a
sí mismo. Cuando creamos un método recursivo debemos tener en cuenta
que este tiene que terminar por lo que dentro del método debemos
asegurarnos de que no se está llamando a si mismo todo el rato, Lo que
quiere decir que el ciclo es finito.

No todas las funciones pueden llamarse a sí mismas, sino que éstas tienen que estar
diseñadas con la finalidad de que sean recursivas, de otra manera, podrían llevar a

COMUNICACIONES - 2024
1
-Público-

bucles infinitos o en su defecto que el programa termine de manera inadecuada.


Debemos tener mucho cuidado cuando realizamos llamadas recursivas ya que si la
utilizamos sin control podríamos desbordar la memoria del ordenador, causando que
el programa se rompa.
Ventajas:
Algunos problemas son más sencillos de modelar e implementar utilizando
recursividad
Desventajas:
Es necesario la creación de varias variables lo que puede ocasionar problemas en
memoria.
En general una función recursiva toma más tiempo en ejecutarse que una iterativa.

B. FUNCIÓN RECURSIVA
Caso recursivo: una solución que involucra volver a utilizar la función
original, con parámetros que se acercan más al caso base.
Los pasos que sigue el caso recursivo son los siguientes:
1. El procedimiento se llama a sí mismo
2. El problema se resuelve, tratando el mismo problema, pero de
tamaño menor.
3. La manera en la cual el tamaño del problema disminuye asegura que
el caso base eventualmente se alcanzará

Ejemplo para una función factorial.


Definición de un número factorial:
La factorial de un entero positivo n, la factorial de n o n factorial se define en principio
Como el producto de todos los números enteros positivos desde 1 (es decir, los
números naturales) hasta n.
Por ende, la regla o fórmula de una función factorial sería:
n! = n × (n−1)!
lo que significa “el factorial de cualquier número es: el número por el factorial de (1
menos que el número”, por tanto 10! = 10 × 9!

COMUNICACIONES - 2024
2
-Público-

Imagen 1: Recursividad, Caso Factorial en C++

C. CASO BASE EN LAS FUNCIONES RECURSIVAS


Para que se pueda aplicar correctamente la recursividad necesitamos que
exista un caso base, en la que la resolución del problema sea inmediata y
no requiera invocarse de nuevo el proceso.
Dicho de otra forma, el proceso de llamadas recursivas siempre tiene que
acabar en una llamada a la función que se resuelve de manera directa, sin
necesidad de llamar de nuevo a la función recursiva. Esto será siempre
necesario, para que llegue un momento que se corten las llamadas
reiterativas a la función y no se entre en un bucle infinito de invocaciones.

Ejemplo típico de recursividad


Quizás en la teoría cueste más ver lo que es una función recursiva que por la
práctica. Un ejemplo típico de recursividad sería la función factorial. El factorial es
una función matemática que se resuelve multiplicando ese número por todos los
números naturales que hay entre él y 1.
Por ejemplo, factorial de 4 es igual a 4 * 3 * 2 * 1. Si nos fijamos, para el ejemplo de
factorial de 4 (¡factorial se expresa matemáticamente con un signo de admiración
hacia abajo, como 4!), se puede resolver como 4 * 3! (4 * factorial de 3). Es decir,

n! = n * (n-1)!
COMUNICACIONES - 2024
3
-Público-

podemos calcular el factorial de un número multiplicando ese número por factorial de


ese número menos 1.

En el caso de la función factorial, tenemos el caso básico que factorial de 1 es igual a


1. Así que lo podremos utilizar como punto de ruptura o caso base de las llamadas
recursivas.
Así pues, vamos a realizar la codificación de la función recursiva factorial.
Primero veamos un pseudocódigo:

funcion factorial(n)
si n=1 entonces
factorial = 1
sino
factorial = n * factorial(n-1)
fin funcion

Ahora veamos cómo se implementaría esta función con el lenguaje de programación

function factorial(n) {
if(n == 1) {
return 1
} else {
return n * factorial(n-1)
}
}
Javascript:

D. RECURSIVIDAD APLICADA A PROBLEMAS COMUNES


En general es posible aplicar recursividad a una muy variada gama de
algoritmos. El factorial que acabamos de ver es un ejemplo de libro, pero
también podríamos definir un proceso recursivo en algo tan sencillo como
la suma.
Para ello vamos a estipular que cualquier número sumado a otro es la suma del
primer número más 1, más el segundo número decrementado en 1.

COMUNICACIONES - 2024
4
-Público-

Además, como caso base vamos a decir que cualquier número sumado a cero es
ese mismo número.

Ahora podríamos definir la suma con esta función Javascript. Examíname con
detenimiento y toma tus propias conclusiones:

¿Por qué escribir programas recursivos?


• Son mas cercanos a la descripción matemática.
• Generalmente mas fáciles de analizar
• Se adaptan mejor a las estructuras de datos recursivas.
• Los algoritmos recursivos ofrecen soluciones estructuradas, modulares y
elegantemente simples.
Factible de utilizar recursividad
• Para simplificar el código.
• Cuando la estructura de datos es recursiva ejemplo : árboles.
No factible utilizar recursividad
• Cuando los métodos usen arreglos largos.
• Cuando el método cambia de manera impredecible de campos.
• Cuando las iteraciones sean la mejor opción.

¿Para qué sirven las funciones recursivas?

COMUNICACIONES - 2024
5
-Público-

Resolución de Problemas Fractales:


Las funciones recursivas son ideales para abordar problemas que exhiben patrones
repetitivos y auto-similares, como los fractales. Permiten una descripción concisa y
clara de la solución al dividir el problema en partes más pequeñas.
Algoritmos de «Divide y Vencerás»:
Muchos algoritmos eficientes utilizan el enfoque de «divide y vencerás», donde un
problema se divide en subproblemas más pequeños y se resuelven de manera
recursiva. Ejemplos incluyen la clasificación rápida (quicksort) y la búsqueda binaria.
Estructuras de Datos Recursivas:
Las estructuras de datos recursivas, como listas enlazadas o árboles, se definen
naturalmente mediante funciones recursivas. Esto facilita la manipulación y
exploración de estas estructuras.
Modelado Matemático:
Problemas matemáticos que involucran secuencias o series pueden modelarse de
manera natural con funciones recursivas. Ejemplos incluyen la serie de Fibonacci,
cálculos de factoriales y sucesiones matemáticas.
Recorrido de Estructuras de Datos:
Las funciones recursivas son eficientes para realizar recorridos en estructuras de
datos complejas, como árboles o grafos. Esto simplifica la implementación de
algoritmos de búsqueda, como la búsqueda en profundidad o la búsqueda en
anchura.
Tareas Fraccionadas:
Cuando una tarea se puede dividir en subproblemas más pequeños, la recursión
proporciona una forma elegante de abordar cada subproblema de manera similar.
Esto mejora la legibilidad y mantenibilidad del código.
Programación Dinámica:
En el contexto de la programación dinámica, las funciones recursivas son esenciales
para resolver problemas superpuestos y evitar recálculos innecesarios mediante el
uso de técnicas como la memorización.
Análisis de Sistemas Fractales y Naturales:
En ciencias y análisis de sistemas complejos, las funciones recursivas pueden
utilizarse para modelar fenómenos naturales y estructuras fractales.

COMUNICACIONES - 2024
6
-Público-

Generación de Secuencias Infinitas:


Las funciones recursivas también pueden utilizarse para generar secuencias infinitas,
como la serie de Taylor para funciones matemáticas.

Estructuras de Control de Flujo:


En algunos lenguajes de programación, la recursión se utiliza como una estructura
de control de flujo alternativa, especialmente cuando se trabaja con estructuras de
datos no lineales.

E. ALGORITMO RECURSIVO
Una función recursiva es aquella que para cumplir su función requiere
invocarse a si misa.

¿Cuáles son las consideraciones a tomar en cuenta en un algoritmo recursivo?


 Siempre agregar una condición que termine el ciclo de ejecución.
 Un algoritmo recursivo debe cambiar su estado, en dirección a cumplir
la condición de finalización.
 La función debe ser capaz de llamarse a si misma cuando lo requiera.
La velocidad de un algoritmo recursivo es mas lenta debido a que los
métodos se van apilando dentro de la pila del sistema. Se recomienda
siempre utilizar un loop de ser posible para realizar la misma tarea y evitar
el stack overhead (sobrecarga de la pila) que se produce cuando el
sistema no tiene mas memoria disponible.
Si no se construye bien el algoritmo y nunca se cumple la condición de
finalización, la ejecución del programa consumirá la memoria del sistema.

EJEMPLOS DE FUNCIONES RECURSIVAS


Funciones Recursivas, Calculo Factorial
Para calcular el factorial de un número mediante una función recursiva
implementamos el siguiente algoritmo en Go.
La fórmula para el cálculo del factorial de un número es N! = N * (N-1) .... 2 * 1.

COMUNICACIONES - 2024
7
-Público-

func CalcularFactorial(num int) int {

if num <= 1 {
return num
}

return num * CalcularFactorial(num-1)

func main() {

[Link]("El factorial de 5 es:", CalcularFactorial(5))


[Link]("El factorial de 4 es:", CalcularFactorial(4))
[Link]("El factorial de 3 es:", CalcularFactorial(3))
[Link]("El factorial de 2 es:", CalcularFactorial(2))
[Link]("El factorial de 1 es:", CalcularFactorial(1))
[Link]("El factorial de 0 es:", CalcularFactorial(0))

}
Salida.
El factorial de 5 es: 120
El factorial de 4 es: 24
El factorial de 3 es: 6
El factorial de 2 es: 2
El factorial de 1 es: 1
El factorial de 0 es: 0

La función Calcular Factorial se llama a si misma mientras la condición de salida no


se cumpla, dicha condición es que num <= 1 (num sea menor o igual a 1), si esta
función de salida no se cumple la función se vuelve a invocar a si misma reduciendo
en 1 el valor de num.

COMUNICACIONES - 2024
8
-Público-

La complejidad de este algoritmo es O(N).

F. FUNCIONES RECURSIVAS “LAS TORRES DE HANOI”


Las Torres de Hanoi son un problema matemático bastante famoso que
consiste en mover una discos de diferentes tamaños de un poste a otro,
respetando ciertas reglas. Este desafío ha sido analizado por matemáticos
y científicos de la computación debido a su relevancia en la teoría de
algoritmos y su aplicación en la informática. Para poder resolver Las
Torres de Hanoi se requiere de habilidades en lógica, razonamiento y
pensamiento creativo, lo que lo convierte en un excelente ejercicio para la
mente.

1. Aplicaciones de Las Torres de Hanoi


Las Torres de Hanoi tienen diversas aplicaciones en informática y
programación, como por ejemplo en la optimización de algoritmos, la
resolución de problemas de búsqueda y en la creación de juegos de
lógica.
En la optimización de algoritmos, se utilizan los principios de Las Torres
de Hanoi para reducir la cantidad de operaciones necesarias en la
ejecución de un programa o proceso, lo que permite ahorrar tiempo y
recursos.
En la resolución de problemas de búsqueda, Las Torres de Hanoi
pueden ser utilizadas para encontrar la solución más eficiente o la ruta
más corta en un problema de búsqueda en grafos.
En la creación de juegos de lógica, Las Torres de Hanoi se han utilizado

COMUNICACIONES - 2024
9
-Público-

como base para el diseño de juegos que requieren habilidades en


lógica y razonamiento.
En resumen, Las Torres de Hanoi son una herramienta importante en la
informática y programación, y su conocimiento puede ser utilizado para
resolver problemas complejos y desarrollar programas más eficientes y
efectivos.

2. Variantes de Las Torres de Hanoi


Existen diversas variantes de Las Torres de Hanoi que se
diferencian en el número de discos, torres y reglas del juego. Algunas
de las variantes más comunes son:

 Torres de Hanoi con más de tres torres: en esta variante, se


agregan más torres a la configuración tradicional de tres torres, lo
que aumenta la complejidad del juego.
 Torres de Hanoi con más de tres discos: en esta variante, se
utilizan más discos que los tres originales, lo que también
incrementa la dificultad.
 Torres de Hanoi con movimientos limitados: en esta variante,
se establece una cantidad limitada de movimientos para
completar el juego, lo que requiere una estrategia diferente.
 Torres de Hanoi aleatorias: en esta variante, la posición inicial
de los discos es aleatoria, lo que hace que cada juego sea único.
 Torres de Hanoi con discos de diferentes tamaños: en esta
variante, los discos tienen diferentes tamaños, lo que añade una
nueva dimensión al juego.

En resumen, Las Torres de Hanoi tienen diversas variantes que ofrecen desafíos
adicionales y requieren diferentes estrategias para resolverlos.

Aunque Las Torres de Hanoi fue creado en la década de 1880, sigue siendo
relevante hoy en día por varias razones. En primer lugar, es un problema clásico de

COMUNICACIONES - 2024
10
-Público-

matemáticas que ha sido utilizado para enseñar y desarrollar habilidades como el


razonamiento lógico y la resolución de problemas en diversas áreas, incluyendo
la informática y la programación. Las habilidades adquiridas al resolver este
problema son altamente valoradas en la industria tecnológica, ya que la capacidad
de razonamiento lógico es esencial para programar y desarrollar sistemas
informáticos complejos.
Además, Las Torres de Hanoi ha sido utilizado en la investigación de la teoría de la
complejidad computacional y la optimización de algoritmos. Esta problemática
ha sido utilizada como un modelo de estudio para comprender la eficiencia de los
algoritmos y mejorar su rendimiento. Por lo tanto, su relevancia en la investigación de
la ciencia de la computación sigue vigente.
Por último, su simplicidad y accesibilidad lo convierten en un juego divertido y
desafiante que puede ser disfrutado por personas de todas las edades y habilidades.
Es una excelente herramienta para el entretenimiento y el desarrollo cognitivo, lo
que hace que Las Torres de Hanoi sea una actividad recreativa y educativa para todo
el mundo.

3. ¿Cómo se resuelve el problema de Las Torres de Hanoi?


Para resolver el problema de Las Torres de Hanoi, se deben seguir
ciertas reglas:

a. Se tienen tres varillas y una pila de discos de diferentes tamaños


en una de las varillas.
b. El objetivo es mover toda la pila de discos a otra de las varillas,
utilizando la tercera varilla como auxiliar.
c. Solo se puede mover un disco a la vez y no se puede colocar un
disco más grande sobre uno más pequeño.

La solución se puede lograr utilizando la recursividad, donde se mueve la pila de


discos como si fuera una unidad, y se repite el proceso para una pila de discos más
pequeña.

COMUNICACIONES - 2024
11
-Público-

El algoritmo básico para resolver Las Torres de Hanoi con N discos sería:

1. Mover la pila de discos superiores (N-1) de la varilla inicial a la varilla auxiliar.


2. Mover el disco más grande (N) de la varilla inicial a la varilla de destino.
3. Mover la pila de discos superiores (N-1) de la varilla auxiliar a la varilla de
destino.

Este proceso se repite hasta que todos los discos estén en la varilla de destino.
Resolver el problema de Las Torres de Hanoi es un desafío interesante que puede
ayudar a desarrollar habilidades en lógica y pensamiento creativo.

4. Las Torres de Hanoi en Pseudocódigo


El pseudocódigo para el ejemplo de Las Torres de Hanoi es.

def mover(discos, origen, destino, auxiliar):


if discos > 0
mover(discos-1, origen, auxiliar, destino)
mover(discos-1, auxiliar, destino, origen)

5. Las Torres de Hanoi en Go.


La implementación de Las Torres de Hanoi en Go es la siguiente.

package main

func Mover(discos int, origen string, destino string, aux string) {


if discos > 0 {
Mover(discos-1, origen, aux, destino)
Mover(discos-1, aux, destino, origen)
}
}

func main() {

COMUNICACIONES - 2024
12
-Público-

Mover(3, "P1", "P2", "P3")


}

En el rompecabezas de Las Torres de Hanoi, el número de


movimientos requeridos para mover todos los discos de A a C es
movimientos = 2 ^ discos - 1. Es decir, para tres discos se requieren
7 movimientos que es el número menor de movimientos requeridos
para resolver el rompecabezas.

G. FUNCIONES RECURSIVAS “MAXIMO COMÚN DIVISOR”


El máximo común divisor, es el número máximo que divide a otros sin que
este deje un residuo.
Por ejemplo para los números 12 y 16.
Los divisores de 12 son 1, 2, 3, 4, 6 y 12.
Los divisores de 16 son 1, 2, 4, 8 y 16.
El Máximo Común Divisor es 4, ya que es el número mas grande que
divide a ambos sin dejar residuo.

H. ALGORITMO DE EUCLIDES.
El algoritmo de Euclides (Euclid’s Algorithm) es un método que nos permite
obtener de manera sencilla y eficiente el Máximo Común Divisor.

1. Algoritmo de Euclides
El siguiente es el pseudocódigo del algoritmo de Euclides.

def maximo_comun_divisor(a, b):


if a == 0
return b
return maximo_comun_divisor(b % a, a)

2. Algoritmo de Euclides en Go?


El Algoritmo de Euclides se implementa de la siguiente forma en Go.

COMUNICACIONES - 2024
13
-Público-

package main

import "fmt"

func MaximoComunDivisor(a int, b int) int {


if a == 0 {
return b
}
return MaximoComunDivisor(b%a, a)
}

func main() {

[Link](MaximoComunDivisor(8, 10))
[Link](MaximoComunDivisor(125, 80))

Salida.

2
5

I. CÁLCULO DE LA SUMA DE UNA LISTA DE NÚMEROS


Iniciamos nuestra investigación con un problema simple que usted ya sabe
resolver sin recursividad. Suponga que usted desea calcular la suma de
una lista de números como por ejemplo: [1,3,5,7,9]. La función utiliza una

COMUNICACIONES - 2024
14
-Público-

variable acumuladora (laSuma) para calcular el total acumulado de los


números de la lista comenzando en 0 y sumando cada número de la lista.

Imagine por un minuto que usted no tiene ciclos while o for. ¿Cómo
calcularía la suma de una lista de números? Si usted fuera un
matemático, podría comenzar recordando que la adición es una función
que se define para dos parámetros, una pareja de números. Para
redefinir el problema original de sumar una lista al problema alternativo
de sumar parejas de números, podríamos reescribir la lista como una
expresión completamente agrupada. Tal expresión tiene el siguiente
aspecto:
((((1+3)+5)+7)+9)
También podemos agrupar la expresión en el orden inverso,
(1+(3+(5+(7+9))))
Observe que el conjunto más interno de paréntesis, (7+9), es un
problema que podemos resolver sin un ciclo o cualquiera otra
instrucción especial. De hecho, podemos utilizar la siguiente secuencia
de simplificaciones para calcular una suma final.

total= (1+(3+(5+(7+9))))total= (1+(3+(5+16)))total= (1+(3+21))total= (1+24)total= 25

COMUNICACIONES - 2024
15
-Público-

¿Cómo podemos tomar esta idea y convertirla en un programa en Python?


Primero, vamos a plantear el problema de la suma en términos de listas de Python.
Podemos decir que la suma de la lista listaNumeros es la suma del primer elemento
de la lista (listaNumeros[0]) y la suma de los números en el resto de la lista
(listaNumeros[1:]). Para expresarlo en una forma funcional:
sumaLista(listaNumeros)=primero(listaNumeros)+sumaLista(resto(listaNumeros))
En esta ecuación primero(listaNumeros)
devuelve el primer elemento de la lista y resto(listaNumeros) devuelve una lista de
todos los elementos menos el primero.

J. FUNCIONES RECURSIVAS, SUCESIÓN DE FIBONACCI


La Sucesión de Fibonacci es una serie infinita de números naturales.

0,1,1,2,3,5,8,13,21,34,55,89,144...

La serie inicia con un 0, seguido de 1^2, los números posteriores son la


suma de los dos anteriores.

COMUNICACIONES - 2024
16
-Público-

ESPIRAL DE FIBONACCI

1. La sucesión de Fibonacci
En ocasiones también conocida como secuencia de Fibonacci o
incorrectamente como serie de Fibonacci, es en sí una sucesión
matemática infinita. Consta de una serie de números naturales que se
suman de a 2, a partir de 0 y 1. Básicamente, la sucesión de Fibonacci se
realiza sumando siempre los últimos 2 números (Todos los números
presentes en la sucesión se llaman números de Fibonacci) de la siguiente
manera:

0,1,1,2,3,5,8,13,21,34...
Fácil, ¿no?
(0+1=1 / 1+1=2 / 1+2=3 / 2+3=5 / 3+5=8 / 5+8=13 / 8+13=21 / 13+21=34...)
Así sucesivamente, hasta el infinito. Por regla, la sucesión de Fibonacci se escribe
así: n = n-1 + n-2.

COMUNICACIONES - 2024
17
-Público-

2. Fibonacci recursivo
Ejemplo en Java.
Programa que muestra los N primeros números de la sucesión de
Fibonacci de forma recursiva. Ejemplo de los primeros números de
Fibonacci: 0,1,1,2,3,5,8,13,21,34…
La recursividad es una técnica de programación en la que una función se
invoca así misma. La función recursiva f(n) para el cálculo de la secuencia
de Fibonacci es:

Casos base (de salida, no se produce llamada recursiva):


f(0) = 0
f(1) = 1
Caso recursivo:
f(n) = f(n-1) + f(n-2)

1 import [Link];
2
3 public class FibonacciRecursivo {
4
5 public static void main(String[] args) {
6
7 Scanner sc = new Scanner([Link]);
8 [Link]("Introduce el número de elementos a mostrar de la
9 serie: ");
10 int limite = [Link]();
11 [Link]();
12
13 for(int i = 0; i<limite; i++){

COMUNICACIONES - 2024
18
-Público-

14 [Link](funcionFibonacci(i) + ", ");


15 }
16 }
17
18 private static int funcionFibonacci(int num){
19 if(num == 0 || num==1)
20 return num;
21 else
22 return funcionFibonacci(num-1) + funcionFibonacci(num-2);
23 }
24
}

Para la lectura por teclado del número de valores de la secuencia a representar


utilizaremos la clase Scanner de la librería [Link].(método nextInt() para leer datos
de tipo int).

Conclusión sobre recursividad


Como se puede ver, la recursividad no representa ninguna dificultad y de hecho es
una herramienta muy útil para programación de algoritmos. En desarrollo Web
hemos publicado en diversos lugares funciones que trabajan de forma recursiva. Es
verdad que en un principio puede resultar difícil de entender o de saber cuándo
utilizar, pero cuando dominemos el concepto veremos que es una manera excelente
de resolver problemas con cualquier lenguaje de programación.
Hay muchos algoritmos que sólo se resuelven con recursividad, o al menos cuya
resolución más directa y elegante está basada en realizar funciones recursivas, que
se llamen a si mismas para obtener el resultado final. Por ejemplo, el recorrido de
diversas estructuras de datos, como las de tipo árbol, siempre se acostumbran a
realizar de manera recursiva, para poder estar seguros de que pasamos por todas
las ramas del árbol.

COMUNICACIONES - 2024
19
-Público-

ESTRUCTURAS COMPUESTAS
II. ESTRUCTURAS COMPUESTAS
A. DEFINICIÓN DE ARREGLO
Un arreglo (matriz o vector) es un conjunto finito y ordenado de elementos
homogéneos. La propiedad “ordenado” significa que el elemento primero,
segundo, tercero,…, enésimo de un arreglo puede ser identificado. Los
elementos de un arreglo son homogéneos, es decir, del mismo tipo de
dato.
Cada componente de un arreglo se denota, explícitamente, y es accedida,
directamente, mencionando el nombre del arreglo seguido de una
expresión encerrada entre paréntesis, a la que llamamos índice del
arreglo.
La cantidad de componentes del arreglo se india explícitamente cuando
se declara el mismo, y queda desde entonces INVARIABLE. A ese
número lo llamamos dimensión del arreglo.
El índice del arreglo toma valores entre uno y la dimensión del mismo. Si
se direcciona una posición que no se encuentra entre dichos límites, se
producirá un error de ejecución, pues se estará intentando acceder a una
zona de memoria indefinida (pues el vector está definido entre las
posiciones 1 y dimensión).
A un arreglo lineal se lo denomina unidimensional, y se utiliza un solo
índice para denotar sus elementos. A un arreglo tipo matricial se lo
denomina arreglo bidimensional o de dos dimensiones, y usa dos índices
para determinar sus elementos.

B. OPERACIONES SOBRE ARREGLOS


Las operaciones que se pueden realizar con arreglos durante el proceso
de resolución de un problema son:
 Asignación;
 Lectura / Escritura;
 Recorrido (acceso secuencial);
 Actualización (añadir, borrar, insertar);

COMUNICACIONES - 2024
20
-Público-

 Ordenamiento;
 Búsqueda.
En general, las operaciones con arreglos implican el tratamiento o
procesamiento de los elementos individuales del arreglo.

C. ARREGLOS UNIDIMENSIONALES: VECTORES


Los elementos de un arreglo lineal se almacenan en posiciones sucesivas
de memoria, es decir, un elemento al lado del otro. Si cada elemento de
un arreglo de dimensión k, ocupa x posiciones, entonces el arreglo ocupa
en total x * k posiciones. El almacenamiento es igual al de las variables,
con la particularidad que ahora el conjunto de variables ocupa posiciones
sucesivas o contiguas de la memoria.

1. Declaración de vectores
Los vectores se definen en la zona de declaración del programa.
Dicha definición se encabeza con la palabra reservada “Tipos
estructurados”. Para declararlos se explicita el nombre del mismo,
acompañado de su dimensión, y a continuación se especifica el tipo
de sus elementos. Todos los elementos de un vector serán del mismo
tipo.
D. ARREGLOS BIDIMENSIONALES MATRICES
Las matrices pertenecen al conjunto de estructuras de datos compuestas
homogéneas. Podríamos hacer una primera aproximación a estas
estructuras definiéndola así:
Una matriz es un vector de vectores; un arreglo lineal donde cada
elemento as a su vez un vector.
Por supuesto que dichos vectores son todos de igual tipo, precisión y
dimensión.
El problema de este esquema es que se hace complicado referenciar un
elemento: primero hay que determinar cuál vector se quiere trabajar, y
luego cual es el elemento dentro del mismo.
Para simplificar esto, se visualiza gráficamente a la matriz como una

COMUNICACIONES - 2024
21
-Público-

cuadrícula:
Líneas horizontales = filas
líneas verticales = columnas
Con este esquema se simplifica el concepto de matriz: es un conjunto de
vectores. Cada fila representa un vector, asimismo, cada columna
representa un vector. De esta forma es mas sencillo el acceso: se
determina primero cual de todas las columnas o filas interesa, y luego se
usa el elemento deseado como se hace con cualquier vector.
Podemos ver entonces, que todo dato que se guarde en esta cuadrícula
debe ser referenciado a través de un índice de fila y uno de columna:
cada elemento tiene dos entradas, una horizontal o de fila, y una vertical o
de columna; en la intersección de fila y columna se hallará el dato.
En forma similar a un arreglo lineal, la matriz tiene un nombre único y
genérico, que respeta las normas de declaración de variables, y para
designar a sus elementos es necesario usar 2 índices.
Así, el nombre de la matriz, seguido de los 2 índices separados con coma
(el primero para la fila; el segundo para la columna), y encerrados entre
corchetes, denota un elemento de la matriz en particular. EJ: Mat[2,3] es
el elemento de la matriz Mat que se halla en la intersección se la
2da. Fila y la 3er. Columna.
Por ser un arreglo homogéneo, sus elementos son todos del mismo tipo y
precisión. La dimensión de una matriz (cantidad total de elementos) se
calcula haciendo el producto entre la cantidad total de filas por la
cantidad total de columnas. En forma genérica, cada matriz de M filas y N
columnas tendrá (M*N) elementos.

1. Almacenamiento de matrices en memoria


El espacio que ocupa en memoria una matriz se calcula teniendo en
cuenta la cantidad total de elementos, multiplicada por el espacio que
ocupa un elemento del tipo y precisión especificado para dicha matriz.
EJ: dada una matriz de M filas por M columnas, de enteros de 2
dígitos, el espacio que ocupa en memoria es (M*N*espacio que ocupa

COMUNICACIONES - 2024
22
-Público-

un entero de 2 dígitos).
Los elementos de una matriz se almacenan en posiciones sucesivas
de memoria, al igual que los vectores. En otras palabras podemos
decir que se almacenan como vectores contiguos: una fila de la matriz
al lado de la otra, y cada elemento de la fila al lado del siguiente.

2. Declaración de matrices
Las matrices se definen en la zona de declaraciones del
programa, dentro del bloque de Tipos estructurados. Para ello se
especifica el nombre de la misma seguido de la cantidad total de
filas y de columnas, separadas por coma y encerradas entre
corchetes, y luego se escribe el tipo y precisión de los elementos.
En pseudocódigo:

Programa…..
Tipos estructurados
<nom_matriz>= Arreglo [filas,columnas] : <tipo> //declaro una matriz…//
Variables
<nom_variable>: <nom_matriz> //y luego una variable de tipo//
//matriz, donde alojarla//
Hacer

Fin Hacer
Fin Programa…..

La declaración reserva lugar en la memoria, lo asocia con el nombre de la matriz,


pero su contenido queda indeterminado, como ocurre con las variables. Es necesario
hacer una operación de asignación de valores, para que la matriz tenga elementos.

E. Pilas
Una Pila o Stack es un caso particular de la lista donde la inserción y
eliminación de elementos se realizan solo por un extremo que se
denomina cima o tope (top). Funciona exactamente como su nombre lo
indica, y con numerosas analogías en la vida real: una pila de libros, una

COMUNICACIONES - 2024
23
-Público-

pila de monedas, pila de platos, etc.


Este comportamiento está basado en el principio "último en entrar,
primero en salir", también conocido como LIFO, por su nombre en inglés
"last-in, first-out", que dicta que el primer elemento que fue añadido a la
pila será el último en ser removido de la misma.

1. Aplicaciones de las pilas


• Navegador Web
– Se almacenan los sitios previamente visitados
– Cuando el usuario quiere regresar (presiona el botón de
retroceso), simplemente se extrae la última dirección (pop) de la
pila de sitios visitados.
• Editores de texto
– Los cambios efectuados se almacenan en una pila
– Usualmente implementada como arreglo
– Usuario puede deshacer los cambios mediante la operación
“undo”, la cual extraer el estado del texto antes del último cambio
realizado.

F. COLAS
Una Cola o Queue es un caso particular de la lista donde la inserción y
eliminación de elementos se realizan por los extremos de la lista; las

COMUNICACIONES - 2024
24
-Público-

eliminaciones se realizan al principio de la lista, o el frente (front) de la


misma, y las inserciones se realizan en el otro extremo, el final (rear).
Algunas analogías en la vida real: cola de personas en el banco, cola de
vehículos en el semáforo, etc.
Este comportamiento está basado en el principio "primero en entrar,
primero en salir", también conocido como FIFO, por su nombre en inglés
"first-in, first-out", que dicta que el primer elemento que fue añadido a la
cola será el primero en ser removido.

1. Aplicaciones de las colas


• En general, operaciones en redes de computadoras.
– Trabajos enviados a una impresora
– Solicitudes a un servidor.
• Clientes solicitando ser atendidos por una telefonista.
• Mas aplicaciones de las estructuras tipo cola?

COMUNICACIONES - 2024
25
-Público-

MANEJO DE PUERTOS
III. MANEJO DE PUERTOS
Los puertos de comunicación son una parte esencial de la computación,
permitiendo que diferentes dispositivos se comuniquen entre sí y con la
computadora. Estos puertos pueden ser tanto físicos como virtuales y son
fundamentales para el funcionamiento de muchas aplicaciones y servicios.
En la informática, su propósito es facilitar la transferencia de datos de
manera eficiente y confiable, actuando como puertos de entrada y salida para
la información.

A. TIPO DE PUERTOS
Variaciones de Puertos Físicos
En el ámbito físico, los puertos pueden venir en diversas formas, como el
clásico puerto serial RS-232 que en su momento fue ampliamente usado
para conectar dispositivos como módems y ratones. Sin embargo, con el
avance de la tecnología, los puertos USB se han convertido en el
estándar debido a su capacidad de transmitir datos a mayor velocidad y
su flexibilidad de uso. Paralelamente, la evolución ha llevado a la creación
de interfaces como Thunderbolt y HDMI, los cuales soportan aún mayores
tasas de transferencia y, en el caso de HDMI, la transmisión de señales
de audio y video de alta definición.

Puertos Virtuales y Redes


Mientras tanto, en el mundo de las comunicaciones virtuales, los puertos
toman un papel crucial en las redes de computadoras e Internet. Estos
puertos son referencias numéricas que identifican un servicio o proceso
específico dentro de un sistema operativo para el enrutamiento de la
información. Por ejemplo, el puerto 80 es comúnmente utilizado para el
tráfico web a través del protocolo HTTP, mientras que el puerto 443 es
usado para conexiones seguras HTTPS. La correcta configuración y
administración de estos puertos es vital para la seguridad de la
información y la integridad de los sistemas de comunicación informáticos.

COMUNICACIONES - 2024
26
-Público-

Comprender los puertos de comunicación y su operativa es fundamental


para cualquiera que trabaje en el campo de TI, ya que su manejo afecta
directamente el rendimiento, la accesibilidad y la seguridad de sistemas
informáticos y dispositivos. Es importante destacar que, tanto los usuarios
finales como los administradores de sistemas deben tener conocimiento
de los puertos para asegurar una adecuada configuración de su red y la
conexión entre dispositivos, garantizando así el correcto intercambio de
datos y la funcionalidad de sus entornos informáticos.

B. PUERTO PARALELO

En el mundo de la informática, cuando hablamos de puertos


hablamos de conectores, que también pueden ser denominados como
interfaz o interfaz de conexión. Estos puertos suelen ser físicos,
conectores que permiten el intercambio de datos, aunque también hay
puertos virtuales mediante software. En cuanto a un ejemplo práctico de
qué son los puertos, puedes pensar en los puertos USB, que son los
que tiene tu ordenador para conectar cables o unidades de
almacenamiento USB.

Descripción General
Con la llegada de clonicos al mercado, se crea un controlador de múltiples entradas y
salidas (Multi I/O) donde se instalan controladores de discos, puertos serie, puerto de

COMUNICACIONES - 2024
27
-Público-

juegos y el puerto paralelo. En la actualidad el puerto paralelo se incluye


comúnmente incluido en la placa madre de la computadora (MotherBoard). No
obstante, la conexión del puerto con el mundo externo no ha sufrido modificaciones.
Este puerto utiliza un conector hembra DB25 en la computadora y un conector
especial macho llamado Centronic que tiene 36 pines. Es posible conectar el DB25
de 25 pines al Centronic de 36 pines ya que cerca de la mitad de los pines del
Centronic van a tierra y no se conectan con el DB25.

Descripción del conector DB25 del PC y el conector DB25 del Centronic

El puerto paralelo está formado por 17 líneas de señales y 8 líneas de tierra.


Las líneas de señales están formadas por tres grupos:
4 Líneas de control
5 Líneas de estado
8 Líneas de datos
En el diseño original las líneas de control son usadas para la interface, control e
intercambio de mensajes desde el PC a la impresora.
En cuanto a los puertos paralelos, son un tipo de interfaz que permite conectar
diferentes tipos de periféricos a un ordenador o equipo informático o electrónico.
Estos puertos suelen estar presentes en tu ordenador, normalmente directamente en

COMUNICACIONES - 2024
28
-Público-

la placa base, lo que hace que sea uno de los que queda en la parte trasera de tu
torre.
El paralelo es un tipo de puerto, y existen diferentes modelos de interfaz o puerto
que son paralelos, dependiendo de los periféricos para los que han sido diseñados.
Dependiendo de este tipo de puerto destinado a tipos concretos de periféricos, estos
puertos pueden tener una cantidad determinada y concreta de contactos o cables.
En definitiva, son puertos paralelos esos que permiten el intercambio simultaneo
de paquetes de datos a través de los diferentes hilos o cables, y en ambos
sentidos. El nombre de puerto paralelo es debido a la forma en la que funciona todo
a nivel físico, ya que hay un cable por cada bit que se envía. De esta manera, si una
impresora requiere el envío de determinado número de bits, necesitarías un bus con
ese mismo número de cables, que enviarán la información de forma paralela.
Esta característica hace que los puertos paralelos sean fáciles de distinguir. Ya que
sus conectores necesitan una gran cantidad de pins, suelen ser puertos de gran
tamaño y una gran cantidad de puntas (los pins) en la clavija de conexión, y una
gran cantidad de agujeros en el puerto que hay en el ordenador.
Para qué sirven los puertos paralelos
Los puertos paralelos sirven para conectar periféricos al ordenador, y muchas
veces son específicos para los diferentes tipos de periférico. Por ejemplo, si tienes un
ordenador antiguo en casa es posible que tenga un puerto específico para el monitor,
u otro también bastante grande para la impresora.
Otra de las funciones clásicas que tenían los puertos paralelos en su época de auge
fue la de conectar los discos duros al ordenador. No me refiero al puerto externo,
sino que cuando abres el ordenador y miras en tu placa base, allí donde hay que
conectar los discos duros se utilizaba en el pasado un puerto paralelo, aunque ahora
se utilizan los puertos serie.

QUÉ SE UTILIZA EN LA ACTUALIDAD


Actualmente, en los ordenadores modernos los puertos paralelos se han ido
sustituyendo los puertos serie a la hora de permitir conectar periféricos. Los
puertos serie son esos que envían los datos bit a bit utilizando el mismo hilo en vez
de hilos diferentes, lo que les permite tener un tamaño mucho más pequeño.

COMUNICACIONES - 2024
29
-Público-

Además, los puertos serie también permiten entregar energía para alimentar los
dispositivos conectados.
Esto quiere decir que los ordenadores modernos pueden no tener apenas puertos
paralelos. Por ejemplo, muchos han sido sustituidos por los puertos USB de alta
velocidad. Mientras, para conectar monitores se utilizan puertos HDMI o DisplayPort,
así como DVI o AGP. A nivel interno, para conectar los discos duros te encontrarás
con los puertos serie PCI o SATA.
Por lo tanto, los puertos serie actuales han sustituido ya a los paralelos en casi todos
los ordenadores. Por lo general, la culpa la tienen sus mayores velocidades de
transferencia de datos y el ahorro de espacio que ofrecen. Pero también, puertos
serie como los USB se han mostrado mucho más versátiles. Para qué tener puertos
específicos para impresora u otros periféricos si vas a poder utilizar un mismo puerto
USB para cualquiera de ellos en la actualidad.

C. PUERTO SERIAL
Un puerto serial es aquel que posibilita la transmisión de un bit a la vez.
Esta interfaz suele ser utilizada para la conexión del teclado o del mouse
(ratón) a la computadora (ordenador). En la actualidad, de todos modos,
esta clase de puerto ha perdido popularidad, siendo reemplazada por el
puerto USB u otras tecnologías más rápidas. Su principal ventaja sigue
siendo el bajo costo y su sencillez.

Cabe destacar que puerto es un concepto con múltiples usos. Su


acepción más general refiere a una infraestructura que ofrece distintas
clases de servicios. Dentro del contexto específico de la informática,
puerto es la interfaz que permite enviar y recibir datos digitales. Puede
tratarse de puertos físicos (que presentan una entrada en el hardware
para que se conecte un periférico) o de puertos virtuales (interfaz lógica
administrada mediante un programa informático).

COMUNICACIONES - 2024
30
-Público-

Funcionamiento de un puerto serial


Para comprender cómo funciona el puerto serial (que también suele denominarse
puerto serie), puede compararse su lógica con el funcionamiento de un puerto
paralelo. Mientras que en un puerto paralelo se transmiten muchos bits de manera
simultánea y en dos direcciones diferentes, el puerto serial sólo envía o recibe de a
un bit por vez.

Esto explica por qué se conoce como serial a este puerto: al considerar un byte de
información, se encarga de la transmisión de esos 8 bits uno a uno, creando el
trayecto de la serie de bits.

COMUNICACIONES - 2024
31
-Público-

Otras características
Es importante destacar que un puerto serial puede tener diferentes conectores
externos. Algunos conectores tienen nueve pines y otros pueden contar con
hasta veinticinco pines.
Además de todo lo expuesto, es necesario tener en cuenta otras consideraciones
con respecto al puerto serial, entre las que destacan las siguientes:
 Los modelos más habituales son los llamados DB9, que se identifican por tener
nueve pines.
 Hay que saber que para conectar y desconectar los dispositivos mediante ese
puerto y que el ordenador en sí los reconozca es fundamental proceder a
reiniciar el computador.
 Son conocidos por el nombre de RS-232.
 Se trata del primer tipo de interfaces que dieron la oportunidad de que los
ordenadores se “vinculen” con el mundo exterior.
 En lo que es la transmisión serial es imprescindible que existan dos bits de
control: un bit de arranque y un bit de parada.
 Todos los puertos seriales, salvo excepciones muy concretas, están
directamente integrados en la placa madre o placa base del ordenador.
 Se considera que toda computadora, por regla general, tiene un mínimo de uno y
un máximo de cuatro puertos seriales.
 La comunicación serial es la que se produce de manera asincrónica; es decir,
sin necesidad de que tenga que existir una señal de sincronización.
 Como toda tecnología, los puertos series o seriales fueron progresando y así
ganaron velocidad.

Puerto serial – protocolo y su teoría


Un puerto Serial es un modulo de comunicación digital para un sistema embebido.
Es decir, permite la comunicación entre dos dispositivos digitales. Cuenta con dos
conexiones, RX y TX. Lo que nos indica los modos de comunicación que puede
manejar, Full-duplex, Duplex y Simplex. Además podemos considerar como su
principal ventaja a la sencillez de su protocolo de comunicación. Sin embargo
también tiene desventajas como que sólo se puede comunicar a un puerto dos

COMUNICACIONES - 2024
32
-Público-

dispositivos.
Full duplex. Significa que puede recibir y enviar información digital
simultáneamente.
Duplex o Half-duplex. Es cuando sólo podemos transmitir o recibir información,
una cosa a la vez.
Simplex. Cuando sólo podemos ya sea recibir o transmitir.
La función principal de un puerto serial, es la de empacar y des-empacar paquetes
de datos binarios seriales. Como resultado, la serialización significa convertir un
dato paralelo (byte) a un conjunto de pulsos seriales que puedan ser recibidos y
enviados por una línea de transmisión. En primer lugar, el protocolo serial opera
mediante tres condiciones digitales básicas: inicio de transmisión (IT), paridad (P) y
fin de transmisión (FT). Estas condiciones son sincronizadas mediante un oscilador
interno. El generador permite controlar la velocidad del puerto serial. Por lo tanto,
la velocidad se mide en BAUD ‘s. Al modulo serial también se le conoce como
UART ó USART o EUSART.
 UART – Universal Asyncronos Receiver and Transmitter que en español se
traduciría como Transceptor Asíncrono.
 USART – Universal Syncronos and Asyncronos Receiver and Transmitter,
que significa en español Transceptor Síncrono y Asíncrono.
 EUART – Enhanced Universal Asyncronos Receiver and Transmitter ó
Transceptor Asíncrono Universal Mejorado.

Estructura interna y configuración de un puerto serial


Una UART contiene, en su estructura interna, un generador de paridad, registros de

COMUNICACIONES - 2024
33
-Público-

corrimiento, oscilador variable (para generar el BAUD), verificadores de las tres


condiciones y lógica de control. Por consiguiente, la Figura-1, muestra un diagrama
a bloques general para una UART. Un paquete de datos se transmite a través de
un registro de corrimiento. Por lo tanto, la velocidad a la que se transmite, esta
controlada por el generador de BAUD. La lógica de control se encarga de agregar
los bits de Inicio, Paridad y de Fin de transmisión [1]. El proceso de recepción serial
es lo opuesto.
Modos de comunicación en el puerto serial
El modo de comunicación para un puerto serial,se refiere a la forma en la que se
envían y reciben los paquetes de información. De acuerdo al tipo de conexión, una
UART tiene separadas las lineas de transmisión y recepción. Esta característica le
permite poder operar los tres modos de comunicación asíncrona que existen. Los
modos de comunicación son los siguientes:
 Full-duplex. Significa que puede transmitir y recibir simultáneamente.
 Half-duplex. O sólo transmite o sólo recibe.
 Simplex. Sólo se dedica a transmitir información binaria.
Cuando se diseña una aplicación que requiere comunicación serial, al inicio, se
suelen cometer algunos errores básicos. Dentro de los esquemas de comunicación
se utiliza al dispositivo serial en modo simplex, sólo enviando información. Lo
recomendable es usar el esquema de comunicación Half-duplex, en donde, solo se
envíe información si así lo pide uno de los elementos en la comunicación.

D. Puerto USB
Puerto es una noción con varios usos. En la informatica, el término se
emplea para nombrar a una clase de conexión que posibilita el envío y la
recepción de información. USB, por su parte, es la sigla correspondiente
a Universal Serial Bus, una interfaz que permite la conexión de
periféricos a diversos dispositivos, entre los cuales se encuentran los
ordenadores y los teléfonos móviles.

COMUNICACIONES - 2024
34
-Público-

El puerto USB, por lo tanto, es un componente que tiene la finalidad de


conectar distintos dispositivos entre sí. Una impresora, un mouse
(ratón), una webcam y unos altavoces son algunos ejemplos de
periféricos que pueden conectarse a un puerto USB, sin olvidar los cada
vez más populares discos duros externos y las clásicas llaves de
memoria (pendrives).
Aunque existen diversos adaptadores, lo más recomendable es utilizar
dispositivos que cuenten con el conector USB para facilitar el proceso
de conexión y traslado de los mismos. El puerto USB puede entenderse
como una entrada en la que sólo pueden ingresar aquellos artefactos
con la ficha apropiada. Así como existen ciertos modelos de mouse que
pueden conectarse a un puerto USB, otras clases de mouse presentan
características diferentes y deben conectarse a otro puerto (PS/2).

Ventajas del puerto USB


Una de las grandes ventajas del puerto USB es que no exige reiniciar el sistema para
reconocer que un periférico ha sido conectado. De este modo, el dispositivo en
cuestión puede conectarse y usarse (plug-and-play).
La tecnología USB también cuenta con la capacidad de detectar el programa
informático que se necesita para que el dispositivo funcione, procediendo
automáticamente a su instalación. Entre los aspectos más cuestionados del puerto
USB, en cambio, se encuentra su ancho de banda reducido para transferir los datos.

COMUNICACIONES - 2024
35
-Público-

El puerto USB y la retrocompatibilidad


La retrocompatibilidad es un factor muy importante en el mundo de la informática y la
electrónica en general, ya que los usuarios suelen invertir grandes cantidades de
dinero para mantenerse al día; si las compañías ignoraran dicha realidad y
lanzaran productos incompatibles entre sí cada año, sería equivalente a obligar a sus
consumidores a comprarlos para no quedarse atrás, lo cual resultaría en la pérdida
de su confianza y respeto.
Pero la retrocompatibilidad no siempre es posible, y cada tanto es necesario que
las empresas adopten nuevos y revolucionarios formatos para ofrecer a sus usuarios
productos verdaderamente innovadores y beneficiosos para ellos. Éste parece ser el
caso del conector USB-C, que se apoya en la especificación 3.1 pero tiene el
objetivo de dejar atrás el gran número de conectores que hay en el mercado, que
genera muchas confusiones a los consumidores.
El puerto USB-C se caracteriza por tener un conector pequeño, lo que permite su uso
en cualquier dispositivo. Además, es capaz de trasmitir cualquier tipo de señal, desde
datos hasta energia; por ejemplo, hay ordenadores portátiles que ya no requieren de
un puerto especial para el cargador, porque aprovechan el USB-C. En el caso de los
teléfonos móviles y las tabletas, dado que USB-C soporta hasta 100W de potencia,
es posible cargar varios a la vez.

Tipos de estándares USB


Vamos a empezar hablando de los diferentes tipos o versiones de estándares de
USB, los cuales se clasifican en cuatro tipos dependiendo de la velocidad a la que
transfieren sus datos. Antes de su lanzamiento oficial en 1996, el USB tuvo algunas
versiones previas como el USB 0.7 y 0.8 de 1994, el 0.9 de 1995 y el 0.00 de agosto
del 96, pero nosotros comenzaremos a partir de la versión 1.0, aunque teniendo en

COMUNICACIONES - 2024
36
-Público-

cuenta que ya son tan antiguos que son difíciles de encontrar.

 USB 1.0: Son los más antiguos, y el estándar USB de menor menor velocidad.
Su tasa de transferencia es de hasta 1,5 Mbit/s (188 kB/s), y es utilizado
sobre todo en interfaces humanas como los teclados, los ratones o las
webcams.
 USB 1.1: Es la mejora del 1.0 conocida como de velocidad completa o “plug
and play“. Su tasa de transferencia sube hasta 12 Mbit/s (1,5 MB/s), aunque
todavía estaba lejos de las velocidades que alcanzarían los siguientes
estándares.
 USB 2.0: Conocida también como de alta velocidad, alcanza tasas de
transferencia de hasta 480 Mbit/s (60 MB/s), aunque en la práctica suele
quedarse en 280 Mbit/s (35 MB/s). Es el estándar más extendido de momento,
y cuenta con dos líneas para datos y dos de alimentación de alta velocidad.
También puede cargar dispositivos a 2,5 W de potencia.
 USB 3.0: También se le llama de velocidad superalta, y tiene una tasa de
transferencia de hasta 4,8 Gbit/s (600 MB/s), diez veces superior a la
velocidad del USB 2.0 gracias a sus cinco contactos adicionales.
 USB 3.1: Se le denomina de velocidad superalta+ o SuperSpeed, y duplica la
velocidad de su predecesor, con una tasa de transferencia de hasta 10 Gbit/s
(1,25 GB/s). Es el que suele ser utilizado por los conectores de Tipo C que te
vamos a explicar un poco más adelante.
 USB 3.2: Presentado en febrero del 2019. Será capaz de ofrecer tasas de
transferencia de hasta 20 Gbit/s (2,5 GB/s), y los primeros periféricos en
utilizarlo llegaron en 2020.
 USB 4.0: PResentado también en 2019, es el estándar más reciente hasta la
fecha. El USB 4 será capaz de ofrecer tasas de transferencia de hasta 40
Gbit/s (5 GB/s), y los primeros equipos en utilizarlo han llegado en 2021.

COMUNICACIONES - 2024
37
-Público-

TIPOS DE CONECTORES

Como puedes ver, una cosa son los estándares pero otra muy diferentes los tipos de
conector que utilizan los USB. A continuación vamos a decirte cuáles son los
principales tipos y cuáles son sus características principales, incluyendo los
estándares que suele tener cada uno de ellos.

 USB Tipo A: Ha sido el conector predominante entre los periféricos y


ordenadores principales hasta la llegada de otros más pequeños. Los USB de
Tipo A pueden ser utilizados con los estándares USB 1.0, 2.0, así como por los
USB 3.0 y 3.1. Sin embargo, los conectores que utilizan el estándar 3.0 se
diferencian del resto por tener una pestaña interna, como un pequeño plástico de
color azul. Por lo tanto, si no lo lleva es porque es de velocidades inferiores.
 USB Tipo B: Ha sido el conector que suele utilizarse para conectarse a
periféricos como impresoras y escáneres, aunque a menudo sólo para
proporcionar alimentación. Hay dos tipos diferentes de conector de Tipo B, el
"convencional" para los estándares USB 1.0 y 2.0, y otro con una forma
ligeramente diferente y una pestaña azul en el interior para el USB 3.0.
 USB Tipo C: Es el tipo de conector más moderno, y es el sucesor de los
MicroUSB. Se caracteriza por ser completamente reversible, por lo que puedes
conectarlo siempre por cualquiera de sus lados. Estos también son los conectores
utilizados por Thunderbolt 3, es un estándar alternativo al HDMI.
 Mini USB: Fue el primer tipo de USB que se redujo de tamaño para conectar
periféricos más pequeños. Fue bastante utilizado por cámaras de fotos y móviles,
especialmente en el modelo Mini B, pero de eso hace ya bastantes años.

COMUNICACIONES - 2024
38
-Público-

 Micro USB: Sucesor del Mini USB, ha sido muy popular y el más utilizado por
dispositivos pequeños. Posiblemente, si tu móvil es de una gama inferior o tiene
un par de años todavía te encuentres con él, aunque también ha sido utilizado en
muchos otros tipos de periférico.

E. PUERTO TIPO “C”

El conector USB-C es un sistema de conexión que se caracteriza por


su facilidad de uso y versatilidad. A diferencia de otros conectores del
mismo grupo, el USB-C se puede insertar de cualquier forma y
orientación, sin riesgo de estropear el puerto o el cable. Además, es
compatible con diferentes estándares de transmisión de datos y energía.
El USB-C fue diseñado por la USB-IF, una entidad que agrupa a
algunas de las empresas punteras del sector tecnológico. El objetivo en
su momento fue crear un conector universal (algo que en Europa pronto
será una realidad) que facilitara la conexión entre dispositivos y redujera
la necesidad de adaptadores. La especificación del USB-C se publicó en
agosto de 2014, junto con la del USB 3.1.

Sin embargo, es importante remarcar que no todos los dispositivos que


tienen un puerto USB-C soportan las mismas funciones o velocidades. El
USB-C es solo un tipo de conector, pero no implica que el dispositivo
tenga que cumplir con los estándares USB 3.1, USB-PD o modo alterno.
Estos estándares definen las capacidades de transferencia de datos,
suministro de energía o conexión a otros tipos de señales, como vídeo o
audio.
Esto quiere decir que es posible que un cable, con un conector USB-A en

COMUNICACIONES - 2024
39
-Público-

un extremo y USB-C en el otro, se suministre junto a un aparato


electrónico con la única misión de cargar el dispositivo. En ese caso, si
se trata de utilizar el cable en otro contexto, por ejemplo, para transmitir
datos, no funcionará.

Características técnicas del USB-C


Debido a que el USB-C se lanzó junto al protocolo USB 3.1, sus características
técnicas en lo que a transferencia de datos se refiere son exactamente las mismas.
En el momento en el que salió, el USB 3.0 lograba una tasa teórica de unos 4,8
Gbit/s, es decir, unos 600 MB/s.
Sin embargo, el USB-C que cumple con el estándar USB 3.1, logra velocidades el
doble de rápidas, de unos 10 Gbit/s o 1,25 GB/s. En el caso de los USB-C
Thunderbolt 3, hablamos de unos 40 Gbit/s o 5 GB/s.
Lo que es evidente es que el USB-C se lanzó en un momento en el que las
velocidades alcanzadas por los cables USB eran muy altas. Simplemente por la
cronología de su lanzamiento, decimos que no hay cables de datos USB tipo C
que sean muy lentos, aunque lo mejor es que consultes los detalles técnicos antes
de adquirir uno de ellos.

Tipos de cables USB-C por funciones

Como hemos mencionado, las funciones del USB-C son diversas. Aquí van algunas
de las más destacadas:

COMUNICACIONES - 2024
40
-Público-

 Cargar dispositivos. El puerto USB-C es compatible con cargas de alta


velocidad, con tasas superiores a los 60 W.
 Transferir datos. Y, además, hacerlo con una velocidad vertiginosa en
función del protocolo, como en el caso del Thunderbolt 3.
 Transmitir vídeo. DisplayPort 1.4 en cables USB-C admite una frecuencia de
hasta 120 Hz y resolución 4K.
 Enviar una señal de audio. El jack de 3.5 mm ha desaparecido de muchos
teléfonos y lo ha sustituido el puerto USB-C. Así que sí, también sirve para
transmitir sonido.
 HUB USB. Los concentradores USB-C cuentan con todo tipo de conexiones,
desde Ethernet hasta HDMI. Todo esto es posible gracias a la multitud de
protocolos que admite el puerto USB-C.

COMUNICACIONES - 2024
41
-Público-

DISEÑO DE PAGINAS WEB


IV. DISEÑO DE PAGINAS WEB
El diseño web es una actividad creativa enfocada en realizar la parte visual
de entornos y materiales digitales. Se encarga de layouts e interfaces de
plataformas digitales como un sitio web o una app y realiza una
configuración visible y funcional para el usuario al distribuir y
conceptualizar diversos elementos.
a apariencia de tu sitio web es la primera impresión que un visitante se
lleva de tu marca y puede invitar o alejar a quienes entran en él. De hecho,
hay estudios que demuestran que un visitante en un sitio web tardará
solamente 50 milisegundos en decidir si seguirá navegando o abandona tu
página web.

Recuerda que todo proyecto debe respetar los principios básicos de diseño
web para que sea funcional, compatible y vistoso.

A. CARACTERÍSTICAS DEL DISEÑO WEB


Un buen diseño web debe contar con varias características para que sea
vistoso y funcional; la conjugación de estas características garantizarán el
éxito del proyecto. Es fundamental conocer los estándares de diseño web para
crear proyectos espectaculares. Estas son las características fundamentales
que debes tener en cuenta para tu diseño web:
1. Es visual
El diseño web es ante todo visual para que sea atractivo, por lo que se vale de
elementos gráficos y textuales, imágenes, videos, colores y todos los aspectos
que en armonía van a crear un espacio agradable en el que los visitantes
querrán navegar. Aquí tienes algunos fondos interesantes para utilizar en tus
páginas web.

2. Permite una carga veloz


El sitio web debe cargar rápidamente y no ofrecer obstáculos para la
navegación. El diseño web se encarga en gran parte de esto al utilizar un

COMUNICACIONES - 2024
42
-Público-

lenguaje de programación adecuado, imágenes que se vean bien sin


comprometer la cantidad de datos, entre otros aspectos. ¿Cómo puede afectar
la velocidad? Según un estudio de Amazon, por cada 0,1 segundos que
tardaba su sitio web, implicaba una pérdida del 1 % en el total de ventas.

3. Es responsivo
El diseño web debe crear proyectos que se adapten perfectamente a cualquier
dispositivo en el que navegue un usuario. De hecho, hoy es más importante
que se le dé prioridad al diseño móvil, porque más del 64 % de las búsquedas
en Internet se hacen por medio de un teléfono móvil.

Con la implementación de este tipo de diseño brindarás una mejor experiencia


de usuario, ya que ofrece comodidad en cualquier resolución y dispositivo. Es
importante que consideres una paleta de colores para páginas web, ya que los
colores seleccionados serán la guía para todo lo que hagas en tu diseño web.

Incluso Google valora mucho este diseño, ya que:


 Evita los contenidos duplicados.
 Aumenta la posibilidad de que el contenido sea viral.
 Reduce el tiempo de desarrollo.
 Mejora la analítica web.
 Facilita la indexación en los motores de búsqueda.
 Aumenta la difusión en redes sociales.
 Se adapta a cualquier pantalla.
 Carga el sitio más rápido.

4. Es intuitivo
El diseño web debe ser simple y presentar una lógica clara que cualquier
persona pueda entender; esto implica que no debe haber ningún elemento sin
que cumpla un papel dentro del conjunto.

COMUNICACIONES - 2024
43
-Público-

5. Está optimizado
La labor del diseñador web, actualmente, va de la mano con el desarrollo web
y los generadores de contenido, porque juntos serán responsables de
optimizar un sitio web para que gane posiciones en los motores de búsqueda.

6. Presenta una estructura


El diseño web es orden, armonía y distribución de elementos. Así que esta es
una característica esencial para que se puedan generar proyectos efectivos,
ya que un sitio web requiere una estructuración específica.

7. Mantiene la coherencia
El diseño web no es caprichoso ni está aislado de un contexto, así que
responde a guías como a quién se dirige, los lineamientos de la voz de marca
y quizá ciertas solicitudes específicas para cumplir con objetivos claros. Así
que debe ser coherente con todo esto.

8. Es interactivo
Al ser web, lo interactivo es parte de su ADN. Así que un diseño web debe
estar pensado para conectarse y vincularse al mundo de la red, por medio de
hipervínculos o enlaces hacia el interior del mismo sitio o hacia el exterior.

9. Es comunicativo
El diseño web sin intención solamente es una buena imagen, por eso esta
característica le da sentido a lo que hagas. Todos los elementos en particular
y en su conjunto deben comunicar, informar, proponer o promover, desde los
contenidos hasta la imagen. Por eso se utilizan elementos como llamadas a la
acción, formularios web, banners y otros aspectos que permitan crear un
puente entre los usuarios y una marca.

10. Es altamente funcional


La usabilidad que hoy es tan buscada es una característica que no puedes
olvidar para el diseño web. De nada sirve ser atractivo si no es efectivo. La

COMUNICACIONES - 2024
44
-Público-

usabilidad permite la funcionalidad de todos los elementos que integran un


sitio web, lo cual permite que los usuarios naveguen fluidamente.

Lograr un diseño web eficiente y efectivo es posible. Además, un diseñador cuenta


con diversas herramientas que le ayudan en su labor, las cuales sirven para
optimizar cualquiera de sus proyectos.

Para qué sirve el diseño web


El diseño web profesional es una herramienta esencial para crear una identidad de
marca sólida, especialmente en la parte visual del branding. Además, desempeña un
papel crucial en el marketing digital, ya que permite crear landing pages que
conviertan visitantes en potenciales clientes, así como otros materiales en diversos
formatos para su publicación en entornos digitales como redes sociales, correos
electrónicos y anuncios.

El diseño web es útil para la atracción y retención de la atención de los usuarios y


visitantes de un sitio web. Además, mediante sus composiciones facilita la
navegación en las diferentes partes y páginas de un sitio web.
Actualmente, es una pieza clave para impulsar el ecommerce al transmitir un
mensaje visual, alineando la imagen de la marca de manera efectiva. El diseño de
páginas web, además, es fundamental para generar una gran experiencia de usuario
y aumentar la interacción con la audiencia de interés.

También su función es decisiva para el posicionamiento SEO de un sitio web, ya que


su manejo correcto de una estructura web ayudará a los motores de búsqueda para
que los contenidos del sitio web se encuentren de mejor forma.

Importancia del diseño web


En el diseño web profesional es fundamental saber hacer composiciones respetando
la imagen y personalidad de marca. A continuación podrás ver por qué es importante
el diseño web para una marca y en cualquier ámbito personal, profesional y
comercial.

COMUNICACIONES - 2024
45
-Público-

Obtienes visibilidad global


Tu sitio web puede ser una forma excelente de presentar tu negocio a clientes
potenciales en todo el mundo. Después de todo, Internet es un escaparate global. De
manera específica, tu sitio web es un espacio digital donde puedes contar la historia
de tu empresa, mostrar lo que ofreces y por qué lo ofreces.
Te diferencias de la competencia
En Internet existe mucha competencia y las personas se quedan con quien les ofrece
una mejor experiencia, que está definida por aspectos como la simplicidad y la
jerarquía visual.

No pierdas clientes potenciales por carecer de un sitio web actualizado, con buen
contenido y con una estructura que les permita navegar con facilidad.

Elementos de diseño de un sitio web


Ahora bien, para que el sitio web de tu empresa sea un éxito debe cumplir con varios
requisitos: la navegación debe ser fácil; los tiempos de carga, mínimos. Además, el
diseño debe adaptarse a la personalidad del negocio; es decir, de tu marca por
medio de conceptos visuales.
Utiliza a tu favor los elementos de diseño web que te presentamos a continuación;
verás que lograrás crear el estilo que mejor represente a tu empresa.

Estilo visual
El estilo visual de tu sitio web dependerá de lo que quieras transmitir y dar a conocer
acerca de tu empresa, por lo que tendrá que estar alineado a la identidad
corporativa. Usa el manual de estilo para destacar los detalles que la conforman y
apóyate en los siguientes elementos:

Colores
Elegir una combinación de colores adecuada es clave a la hora de presentar el
contenido de tu sitio web. Los colores claros facilitan la visualización, generan un
aspecto limpio y organizado y, lo más importante, no cansan al usuario. Por su parte,
los tonos oscuros dan una apariencia elegante que puede contribuir a la imagen de

COMUNICACIONES - 2024
46
-Público-

tu marca.

Ten cuidado al usar combinaciones de colores llamativos, ya que un uso excesivo


puede molestar, sobre todo si los estás utilizando como fondo para tus páginas web.

El color puede ayudarte a aumentar el reconocimiento de la marca: según sea la


paleta de color que adoptes, puedes incitar a los visitantes de tu sitio web a tomar
decisiones. Incluso es un factor que puede aumentar las conversiones si lo usas
coherentemente, ya que el color incrementa en un 80 % el reconocimiento de marca,
la cual se vincula directamente a la confianza que genera.

Tipografía
Las fuentes tipográficas que decidas utilizar para el sitio web de tu empresa deben
ser atractivas y fáciles de leer. Recuerda que buscas que los usuarios lean tu
contenido, así que no los canses con fuentes adornadas que puedan distraer o
confundir.

Entre las fuentes más recomendadas por su personalidad clara y sencilla son Times
New Roman, Arial y Cambria.

Eso sí, no dudes en emplear tipografías más audaces, elegantes o románticas en


algunos sitios clave, como el encabezado de cada página.

Imágenes
Las imágenes complementan el contenido del sitio y le dan dinamismo y contraste.
Es importante que elijas imágenes de buena calidad y que sean relevantes. Existen
muchos bancos de imágenes gratuitos con una enorme variedad de propuestas.
También puedes generar tus propias fotografías si quieres presentar tus productos
de forma atractiva. Esto le dará claridad a tus clientes, ya que sabrán muy bien qué
es lo que ofreces. Las imágenes son parte importante para atraer la atención de los
usuarios.
Un claro ejemplo de lo que no se debe hacer: son las imágenes que los restaurantes

COMUNICACIONES - 2024
47
-Público-

de comida rápida utilizan para promocionar sus platillos. Cuando ves las
hamburguesas en fotografía, lucen grandes, jugosas y deliciosas; pero cuando visitas
el establecimiento no se parecen a la imagen del menú. Es válido retocar las
imágenes de tus productos, pero cuida que lo que proyectes no se aleje de la
realidad.

Diseño web y SEO


El proceso de diseño web es estructura y detallado, además debe contemplar
diversos aspectos como, por ejemplo, la parte SEO.

El diseño web influye en el SEO, en tanto que la configuración puede afectar el


posicionamiento del sitio. En ese sentido, utilizar HTML y CSS permite que el sitio
sea legible para los motores de búsqueda.

Un sitio web necesita estructurarse de tal forma que desde el código (backend) y la
parte visual (frontend) brinden una navegación fluida y adecuada. En esta labor, el
diseño web contribuye a mejorar ciertos aspectos que impulsarán favorablemente el
SEO, como por ejemplo:
 Usar un buen sistema de navegación, que sea comprensible para los usuarios y
disminuya la tasa de rebote.
 Emplear URL que sean comprensibles y contengan palabras clave, en vez de
URL escogidas al azar.
 Tener una estructura web lógica y bien organizada que aumente la
rastreabilidad.
 Un contenido relevante más el diseño correcto es la fórmula ganadora.
Asimismo, el uso de alt texts en las imágenes ayuda a los buscadores a entender el
contenido y posicionarlo, así como los nombres de archivo (que sean lógicos y
acordes con el tema de cada página, en vez de una combinación de letras o números
incomprensibles).
El peso de las imágenes también afectará la velocidad de carga. Mantenerlas
comprimidas, mientras que no pierdan legibilidad, ayudará al mejor posicionamiento.
En este sentido, el diseño web contribuye con el tiempo de carga de un sitio web,

COMUNICACIONES - 2024
48
-Público-

pero también será fundamental para que sea responsivo y tener contenido de
calidad.
Un diseño web bien pensado y optimizado puede mejorar la experiencia del usuario y
aumentar la visibilidad de un sitio web en los resultados de búsqueda, lo que puede
llevar a un mayor tráfico y un mejor rendimiento en línea.

Aspectos estratégicos antes de comenzar un diseño web


Se dice que un sitio web es como una tarjeta de presentación, pero en realidad es
mucho más que eso. Por todo esto, antes de comenzar con la etapa de diseño o
construcción de tu web tienes que definir un buyer persona que reúna las
características esenciales de los clientes que deseas atraer. A partir de él podrás
diseñar de manera eficaz tu sitio, para que responda a las necesidades de tus
potenciales clientes. Ten en cuenta que esto también es válido si tu objetivo es crear
un micrositio o una one-page web.

Algunas preguntas que debes contestar antes de comenzar el diseño de tu sitio son:
 ¿Cuál es el objetivo de tu sitio web? Es imposible comenzar un sitio web si no
tienes claro para qué lo estás construyendo.
 ¿Cuál es tu sello como marca? Piensa en todos esos aspectos que te
diferencian de la competencia y que te hacen sobresalir.
 ¿Qué tipo de contenido necesitas? Tal vez sean artículos relacionados con tu
marca o simplemente descripciones más detalladas de las características de
tu producto.
 ¿Qué características de tu branding quieres resaltar? En este punto es
importante conocer los aspectos de imagen relevantes que pueden hacer que
tu sitio web destaque y brille por sí mismo.
 ¿Qué quieres en el menú de navegacion? Quizá necesitas una página donde
se agenden citas, otra donde simplemente reúnas todos los productos e
incluso una más para rellenar un formulario de contacto. Esta información
debe establecerse antes de comenzar a diseñar el sitio web para que no haya
omisiones cuando llegues a la etapa de creación del menú.

COMUNICACIONES - 2024
49
-Público-

 ¿Qué tipo de lenguaje quieres usar? Para definirlo es importante que


conozcas a tus clientes: qué les gusta, cómo hablan y con quién se
relacionan. Si tienes esta información, podrás llamar su atención con copies
hechos a la medida.

B. PROGRAMACIÓN EN “HTML”
El Lenguaje de Marcado de Hipertexto (HTML) es el código que se utiliza para
estructurar y desplegar una página web y sus contenidos. Por ejemplo, sus
contenidos podrían ser párrafos, una lista con viñetas, o imágenes y tablas de
datos. Como lo sugiere el título, este artículo te dará una comprensión básica
de HTML y cúal es su función.

HTML no es un lenguaje de programación; es un lenguaje de marcado que


define la estructura de tu contenido. HTML consiste en una serie de elementos
que usarás para encerrar diferentes partes del contenido para que se vean o
comporten de una determinada manera. Las etiquetas de encierre pueden
hacer de una palabra o una imagen un hipervínculo a otro sitio, se pueden
cambiar palabras a cursiva, agrandar o achicar la letra, etc. Por ejemplo, toma
la siguiente línea de contenido:

COMUNICACIONES - 2024
50
-Público-

Anatomía de un elemento HTML


Explora este párrafo en mayor profundidad.

Las partes principales del elemento son:


1. La etiqueta de apertura: consiste en el nombre del elemento (en este caso,
p), encerrado por paréntesis angulares (< >) de apertura y cierre. Establece
dónde comienza o empieza a tener efecto el elemento —en este caso, dónde
es el comienzo del párrafo—.
2. La etiqueta de cierre: es igual que la etiqueta de apertura, excepto que
incluye una barra de cierre (/) antes del nombre de la etiqueta. Establece
dónde termina el elemento —en este caso dónde termina el párrafo—.
3. El contenido: este es el contenido del elemento, que en este caso es sólo
texto.
4. El elemento: la etiqueta de apertura, más la etiqueta de cierre, más el
contenido equivale al elemento.

Los elementos pueden también tener atributos, que se ven así:

Los atributos contienen información adicional acerca del elemento, la cual no quieres
que aparezca en el contenido real del elemento. Aquí class es el nombre del atributo
y editor-note el valor del atributo. En este caso, el atributo class permite darle al
elemento un nombre identificativo, que se puede utilizar luego para apuntarle al

COMUNICACIONES - 2024
51
-Público-

elemento información de estilo y demás cosas.


Un atributo debe tener siempre:
1. Un espacio entre este y el nombre del elemento (o del atributo previo, si el
elemento ya posee uno o más atributos).
2. El nombre del atributo, seguido por un signo de igual (=).
3. Comillas de apertura y de cierre, encerrando el valor del atributo.
Los atributos siempre se incluyen en la etiqueta de apertura de un elemento, nunca
en la de cierre.

Anidar elementos
Puedes también colocar elementos dentro de otros elementos —esto se llama
anidamiento—. Si, por ejemplo, quieres resaltar una palabra del texto (en el ejemplo
la palabra «muy»), podemos encerrarla en un elemento <strong>, que significa que
dicha palabra se debe enfatizar:

Debes asegurarte que los elementos estén correctamente anidados: en el ejemplo de


abajo, creaste la etiqueta de apertura del elemento <p> primero, luego la del
elemento <strong>, por lo tanto, debes cerrar esta etiqueta primero, y luego la de
<p>. Esto es incorrecto:

Los elementos deben abrirse y cerrarse ordenadamente, de forma tal que se


encuentren claramente dentro o fuera el uno del otro. Si estos se encuentran

COMUNICACIONES - 2024
52
-Público-

solapados, el navegador web tratará de adivinar lo que intentas decirle, pero puede
que obtengas resultados inesperados. Así que, ¡no lo hagas!

Elementos vacíos
Algunos elementos no poseen contenido, y son llamados elementos vacíos. Toma,
por ejemplo, el elemento <img> de nuestro HTML:

Posee dos atributos, pero no hay etiqueta de cierre </img> ni contenido encerrado.
Esto es porque un elemento de imagen no encierra contenido al cual afectar. Su
propósito es desplegar una imagen en la página HTML, en el lugar en que aparece.

Anatomía de un documento HTML


Hasta ahora has visto lo básico de elementos HTML individuales, pero estos no son
muy útiles por sí solos. Ahora verás cómo los elementos individuales son
combinados para formar una página HTML entera. Vuelve a visitar el código de tu
ejemplo en [Link] (que viste por primera vez en el artículo Manejo de archivos):

COMUNICACIONES - 2024
53
-Público-

<!DOCTYPE html> —Tipo de documento.


Es un preámbulo requerido. Anteriormente, cuando HTML era joven (cerca de
1991/2), los tipos de documento actuaban como vínculos a un conjunto de reglas que
el código HTML de la página debía seguir para ser considerado bueno, lo que podía
significar la verificación automática de errores y algunas otras cosas de utilidad. Sin
embargo, hoy día es simplemente un artefacto antiguo que a nadie le importa, pero
que debe ser incluido para que todo funcione correctamente. Por ahora, eso es todo
lo que necesitas saber.

<html></html> — El elemento <html>.


Este elemento encierra todo el contenido de la página entera y, a veces, se le conoce
como el elemento raíz (root element).
 <head></head> — el elemento <head>. Este elemento actúa como un
contenedor de todo aquello que quieres incluir en la página HTML que no es
contenido visible por los visitantes de la página. Incluye cosas como palabras
clave (keywords), una descripción de la página que quieres que aparezca en
resultados de búsquedas, código CSS para dar estilo al contenido,
declaraciones del juego de caracteres, etc.
 <meta charset="utf-8"> — <meta>. Este elemento establece el juego de
caracteres que tu documento usará en utf-8, que incluye casi todos los
caracteres de todos los idiomas humanos. Básicamente, puede manejar
cualquier contenido de texto que puedas incluir. No hay razón para no
establecerlo, y puede evitar problemas en el futuro.
 <title></title> — el elemento <title> establece el título de tu página, que es el
título que aparece en la pestaña o en la barra de título del navegador cuando
la página es cargada, y se usa para describir la página cuando es añadida a
los marcadores o como favorita.
 <body></body> — el elemento <body>. Encierra todo el contenido que deseas
mostrar a los usuarios web que visiten tu página, ya sea texto, imágenes,
videos, juegos, pistas de audio reproducibles, y demás.

COMUNICACIONES - 2024
54
-Público-

Como ya se dijo antes, incrusta una imagen en la página, en la posición en que


aparece. Lo logra a través del atributo src (source), el cual contiene el path (ruta o
ubicación) de tu archivo de imagen.
También se incluye un atributo alt (alternative) el cual contiene un texto que debería
describir la imagen, y que podría ser accedido por usuarios que no pueden ver la
imagen, quizás porque:

1. Son ciegos o tienen deficiencias visuales. Los usuarios con impedimentos


visuales usualmente utilizan herramientas llamadas Lectores de pantalla
(Screen Readers), los cuales les leen el texto contenido en el atributo alt.

2. Se produjo algún error en el código que impide que la imagen sea cargada.
Como ejemplo, modifica deliberadamente la ubicación dentro del
atributo src para que este sea incorrecto. Si guardas y recargas la página,
deberías ver algo así en lugar de la imagen:

La frase clave acerca del texto alt de arriba es «texto que debería describir la
imagen». El texto alt debe proporcionarle al lector la suficiente información como
para que este tenga una buena idea de qué muestra la imagen. Por lo que tu texto
actual «Mi imagen de prueba» no es para nada bueno. Un texto mucho mejor para el
logo de Firefox sería: «El logo de Firefox: un zorro en llamas rodeando la Tierra».

Marcado de texto
Esta sección cubrirá algunos de los elementos HTML básicos que usarás para el

COMUNICACIONES - 2024
55
-Público-

marcado de texto.

Encabezados
Los elementos de encabezado permiten especificar que ciertas partes del contenido
son encabezados, o subencabezados del contenido. De la misma forma que un libro
tiene un título principal, y que a su vez puede tener títulos por cada capítulo
individual, y subtítulos dentro de ellos, un documento HTML puede tenerlos también.
HTML posee seis niveles de encabezados, <h1> (en-US)–<h6> (en-US), aunque
probablemente solo llegues a usar 3-4 como mucho:

Intenta ahora añadir un título apropiado para tu página HTML, antes de tu


elemento <img>.

Párrafos
Como se explicó más arriba, los elementos <p> se utilizan para encerrar párrafos de
texto; los usarás frecuentemente para el marcado de contenido de texto regular:

Agrega uno o algunos párrafos a tu texto de ejemplo (deberías tenerlo de cuando


estudiaste ¿Cuál será la apariencia de tu sitio web?), colocados directamente debajo
del elemento <img>.

COMUNICACIONES - 2024
56
-Público-

Listas
Mucho del contenido web está dado por listas, así que HTML tiene elementos
especiales para ellas. El marcado de listas se realiza siempre en al menos dos
elementos. Los dos tipos de listas más comunes son las listas ordenadas y las
desordenadas:
1. Las listas desordenadas son aquellas en las que el orden de los items no es
relevante, como en una lista de compras. Estas son encerradas en un
elemento <ul> (unordered list).
2. Las listas ordenadas son aquellas en las que el orden sí es relevante, como
en una receta. Estas son encerradas en un elemento <ol> (ordered list).
Cada elemento de la lista se coloca dentro de un elemento <li> (list item).
Por ejemplo, si quieres transformar parte del siguiente párrafo en una lista:

COMUNICACIONES - 2024
57
-Público-

Vínculos
Los vínculos o enlaces son muy importantes —son los que hacen de la web, la
web—. Para implementar un vínculo, necesitas usar un vínculo simple — <a> —
la a es la abreviatura de la palabra inglesa «anchor» («ancla»). Para convertir algún
texto dentro de un párrafo en un vínculo, sigue estos pasos:

Podrías obtener resultados inesperados si al comienzo de la dirección web omites la


parte https:// o http:// llamada protocolo. Así que luego del marcado del vínculo, haz
clic en él para asegurarte que te dirige a la dirección deseada.

COMUNICACIONES - 2024
58

También podría gustarte