Wikilibros
eswikibooks
https://es.wikibooks.org/wiki/Portada
MediaWiki 1.47.0-wmf.15
first-letter
Medio
Especial
Discusión
Usuario
Usuario discusión
Wikilibros
Wikilibros discusión
Archivo
Archivo discusión
MediaWiki
MediaWiki discusión
Plantilla
Plantilla discusión
Ayuda
Ayuda discusión
Categoría
Categoría discusión
TimedText
TimedText talk
Módulo
Módulo discusión
Evento
Evento discusión
Wikilibros:Ayuda
4
354
431583
425824
2026-08-17T11:44:20Z
Antimundo
74354
/* Enlaces de interés */ Añadir enlace a proyectos
431583
wikitext
text/x-wiki
{{Ayuda}}
<div style="float: right"> __TOC__ </div>
{| class="wikitable"
|-
| [[Archivo:Nuvola apps khelpcenter.png|75px|left|link=]]
Esta página de '''ayuda''' contiene enlaces a manuales y explicaciones que te facilitarán el día a día en Wikilibros.
|}
== Introducción ==
{| class="wikitable"
|-
| [[File:People together.svg|30px]] '''[[Wikilibros:Bienvenida|Bienvenida]]''' || Lectura recomendada para quienes llegan a Wikilibros por primera vez.
|-
| width=50% | [[File:Nuvola apps kpdf2.svg|30px]] '''[[Manual de Wikilibros|Manual]]''' || Manual que contiene la información necesaria para poder empezar a contribuir a Wikilibros.
|-
| width=50% | [[File:Gnome-help-faq-dark.svg|30px]] '''[[Ayuda:Preguntas frecuentes|Preguntas frecuentes]]''' || Respuestas a algunas preguntas frecuentes sobre Wikilibros.
|}
== Enlaces de interés ==
{| class="wikitable"
|-
| [[File:Nuvola apps kuser.svg|30px]] '''[[Wikilibros:Portal de la comunidad|Comunidad]]''' || Descubre lo que sucede en la comunidad de Wikilibros.
|-
| width=50% | [[File:Cup-o-coffee-simple.svg|30px]] '''[[Wikilibros:Café|Café]]''' || Espacio de discusión general.
|-
| width=50% | [[File:Broom icon.svg|30px]] '''[[Wikilibros:Tablón de anuncios a los bibliotecarios|Tablón de anuncios a los bibliotecarios]]''' || Espacio para ponerse en contacto con los bibliotecarios.
|-
| width=50% | [[File:Crystal Clear action run approved.svg|30px]] '''[[Wikilibros:Políticas y orientaciones|Políticas y orientaciones]]''' || Todas las políticas y convenciones de Wikilibros.
|-
| width=50% | [[File:Tools-hammer.svg|30px]] '''[[Wikilibros:Proyectos|Proyectos]]''' || Espacios para organizar el trabajo en torno a distintas tareas.
|}
Enlaces a otros proyectos de Wikimedia:
* [[w:Wikipedia:Ayuda|Wikipedia:Ayuda]]
* [[m:Help:Contents|Ayuda completa de MediaWiki (en inglés)]]
[[Categoría:Wikilibros:Ayuda]]
aibx0iain1acwm9czudbkym9raoom7c
Programación en C/Fundamentos de programación
0
434
431391
296007
2026-08-16T22:36:36Z
Antimundo
74354
Categorizar usando AutoCat
431391
wikitext
text/x-wiki
<noinclude>
{{Navegar|anterior=Historia de C
|siguiente=Primer programa en C
|reducido=Si
}}
</noinclude>
En este capítulo veremos un resumido listado de conceptos básicos, esta información puede encontrarse en forma más elaborada en el WikiLibro [[Fundamentos de programación]].
== Definiciones ==
* Se denomina '''[[w:Algoritmo|algoritmo]]''' a una secuencia de instrucciones que permiten obtener un resultado en particular. No necesariamente son programas de computadora, una receta de cocina, o las instrucciones para cambiar un neumático son ejemplos de algoritmos de la vida real.
* Las '''[[w:Computadora|computadoras]]''', son maquinas sin inteligencia propia, cuya única finalidad es interpretar el código que se les provee.
* El '''[[w:Lenguaje de máquina|lenguaje de máquina]]''' es el único lenguaje que la computadora "entiende" y es capaz de ejecutar.
* Los '''[[w:Lenguaje de programación|lenguajes de programación]]''' son el medio de comunicación entre el programador y una computadora. El programador escribe en algún lenguaje de programación y utiliza las herramientas provistas por ese lenguaje para transformarlo en lenguaje de máquina.
* Finalmente, denominamos '''[[w:Programa_(computación)|programa]]''' a una secuencia de órdenes a ser ejecutadas por una computadora. Un programa debe estar escrito en algún lenguaje de programación, y puede incluir uno o más algoritmos.
== Tipos de lenguajes ==
Existe una gran cantidad de lenguajes de programación, que están pensados para distintas finalidades, siguen distintos [[:w:Paradigma de programación|paradigmas]], y de una u otra forma se diferencian de los demás.
=== Esquemas de programación ===
El esquema de programación llamado '''[[:w:Programación_imperativa|Programación Imperativa]]''', consiste en escribir una secuencia de instrucciones una detrás de la otra, que se ejecutarán en orden. Algunas de esas instrucciones pueden hacer que la máquina pase a una instrucción que no sea la siguiente, tal vez porque se cumpla una condición que hayamos establecido.
En los últimos años ha tomado fuerza otro paradigma de computación, llamado '''[[:w:Programación_orientada_a_objetos|Programación Orientada a Objetos]]''' , en el cual se intentan modelar los sistemas creados como extensiones de la realidad mediante la definición de "objetos" que modelan entidades de la vida real y que interactúan entre sí mediante "mensajes" llamadas métodos.
El lenguaje C es un lenguaje imperativo, no orientado a objetos.
=== Alto o bajo nivel ===
Por otro lado, los lenguajes de programación se clasifican en niveles. Un lenguaje es de más '''[[w:Lenguaje_de_bajo_nivel|bajo nivel]]''' cuanto más cercano esté al código de máquina, y un lenguaje que es de más '''[[w:Lenguaje_de_alto_nivel|alto nivel]]''' cuanto más lejano esté de la máquina y más cercano al lenguaje humano.
C es un lenguaje de alto nivel aunque tiene muchas características de lenguaje de bajo nivel (como el uso que permite hacer de la memoria). Estas características hacen que C sea un lenguaje muy potente, ya que permite optimizar al máximo los recursos de la máquina. Por ende, esto también hace que la dificultad y que los errores que se puedan cometer programando aumenten. Así que a C se le considera de nivel medio.
Lenguajes de más alto nivel que C son aquellos en los que el programador no necesita encargarse de manipular la memoria, como '''[[w:Lenguaje_de_programación_Java|Java]]''', '''[[w:C_Sharp|C#]]''', '''[[w:Python|Python]]''', '''[[w:Ruby|Ruby]]''', entre otros.
=== Compilados o interpretados ===
Otra forma de clasificar a los lenguajes de programación que es según la forma en que se ejecutan sus órdenes. Existen los lenguajes que son '''[[w:Lenguaje_interpretado|interpretados]]''', cuyas órdenes pasan a través de un intérprete que se encarga de ejecutarlas (a partir del código fuente) en el mismo momento en que están siendo leídas. Algunos de los lenguajes interpretados son '''[[w:Python|Python]]''', '''[[w:Perl|Perl]]''' o '''[[w:Tcl|Tcl]]''', entre muchos otros.
La contraparte de los lenguajes interpretados son los lenguajes '''[[w:Lenguaje_compilado|compilados]]''' (como el mismo C) que se diferencian en que las órdenes son transformadas a lenguaje de máquina que se almacena en un archivo ejecutable. Ese archivo puede ejecutarse luego, sin recurrir al compilador.
Los lenguajes compilados tienen la ventaja de la velocidad y la eficiencia, pero los interpretados tienen la ventaja de que, generalmente, son muy portables y de más alto nivel.
== Estructura de la memoria ==
Parte de esta potencia de C viene de que permite acceder con mucha libertad a la memoria de la máquina. Para entender un poco cómo es posible, debemos entender cómo se guardan los datos en la memoria.
Imaginemos que la memoria tiene un montón de casillas, una enorme fila de casillas, cada una de las cuales contiene un [[w:Bit|dígito binario (bit)]]:
0101001010100001010101001010000100111010110010010101001011010110001101010110101010110111...
Es exactamente así, pero es más cómodo recordar que esos bits se encuentran agrupados de ocho en ocho, formando [[w:Byte|octetos (bytes)]]:
{| border="1" cellspacing="0" cellpadding="3"
|01010010||10100001||01010100||10100001||00111010||11001001||01010010||11010110||00110101||01101010||10110111||...
|}
Cada octeto puede contener <math>2^8=256</math> combinaciones distintas de ceros y unos, es decir, cualquier número entre 0 y 255:
{| border="1" cellspacing="0" cellpadding="3"
|82||161||84||161||58||201||82||214||181||106||183||...
|}
También podemos representar estos números en base hexadecimal:
{| border="1" cellspacing="0" cellpadding="3"
|0x52||0xA1||0x54||0xA1||0x3A||0xC9||0x52||0xD6||0x35||0x6A||0xB7||...
|}
O considerarlos caracteres, mediante alguna [[w:Codificación_de_caracteres|codificación]]:
{| border="1" cellspacing="0" cellpadding="3"
|R||¡||T||¡||:||É||R||Ö||5||j||·||...
|}
Este es el tipo de dato más elemental que nos podemos encontrar en C: el caracter. Un caracter ocupa exactamente un byte (8 bits) de memoria, y puede contener un número entre 0 y 255, o entre -128 y 127, dependiendo si queremos considerarlo como sin signo o con él.
<noinclude>
{{Navegar|anterior=Historia de C
|siguiente=Primer programa en C
|reducido=Si
}}
</noinclude>
[[gl:C/Características]]
{{AutoCat}}
cxu2edu1h52xbbadgb8tnll3sdej53y
Programación en C/Instrucciones de control
0
436
431385
376698
2026-08-16T22:24:16Z
Antimundo
74354
Actualizar etiquetas source obsoletas
431385
wikitext
text/x-wiki
<noinclude>
{{Navegar|anterior=Expresiones
|siguiente=Uso de funciones
|reducido=Si
}}
</noinclude>
Como ya se ha mencionado, C es un ejemplo de [[w:Programación Estructurada|programación
estructurada]]. En este tipo de programación, es necesario contar con ciertas estructuras que permitan
controlar el flujo del programa, es decir, tomar decisiones y repetir acciones.
==La estructura condicional <syntaxhighlight inline lang=c>if ... else</syntaxhighlight>==
En la gran mayoría de los programas será necesario tomar decisiones sobre qué acciones realizar.
Esas decisiones pueden depender de los datos que introduzca el usuario, de si
se ha producido algún error o de cualquier otra cosa.
La estructura condicional <syntaxhighlight inline lang=c>if ... else</syntaxhighlight> es
la que nos permite tomar ese tipo de decisiones. Traducida literalmente del
inglés, se la podría llamar la estructura "si...si no", es decir, "si se cumple
la condición, haz esto, y sino, haz esto otro".
Un ejemplo sencillo sería el siguiente (no se trata de un programa completo,
sino tan sólo una porción de código):
<syntaxhighlight lang=c>
if (edad < 18)
printf("No puedes acceder.\n");
else
printf("Bienvenido.\n");
</syntaxhighlight>
Este código de ejemplo dice que si el valor de la variable <syntaxhighlight inline lang=c>edad</syntaxhighlight> es
menor que <syntaxhighlight inline lang=c>18</syntaxhighlight> se imprimirá <syntaxhighlight
inline lang=c>"No puedes acceder.\n"</syntaxhighlight>, mientras que en caso
contrario se imprimirá <syntaxhighlight inline lang=c>"Bienvenido.\n"</syntaxhighlight>.
Como se ve en el ejemplo, la estructura de un condicional es bastante simple:
<syntaxhighlight lang=c>
if (condición) {
sentencias_si_verdadero;
} else {
sentencias_si_falso;
}
</syntaxhighlight>
La condición, encerrada entre paréntesis, es una expresión que puede dar como resultado '''0''' (interpretado como '''falso''') o cualquier valor '''distinto de 0''' (interpretado como '''verdadero'''). Cuando la condición sea verdadera, se ejecutarán las sentencias dentro del primer bloque de código, cuando la condición sea falsa, se ejecutarán las sentencias del
segundo bloque de código. Las expresiones y valores de tipo verdadero/falso son también llamados valores '''lógicos''' o '''booleanos'''.
La [[w:Indentación|indentación o sangría]] (los espacios al comienzo de las líneas) no es
necesaria, pero ayuda a la claridad del código. La utilización de las llaves
<syntaxhighlight inline lang=c>{</syntaxhighlight>...<syntaxhighlight inline lang=c>}</syntaxhighlight>
es obligatoria cuando se quiere utilizar más de una instrucción por bloque, y
optativa cuando sólo se quiere escribir una instrucción. Por claridad, sin
embargo, es recomendable utilizarlas aún cuando sólo vaya a haber una instrucción.
El bloque del <syntaxhighlight inline lang=c>else</syntaxhighlight> es opcional.
Si no se lo encuentra, sólo se realizará la acción correspondiente al bloque
<syntaxhighlight inline lang=c>if</syntaxhighlight>.
A continuación, un ejemplo con una función, que devuelve el mayor de dos números:
<syntaxhighlight lang=c>
int mayor(int a, int b)
{
if (b > a) {
return b;
}// No posee especificación de la parte "else", ya que no es necesaria.
return a; // Finaliza la función retornando el valor de "a".
}
</syntaxhighlight>
=== Operadores de comparación ===
El símbolo <code>></code> visto en el último ejemplo es un '''operador''', que en este caso compara dos números enteros y devuelve verdadero si el primero es mayor, falso en caso contrario.
A continuación un listado de los posibles operadores de comparación en C y su significado.
{| style="border-collapse:collapse;background:white;" cellpadding=5px
|+ Operadores de Comparación
|- style="font-weight:bold; text-align:center;"
! width=50% style=" border:1px solid gray;"|Operador
! width=50% style=" border:1px solid gray;"|Significado
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c><</syntaxhighlight>
| style="border:1px solid gray;"|estrictamente menor que
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>></syntaxhighlight>
| style="border:1px solid gray;"|estrictamente mayor que
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c><=</syntaxhighlight>
| style="border:1px solid gray;"|menor o igual que
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>>=</syntaxhighlight>
| style="border:1px solid gray;"|mayor o igual que
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>==</syntaxhighlight>
| style="border:1px solid gray;"|igual a
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>!=</syntaxhighlight>
| style="border:1px solid gray;"|distinto de
|}
<!-- NOTA: esta tabla debería estar en un anexo de referencia y que acá sólo haya un link -->
Teniendo en cuenta que en C se toma como falso el valor 0, y como verdadero
cualquier otro valor, una práctica común es expresar condiciones sin utilizar ningún operador:
<syntaxhighlight lang=c>
float division(int dividendo, int divisor)
{
if (divisor) {
return dividendo / divisor;
} else {
printf ("No se puede dividir por cero\n");
return 0;
}
}
</syntaxhighlight>
En este caso, la expresión <code>(divisor)</code> es equivalente a <code>(divisor != 0)</code>.
=== Operadores lógicos ===
Los operadores <syntaxhighlight inline lang=c>&&</syntaxhighlight> ("y"), <syntaxhighlight
inline lang=c>||</syntaxhighlight> ("o") y <syntaxhighlight inline lang=c>!</syntaxhighlight> ("no") son '''operadores lógicos'''. Permiten operar con expresiones lógicas para generar expresiones más complejas.
Por ejemplo: determinar si un año es bisiesto o no. Los años son bisiestos si son divisibles por 4, pero no si
son divisibles por 100, a menos que también sean divisibles por 400.
<syntaxhighlight lang=c>
if ( (!(a % 4) && (a % 100)) || !(a % 400) ) {
printf("es un año bisiesto.\n");
} else {
printf("no es un año bisiesto.\n");
}
</syntaxhighlight>
En realidad, teniendo en cuenta la prioridad de los operadores utilizados, podemos simplificar la expresión anterior del siguiente modo:
<syntaxhighlight lang=c>
if ( !(a % 4) && (a % 100) || !(a % 400) ) {
printf("es un año bisiesto.\n");
} else {
printf("no es un año bisiesto.\n");
}
</syntaxhighlight>
Además, como a cada rama del if le sigue una única instrucción, podemos expresar la expresión anterior del siguiente modo:
<syntaxhighlight lang=c>
if ( !(a % 4) && (a % 100) || !(a % 400) )
printf("es un año bisiesto.\n");
else
printf("no es un año bisiesto.\n");
</syntaxhighlight>
En este caso, se utiliza el operador módulo (%), que obtiene el [[w:Resto|resto]] de la división
entera de un número por otro. Cuando un número es divisible por otro, el resto de su división
entera será cero. Siendo que cero es equivalente a falso, y cualquier valor distinto de cero es
equivalente a verdadero, podemos usar el operador <syntaxhighlight inline lang=c>%</syntaxhighlight> para
verificar si el número es múltiplo de 4, de 100 o de 400.
<!--
NOTA: Esto **NO** va acá. La precedencia de operadores debe estar al final, en la referencia
**NO** en el texto que está introduciendo las estructuras de control.
{| style="border-collapse:collapse;background:white;" cellpadding=5px width=50%
! width=50% style="font-weight:bold; text-align:center; border:1px solid gray;" |Operadores
! width=50% style="font-weight:bold; text-align:center; border:1px solid gray;" |Precedencia
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>!</syntaxhighlight>
| style="border:1px solid gray;"|Unario
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>* /</syntaxhighlight>
| style="border:1px solid gray;"|Izq. a Der.
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>+ -</syntaxhighlight>
| style="border:1px solid gray;"|Izq. a Der.
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>< <= > >=</syntaxhighlight>
| style="border:1px solid gray;"|Izq. a Der.
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>== !=</syntaxhighlight>
| style="border:1px solid gray;"|Izq. a Der.
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>&&</syntaxhighlight>
| style="border:1px solid gray;"|Izq. a Der.
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>||</syntaxhighlight>
| style="border:1px solid gray;"|Izq. a Der.
|-
| style="border:1px solid gray;"|<syntaxhighlight inline lang=c>=</syntaxhighlight>
| style="border:1px solid gray;"|Der. a Izq.
|}
NOTA: Y si bien el ejemplo que viene acá es cierto, es una male idea recomendar sacar los paréntesis.
En realidad, gracias a las reglas de precedencia muchas veces nos podemos
ahorrar los paréntesis:
<syntaxhighlight lang=c>
void revisar_gasolina(int gasolina, bool gasolinera_cerca)
{
if (gasolina<5 && !gasolinera_cerca) {
printf("Tenemos un problema.\n");
}
return;
}
</syntaxhighlight>
-->
<!--
NOTA: Esto no aporta nada
Es importante darse cuenta de que la condición puede ser cualquier expresión
que proporcione un resultado, lo que incluye cualquier función cuyo tipo (es
decir, el valor que devuelve) no sea <syntaxhighlight inline lang=c>void</syntaxhighlight>.
En este ejemplo, suponemos que hemos definido, por otro lado, la función
<syntaxhighlight inline lang=c>detectar_error()</syntaxhighlight> que devuelve un número,
que es <syntaxhighlight inline lang=c>0</syntaxhighlight> si no hay errores:
<syntaxhighlight lang=c>
bool detectar_error(bool hay_error)
{
if (hay_error) {
return 1;
} else {
return 0;
}
}
void si_error(void)
{
if (detectar_error()) {
printf("Se ha detectado un error.\n");
}
return;
}
</syntaxhighlight>
-->
=== Evaluación de cortocircuito ===
<!-- Nota: esto tal vez convendría que esté en otro lado, pero no estoy segura dónde -->
La evaluación en corto circuito es una característica del lenguaje C que se
utiliza para optimizar la ejecución de programas. Consiste en que el programa puede
verificar si una expresión es verdadera o falsa antes de haber evaluado toda condición.
Por ejemplo, si se tiene una condición como la siguiente:
<syntaxhighlight lang=c>
if ((a > 2) || (b < 4)) {
...
}
</syntaxhighlight>
Al ejecutarse el programa, se evaluará primero si
<syntaxhighlight inline lang=c>a > 2</syntaxhighlight>. En el caso en que sea verdadero,
no continuará con la siguiente condición, ya que el resultado será de cualquier
modo verdadero.
De la misma forma, si la condición fuera:
<syntaxhighlight lang=c>
if ((a > 2) && (b < 4)) {
...
}
</syntaxhighlight>
En este caso, si no se cumple que <syntaxhighlight inline lang=c>a > 2</syntaxhighlight>,
no se evaluará la siguiente condición, ya que el resultado será falso de todos
modos.
Esta característica no tiene demasiada importancia al comenzar a programar, pero
facilitará ciertas operaciones y optimizaciones en programas avanzados.
<!--
Nota: esto ya está explicado antes. Se recomienda usar siempre llaves.
Tal vez habría que poner una referencia de qué es un bloque en algún lado.
Finalmente, es importante darse cuenta de que, tanto para el <syntaxhighlight
inline lang=c>if</syntaxhighlight> como para el <syntaxhighlight inline
lang=c>else</syntaxhighlight>, las sentencias que se ejecutan pueden sustituirse por
bloques de sentencias entre llaves. De hecho, casi en cualquier sitio en que
podamos poner una sentencia, podremos poner un bloque.
Si suponemos, una vez más, que hemos definido <syntaxhighlight inline
lang=c>gasolina</syntaxhighlight> y <syntaxhighlight inline
lang=c>gasolinera_cerca</syntaxhighlight>:
<syntaxhighlight lang=c>
void revisar_gasolina(int gasolina, bool gasolinera_cerca)
{
if ( gasolina<5 && !gasolinera_cerca ) {
printf("Tenemos un problema con la gasolina.\n");
printf("Por favor, modere la velocidad para un menor consumo.\n");
} else {
printf("Vamos suficientemente bien de gasolina.\n");
printf("Sin embargo, no circule a altas velocidades, por favor.\n");
}
return;
}
</syntaxhighlight>
-->
==La estructura condicional abierta y cerrada <syntaxhighlight inline lang=c>switch ... case</syntaxhighlight>==
La estructura condicional <syntaxhighlight inline lang=c>switch ... case</syntaxhighlight>
se utiliza cuando queremos evitarnos las llamadas escaleras de decisiones. La
estructura <syntaxhighlight inline lang=c>if</syntaxhighlight> nos puede proporcionar,
únicamente, dos resultados, uno para verdadero y otro para falso. Una
estructura <syntaxhighlight inline lang=c>switch ... case</syntaxhighlight>, por su parte,
nos permite elegir entre muchas opciones. Ejemplo:
<syntaxhighlight lang="c">
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int dia;
printf("¿Qué número de día de la semana es?");
scanf("%i",&dia);
switch(dia) {
case 1 :
printf("Lun, Lunes");
break;
case 2 :
printf("Mar, Martes");
break;
case 3 :
printf("Mier, Miercoles");
break;
case 4 :
printf("Jue, Jueves");
break;
case 5 :
printf("Vie, Viernes");
break;
case 6 :
printf("Sab, Sabado");
break;
case 7 :
printf("Dom, Domingo");
break;
default :
printf("No existe");
}
return 0;
}
</syntaxhighlight>
La estructura anterior, de realizarse con sentencias <syntaxhighlight inline
lang=c>if</syntaxhighlight>, necesitaría cuatro de ellas, resultando un enorme bloque
muy difícil de leer. En la mayoría de los casos, además, la sentencia <syntaxhighlight
inline lang=c>switch</syntaxhighlight> proporciona una ganancia en velocidad del
código, pues permite al compilador trabajar en base a que se trata de una
decisión múltiple para una única variable, cosa que con sentencias <syntaxhighlight
inline lang=c>if</syntaxhighlight> el compilador no tiene por qué detectar.
Como vemos, para cada valor de la variable se ejecuta un bloque de sentencias
distinto, en el que no necesitamos llaves. Hay un caso especial, <syntaxhighlight
inline lang=c>default</syntaxhighlight>, que se ejecuta si ningún otro
corresponde, y que no es necesario poner. Es, en todo, equivalente al bloque
<syntaxhighlight inline lang=c>else</syntaxhighlight> de una sentencia <syntaxhighlight inline
lang=c>if</syntaxhighlight>.
Las sentencias <syntaxhighlight inline lang=c>break</syntaxhighlight> son muy importantes,
ya que el comportamiento normal de un bloque <syntaxhighlight inline
lang=c>switch</syntaxhighlight> es ejecutarlo todo desde la etiqueta <syntaxhighlight
inline lang=c>case</syntaxhighlight> que corresponda hasta el final. Por ello, si
no queremos que se nos ejecute más de un bloque, pondremos sentencias <syntaxhighlight
inline lang=c>break</syntaxhighlight> al final de cada bloque excepto el último.
Es decir, las etiquetas <syntaxhighlight inline lang=c>case</syntaxhighlight> son puntos de
entrada de la ejecución, y no implican que al acabarse el bloque <syntaxhighlight
inline lang=c>case</syntaxhighlight> la ejecución salte al final del bloque
<syntaxhighlight inline lang=c>switch</syntaxhighlight>. Las etiquetas <syntaxhighlight inline
lang=c>case</syntaxhighlight> siguientes a la que hemos utilizado para entrar son,
sencillamente, ignoradas.
A la ausencia de sentencias <syntaxhighlight inline lang=c>break</syntaxhighlight> se le
llama, en ocasiones, "dejar caer la cascada <syntaxhighlight inline
lang=c>switch</syntaxhighlight>".
==El bucle <syntaxhighlight inline lang=c>while</syntaxhighlight>==
El bucle <syntaxhighlight inline lang=c>while</syntaxhighlight> sirve para ejecutar código
reiteradas veces.
<syntaxhighlight lang=c>
while (/*condicion*/) {
/* Código */
}
</syntaxhighlight>
La condición debe de ser una expresión lógica, similar a la de la sentencia <code>if</code>. Primero se evalúa la condición. Si el resultado es verdadero, se ejecuta el bloque de código. Luego se vuelve a evaluar la condición, y en caso de dar verdadero se vuelve a ejecutar el bloque. El bucle se corta cuando la condición da falso.
Ejemplo: imprimir los números de 0 a 99:
<syntaxhighlight lang=c>
int i = 0;
while (i < 100) {
printf("%d\n", i);
i = i + 1;
}
</syntaxhighlight>
Inicialmente se declara que la variable i tiene un valor de 0. Al iniciar el bucle, se cumple la condición i < 100, por lo que se procede a la instrucción de imprimir dicho número (cero, en el caso inicial). Posteriormente i cambiará su valor de uno en uno por la instrucción i = i + 1 y seguidamente dicho valor nuevo, será evaluado en la condicion <code>while</code> hasta que i llegue al valor 100, donde debido a la condicional, éste será un valor falso, dando fin al código.
==El bucle <syntaxhighlight inline lang=c>for</syntaxhighlight>==
El bucle <syntaxhighlight inline lang=c>for</syntaxhighlight> es un bucle muy flexible y a la
vez muy potente ya que tiene varias formas interesantes de implementarlo, su
forma más tradicional es la siguiente:
<syntaxhighlight lang=c>
for (/* inicialización */; /* condición */; /* incremento */) {
/* código a ejecutar */
}
</syntaxhighlight>
Inicialización: en esta parte se inicia la variable que controla el bucle y es
la primera sentencia que ejecuta el bucle. Sólo se ejecuta una vez ya que solo
se necesita al principio del bucle.
Expresión condicional: al igual que en el bucle <code>while</code>, esta expresión determina si el bucle continuará ejecutándose o no.
Incremento: es una sentencia que ejecuta al final de cada iteración del bucle. Por lo general, se utiliza para incrementar la variable con que se inicio el ciclo.
Luego de ejecutar el incremento, el bucle revisa nuevamente la condición, si es verdadera tiene lugar una ejecución
más del cuerpo del ciclo, si es falsa se termina el ciclo y así.
Aquí se muestra el mismo ejemplo visto para el bucle <code>while</code>, pero implementado con un bucle <code>for</code>:
<syntaxhighlight lang=c>
int i;
for (i=0; i < 100; i = i + 1) {
printf("%d\n", i);
}
</syntaxhighlight>
Nota: En C, la sentencia <code>i = i + 1</code> puede escribirse en forma más reducida como <code>i++</code>. Esta forma se utiliza más comúnmente en el bucle <code>for</code>:
<syntaxhighlight lang=c>
int i;
for (i=0; i < 100; i++) {
printf("%d\n", i);
}
</syntaxhighlight>
==El bucle <code>do</code><code>...</code><code>while</code>==
El bucle <syntaxhighlight inline lang=c>do...while</syntaxhighlight> es un bucle que, por
lo menos, se ejecuta una vez. Do significa literalmente "hacer", y while significa "mientras".
Su forma es esta:
<syntaxhighlight lang=c>
do {
/* CODIGO */
} while (/* Condición de ejecución del bucle */)
</syntaxhighlight>
Os muestro un ejemplo sencillo de uso:
<syntaxhighlight lang=c>
int aleatorio;
do {
aleatorio = rand();
} while (aleatorio != 25);
</syntaxhighlight>
La verdad es que este ejemplo puede resultar un poco absurdo, pero es bastante
intuitivo. El código del bucle asigna un valor aleatorio a la variable definida
anteriormente, y mientras esa variable no tenga el valor 25, el bucle sigue
ejecutándose.
==La sentencia <syntaxhighlight inline lang=c>goto</syntaxhighlight> ==
La sentencia <syntaxhighlight inline lang=c>goto</syntaxhighlight> sirve para indicar al
programa que continue ejecutándose desde la línea de código indicada. Su sintaxis es más o menos así:
<syntaxhighlight lang=c>
/* Código */
ETIQUETA:
/* Código */
goto ETIQUETA;
/* Código */
</syntaxhighlight>
Así, cuando se ejecute la sentencia <syntaxhighlight inline lang=c>goto</syntaxhighlight>,
el programa "saltará" y continuará su ejecución a partir de la etiqueta marcada.
Como se
puede observar se puede usar para crear un bucle, o para ir a una parte del
código u otra si se combina con una sentencia <syntaxhighlight inline
lang=c>if...else</syntaxhighlight>. Pero por lo general puede obtenerse el mismo efecto utilizando los bucles anteriormente vistos.
Por eso, la sentencia <code>goto</code>
es poco aceptada por la comunidad de programadores, pues
puede provocar que se hagan programas un poco "sucios" y confusos. Sólo en ocasiones muy excepcionales será recomendado el uso del goto al crear
iteraciones muy complejas. Sin embargo, con el pasar de los años este comando ya ha quedado prácticamente descartado del lenguaje de los programadores.
<noinclude>
{{Navegar|anterior=Expresiones
|siguiente=Uso de funciones
|reducido=Si
}}
</noinclude>
68xk01h23mws9rfwledqkhi0vo3j2hk
Programación en C/Primer programa en C
0
477
431392
292632
2026-08-16T22:36:51Z
Antimundo
74354
Categorizar usando AutoCat
431392
wikitext
text/x-wiki
<noinclude>
{{Navegar|anterior=Fundamentos de programación
|siguiente=Tipos de datos
|reducido=Si
}}
</noinclude>
En el libro "El Lenguaje de Programación C", Kernighan y Ritchie introdujeron al lenguaje C utilizando un sencillo programa que mostraba un saludo por la pantalla. Desde entonces se hizo tradición empezar con cualquier lenguaje de programación con el ejemplo del '''[[w:Hola mundo|Hola mundo]]'''.
En particular en C se involucran muchas partes y sintaxis del lenguaje, por lo cual es especialmente útil verlo como el primer ejemplo de programación en C.
'''Ejemplo: Hola mundo'''
<source lang=c>
/* Inclusión de archivos */
#include <stdio.h>
/* Función principal */
int main (int argc,char **argv)
{
/* Impresión por pantalla y salida del programa*/
printf("Hola mundo\n");
return 0;
}
</source>
Para poder editar y ejecutar este programa será necesario utilizar algún editor y luego un compilador, como se explicó en la sección [[Programación en C/Herramientas|Herramientas necesarias]].
Si se tiene el compilador <code>gcc</code> en un entorno UNIX o GNU/Linux, la forma sencilla de compilar y ejecutar será:
<pre>
$ gcc holamundo.c
$ ./a.out
Hola Mundo
$
</pre>
Es decir que el compilador genera un archivo, en este caso llamado a.out, y la salida generada por ese archivo es "Hola mundo". A continuación una explicación detallada sobre el proceso de compilación del programa, y luego un análisis línea por línea del contenido de este ejemplo.
<!-- Sección de Compilación -->
{{:Programación en C/Compilar un programa}}
== Diseccionando el "Hola Mundo" ==
A continuación veremos cuál es la estructura básica de un programa en C, para poder entender qué hace cada una de las líneas de nuestro sencillo programa.
Es probable que lo primero que salte a la vista sea la línea:
<source lang=c>
printf("Hola mundo\n");
</source>
Esta es la línea que hace aparecer la cadena <code>Hola Mundo</code> en nuestra pantalla. Notamos que en C la '''sentencia''' para imprimir algo por pantalla es <code>printf()</code> y, además, hay que colocar paréntesis alrededor de lo que queremos imprimir para utilizarla.
Esto se debe a que en C, <code>printf</code> es una '''función''', que imprime su '''argumento''' (la cadena <code>Hola Mundo\n</code>) en la pantalla. Se denomina '''invocar''' una función a la acción de utilizarla para que realice una acción.
Podemos observar también que la cadena a imprimir termina con una extraña combinación: <code>\n</code>. La combinación <code>\n</code> no representa a dos caracteres independientes, sino que representa un único carácter no imprimible: el salto de línea. Sin el salto de línea, el resultado al ejecutar el programa sería:
<pre>
$ ./a.out
Hola Mundo$
</pre>
Es decir que no hay salto de línea entre la cadena impresa, y la siguiente entrada de la línea de órdenes, que no es lo que esperábamos.
Lo último a notar en la línea es que termina con un punto y coma. En C, todas las sentencias terminan con un punto y coma. Al principio puede parecer obvio dónde termina una sentencia, pero ya veremos más adelante que no lo es tanto.
Observemos ahora la siguiente sentencia del programa:
<source lang=c>
return 0;
</source>
Luego de esta sentencia, termina el programa. En el caso de la instrucción <code>return</code> dentro de la función <code>main</code>, el resultado es que se '''finaliza el programa''', comunicándole al '''sistema operativo''' que el '''valor de retorno''' (un código numérico que el sistema utiliza para saber si el programa ha funcionado bien o ha dado fallos) es 0, es decir, correcto.
Las dos últimas sentencias se encuentran encerradas entre llaves. De esta manera, forman un '''bloque''', es decir, un grupo de sentencias que se ejecutarán siempre de forma correlativa.
¿Y qué es esa línea que precede (en realidad, que da nombre) al bloque?
<source lang=c>
int main (int argc, char **argv)
</source>
Pues es la definición de una '''función''', en este caso llamada <code>main</code>. En C (y en general en todos los lenguajes de programación estructurada) todo se hace a base de funciones, como <code>main</code> y <code>printf</code>.
La función <code>main</code> es especial, porque es el la que se invoca cuando se ejecuta el programa. Todos los programas en C comienzan su ejecución al principio de la función <code>main</code>, y cuando ésta acaba, el programa también.
Veamos con más detalle la definición de la función:
<source lang=c>
int main (int argc, char **argv)
{
...
}
</source>
* El '''nombre''' de la función que viene a continuación, entre llaves, es <code>main</code>.
* Recibe dos '''argumentos''': <code>int argc</code> y <code>char **argv</code> (que representan a la cantidad de argumentos ingresados al ejecutar el programa y a los valores de estos argumentos respectivamente).<ref>En un capítulo posterior podrá ver un ejemplo del uso de los parámetros que recibe <code>main</code>.</ref>
* La función '''devuelve''' como resultado un número entero, <code>int</code> (que es el <code>0</code> de la instrucción <code>return</code>).<ref>Es importante señalar que el estándar dice que <code>main</code> deberá definirse como función que retorna un entero, o de lo contrario el resultado queda indefinido.</ref>
Finalmente, y un tanto aparte (está separada del resto por una línea en blanco), tenemos la línea:
<source lang=c>
#include <stdio.h>
</source>
Que parece bastante distinta al resto del programa, y que, además, parece no tener sentido, puesto que ya hemos definido la función <code>main</code> que hace todo el trabajo.
Efectivamente, esa línea no es parte del programa, aunque sea imprescindible. La línea es una instrucción del [[w:Preprocesador|preprocesador de C]], como nos lo indica el símbolo <code>#</code>, y lo que hace es incluir en ese punto el contenido de otro fichero, antes (de ahí el nombre de preprocesador) de que comience la compilación. El fichero <code>stdio.h</code> es el que contiene la definición de la función <code>printf()</code>, que antes utilizamos pero que no escribimos, ya que forma parte de la [[w:Biblioteca estándar de C|biblioteca estándar de C]].
== Comentarios ==
Una vez escrito un código, tratar de entenderlo un año más tarde solo con leerlo puede ser frustrante: no hay manera de saber (si el programa es medianamente complicado) qué es cada variable, o qué hace cada bloque de código. Por esto, en cualquier lenguaje de programación son importantes los '''comentarios'''.
Un comentario en C es todo lo que se encuentre entre los símbolos <code>/*</code> y <code>*/</code>. Hay que tener en cuenta que los comentarios no se pueden anidar: si dentro de un comentario hay un <code>/*</code>, seguirá siendo el primer <code>*/</code> el que finalice el comentario, no se esperará al segundo.
Hay otro tipo de comentarios en C, procedentes del lenguaje '''[[w:C++|C++]]''', e incorporadas al estándar de C a partir de C99: <code>//</code>. Todo lo que esté después de estos signos, hasta el final de la línea, se considerará un comentario y el compilador no lo tomará en cuenta.
En el ejemplo presentado pueden verse tres líneas con comentarios, que documentan someramente las distintas funcionalidades del código. En los próximos capítulos podrán verse mejores usos de los comentarios dentro del código.
También podría decirse que es una herramienta básica basada en compilador
----
<references />
<!-- No aporta nada.
<noinclude>
== Enlaces recomendados ==
* [[Programación en C/Ejemplos#El "Hola Mundo" comentado|Página de ejemplos]]
</noinclude>
-->
<noinclude>
{{Navegar|anterior=Fundamentos de programación
|siguiente=Tipos de datos
|reducido=Si
}}
</noinclude>
{{AutoCat}}
6mxhh1awszfco8j4shjmwmca0dbo9sx
Rueda de casino
0
515
431509
411622
2026-08-17T10:00:14Z
Antimundo
74354
Marcar como hoja suelta
431509
wikitext
text/x-wiki
{{Hoja suelta}}
La rueda de casino es un estilo de salsa cubana en el cual los bailarines forman una rueda y cambian de pareja constantemente. Un único miembro del grupo, el ''cantante'', enuncia los pasos a realizar. En esta página se compilan algunos de los nombres de estos pasos o figuras de rueda.
{| class="wikitable sortable"
|-
! Nombre
! Descripción
! Pasos Similares
|-
| abajo ||
| <small>(arriba), (centro), (tarrito)</small>
|-
| abanico
| [http://www.billqvist.de/single/abanico.avi video en el formato Windows Media (WM) Player]
| <small>()</small>
|-
| adiós
| Cambiar la dirección en la ''cadena''. Algunos lo usan en vez de ''prima''.
| <small>(cadena), (centro), (prima)</small>
|-
| aiquido || || <small>()</small>
|-
| alarde || || <small>(croqueta)</small>
|-
| around the world (vuelta por el mundo)
| [http://www.salsa-rueda.de/clips/aroundtheworld.mov video en el formato Quicktime (QT)]
| <small></small>
|-
| arriba
| también ''dame una arriba'', ''enchufla arriba'', ''prima arriba''.
| <small>(abajo), (centro), (dame), (enchufla), (prima), (tarrito)</small>
|-
| azuquita
| [http://web.archive.org/web/20051210043649/http://www.df.lth.se/~cml/miamirueda/azuquita.avi video (WM)] [http://www.salsa-rueda.de/clips/azuquita.mov (QT)]
| <small></small>
|-
| babosa
| [http://salsa-oldenburg.homeip.net/videos/301102_holger/babosa_doble.avi video (WM) de ''babosa doble'', empieza en segundo 12]. ''Babosa reply'' tiene un ''biquini'' en el medio.
| <small>(biquini), (enchufla)</small>
|-
| barrera || || <small>(centro)</small>
|-
| benjamín || || <small>(mambo), (tango)</small>
|-
| beso
| [http://www.billqvist.de/single/beso.avi video (WM)][http://www.salsa-rueda.de/clips/Beso.mov (QT)]
| <small>()</small>
|-
| biquini || ''chicos también'' || <small>(arriba)</small>
|-
| cadena || con ''directo'' o ''prima''.
| <small>(adiós), (directo), (prima)</small>
|-
| camínate || || <small></small>
|-
| centro || ''centro barrera''
| <small>(arriba), (abajo), (cadena), (tarrito)</small>
|-
| cero
| ''chicas zero'' [http://www.billqvist.de/par/mujeres_el_cero.avi video (WM)]
| <small>(ocho), (prima vamos al centro)</small>
|-
| cero
| ''chicas zero'' [http://www.billqvist.de/par/mujeres_el_cero.avi video (WM)]
| <small>(ocho), (prima vamos al centro)</small>
|-
| chicos/chicas || || <small>()</small>
|-
| cien || || <small>(noventa)</small>
<!--
|-
| cipi || || <small>()</small>-->
|-
| "complícate" o "complicado" || || <small>(setenta)</small>
|-
| copelia || || <small>()</small>
|-
| croqueta || ''enchufla'' mas ''alarde''. [https://www.youtube.com/watch?v=9Oq7u78V88A Video (The Rueda Project)]
| <small>(enchufla y quedate)</small>
|-
| cruce
| [http://pinellodrom.salsa-figuren.de/figuren/crossa_0_17697408.mpg mpg video]
| <small>()</small>
|-
| cuatro || || <small>(dos), (tres), (una)</small>
|-
| daiquiri ||
| <small>(ocho), (prima vamos al centro), (zero)</small>
|-
| dame
| [http://www.billqvist.de/par/dame.avi video (WM)] [http://www.salsakongress.com/movies/dame_una.mpg (mpg)] También ''dame dos'', ''dame tres'', ''dame cuatro'', ''dame cinco'', ''dame dos por atrás'', ''dame una arriba'', ''dame dos arriba''
| <small>(tarrito), (enchufla)</small>
|-
| derecha
| [http://www.billqvist.de/par/derecha.avi video (WM) ''chicos derecha'']
| <small>(izquierda)</small>
|-
| dile que no || || <small>()</small>
|-
| directo
| ''directo mentira'', 'directo por dentro'', ''directo cadena''
| <small>(mentira)</small>
|-
| "doble" o "dos" || || <small>(enchufla)</small>
|-
| doubleplay || [https://www.youtube.com/watch?v=c8ER_zhM17I Video (The Rueda Project)] || <small>(un fly)</small>
|-
| Drácula || [https://www.youtube.com/watch?v=l5r_QtsFVcE Video (The Rueda Project)] || <small>(enchufla), (Frankenstein), (pelota), (peluquería), (policía), (príncipe bueno), (príncipe malo), (espagueti)</small>
|-
| enchufla
| [http://www.billqvist.de/par/enchufe.avi video (WM)] [http://www.salsakongress.com/movies/enchufla_short.mpg (mpg)] ''enchufla doble'' [http://www.billqvist.de/par/enchufe_doble.avi Video (WM)] [http://www.salsacasino.com/videos/enchufladoble.mov (QT)] [http://www.salsakongress.com/movies/enchufla_doble_short.mpg (mpg)] ''enchufla arriba'', ''enchufla y giro'', ''enchufla y quédate''
| <small>(arriba), (biquini), (dame), (pelota), (peluquería), (Frankenstein), (Drácula), (policía), (príncipe bueno), (príncipe malo)</small>
|-
| espagueti || [https://www.youtube.com/watch?v=8ScRyur1nz4 Video (The Rueda Project)] || <small>(enchufla), (Drácula), (Frankenstein), (pelota), (peluquería), (policía), (príncipe bueno), (príncipe malo)</small>
|-
| farolero || || <small>(Havana)</small>
|-
| fiesta
| ''fiesta de pelotas'' igual como ''pelota hasta tres''.
| <small>(pelota)</small>
|-
| flor ||
| <small>(levántala), (prima vamos al centro)</small>
|-
| un fly
| ''un fly a fuera'', ''al suelo'', ''al medio''
| <small>(pelota), (doubleplay)</small>
|-
| foto || hagan una pausa || <small></small>
|-
| Frankenstein ||
| <small>(enchufla), (Drácula), (pelota), (peluquería), (policía), (príncipe bueno), (príncipe malo), (espagueti)</small>
|-
| fuente || || <small>(croqueta)</small>
|-
| fuera || || <small>(un fly)</small>
|-
| giro || || <small>(centro), (prima)</small>
|-
| Havana || || <small>(farolero)</small>
|-
| izquierda
| [http://www.billqvist.de/par/mujeres_izquierda.avi video (WM) ''chicas izquierda'']
| <small>(derecha)</small>
|-
| Kentucky
| [http://www.salsa-rueda.de/clips/kentucky.mov video (QT)] [http://www.billqvist.de/single/kentucky.avi (WM)]
| <small>()</small>
|-
| levántala ||
| <small>(flor), (prima vamos al centro)</small>
|-
| mambo || || <small>(tango)</small>
|-
| mata la cucaracha ||
| <small>(un fly), (mata la mosca)</small>
|-
| mata la mosca ||
| <small>(un fly), (mata la cucaracha)</small>
|-
| medio || Siehe ''un fly''. || <small>(un fly)</small>
|-
| el melao
| [http://www.salsa-rueda.de/clips/el_melao.mov video (QT)]
| <small></small>
|-
| mentira || || <small>(directo)</small>
|-
| mira la bonita
| ''mira la bonita sola'', ''mira la bonita sola con giro''
| <small>()</small>
|-
| noventa || || <small>(ochenta), (cien)</small>
|-
| la nuca || || <small></small>
|-
| ochenta || || <small>(sesenta), (noventa)</small>
|-
| ocho
| ''chicos ocho'' [http://web.archive.org/web/20060302210636/http://www.df.lth.se/~cml/miamirueda/ocho.avi video (WM)]
| <small>(prima centro con dos), (zero)</small>
|-
| otra || || <small>()</small>
|-
| panqueque
| [http://www.salsa-rueda.de/clips/siete.mov video (QT)]
| <small></small>
|-
| para mi, para ti || [https://www.youtube.com/watch?v=kIQKkblnBAA Video (The Rueda Project) ] || <small></small>
|-
| paseándola
| ''por arriba'' [http://www.billqvist.de/par/dame_paseala.avi Video (WM) dame paséala]
| <small>(trompo)</small>
|-
| pelota
| ''pelota una'', ''pelota dos'', ''pelota tres'', ''pelota hasta tres''
| <small>(enchufla), (Drácula), (Frankenstein), (peluquería), (policía), (príncipe bueno), (príncipe malo), (espagueti)</small>
|-
| peluquería ||
| <small>(enchufla), (Drácula), (Frankenstein), (pelota),
(policía), (príncipe bueno), (príncipe malo), (espagueti)</small>
|-
| policía ||
| <small>(enchufla), (Drácula), (Frankenstein), (pelota), (peluquería), (príncipe bueno), (príncipe malo), (espagueti)</small>
|-
| prima [con la hermana {y la tía}]
| [http://www.billqvist.de/par/adios.avi video (WM)] [http://www.salsakongress.com/movies/la_prima_short.mpg (mpg)] ''prima doble'', ''prima con la hermana'', "y con la tía'' , ''prima arriba'', ''prima vamos al centro''
| <small>(arriba), (daiquiri), (flor), (levántala), (ocho), (zero)</small>
|-
| príncipe bueno || [https://www.youtube.com/watch?v=lzVo3CZ2jk8 Video (The Rueda project)] || <small>(enchufla), (Drácula), (Frankenstein), (pelota), (peluquería), (policía), (príncipe malo), (espagueti)</small>
|-
| príncipe malo || [http://www.billqvist.de/par/enchufe_y_castigala.avi video (WM)] || <small>(enchufla), (Drácula), (Frankenstein), (pelota), (peluquería), (policía), (príncipe bueno), (espagueti)</small>
|-
| recoge un quilo
| [http://www.billqvist.de/par/enchufe_y_recoje_el_kilo.avi video (WM)]
| <small>(Drácula), (enchufla), (Frankenstein), (peluquería), (príncipe bueno), (príncipe malo)</small>
|-
| salúdate || || <small>()</small>
|-
| sandokan
| ''prima'' mas ''enchufla doble'' mas ''dame dos'' mas ''prima arriba'' mas ''enchufla doble arriba'' mas ''dame dos arriba''.
| <small>()</small>
|-
| serpiente || || <small>(noventa)</small>
|-
| setenta ||
| <small>(ochenta), (complícate)</small>
|-
| siete
| Synonymo de ''panqueque''. [http://www.salsa-rueda.de/clips/sieteloco.mov video ''siete loco'' (QT)]
| <small></small>
|-
| sombrero
| [http://www.salsa-rueda.de/clips/sombrero.mov video (QT)] [http://www.billqvist.de/single/sombrero.avi (WM)] ''sombrero doble''
| <small>(noventa)</small>
|-
| suelo || || <small>(un fly)</small>
|-
| sushi || || <small>(sombrero)</small>
|-
| tango || ''con giro'' || <small>(mambo), (benjamín)</small>
|-
| tarrito || || <small>(dame)</small>
|-
| tres ||
| <small>(cuatro), (dos), (una)</small>
|-
| trompo || || <small>(paseándola)</small>
|-
| una ||
| <small>(cuatro), (dos), (tres)</small>
|-
| vacílala || || <small>(dile que no)</small>
|-
| yogur || || <small>()</small>
|}
pm712udi9td0vmj0xd104fim6bhqbwi
431511
431509
2026-08-17T10:02:14Z
Antimundo
74354
No es hoja suelta porque no existe ningún libro principal
431511
wikitext
text/x-wiki
{{Categorizar libro}}
{{Esbozo}}
La rueda de casino es un estilo de salsa cubana en el cual los bailarines forman una rueda y cambian de pareja constantemente. Un único miembro del grupo, el ''cantante'', enuncia los pasos a realizar. En esta página se compilan algunos de los nombres de estos pasos o figuras de rueda.
{| class="wikitable sortable"
|-
! Nombre
! Descripción
! Pasos Similares
|-
| abajo ||
| <small>(arriba), (centro), (tarrito)</small>
|-
| abanico
| [http://www.billqvist.de/single/abanico.avi video en el formato Windows Media (WM) Player]
| <small>()</small>
|-
| adiós
| Cambiar la dirección en la ''cadena''. Algunos lo usan en vez de ''prima''.
| <small>(cadena), (centro), (prima)</small>
|-
| aiquido || || <small>()</small>
|-
| alarde || || <small>(croqueta)</small>
|-
| around the world (vuelta por el mundo)
| [http://www.salsa-rueda.de/clips/aroundtheworld.mov video en el formato Quicktime (QT)]
| <small></small>
|-
| arriba
| también ''dame una arriba'', ''enchufla arriba'', ''prima arriba''.
| <small>(abajo), (centro), (dame), (enchufla), (prima), (tarrito)</small>
|-
| azuquita
| [http://web.archive.org/web/20051210043649/http://www.df.lth.se/~cml/miamirueda/azuquita.avi video (WM)] [http://www.salsa-rueda.de/clips/azuquita.mov (QT)]
| <small></small>
|-
| babosa
| [http://salsa-oldenburg.homeip.net/videos/301102_holger/babosa_doble.avi video (WM) de ''babosa doble'', empieza en segundo 12]. ''Babosa reply'' tiene un ''biquini'' en el medio.
| <small>(biquini), (enchufla)</small>
|-
| barrera || || <small>(centro)</small>
|-
| benjamín || || <small>(mambo), (tango)</small>
|-
| beso
| [http://www.billqvist.de/single/beso.avi video (WM)][http://www.salsa-rueda.de/clips/Beso.mov (QT)]
| <small>()</small>
|-
| biquini || ''chicos también'' || <small>(arriba)</small>
|-
| cadena || con ''directo'' o ''prima''.
| <small>(adiós), (directo), (prima)</small>
|-
| camínate || || <small></small>
|-
| centro || ''centro barrera''
| <small>(arriba), (abajo), (cadena), (tarrito)</small>
|-
| cero
| ''chicas zero'' [http://www.billqvist.de/par/mujeres_el_cero.avi video (WM)]
| <small>(ocho), (prima vamos al centro)</small>
|-
| cero
| ''chicas zero'' [http://www.billqvist.de/par/mujeres_el_cero.avi video (WM)]
| <small>(ocho), (prima vamos al centro)</small>
|-
| chicos/chicas || || <small>()</small>
|-
| cien || || <small>(noventa)</small>
<!--
|-
| cipi || || <small>()</small>-->
|-
| "complícate" o "complicado" || || <small>(setenta)</small>
|-
| copelia || || <small>()</small>
|-
| croqueta || ''enchufla'' mas ''alarde''. [https://www.youtube.com/watch?v=9Oq7u78V88A Video (The Rueda Project)]
| <small>(enchufla y quedate)</small>
|-
| cruce
| [http://pinellodrom.salsa-figuren.de/figuren/crossa_0_17697408.mpg mpg video]
| <small>()</small>
|-
| cuatro || || <small>(dos), (tres), (una)</small>
|-
| daiquiri ||
| <small>(ocho), (prima vamos al centro), (zero)</small>
|-
| dame
| [http://www.billqvist.de/par/dame.avi video (WM)] [http://www.salsakongress.com/movies/dame_una.mpg (mpg)] También ''dame dos'', ''dame tres'', ''dame cuatro'', ''dame cinco'', ''dame dos por atrás'', ''dame una arriba'', ''dame dos arriba''
| <small>(tarrito), (enchufla)</small>
|-
| derecha
| [http://www.billqvist.de/par/derecha.avi video (WM) ''chicos derecha'']
| <small>(izquierda)</small>
|-
| dile que no || || <small>()</small>
|-
| directo
| ''directo mentira'', 'directo por dentro'', ''directo cadena''
| <small>(mentira)</small>
|-
| "doble" o "dos" || || <small>(enchufla)</small>
|-
| doubleplay || [https://www.youtube.com/watch?v=c8ER_zhM17I Video (The Rueda Project)] || <small>(un fly)</small>
|-
| Drácula || [https://www.youtube.com/watch?v=l5r_QtsFVcE Video (The Rueda Project)] || <small>(enchufla), (Frankenstein), (pelota), (peluquería), (policía), (príncipe bueno), (príncipe malo), (espagueti)</small>
|-
| enchufla
| [http://www.billqvist.de/par/enchufe.avi video (WM)] [http://www.salsakongress.com/movies/enchufla_short.mpg (mpg)] ''enchufla doble'' [http://www.billqvist.de/par/enchufe_doble.avi Video (WM)] [http://www.salsacasino.com/videos/enchufladoble.mov (QT)] [http://www.salsakongress.com/movies/enchufla_doble_short.mpg (mpg)] ''enchufla arriba'', ''enchufla y giro'', ''enchufla y quédate''
| <small>(arriba), (biquini), (dame), (pelota), (peluquería), (Frankenstein), (Drácula), (policía), (príncipe bueno), (príncipe malo)</small>
|-
| espagueti || [https://www.youtube.com/watch?v=8ScRyur1nz4 Video (The Rueda Project)] || <small>(enchufla), (Drácula), (Frankenstein), (pelota), (peluquería), (policía), (príncipe bueno), (príncipe malo)</small>
|-
| farolero || || <small>(Havana)</small>
|-
| fiesta
| ''fiesta de pelotas'' igual como ''pelota hasta tres''.
| <small>(pelota)</small>
|-
| flor ||
| <small>(levántala), (prima vamos al centro)</small>
|-
| un fly
| ''un fly a fuera'', ''al suelo'', ''al medio''
| <small>(pelota), (doubleplay)</small>
|-
| foto || hagan una pausa || <small></small>
|-
| Frankenstein ||
| <small>(enchufla), (Drácula), (pelota), (peluquería), (policía), (príncipe bueno), (príncipe malo), (espagueti)</small>
|-
| fuente || || <small>(croqueta)</small>
|-
| fuera || || <small>(un fly)</small>
|-
| giro || || <small>(centro), (prima)</small>
|-
| Havana || || <small>(farolero)</small>
|-
| izquierda
| [http://www.billqvist.de/par/mujeres_izquierda.avi video (WM) ''chicas izquierda'']
| <small>(derecha)</small>
|-
| Kentucky
| [http://www.salsa-rueda.de/clips/kentucky.mov video (QT)] [http://www.billqvist.de/single/kentucky.avi (WM)]
| <small>()</small>
|-
| levántala ||
| <small>(flor), (prima vamos al centro)</small>
|-
| mambo || || <small>(tango)</small>
|-
| mata la cucaracha ||
| <small>(un fly), (mata la mosca)</small>
|-
| mata la mosca ||
| <small>(un fly), (mata la cucaracha)</small>
|-
| medio || Siehe ''un fly''. || <small>(un fly)</small>
|-
| el melao
| [http://www.salsa-rueda.de/clips/el_melao.mov video (QT)]
| <small></small>
|-
| mentira || || <small>(directo)</small>
|-
| mira la bonita
| ''mira la bonita sola'', ''mira la bonita sola con giro''
| <small>()</small>
|-
| noventa || || <small>(ochenta), (cien)</small>
|-
| la nuca || || <small></small>
|-
| ochenta || || <small>(sesenta), (noventa)</small>
|-
| ocho
| ''chicos ocho'' [http://web.archive.org/web/20060302210636/http://www.df.lth.se/~cml/miamirueda/ocho.avi video (WM)]
| <small>(prima centro con dos), (zero)</small>
|-
| otra || || <small>()</small>
|-
| panqueque
| [http://www.salsa-rueda.de/clips/siete.mov video (QT)]
| <small></small>
|-
| para mi, para ti || [https://www.youtube.com/watch?v=kIQKkblnBAA Video (The Rueda Project) ] || <small></small>
|-
| paseándola
| ''por arriba'' [http://www.billqvist.de/par/dame_paseala.avi Video (WM) dame paséala]
| <small>(trompo)</small>
|-
| pelota
| ''pelota una'', ''pelota dos'', ''pelota tres'', ''pelota hasta tres''
| <small>(enchufla), (Drácula), (Frankenstein), (peluquería), (policía), (príncipe bueno), (príncipe malo), (espagueti)</small>
|-
| peluquería ||
| <small>(enchufla), (Drácula), (Frankenstein), (pelota),
(policía), (príncipe bueno), (príncipe malo), (espagueti)</small>
|-
| policía ||
| <small>(enchufla), (Drácula), (Frankenstein), (pelota), (peluquería), (príncipe bueno), (príncipe malo), (espagueti)</small>
|-
| prima [con la hermana {y la tía}]
| [http://www.billqvist.de/par/adios.avi video (WM)] [http://www.salsakongress.com/movies/la_prima_short.mpg (mpg)] ''prima doble'', ''prima con la hermana'', "y con la tía'' , ''prima arriba'', ''prima vamos al centro''
| <small>(arriba), (daiquiri), (flor), (levántala), (ocho), (zero)</small>
|-
| príncipe bueno || [https://www.youtube.com/watch?v=lzVo3CZ2jk8 Video (The Rueda project)] || <small>(enchufla), (Drácula), (Frankenstein), (pelota), (peluquería), (policía), (príncipe malo), (espagueti)</small>
|-
| príncipe malo || [http://www.billqvist.de/par/enchufe_y_castigala.avi video (WM)] || <small>(enchufla), (Drácula), (Frankenstein), (pelota), (peluquería), (policía), (príncipe bueno), (espagueti)</small>
|-
| recoge un quilo
| [http://www.billqvist.de/par/enchufe_y_recoje_el_kilo.avi video (WM)]
| <small>(Drácula), (enchufla), (Frankenstein), (peluquería), (príncipe bueno), (príncipe malo)</small>
|-
| salúdate || || <small>()</small>
|-
| sandokan
| ''prima'' mas ''enchufla doble'' mas ''dame dos'' mas ''prima arriba'' mas ''enchufla doble arriba'' mas ''dame dos arriba''.
| <small>()</small>
|-
| serpiente || || <small>(noventa)</small>
|-
| setenta ||
| <small>(ochenta), (complícate)</small>
|-
| siete
| Synonymo de ''panqueque''. [http://www.salsa-rueda.de/clips/sieteloco.mov video ''siete loco'' (QT)]
| <small></small>
|-
| sombrero
| [http://www.salsa-rueda.de/clips/sombrero.mov video (QT)] [http://www.billqvist.de/single/sombrero.avi (WM)] ''sombrero doble''
| <small>(noventa)</small>
|-
| suelo || || <small>(un fly)</small>
|-
| sushi || || <small>(sombrero)</small>
|-
| tango || ''con giro'' || <small>(mambo), (benjamín)</small>
|-
| tarrito || || <small>(dame)</small>
|-
| tres ||
| <small>(cuatro), (dos), (una)</small>
|-
| trompo || || <small>(paseándola)</small>
|-
| una ||
| <small>(cuatro), (dos), (tres)</small>
|-
| vacílala || || <small>(dile que no)</small>
|-
| yogur || || <small>()</small>
|}
ivs81v5zzgg08a420sui7gt6crrjyzi
Programación en C/Historia de C
0
522
431390
375950
2026-08-16T22:36:26Z
Antimundo
74354
Categorizar usando AutoCat
431390
wikitext
text/x-wiki
<noinclude>
{{Navegar|anterior=Introducción
|siguiente=Fundamentos de programación
|reducido=Si
}}
</noinclude>
El lenguaje de programación C fue creado por [[w:Dennis Ritchie|Dennis Ritchie]] entre 1969 y 1973 cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del sistema operativo UNIX. C fue creado para poder escribir dicho sistema operativo en un lenguaje de alto nivel, independiente del hardware donde se ejecutara.
Contar con un lenguaje de alto nivel permitió el avance de los sistemas operativos, ya que el mismo código podía ser utilizado en las distintas plataformas, propiciando la reutilización de código y reduciendo los tiempos de desarrollo. Así es que los sistemas operativos basados en UNIX, el sistema BSD, el sistema GNU/Linux y muchos otros fueron desarrollados en C.
Además, con el paso del tiempo se han desarrollado cientos de bibliotecas que permiten a los programadores de C utilizar el código desarrollado por otros para la realización de tareas comunes. Esto, a su vez, ha propiciado el desarrollo de aplicaciones en lenguaje C.
Actualmente es imposible contar la cantidad de aplicaciones y herramientas desarrolladas en C.
== Evolución ==
A mediados de los años 60s, [[w:Martin Richards|Martin Richards]] diseñó el lenguaje [[w:BCPL|BCPL]] con la finalidad de usarlo para escribir software de sistemas operativos y compiladores.
En 1969, [[w:Ken Thompson|Ken Thompson]] escribió el Lenguaje [[w:Lenguaje de programación B|B]], en Bell Laboratories, con el objetivo de recodificar UNIX (escrito hasta ese momento en lenguaje ensamblador) usando un lenguaje de alto nivel más portable y flexible.
Durante los siguientes años, Dennis Ritchie modificó el lenguaje B, llegando a crear el lenguaje C y reescribiendo el sistema UNIX en dicho lenguaje; añadió características nuevas, como son el diseño de tipos y las estructuras de datos.
En 1978, Dennis Ritchie y Brian Kernighan publicaron la primera edición del libro ''El lenguaje de programación C''. Este libro fue durante años la especificación informal del lenguaje. El lenguaje descrito en la primera edición de este libro, fue conocido como "el C de Kernighan y Ritchie" o simplemente "K&R C". En este libro se introdujeron nuevas características al lenguaje: los tipo de datos struct, long int y unsigned int; los operadores =+ y =- fueron sustituidos por += y -=.
A mediados de los años 80, [[w:Bjarne Stroustrup|Bjarne Stroustrup]] (también de los laboratorios Bell), crea el [[w:C++|lenguaje C++]], un lenguaje basado en C, con numerosas características adicionales, siendo la principal que está orientado a objetos. Si bien se han creado muchos lenguajes basados en C, C++ es el que ha permanecido más asociado a C.
En los años siguientes a la publicación del C de Kernighan y Ritchie, se añadieron al lenguaje muchas características no oficiales, que estaban presentes en algunos compiladores y no en otros. Fue por ello que en 1989 ANSI (American National Standards Institute) publicó el primer estándar oficial de C, que es conocido como ANSI C.
En este estándar se tomaron muchas de las funcionalidades no oficiales y se agregaron funcionalidades nuevas como los prototipos de función, y un preprocesador mejorado. También se cambió la sintaxis de la declaración de parámetros de funciones, para que incluyeran el tipo junto con el nombre.
Al año siguiente, en 1990 se publicó la estandarización ISO del lenguaje. Este estándar es básicamente el estándar ANSI, con unas pocas modificaciones de formato. A este estándar se lo conoce, entonces, como C89, o C90, y se trata del mismo lenguaje.
Basándose en el estándar ANSI que estaba en preparación, en 1988 Kernighan y Ritchie publicaron la segunda edición de su libro, que es aún hoy utilizada como una de las referencias principales del lenguaje.
Durante los siguientes años, el lenguaje C permaneció sin demasiados cambios. Sin embargo, como había sucedido antes, los distintos compiladores fueron incorporando características adicionales, que otros compiladores no tenían, siendo C++ la principal influencia.
Fue por ello que a finales de los noventa se decidió revisar el estándar de C, lo que llevó a la publicación del estándar C99. Este estándar incluye varias nuevas características como son: las funciones inline; la posibilidad de declarar variables en cualquier parte del código; los comentarios de una sola línea utilizando //; los tipos de datos long long int, bool y complex, entre otras.
Aún hoy el proceso de evolución del lenguaje sigue avanzando, y desde 2007 se está trabajando en el armado de un nuevo estándar.
== Más información ==
*[[w:BCPL|Lenguaje de programación BCPL ]]
*[[w:Lenguaje de programación C#Historia|Historia del lenguaje del programación C]]
*[http://cm.bell-labs.com/cm/cs/who/dmr/chist.html The Development of the C Language]
<noinclude>
{{Navegar|anterior=Introducción
|siguiente=Fundamentos de programación
|reducido=Si
}}
</noinclude>
[[de:C-Programmierung: Grundlagen]]
[[en:C Programming/History]]
[[fr:Programmation C/Introduction]]
[[it:C/Linguaggio/Panoramica]]
[[pt:Programar em C/História da linguagem C]]
{{AutoCat}}
704u3foynwyuob685x06or59dio0b9z
Programación en PHP/Hola mundo
0
639
431395
427925
2026-08-16T22:41:18Z
Antimundo
74354
Arreglos menores de sintaxis
431395
wikitext
text/x-wiki
<noinclude>
{{navegar
|libro=Programación en PHP
|actual={{SUBPAGENAME}}
|siguiente=Bases del lenguaje
}}
</noinclude>
== Código ==
<syntaxhighlight lang="php">
<?php
$cadena = 'Hola mundo';
echo $cadena;
?>
</syntaxhighlight>
== Análisis ==
Esto es un código muy sencillo. Simplemente guarda la cadena de caracteres o string <font color="#FF0000">'Hola mundo'</font> en la variable <font color="#0000FF">$cadena</font> y después se imprime por pantalla con el comando echo.
== Nuevos conceptos ==
=== Inicio de un script en PHP ===
El ' <'''?php''' ' inicial indica que lo que sigue debería ser interpretado por PHP (por el intérprete de PHP), lo que significa que es parte del programa y no del HTML. Al final del documento, o cuando pasamos de nuevo a código HTML, se pone un ' '''?'''>' para indicar a PHP que ignore lo que venga a continuación. La etiqueta de cierre del código en PHP lleva implícito un ' ''';''' '.
=== Variables ===
Las variables son la base de cualquier lenguaje de programación. Sin ellas, no podríamos guardar información para utilizarla más adelante. PHP no sería capaz de hacer nada dinámico. Vemos que las variables son necesarias y PHP las tiene.
Si tienes experiencia con otros lenguajes de programación, sabes que en algunos de ellos es necesario declarar el tipo que va a tener una variable, es decir, el tipo de datos que será capaz de guardar. Son los lenguajes fuertemente tipados y en ellos necesitas saber el tipo de una variable antes de guardar cualquier cosa en ella. Son de este tipo lenguajes tan conocidos como [[Programación:C mas mas|C++]] y [[Programación:Java|Java]]. PHP, por otra parte, es un lenguaje débilmente tipado, porque el tipo de la variable corresponde al tipo del valor que está guardando ''en este momento''. Puedes crear una variable para guardar una cadena de caracteres (string), asignar a esa variable un string, reemplazarlo luego por un número, y no habría problemas. Sin embargo, en C++ habría que haber hecho un ''cast'' (conversión explícita de tipos) o guardar ese número en otra variable distinta (del tipo correcto).
Todas las variables en PHP empiezan por '<font color="#0000FF">$</font>' seguido de un identificador. Se diferencia entre mayúsculas y minúsculas, por lo que <font color="#0000FF">$wiki</font> es diferente de <font color="#0000FF">$Wiki</font>.
Para saber más sobre las variables, puedes mirar en el [http://www.php.net/manual/es/language.variables.php manual de PHP].
=== Print ===
La función '''print''' es clave para la salida de datos. Manda cualquier cosa que pongamos entre las comillas (o paréntesis) que siguen a '''print''' a la salida (la ventana del navegador). Una función similar podría se como '''echo''', pero '''print''' permite al programador saber si la salida se ha realizado correctamente o no.
Un ejemplo de uso del '''print''' con comillas sería:
<syntaxhighlight lang="php">
print 'Hola, mundo';
</syntaxhighlight>
Al texto entre comillas se le trata como si fuera un string, por lo que podemos hacer uso de la concatenación (unir dos strings en uno). Por ejemplo:
<syntaxhighlight lang="php">
print 'Hola, mundo';
</syntaxhighlight>
y
<syntaxhighlight lang="php">
print 'Hola' . ', ' . 'mundo';
</syntaxhighlight>
Los puntos entre medias de las cadenas de caracteres o strings son el operador de concatenación. Los ejemplos anteriores tendrían el mismo efecto pues, en la segunda versión, los 3 strings se unen en uno solo antes de salir por pantalla.
La forma del comando '''print''' es una de las menos comunes. '''Print''' no es una función, sino una construcción interna. Las funciones, como veremos, tienen sus argumentos entre paréntesis.
<syntaxhighlight lang="php">
miFuncion("Hola, mundo");
</syntaxhighlight>
De todos modos, podemos usar '''print''' también con paréntesis, es decir:
<syntaxhighlight lang="php">
print('Hola, mundo');
</syntaxhighlight>
De cara a la optimización de código, cabe destacar, que se deben utilizar comillas simples (<font color="#FF0000"> ' </font>), siempre que no vayas a devolver variables, pues con el uso de la doble comilla (<font color="#FF0000"> " </font>), el compilador debe analizar todo el contenido en busca de variables.
Es interesante hacer notar que '''echo''' se utiliza exactamente igual, por lo que si sustituimos en los ejemplos anteriores '''print''' por '''echo''' tendremos el mismo resultado.
Para saber más sobre '''print''' pulsa [http://www.php.net/manual/es/function.print.php aquí]. Para '''echo''', [http://www.php.net/manual/es/function.echo.php aquí].
=== El punto y coma y los espacios blancos ===
Otra parte imprescindible para este lenguaje, no así en otros como {{libro|Programación en JavaScript|JavaScript}} o [[Programación en ActionScript|ActionScript]], es finalizar cada comando con un punto y coma ("''';'''"). Sin él, el intérprete de PHP nos devolverá un error crítico y ni siquiera iniciará la ejecución del script.
Sin embargo PHP ignora completamente los espacios en blanco y los saltos de línea (salvo en las definiciones de cadenas). Esto quiere decir que tanto podemos poner todo un script en una línea como sangrar cada línea tanto como queramos o dejar varias líneas en blanco.
== Enlaces externos ==
* [http://www.juarbo.com/hola-mundo-en-php/ Hola Mundo en PHP]
{{AutoCat}}
ctfxnlgr9bb2ah4oyao7szn53hkh8o6
Introducción a Linux/Software de libre redistribución
0
745
431578
177024
2026-08-17T11:09:53Z
Antimundo
74354
Retirar parámetros innecesarios
431578
wikitext
text/x-wiki
{{navegar|libro=Introducción a Linux
|siguiente=Linux
}}
==Software de libre redistribución==
'''Indicadores de logros'''
*Distingue algunas licencias de software.
===Lectura: Software de libre redistribución===
Cuando se libera una obra intelectual al público, el autor [1] debe especificar los derechos que quienes reciban la obra tendrán sobre la misma, normalmente estos derechos se consignan en una licencia que acompaña a la obra y sus copias.
Un programa es una obra intelectual y por tanto debe acompañarse de una licencia cuando se libera al público. [2] Un programa es de libre redistribución si su licencia por lo menos da derecho a los usuarios para emplearlo, copiarlo y redistribuir copias.
Un buen programa es una herramienta que le facilita a algunas personas la realización de una tarea específica. Hacer un buen programa y mantener su calidad no es tarea fácil, porque un programa es como una compleja maquinaria con muchas partes que exige de sus desarrolladores:
:*Estudio constante de teoría relacionada con el programa, de otros programas similares y de las necesidades de los usuarios.
:*Disciplina para completar el programa, experimentar cambios y aplicarlos si resultan apropiados.
:*Comprensión y paciencia para atender a los usuarios y sus reclamos o requerimientos, así como para comunicarse con otros desarrolladores.
:*Constancia para continuar el desarrollo.
Como ejemplo podemos considerar el trabajo de los desarrolladores del "kernel" de Linux ---el kernel es una de las principales partes del sistema operativo. Ellos se comunican por correo electrónico, en la lista de desarrollo "linux-kernel@vger.kernel.org", donde hay más de 3000 personas inscritas, y donde se intercambia diariamente más de 150 mensajes, con el fin de mejorar cada parte del kernel (el kernel es una parte compuesta de pequeñas partes). En esos mensajes algunos desarrolladores envían resultados de experimentos o propuestas de modificaciones para mejorar cierta parte. Las propuestas son juzgadas por otros miembros, y los experimentos son repetidos hasta que logran llegar a un acuerdo ---tal vez varios días o incluso meses después para mejorar una sola de las partes.
Dada esta gran dificultad para desarrollar software de buena calidad, ¿Por qué el software de libre redistribución no exige contraprestación?
Cada desarrollador tiene sus motivaciones propias, pero tal vez algo común es el deseo de colaborar, el deseo de ayudar desinteresadamente. Esto no quiere decir que los desarrolladores de software de libre redistribución no tengan necesidades económicas. Claro que las tienen y deben buscar formas para pagar sus gastos; nosotros como usuarios podemos tomar una posición activa:
:*Podemos continuar la ola de solidaridad ayudando desinteresadamente (hay muchos proyectos en los cuales trabajar, en particular podemos ayudar a desarrollar software de libre redistribución).
:*Podemos hacer donaciones a proyectos o personas que ayuden desinteresadamente (en particular a personas que desarrollan software de libre redistribución).
===Lecturas recomendadas: Software de libre redistribución===
*Para conocer diversas motivaciones para liberar obras bajo licencias que permitean libre redistribución, puede consultar diversos puntos de vista:
:*Motivaciones del movimiento de fuentes abiertas en: [http://www.opensource.org OpenSource.org]
:*Motivaciones del movimiento de software libre en: [http://www.gnu.org/philosophy GNU.org]
:*Motivaciones para ceder obras al dominio público en: [http://www.tamarapatino.com/vladimir/dominio_publico.shtml www.tamarapatino.com]
*Para conocer más sobre el desarrollo del kernel de Linux, puede consultar el FAQ de la lista de desarrollo en: [http://www.tux.org/lkml Tux.org]
*Si desea consultar más sobre licencias concretas de libre redistribución para programas y escritos: [http://ingenieria.sanmartin.edu.co/cgi-bin/slec/slec.cgi/item.msg.view?uid=33 ingenieria.sanmartin.edu.co]
===Ejercicios: Software de libre redistribución===
#¿El software de libre redistribución puede venderse?
#Consiga alguna(s) licencia(s) de software y determine si permite(n) libre uso y libre redistribución.
#Averigüe nombres de algunos desarrolladores de software de libre redistribución, así como mecanismos para donarles.
===Notas===
[1]En realidad el propietario de los derechos de reproducción es quien especifica la licencia.
[2]Note que en general si una obra intelectual no tiene una licencia visible, la redistribución y la copia NO son permitidas.
{{navegar|libro=Introducción a Linux
|siguiente=Linux
}}
1uxvgtudlxjngx4h1i0m576d1mxr2pe
Manual de LaTeX
0
2321
431420
426268
2026-08-16T23:04:51Z
Antimundo
74354
Ordenar elementos para mejorar la presentación
431420
wikitext
text/x-wiki
[[Archivo:LaTeX2e_logo.svg|center|400px|{{LaTeX|2e}}]]
<div style="font-size:120%; text-align:center;">Te damos la bienvenida al libro de {{LaTeX|2e}}.</div>
Si deseas colaborar en este libro, te recomendamos que te pases por la [[Manual de LaTeX/Página de edición|página de edición]].
== Qué es LaTeX ==
Es un sistema de composición tipográfica basado en TeX, originalmente centrado en obras de contenido matemático, pero que actualmente abarca multitud de tipos de escritos. Tiene características tanto de un lenguaje de marcado como de uno de programación, y puede integrarse en sistemas de producción automática basados en XML (o SGML), Unicode, PDF...
Se basa en el principio del WYGIWYM, siglas inglesas de ''lo que se obtiene es lo que se quiere'', y se basa en crear un documento de texto con marcado lógico y semántico del que se genera un PDF (aunque hay otra opciones).
Es muy popular en contextos académicos científicos, pero no se limita a la creación de trabajos, tesis y presentaciones: también, fuera de este ámbito y en el mundo de la producción editorial, abarca la creación de catálogos o diccionarios partir de bases de datos, la producción libros de textos y documentación técnica..., todo ello en un contexto que abarca desde la escritura por el autor, liberado de la tarea del formato, pasando por la composición, hasta la imposición para la imprenta.
Además de la composición en sí, LaTeX permite, gracias a las herramientas y extensiones que suelen acompañarlo, elementos gráficos e ilustraciones (incluyendo CMYK, colores directos, perfiles ICC), generación de índices alfabéticos (uno o varios) y de contenido (general o por capítulos), bibliografías (según diversos estilos), notas al pie (o al margen o a final de capítulo), hiperenlaces internos y externos, elementos dinámicos (animaciones, gráficos interactivos)...
Pueden encontrarse ejemplos de publicaciones y otros documentos creados con LaTeX y programas asociados en:
* [http://tex.stackexchange.com/questions/1319/showcase-of-beautiful-typography-done-in-tex-friends Showcase of beautiful typography done in TeX & friends]
* [http://tex.stackexchange.com/questions/105621/beautiful-presentations-done-with-tex-and-related-systems?rq=1 Beautiful presentations done with TeX and related systems]
* [http://tex.stackexchange.com/questions/129274/showcase-of-optical-illusions-made-with-tex-latex-luatex-context Showcase of optical illusions made with TeX/LaTeX/LuaTeX/ConTeXt]
* [http://tex.stackexchange.com/questions/158668/nice-scientific-pictures-show-off Nice scientific pictures show off]
* [http://tex.stackexchange.com/questions/134638/showcase-tex-typography-for-tugs-calendar Showcase TeX Typography for TUG's Calendar]
__INDEX__
{{+Portada/a
|nombre = Manual de LaTeX
|título = Manual de LaTeX
|subtítulo = Iniciando en LaTeX
|encabezado = Manual de LaTeX
|imagen = Personal computer, exploded 4.svg
|sección1 = Introducción
|sección2 = Estructura de un documento
|sección3 = Texto
|sección4 = Matemáticas
|sección5 = Escribiendo texto
|sección6 =
|sección7 =
|sección8 =
|sección9 =
|sección10 =
|sección11 =
|sección12 =
|sección13 =
|rutacarrusel =
|titcarrusel =
|textoedición = {{desarrollo|0%|21:46 nov 2017}} 0%. Versión: {{:Manual LaTeX/Version}}
|ancho =
|alineartit =
|imagenlink =
|imagenedit =
|tono = azul
|tonosección = nube
|tonocarrusel =
|tonoedición = nube
|tonoenlaces = nube
|redondeo = 15
}}
[[Manual de LaTeX/Datos preliminares|Capítulo 1. Datos preliminares]]
# [[Manual de LaTeX/Introducción/Introducción a LaTeX|Introducción a {{LaTeX}}]]
# [[Manual de LaTeX/Introducción/La escritura en LaTeX|La escritura en {{LaTeX}}]]
# [[Manual de LaTeX/Introducción/Instalación|Instalación]]
## [[Manual de LaTeX/Introducción/Instalación/Instalación en Linux|Instalación en Linux]]
## [[Manual de LaTeX/Introducción/Instalación/Instalación en OS X|Instalación en OS X]]
## [[Manual de LaTeX/Introducción/Instalación/Instalación en Windows|Instalación en Windows]]
# [[Manual de LaTeX/Introducción/Programas complementarios|Programas complementarios]]
[[Manual de LaTeX/La estructura de un documento en LaTeX|Capítulo 2. La estructura de un documento en {{LaTeX}}]]
# [[Manual de LaTeX/La estructura de un documento en LaTeX/El preámbulo y el cuerpo del documento|El preámbulo y el cuerpo del documento]]
# [[Manual de LaTeX/La estructura de un documento en LaTeX/Clases de documento y algunos paquetes comunes|Clases de documento y algunos paquetes comunes]]
[[Manual de LaTeX/Escribiendo texto|Capítulo 3. Escribiendo texto]]
# [[Manual de LaTeX/Escribiendo texto/Espacios|Espacios]]
# [[Manual de LaTeX/Escribiendo texto/Caracteres especiales|Caracteres especiales]]
# [[Manual de LaTeX/Escribiendo texto/Tamaños, estilos y tipos de letra|Tamaños, estilos y tipos de letra]]
# [[Manual de LaTeX/Escribiendo texto/Alineación del texto|Alineación del texto]]
# [[Manual de LaTeX/Escribiendo texto/Partición de palabras|Partición de palabras]]
# [[Manual de LaTeX/Escribiendo texto/Signos ortográficos|Signos ortográficos]]
# [[Manual de LaTeX/Escribiendo texto/Portada del documento|Portada del documento]]
# [[Manual de LaTeX/Escribiendo texto/Capítulos y secciones|Secciones de un documento]]
# [[Manual de LaTeX/Escribiendo texto/Estilos de página|Estilos de página]]
# [[Manual de LaTeX/Escribiendo texto/Referencias|Referencias]]
# [[Manual de LaTeX/Escribiendo texto/Notas al pie|Notas al pie]]
# [[Manual de LaTeX/Escribiendo texto/Listas|Listas]]
# [[Manual de LaTeX/Escribiendo texto/Citas|Citas]]
# [[Manual de LaTeX/Escribiendo texto/Tablas|Tablas]]
[[Manual de LaTeX/Fórmulas matemáticas|Capítulo 4. Fórmulas matemáticas]]
# [[Manual de LaTeX/Fórmulas matemáticas/Inserción de una fórmula|Inserción de una fórmula]]
# [[Manual de LaTeX/Fórmulas matemáticas/Símbolos matemáticos|Símbolos matemáticos]]
# [[Manual de LaTeX/Fórmulas matemáticas/Operadores|Operadores]]
# [[Manual de LaTeX/Fórmulas matemáticas/Superíndices y subíndices|Superíndices y subíndices]]
# [[Manual de LaTeX/Fórmulas matemáticas/Fracciones y binomios|Fracciones y binomios]]
# [[Manual de LaTeX/Fórmulas matemáticas/Raíces|Raíces]]
# [[Manual de LaTeX/Fórmulas matemáticas/Sumas e Integrales|Sumas e Integrales]]
# [[Manual de LaTeX/Fórmulas matemáticas/Delimitadores|Delimitadores]]
# [[Manual de LaTeX/Fórmulas matemáticas/Arreglos matemáticos|Arreglos matemáticos]]
# [[Manual de LaTeX/Fórmulas matemáticas/Texto entre matemáticas|Texto entre matemáticas]]
# [[Manual de LaTeX/Fórmulas matemáticas/Maneras para darle formato a los símbolos matemáticos|Maneras para darle formato a los símbolos matemáticos]]
# [[Manual de LaTeX/Fórmulas matemáticas/Control de espaciado horizontal|Control de espaciado horizontal]]
# [[Manual de LaTeX/Fórmulas matemáticas/Entornos para teoremas|Entornos para teoremas]]
[[Manual de LaTeX/Formulas matemáticas avanzadas|Capítulo 5. Formulas matemáticas avanzadas]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Numeración de ecuaciones|Numeración de ecuaciones]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Alineación vertical en matemáticas|Alineación vertical en matemáticas]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Ecuaciones particulares|Ecuaciones particulares]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Salto de páginas dentro de un entrono de matemáticas|Salto de páginas dentro de un entrono matemático]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Marco para resaltar una ecuación|Marco para resaltar una ecuación ]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Operadores personalizados|Operadores personalizados]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Configuración avanzada|Configuración avanzada]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Texto alineado en entorno matematico|Texto alineado en entorno matematico]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Cambio del tamaño de fuente|Cambio del tamaño de fuente]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Forzando \displaystyle en todo el documento|Forzando \displaystyle en todo el documento]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Ajuste del espaciado vertical en el modo matemático|Ajuste del espaciado vertical en el modo matemático]]
[[Manual de LaTeX/Inclusión de gráficos|Capítulo 6. Gráficos]]
# [[Manual de LaTeX/Inclusión de gráficos/Objetos flotantes|Objetos flotantes]]
# [[Manual de LaTeX/Inclusión de gráficos/Subtítulos, Listas y referencias cruzadas|Subtítulos, Listas y referencias cruzadas ]]
# [[/Insertar figuras en un documento|Insertar figuras externas]]
# [[Manual de LaTeX/Inclusión de gráficos/Texto alrededor de figuras|Texto alrededor de figuras]]
# [[Manual de LaTeX/Inclusión de gráficos/Figuras en varias partes y en dos columnas|Figuras en varias partes y en dos columnas]]
# [[Manual de LaTeX/Inclusión de gráficos/Introduccion a dibujos de gráficos en LaTeX|Introducción a dibujos de gráficos en {{LaTeX}}]]
# [[Manual de LaTeX/Inclusión de gráficos/ Graficos con picture | Graficos con {{LaTeX/Environment|picture}} ]]
# [[Manual de LaTeX/Inclusión de gráficos/Gráficos con TikZ|Gráficos con {{Verb|TikZ}}]]
# [[Manual de LaTeX/Inclusión de gráficos/Gráficos con PSTricks|Gráficos con PSTricks]]
# [[Manual de LaTeX/Inclusión de gráficos/El paquete XY-Pic|El paquete XY-Pic]]
# [[Manual de LaTeX/Inclusión de gráficos/Creación de graficos en 3D|Creación de graficos en 3D]]
[[Manual de LaTeX/Listados de código|Capítulo 7. Listados de código]]
# [[Manual de LaTeX/Listados de código/Listados con listings|Listados con {{Verb|listings}}]]
# [[Manual de LaTeX/Listados de código/Listados con minted|Listados con {{Verb|minted}}]]
[[Manual de LaTeX/Otros|Capítulo 8. Otros]]
# [[Manual de LaTeX/Otros/Paquetes para componer documentos sobre el juego del Ajedrez|Composición de documentos sobre el juego del Ajedrez]]
# [[Manual de LaTeX/Otros/Exportar a otros formatos|Exportar a otros formatos]]
# [[Manual de LaTeX/Otros/Edición de textos en tengwar|Edición de texto en sistema de escritura tengwar (élfico)]]
== Apéndices ==
# [[/¿Qué necesito para empezar con LaTeX?|¿Qué necesito para empezar con LaTeX?]]
# [[/¿Cómo se procesa un documento LaTeX?|¿Cómo se procesa un documento LaTeX?]]
# [[/Introducción a la creación de proyectos en LaTeX|Introducción a la creación de proyectos en {{LaTeX}}]]
# [[/Primeras aproximaciones con ejemplos sencillos|Primeras aproximaciones con ejemplos sencillos]]
# [[/Proyectos colaborativos en LaTeX|Proyectos colaborativos en {{LaTeX}}]]
# [[/Exportar a otros formatos|Exportar a otros formatos]]
# [[/Documentos estructurados|Documentos estructurados]]
# [[/Instrucciones y entornos|Instrucciones y entornos]]
# [[/Tipos de letra|Tipos de letra]]
# [[/Beamer|Beamer]]
== Enlaces sobre LaTeX ==
{{buscar en libro}}
{{-wikipedia|TeX}}
{{-wikipedia|LaTeX}}
* [http://www.cervantex.es/ CervanTeX, grupo de usuarios de TeX hispanohablantes]
* [http://www.tex-br.org/index.php/P%C3%A1gina_principal Amigos Brasileiros,el wiki LaTeX brasileiro]
* [http://navarroj.com/latex/ LaTeX Fácil]
== Autores y licencia ==
Los autores son los contribuyentes de Wikilibros. Para saber más sobre ellos revisa el [//es.wikibooks.org/w/index.php?title=Manual_de_LaTeX&action=history historial] de este libro.
[[Categoría:Programación|LaTeX]]
[[Categoría:Manual de LaTeX|*]]
[[bn:লাটেক]]
[[de:LaTeX-Kompendium]]
[[en:LaTeX]]
[[fr:LaTeX]]
[[he:לאטך]]
[[hy:ԼաՏեԽ]]
[[ja:TeX/LaTeX入門]]
[[nl:LaTeX]]
[[pl:LaTeX]]
[[pt:Latex]]
[[ro:LaTeX]]
[[ru:LaTeX]]
[[tr:LaTeX]]
[[zh:LaTeX]]
7ohm0o5snhk5u957ic91eo4lq3zkwh7
431421
431420
2026-08-16T23:07:18Z
Antimundo
74354
Retirar plantilla a medio hacer y que rompe el diseño del resto de la página
431421
wikitext
text/x-wiki
[[Archivo:LaTeX2e_logo.svg|center|400px|{{LaTeX|2e}}]]
<div style="font-size:120%; text-align:center;">Te damos la bienvenida al libro de {{LaTeX|2e}}.</div>
Si deseas colaborar en este libro, te recomendamos que te pases por la [[Manual de LaTeX/Página de edición|página de edición]].
== Qué es LaTeX ==
Es un sistema de composición tipográfica basado en TeX, originalmente centrado en obras de contenido matemático, pero que actualmente abarca multitud de tipos de escritos. Tiene características tanto de un lenguaje de marcado como de uno de programación, y puede integrarse en sistemas de producción automática basados en XML (o SGML), Unicode, PDF...
Se basa en el principio del WYGIWYM, siglas inglesas de ''lo que se obtiene es lo que se quiere'', y se basa en crear un documento de texto con marcado lógico y semántico del que se genera un PDF (aunque hay otra opciones).
Es muy popular en contextos académicos científicos, pero no se limita a la creación de trabajos, tesis y presentaciones: también, fuera de este ámbito y en el mundo de la producción editorial, abarca la creación de catálogos o diccionarios partir de bases de datos, la producción libros de textos y documentación técnica..., todo ello en un contexto que abarca desde la escritura por el autor, liberado de la tarea del formato, pasando por la composición, hasta la imposición para la imprenta.
Además de la composición en sí, LaTeX permite, gracias a las herramientas y extensiones que suelen acompañarlo, elementos gráficos e ilustraciones (incluyendo CMYK, colores directos, perfiles ICC), generación de índices alfabéticos (uno o varios) y de contenido (general o por capítulos), bibliografías (según diversos estilos), notas al pie (o al margen o a final de capítulo), hiperenlaces internos y externos, elementos dinámicos (animaciones, gráficos interactivos)...
Pueden encontrarse ejemplos de publicaciones y otros documentos creados con LaTeX y programas asociados en:
* [http://tex.stackexchange.com/questions/1319/showcase-of-beautiful-typography-done-in-tex-friends Showcase of beautiful typography done in TeX & friends]
* [http://tex.stackexchange.com/questions/105621/beautiful-presentations-done-with-tex-and-related-systems?rq=1 Beautiful presentations done with TeX and related systems]
* [http://tex.stackexchange.com/questions/129274/showcase-of-optical-illusions-made-with-tex-latex-luatex-context Showcase of optical illusions made with TeX/LaTeX/LuaTeX/ConTeXt]
* [http://tex.stackexchange.com/questions/158668/nice-scientific-pictures-show-off Nice scientific pictures show off]
* [http://tex.stackexchange.com/questions/134638/showcase-tex-typography-for-tugs-calendar Showcase TeX Typography for TUG's Calendar]
== Índice ==
[[Manual de LaTeX/Datos preliminares|Capítulo 1. Datos preliminares]]
# [[Manual de LaTeX/Introducción/Introducción a LaTeX|Introducción a {{LaTeX}}]]
# [[Manual de LaTeX/Introducción/La escritura en LaTeX|La escritura en {{LaTeX}}]]
# [[Manual de LaTeX/Introducción/Instalación|Instalación]]
## [[Manual de LaTeX/Introducción/Instalación/Instalación en Linux|Instalación en Linux]]
## [[Manual de LaTeX/Introducción/Instalación/Instalación en OS X|Instalación en OS X]]
## [[Manual de LaTeX/Introducción/Instalación/Instalación en Windows|Instalación en Windows]]
# [[Manual de LaTeX/Introducción/Programas complementarios|Programas complementarios]]
[[Manual de LaTeX/La estructura de un documento en LaTeX|Capítulo 2. La estructura de un documento en {{LaTeX}}]]
# [[Manual de LaTeX/La estructura de un documento en LaTeX/El preámbulo y el cuerpo del documento|El preámbulo y el cuerpo del documento]]
# [[Manual de LaTeX/La estructura de un documento en LaTeX/Clases de documento y algunos paquetes comunes|Clases de documento y algunos paquetes comunes]]
[[Manual de LaTeX/Escribiendo texto|Capítulo 3. Escribiendo texto]]
# [[Manual de LaTeX/Escribiendo texto/Espacios|Espacios]]
# [[Manual de LaTeX/Escribiendo texto/Caracteres especiales|Caracteres especiales]]
# [[Manual de LaTeX/Escribiendo texto/Tamaños, estilos y tipos de letra|Tamaños, estilos y tipos de letra]]
# [[Manual de LaTeX/Escribiendo texto/Alineación del texto|Alineación del texto]]
# [[Manual de LaTeX/Escribiendo texto/Partición de palabras|Partición de palabras]]
# [[Manual de LaTeX/Escribiendo texto/Signos ortográficos|Signos ortográficos]]
# [[Manual de LaTeX/Escribiendo texto/Portada del documento|Portada del documento]]
# [[Manual de LaTeX/Escribiendo texto/Capítulos y secciones|Secciones de un documento]]
# [[Manual de LaTeX/Escribiendo texto/Estilos de página|Estilos de página]]
# [[Manual de LaTeX/Escribiendo texto/Referencias|Referencias]]
# [[Manual de LaTeX/Escribiendo texto/Notas al pie|Notas al pie]]
# [[Manual de LaTeX/Escribiendo texto/Listas|Listas]]
# [[Manual de LaTeX/Escribiendo texto/Citas|Citas]]
# [[Manual de LaTeX/Escribiendo texto/Tablas|Tablas]]
[[Manual de LaTeX/Fórmulas matemáticas|Capítulo 4. Fórmulas matemáticas]]
# [[Manual de LaTeX/Fórmulas matemáticas/Inserción de una fórmula|Inserción de una fórmula]]
# [[Manual de LaTeX/Fórmulas matemáticas/Símbolos matemáticos|Símbolos matemáticos]]
# [[Manual de LaTeX/Fórmulas matemáticas/Operadores|Operadores]]
# [[Manual de LaTeX/Fórmulas matemáticas/Superíndices y subíndices|Superíndices y subíndices]]
# [[Manual de LaTeX/Fórmulas matemáticas/Fracciones y binomios|Fracciones y binomios]]
# [[Manual de LaTeX/Fórmulas matemáticas/Raíces|Raíces]]
# [[Manual de LaTeX/Fórmulas matemáticas/Sumas e Integrales|Sumas e Integrales]]
# [[Manual de LaTeX/Fórmulas matemáticas/Delimitadores|Delimitadores]]
# [[Manual de LaTeX/Fórmulas matemáticas/Arreglos matemáticos|Arreglos matemáticos]]
# [[Manual de LaTeX/Fórmulas matemáticas/Texto entre matemáticas|Texto entre matemáticas]]
# [[Manual de LaTeX/Fórmulas matemáticas/Maneras para darle formato a los símbolos matemáticos|Maneras para darle formato a los símbolos matemáticos]]
# [[Manual de LaTeX/Fórmulas matemáticas/Control de espaciado horizontal|Control de espaciado horizontal]]
# [[Manual de LaTeX/Fórmulas matemáticas/Entornos para teoremas|Entornos para teoremas]]
[[Manual de LaTeX/Formulas matemáticas avanzadas|Capítulo 5. Formulas matemáticas avanzadas]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Numeración de ecuaciones|Numeración de ecuaciones]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Alineación vertical en matemáticas|Alineación vertical en matemáticas]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Ecuaciones particulares|Ecuaciones particulares]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Salto de páginas dentro de un entrono de matemáticas|Salto de páginas dentro de un entrono matemático]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Marco para resaltar una ecuación|Marco para resaltar una ecuación ]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Operadores personalizados|Operadores personalizados]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Configuración avanzada|Configuración avanzada]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Texto alineado en entorno matematico|Texto alineado en entorno matematico]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Cambio del tamaño de fuente|Cambio del tamaño de fuente]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Forzando \displaystyle en todo el documento|Forzando \displaystyle en todo el documento]]
# [[Manual de LaTeX/Formulas matemáticas avanzadas/Ajuste del espaciado vertical en el modo matemático|Ajuste del espaciado vertical en el modo matemático]]
[[Manual de LaTeX/Inclusión de gráficos|Capítulo 6. Gráficos]]
# [[Manual de LaTeX/Inclusión de gráficos/Objetos flotantes|Objetos flotantes]]
# [[Manual de LaTeX/Inclusión de gráficos/Subtítulos, Listas y referencias cruzadas|Subtítulos, Listas y referencias cruzadas ]]
# [[/Insertar figuras en un documento|Insertar figuras externas]]
# [[Manual de LaTeX/Inclusión de gráficos/Texto alrededor de figuras|Texto alrededor de figuras]]
# [[Manual de LaTeX/Inclusión de gráficos/Figuras en varias partes y en dos columnas|Figuras en varias partes y en dos columnas]]
# [[Manual de LaTeX/Inclusión de gráficos/Introduccion a dibujos de gráficos en LaTeX|Introducción a dibujos de gráficos en {{LaTeX}}]]
# [[Manual de LaTeX/Inclusión de gráficos/ Graficos con picture | Graficos con {{LaTeX/Environment|picture}} ]]
# [[Manual de LaTeX/Inclusión de gráficos/Gráficos con TikZ|Gráficos con {{Verb|TikZ}}]]
# [[Manual de LaTeX/Inclusión de gráficos/Gráficos con PSTricks|Gráficos con PSTricks]]
# [[Manual de LaTeX/Inclusión de gráficos/El paquete XY-Pic|El paquete XY-Pic]]
# [[Manual de LaTeX/Inclusión de gráficos/Creación de graficos en 3D|Creación de graficos en 3D]]
[[Manual de LaTeX/Listados de código|Capítulo 7. Listados de código]]
# [[Manual de LaTeX/Listados de código/Listados con listings|Listados con {{Verb|listings}}]]
# [[Manual de LaTeX/Listados de código/Listados con minted|Listados con {{Verb|minted}}]]
[[Manual de LaTeX/Otros|Capítulo 8. Otros]]
# [[Manual de LaTeX/Otros/Paquetes para componer documentos sobre el juego del Ajedrez|Composición de documentos sobre el juego del Ajedrez]]
# [[Manual de LaTeX/Otros/Exportar a otros formatos|Exportar a otros formatos]]
# [[Manual de LaTeX/Otros/Edición de textos en tengwar|Edición de texto en sistema de escritura tengwar (élfico)]]
== Apéndices ==
# [[/¿Qué necesito para empezar con LaTeX?|¿Qué necesito para empezar con LaTeX?]]
# [[/¿Cómo se procesa un documento LaTeX?|¿Cómo se procesa un documento LaTeX?]]
# [[/Introducción a la creación de proyectos en LaTeX|Introducción a la creación de proyectos en {{LaTeX}}]]
# [[/Primeras aproximaciones con ejemplos sencillos|Primeras aproximaciones con ejemplos sencillos]]
# [[/Proyectos colaborativos en LaTeX|Proyectos colaborativos en {{LaTeX}}]]
# [[/Exportar a otros formatos|Exportar a otros formatos]]
# [[/Documentos estructurados|Documentos estructurados]]
# [[/Instrucciones y entornos|Instrucciones y entornos]]
# [[/Tipos de letra|Tipos de letra]]
# [[/Beamer|Beamer]]
== Enlaces sobre LaTeX ==
{{buscar en libro}}
{{-wikipedia|TeX}}
{{-wikipedia|LaTeX}}
* [http://www.cervantex.es/ CervanTeX, grupo de usuarios de TeX hispanohablantes]
* [http://www.tex-br.org/index.php/P%C3%A1gina_principal Amigos Brasileiros,el wiki LaTeX brasileiro]
* [http://navarroj.com/latex/ LaTeX Fácil]
== Autores y licencia ==
Los autores son los contribuyentes de Wikilibros. Para saber más sobre ellos revisa el [//es.wikibooks.org/w/index.php?title=Manual_de_LaTeX&action=history historial] de este libro.
[[Categoría:Programación|LaTeX]]
[[Categoría:Manual de LaTeX|*]]
[[bn:লাটেক]]
[[de:LaTeX-Kompendium]]
[[en:LaTeX]]
[[fr:LaTeX]]
[[he:לאטך]]
[[hy:ԼաՏեԽ]]
[[ja:TeX/LaTeX入門]]
[[nl:LaTeX]]
[[pl:LaTeX]]
[[pt:Latex]]
[[ro:LaTeX]]
[[ru:LaTeX]]
[[tr:LaTeX]]
[[zh:LaTeX]]
lld3g0vyzqtj9kjfiwc4x6u3b9o1u1j
Plantilla:Navegar
10
2387
431394
426077
2026-08-16T22:40:05Z
Antimundo
74354
Retirar includeonly sin ningún propósito
431394
wikitext
text/x-wiki
<table class="noprint" style="width: 100%"><tr>
<td style="text-align: left; width: 33%">{{#if: {{{anterior|}}}| [[{{{libro|{{BASEPAGENAME}}}}}/{{{anterior}}}|← {{{texto anterior|{{{anterior}}}}}}]] | }}</td>
<td style="text-align: left; width: 33%">{{#if: {{{Prev|}}}| [[{{{libro|{{BASEPAGENAME}}}}}/{{{Prev}}}|← {{{texto anterior|{{{Prev}}}}}}]] | }}</td>
<td style="text-align: center; width: 33%">'''{{{actual|{{SUBPAGENAME}}}}}'''</td>
<td style="text-align: right; width: 33%">{{#if: {{{siguiente|}}}| [[{{{libro|{{BASEPAGENAME}}}}}/{{{siguiente}}}|{{{texto siguiente|{{{siguiente}}}}}} →]] | }}</td>
<td style="text-align: right; width: 33%">{{#if: {{{Next|}}}| [[{{{libro|{{BASEPAGENAME}}}}}/{{{Next}}}|{{{texto siguiente|{{{Next}}}}}} →]] | }}</td>
{{#if: {{{reducido|}}} | |
{{#if: {{ #ifeq: {{{libro}}} | {{SUBPAGENAME}} | | libro }} |
</tr><tr><td style="text-align: center; width: 100%" colspan=3>[[{{{libro|{{BASEPAGENAME}}}}}]]</td>
| }}}}
</tr></table><noinclude>
{{documentación}}
</noinclude>
d8lycn304d23apvl4bdqetoqm829viv
Manual de ASP
0
2829
431358
408593
2026-08-16T17:26:36Z
Antimundo
74354
Marcar como infraesbozo
431358
wikitext
text/x-wiki
{{Infraesbozo}}
==Introducción==
ASP es el más firme competidor del libre y distribuido [[Programación en PHP|PHP]]. Como competidor de Microsoft a esta tecnología, cuenta con gran cantidad de posibilidades de conexión a elementos cotidianos del usuario Windows.
ASP.NET es el paso siguiente, pero su filosofía de programación difiere mucho de ASP.
ASP nos brinda posibilidades estupendas para solucionar gran cantidad de problemas de manera satisfactoria con poco esfuerzo
== Fundamentos ASP ==
{{Wikipedia|ASP}}
'''ASP''' es un lenguaje que permite intercalar código ejecutable con el contenido HTML. Este código será
ejecutado en el servidor, fundiéndose con el código HTML, de tal forma que al cliente no le sea posible
ver ni el código fuente de la página 'molde' ni siquiera distinguir qué texto HTML es fijo y cuál
depende de la programación.
== [[/ASP & VBScript|ASP & VBScript]] ==
==Libros relacionados==
* {{Libro|Colección de trucos ASP.NET}}
{{esbozo}}
[[Categoría:Programación]]
hszvkfywjdhbwpp8zkmkkad0sv33unl
Informática Educacional/Moodle
0
2945
431568
210757
2026-08-17T11:05:04Z
Antimundo
74354
Antimundo trasladó la página [[Informática Educacional:Moodle]] a [[Informática Educacional/Moodle]]: Política de nombrado
210757
wikitext
text/x-wiki
==Definición e historia==
Moodle es un software basado en PHP que permite la creación de portales educativos y aulas virtuales.
==Funcionamiento==
Moodle tiene las siguientes funcionalidades:
* Gestión de matrículas: libre (los visitantes se matriculan); de pago (los estudiantes se matriculan previo pago) o vinculado a una lista cerrada.
* Creación de entornos colaborativos: foros, salas de chat, consultas...
* Múltiples formatos de actividad. Soporta formatos multimedia, actividades en paquetes SCORM...
==Aplicación==
Moodle está pensado básicamente para la enseñanza a muchisima distancia (mas de diez metros)distancia, pero también puede utilizarse para reforzar los conceptos después de la clase, o en el aula de informática.
==Ventajas==
Una de las características más atractivas de Moodle, que también aparece en otros gestores de contenido educativo, es la posibilidad de que los alumnos participen en la creación de glosarios, y en todas las lecciones se generan automáticamente enlaces a las palabras incluidas en estos.
Otra es que se pueden crear cuestionarios muy rápidamente importando ficheros de texto con la forma
¿Quién descubrió América? {
=Cristobal Colón
~Américo Vespucio
~Hernán Cortés
~Abraham Lincoln
}
==Desventajas==
* Algunas actividades pueden ser un poco mecánicas.
* La creación de actividades desde el entorno web es un poco lenta; se puede instalar localmente la aplicación para evitarlo, pero entonces tenemos que instalar un paquete específico que incluye Apache y PHP.
==Enlaces externos==
* [http://www.moodle.org] Página oficial de Moodle. Incluye una instalación de Moodle en la que se puede entrar como administrador.
[[Category:Informática Educacional]]
lgn2a7iqp3n6b4jd836cvwv5xvwmf2g
Informática Educacional/WebQuest
0
2950
431575
417436
2026-08-17T11:07:23Z
Antimundo
74354
Actualizar según política de nombrado
431575
wikitext
text/x-wiki
==Definición==
Una WebQuest es una estrategia didactica de investigación y transformación de la información en conocimiento que se integra en el modelo constructivista de aprendizaje. Lo que la diferencia de otras actividades de búsqueda de información es la herramienta que los alumnos utilizan para buscar esa información.
Según Bernie Dodge, ([http://webquest.sdsu.edu/about_webquests.html Some thoughts about webquests], "Una WebQuest es una actividad de investigación en la que la información con la que interactúan los alumnos proviene en parte o en su totalidad de recursos de la Internet, opcionalmente complementados con videoconferencias".
==Estructura==
Normalmente, una WebQuest está divida en los siguientes apartados:
* Introducción
* Tareas
* Proceso
* Recursos
* Evaluación
* Conclusiones
Además, la WebQuest:
* Se orienta al trabajo en grupo: normalmente, define la tarea de cada miembro del grupo asignándole un papel; por ejemplo, en una WebQuest sobre medio ambiente, un miembro puede ser zoólogo, otro botánico, otro geólogo y otro geógrafo; cada miembro buscará la información relacionada con su ámbito de conocimiento.
* Suele utilizar elementos motivadores, como imágenes.
* Exige que el profesor conozca las direcciones de internet relacionadas con su ámbito de conocimiento.
==Enlaces relacionados==
[http://www.aula21.net/Wqfacil/ 1,2,3... tu webquest]
[http://www.cpr2valladolid.com:8080/BDWQ/Biblio.aspx Biblioteca de WebQuests] en el centro de profesores y recursos de Valladolid.
http://www.webquestcat.org
http://www.webquestcat.org/enlla Directorio de Webquest
[[Informática Educacional/phpwebquest]]
[[Categoría:Informática Educacional]]
rm4aherjukosik3q4p0lai4blizjhaf
C sharp NET
0
3054
431507
428433
2026-08-17T09:56:27Z
Antimundo
74354
Corregir enlace
431507
wikitext
text/x-wiki
== El lenguaje C# ==
Los primeros rumores de que Microsoft estaba desarrollando un lenguaje de programación surgieron en 1998, haciendo referencia a un lenguaje que entonces llamaban COOL y que decían era muy similar a Java. En junio de 2000, Microsoft despejó todas las dudas liberando la especificación de un lenguaje llamado C#. A esto le siguió rápidamente la primera versión de prueba del entorno de desarrollo estándar (SDK) .NET, que incluía un compilador de C#. El lenguaje fue diseñado por Anders Hejlsberg ( creador de Turbo Pascal y arquitecto de Delphi ), Scott Wiltamuth y Peter Golde. Entonces describieron el lenguaje como "...simple, moderno, orientado a objetos, de tipado seguro y con una fuerte herencia de C/C++".
Una muestra de esta tecnología es el lenguaje de programación C#. Este lenguaje orientado a objetos con énfasis en Internet se basa en las lecciones aprendidas de los lenguajes C, C++, Java y Visual Basic. Por ello se trata de un lenguaje que combina todas las cualidades que se pueden esperar de un lenguaje moderno (orientación a objetos, gestión automática de memoria, etc.) a la vez que proporciona un gran rendimiento.
En este curso intentaremos examinar las cualidades de este lenguaje desde lo más básico a lo más avanzado incluyendo la versión 2.0. Examinaremos paso a paso cómo crear poderosas aplicaciones de escritorio o basadas en web.
== Índice ==
# [[C sharp NET/Capítulo 0|Capítulo 0: Breve introducción a los lenguajes de programación]]
# [[C sharp NET/Capítulo 1|Capítulo 1: Introducción]]
# [[C sharp NET/Capítulo 2|Capítulo 2: Primer programa]]
# [[C sharp NET/Capítulo 3|Capítulo 3: Fundamentos del lenguaje]]
# [[C sharp NET/Capítulo 4|Capítulo 4: Estructuras de control]]
# [[C sharp NET/Capítulo 5|Capítulo 5: Introducción a las clases y objetos]]
# [[C sharp NET/Capítulo 6|Capítulo 6: Herencia y Polimorfismo]]
# [[C sharp NET/Capítulo 7|Capítulo 7: Sobrecargando operadores]]
# [[C sharp NET/Capítulo 8|Capítulo 8: Estructuras]]
# [[C sharp NET/Capítulo 9|Capítulo 9: Interfaces]]
# [[C sharp NET/Capítulo 10|Capítulo 10: Estructuras de datos]]
# [[C sharp NET/Capítulo 11|Capítulo 11: Cadenas y Expresiones regulares]]
# [[C sharp NET/Capítulo 12|Capítulo 12: Manejo de excepciones]]
# [[C sharp NET/Capítulo 13|Capítulo 13: Delegación y Eventos]]
# [[C sharp NET/Capítulo 14|Capítulo 14: Creando Aplicaciones gráficas usando Windows.Forms]]
# [[C sharp NET/Capítulo 15|Capítulo 15: Creando Aplicaciones gráficas usando Gtk# y Qyoto(Qt4)]]
# [[C sharp NET/Capítulo 16|Capítulo 16: Accediendo a la información usando ADO.NET]]
# [[C sharp NET/Capítulo 17|Capítulo 17: Programando Aplicaciones WEB con ASP.NET 2.0]]
##[[C sharp NET/Capítulo 17/Lo básico de una página|Lo básico de una página]]
# [[C sharp NET/Capítulo 18|Capítulo 18: Programando Servicios del Web]]
# [[C sharp NET/Capítulo 19|Capítulo 19: XML]]
# [[C sharp NET/Capítulo 20|Capítulo 20: Ensamblados y Versiones]]
# [[C sharp NET/Capítulo 21|Capítulo 21: Atributos y Reflexión]]
# [[C sharp NET/Capítulo 22|Capítulo 22: Programando en Redes]]
# [[C sharp NET/Capítulo 23|Capítulo 23: .NET y COM]]
# [[C sharp NET/Capítulo 24|Capítulo 24: Creando aplicaciones multimedia SDK y DirectX]]
# [[C sharp NET/Capítulo 25|Capítulo 25: OpenGL y Direct3D]]
# [[C sharp NET/Capítulo 26|Capítulo 26: Utilizando Bases de Datos]]
# [[C sharp NET/Capítulo 27|Capítulo 27: Solución a los problemas propuestos]]
# [[C sharp NET/Capítulo 28|Capítulo 28: Manejo de puertos]]
# [[C sharp NET/Capítulo 29|Capítulo 29: Sockets]]
* [[C sharp NET/Texto Completo|Texto Completo]]<br /><small>Versión para imprimir de este libro</small>
== Pre-requisitos necesarios para este curso ==
Lo único que necesitáis para este curso es tener un compilador de C# y un entorno de ejecución de código gestionado. Los más utilizados son el [http://mono-project.com mono], [http://www.gnu.org/software/dotgnu/ dotgnu] y [http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-csharp-express Visual C# 2010 Express Edition de Microsoft].
== Autores ==
Editores principales (si has colaborado añade tu nombre a esta lista):
* [[:m:b:es:Usuario:Fseoane|Fabian Seoane]]. Tutorial de MonoHispano, migración y editor.
* [mailto:david@cougarpc.net David Cañar ] - Creación del libro, Capítulo 2 y varias porciones del capítulo 1, 3 y 4
* [mailto:zenko.project@gmail.com Javier Hernández Sánchez] - Creación del capítulo 9 Interfaces
* [[:m:b:es:Usuario:Sebastianix|Sebastian Sasías]] - Revisión, ampliación y formalización de conceptos.
* [[:m:b:es:Usuario:Gnovaro|Gustavo Novaro]] - Varios, para más detalles ver historial.
* Perla Lizet Cruz Martinez - Diseñadora de la pagina.
== Referencias ==
Este Wikilibro tiene extenso material tomado del tutorial de C# del proyecto MonoHispano (http://mono-hispano.org/tutoriales/csharp/).
* http://www.mono-project.com
* http://www.w3schools.com/
* http://www.mono-hispano.org
* http://www.mono-hispano.org/wiki/Tutoriales
* http://cougarpc.net/csharp (copia original)
{{Estantes|Lenguajes de programación}}
5u306fies16h0u67gc0i5i1d8p2rtc8
Programación en C/Compilar un programa
0
3302
431393
413715
2026-08-16T22:38:11Z
Antimundo
74354
Categorizar usando AutoCat, retirar enlace inexistente, y retirar enlaces interlingüísticos pues se mencionan por WikiData
431393
wikitext
text/x-wiki
<noinclude>
{{Navegar|anterior=Primer programa en C
|reducido=Si
}}
</noinclude>
== Pre-requisitos para la compilación de programas ==
Como ya se mencionó, será necesario tener instalado el [[w:compilador|compilador]] y un editor o entorno de desarrollo que permitan escribir el código a compilar. Para más información ver la sección [[Programación en C/Herramientas|Herramientas necesarias]].
El código a compilar debe guardarse con un nombre que represente al programa en cuestión y la extensión <code>.c</code>. En el caso del ejemplo del Hola mundo, el archivo puede llamarse <code>hola.c</code>.
En las explicaciones a continuación, se asume que se cuenta con un compilador instalado y se ha editado un archivo <code>hola.c</code> que se quiere compilar. Si tu sistema operativo no aparece en esta lista busca en internet, ya que seguro que existe algún compilador para ese sistema.
== Compilación de programas según la plataforma ==
=== GNU/Linux ===
{{:Programación en C/Compilar un programa/Linux}}
<pre>
int main()
9 {
10 float litros, gal, ganancia, precio;
11 cout "introduzca el numero de litros de leche vendidos:" endl;
12 cin litros
13 cout "precio por galon:" endl
14 cin precio;
15 gal= (litros/3.785);
16 ganancia=(precio*gal);
17 count "ganancia total en el dia= " ganancia endl;
18 return 0;
}
</pre>
<noinclude>
{{Navegar|anterior=Primer programa en C
|reducido=Si
}}
</noinclude>
{{AutoCat}}
4ly20crhwljcqdlpdn1eyj34sw3ov12
Informática Educacional/Búsqueda
0
5057
431573
77933
2026-08-17T11:06:45Z
Antimundo
74354
Actualizar según política de nombrado
431573
wikitext
text/x-wiki
===Búsqueda de información===
Buscadores. Técnicas para búsqueda de textos, imágenes, música, letras de canciones, publicaciones, softwares, etc.
# [[Informática Educacional/WebQuest|WebQuest]]
# [[:w:Google | Google]] y su herramienta de búsqueda de fallas [http://desktop.google.com desktop]
# [http://earth.google.com earth.google.com]. Da acceso a imágenes satelitales y mapas para obtener información geográfica de hoteles, escuelas o restaurantes.
# [http://news.google.es news.google.es]. Portal de noticias en español que hoy cuenta con 700 fuentes de información. Cuenta con secciones como Economía, Espectáculos, Tecnología y Deportes
# [http://www.yahoo.com/ Yahoo]
[[Categoría:Informática Educacional]]
nrchkbkafv6tzqrtsv34a78fzz5rg9c
Informática Educacional/Herramientas
0
5061
431570
204459
2026-08-17T11:05:18Z
Antimundo
74354
Actualizar según política de nombrado
431570
wikitext
text/x-wiki
* [http://www.openworkbench.org Open Workbench]
=== Generales ===
* [[Informática Educacional/phpwebquest|PHPWebQuest]]
* [[Informática Educacional/FreeMind|FreeMind]]
* [[Informática Educacional/FreeEduc CD|FreeEduc CD]]
=== El niño programa la computadora ===
* [http://mondragon.angeltowns.net/paradiso/ Logo]
* [http://www.small-land.org/ Squeak]
=== La computadora programa al niño ===
* [[Informática Educacional/Clic|Clic]]
* [[Informática Educacional/Moodle|Moodle]]
=== Geografía ===
* [[Informática Educacional/JCT|JCT]]
=== Idiomas ===
* [[Informática Educacional/Collatinus|Collatinus]] Aprender latín en francés.
* [[Informática Educacional/Pythoñol|Pytoñol]] Aprender español en inglés.
== Repositorios ==
;AprendeLibre: [http://www.aprendelibre.net/wiki/index.php/Categoría:Software_Libre_y_Educativo Software Libre y Educativo]
;WikiPedia: [[:m:w:es:Software_educativo|Software Educativo]]
[[Categoría:Informática Educacional]]
[http://inf-biblio.blogspot.com/2008/12/modelo-de-examen.html Informática Básica]
== '''Modelos de Exámenes de Informática''' ==
=== '''Modelo 1:''' 1° Grado. ===
==== '''Programa:''' Software General. ====
===== Partes de la computadora. =====
http://public.justcloud.com/dhiccxpv7u.10773931
=== '''Modelo 2:''' 2° Grado. ===
==== '''Programa:''' Tux Paint. ====
===== Herramientas del programa. =====
http://public.justcloud.com/dhici49d1h.10773931
=== '''Modelo 3:''' 3° Grado. ===
==== '''Programa:''' Paint. ====
===== Partes del programa. =====
http://public.justcloud.com/dhicitslnl.10773931
=== '''Modelo 4:''' 4° Grado. ===
==== '''Programa:''' Microsoft Office Word. ====
===== Barra de herramientas. =====
http://public.justcloud.com/dhicjo3axy.10773931
=== '''Modelo 5:''' 5° Grado. ===
==== '''Programa:''' Microsoft Office Excel. ====
===== Confección de planillas. =====
http://public.justcloud.com/dhickfokq3.10773931
=== '''Modelo 6:''' 6° Grado. ===
==== '''Programa:''' Microsoft Office Power Point. ====
===== Animaciones e imágenes. =====
http://public.justcloud.com/dhicl0hvvu.10773931
=== '''Modelo 7:''' 7° Grado. ===
==== '''Programa:''' Microsoft Office Publisher. ====
===== Estructura del programa. =====
http://public.justcloud.com/dhiclq55qw.10773931
=== '''Modelo 8:''' 8° Grado. ===
==== '''Programa:''' Corel Draw. ====
===== Extensiones de los archivos y versiones del programa. =====
http://public.justcloud.com/dhicmbog2i.10773931
=== '''Modelo 9:''' 9° Grado. ===
==== '''Programa:''' Microsoft Office Picture. ====
===== Herramientas del programa. =====
http://public.justcloud.com/dhicmtgd6h.10773931
raayp3aicgvyqgynh5d52ze8h7xsyet
Hacks para sistemas operativos Unix-like/Cómo instalar Java en Linux
0
6598
431485
221671
2026-08-17T09:25:40Z
Antimundo
74354
Antimundo trasladó la página [[Hacks unixlike: Como instalar Java en Linux]] a [[Hacks para sistemas operativos Unix-like/Cómo instalar Java en Linux]]: Resolver hoja suelta
221671
wikitext
text/x-wiki
{| border="1" cellpadding="2" cellspacing="0" align="right" width="300"
! colspan="3" bgcolor="gainsboro" style="font-size:120%"|<big>Instalación de Java</big><br><small>Administración</small>
|-
| valign="top"|Dificultad :
| colspan="2" valign="top"|Facil
|-
| valign="top"|Necesitas :
| colspan="2" valign="top"|
|-
| valign="top"|Programas relacionados :
| colspan="2" valign="top" |
|-
| valign="top"|Comandos relacionados :
| colspan="2" valign="top"|
|-
| valign="top"|Archivos relacionados :
| colspan="2" valign="top"|
|-
| valign="top"|Estándares relacionados :
| colspan="2" valign="top"|
|-
| valign="top"|Enlaces relacionados :
| colspan="2" valign="top"|
|}
__TOC__
=== ¿Qué es Java? ===
Java es una plataforma de desarrollo y ejecución creado por Sun Microsystems. Funciona como una máquina virtual, es decir, las aplicaciones hechas en Java pueden ejecutarse sobre cualquier Sistema Operativo sin necesidad de realizar cambios a su estructura o código fuente.
Pero Java no es simplemente un lenguaje de programación, se puede decir que Java es una tecnología por estos motivos:
* Java ofrece características de máquina virtual
* Java tiene su propia API, eso permite la portabilidad entre distintos Sistemas.
* Java ofrece su lenguaje de programación.
=== ¿Cómo instalar Java? ===
{|style="background-color: #f2fff2; border: solid 1px #bfffbf; padding: 1em;" valign="top"
|
En una ventana de consola se siguen ejecutan los siguientes comandos:
Añadimos los repositorios con:
> sudo add-apt-repository ppa:webupd8team/java
Actualizamos los repositorios con:
> sudo apt-get update
E instalamos Oracle Java 7 con:
> sudo apt-get install oracle-java7-installer
Para comprobar que la instalación ha tenido exito, ejecuta en una terminal el comando para saber la versión de Java que utiliza tu Ubuntu:
> java -version
[http://En%20una%20venata%20de%20consola%20seguir%20los%20siguientes%20comandos http://www.ubuntu-guia.com/2012/04/instalar-oracle-java-7-en-ubuntu-1204.html]:
|}
=== Cómo configurar Java ===
<p>Existen varias variables de entorno que deberiamos configurar para que nuestros programas escritos en Java funcionen lo mejor posible estas son
*JAVA_HOME : Indica la carpeta base donde esta instalado Java
*PATH : Permite a nuestra linea de comandos saber donde esta el archivo java, tambien deberiamos añadir javac, y jar usamos frecuentemente las opcones de compilar y empaquetar
*CLASSPATH : Indica al entornojava donde buscar las clases de los programas
</p>
{|style="background-color: #f2fff2; border: solid 1px #bfffbf; padding: 1em;" valign="top"
| Añadimos a nuestro .bashrc las siguientes líneas.<br>
JAVA_HOME=/usr/lib/j2sdk1.5-sun
export JAVA_HOME
export PATH=$PATH:/usr/lib/j2sdk1.5-sun
CLASSPATH=/usr/lib/j2sdk1.5-sun/lib/tools.jar:/usr/lib/j2sdk1.5-sun/lib/dt.jar
export CLASSPATH
|}
=== Temas relacionados ===
Ingrese al sitio http://www.java.com/en/download/linux_manual.jsp, pida la descarga en rpm y que se adapte a su sistema(generalmente la primera opcion).
una vez bajado el programa de extencion <<rpm.bin>>
haga lo siguiente
sh jre-1_5_0_06-linux-i586.rpm.bin
lea las condiciones y acepte el paquete, ahora se le ha generado un rpm del mismo nombre:
jre-1_5_0_06-linux-i586.rpm, si utiliza distribuciones de linux instale los componentes necesarios para que su rpm pueda ser instalado con facilidad(Normalmente se encuentran en los CDs de Instalacion de su Linux) si utiliza FreeBSD puede configurar el rpm de la siguiente forma
pkg_add -r rpm4
./configure
make all clean
Juan Andres Segreda(JASJ)
[[Categoría:Lenguaje de programación Java|Instalar Java en Linux, cómo]]
gnxu44jv6f79o8uyl4z3rz2rjuhj4fl
431487
431485
2026-08-17T09:25:55Z
Antimundo
74354
Categorizar usando AutoCat
431487
wikitext
text/x-wiki
{| border="1" cellpadding="2" cellspacing="0" align="right" width="300"
! colspan="3" bgcolor="gainsboro" style="font-size:120%"|<big>Instalación de Java</big><br><small>Administración</small>
|-
| valign="top"|Dificultad :
| colspan="2" valign="top"|Facil
|-
| valign="top"|Necesitas :
| colspan="2" valign="top"|
|-
| valign="top"|Programas relacionados :
| colspan="2" valign="top" |
|-
| valign="top"|Comandos relacionados :
| colspan="2" valign="top"|
|-
| valign="top"|Archivos relacionados :
| colspan="2" valign="top"|
|-
| valign="top"|Estándares relacionados :
| colspan="2" valign="top"|
|-
| valign="top"|Enlaces relacionados :
| colspan="2" valign="top"|
|}
__TOC__
=== ¿Qué es Java? ===
Java es una plataforma de desarrollo y ejecución creado por Sun Microsystems. Funciona como una máquina virtual, es decir, las aplicaciones hechas en Java pueden ejecutarse sobre cualquier Sistema Operativo sin necesidad de realizar cambios a su estructura o código fuente.
Pero Java no es simplemente un lenguaje de programación, se puede decir que Java es una tecnología por estos motivos:
* Java ofrece características de máquina virtual
* Java tiene su propia API, eso permite la portabilidad entre distintos Sistemas.
* Java ofrece su lenguaje de programación.
=== ¿Cómo instalar Java? ===
{|style="background-color: #f2fff2; border: solid 1px #bfffbf; padding: 1em;" valign="top"
|
En una ventana de consola se siguen ejecutan los siguientes comandos:
Añadimos los repositorios con:
> sudo add-apt-repository ppa:webupd8team/java
Actualizamos los repositorios con:
> sudo apt-get update
E instalamos Oracle Java 7 con:
> sudo apt-get install oracle-java7-installer
Para comprobar que la instalación ha tenido exito, ejecuta en una terminal el comando para saber la versión de Java que utiliza tu Ubuntu:
> java -version
[http://En%20una%20venata%20de%20consola%20seguir%20los%20siguientes%20comandos http://www.ubuntu-guia.com/2012/04/instalar-oracle-java-7-en-ubuntu-1204.html]:
|}
=== Cómo configurar Java ===
<p>Existen varias variables de entorno que deberiamos configurar para que nuestros programas escritos en Java funcionen lo mejor posible estas son
*JAVA_HOME : Indica la carpeta base donde esta instalado Java
*PATH : Permite a nuestra linea de comandos saber donde esta el archivo java, tambien deberiamos añadir javac, y jar usamos frecuentemente las opcones de compilar y empaquetar
*CLASSPATH : Indica al entornojava donde buscar las clases de los programas
</p>
{|style="background-color: #f2fff2; border: solid 1px #bfffbf; padding: 1em;" valign="top"
| Añadimos a nuestro .bashrc las siguientes líneas.<br>
JAVA_HOME=/usr/lib/j2sdk1.5-sun
export JAVA_HOME
export PATH=$PATH:/usr/lib/j2sdk1.5-sun
CLASSPATH=/usr/lib/j2sdk1.5-sun/lib/tools.jar:/usr/lib/j2sdk1.5-sun/lib/dt.jar
export CLASSPATH
|}
=== Temas relacionados ===
Ingrese al sitio http://www.java.com/en/download/linux_manual.jsp, pida la descarga en rpm y que se adapte a su sistema(generalmente la primera opcion).
una vez bajado el programa de extencion <<rpm.bin>>
haga lo siguiente
sh jre-1_5_0_06-linux-i586.rpm.bin
lea las condiciones y acepte el paquete, ahora se le ha generado un rpm del mismo nombre:
jre-1_5_0_06-linux-i586.rpm, si utiliza distribuciones de linux instale los componentes necesarios para que su rpm pueda ser instalado con facilidad(Normalmente se encuentran en los CDs de Instalacion de su Linux) si utiliza FreeBSD puede configurar el rpm de la siguiente forma
pkg_add -r rpm4
./configure
make all clean
Juan Andres Segreda(JASJ)
{{AutoCat}}
isjrtixl840syt69ig57yqfneohd7ck
Programación en Ada/Unidades predefinidas/Interfaces
0
7185
431471
124193
2026-08-17T09:15:49Z
Antimundo
74354
Categorizar usando AutoCat
431471
wikitext
text/x-wiki
<code>Interfaces</code> es el paquete padre de una serie de paquetes dedicados a facilitar el [[Programación en Ada / Interfaz con otros lenguajes|interfaz con otros lenguajes]]:
* [[Programación en Ada / Unidades predefinidas / Interfaces.C| Paquete Interfaces.C]]
** [[Programación en Ada / Unidades predefinidas / Interfaces.C.Pointers| Paquete Interfaces.C.Pointers]]
** [[Programación en Ada / Unidades predefinidas / Interfaces.C.Strings| Paquete Interfaces.C.Strings]]
* [[Programación en Ada / Unidades predefinidas / Interfaces.Cobol| Paquete Interfaces.Cobol]]
* [[Programación en Ada / Unidades predefinidas / Interfaces.Fortran| Paquete Interfaces.Fortran]]
Además este paquete contiene varios tipos <code>Integer_''n''</code> y <code>Unsigned_''n''</code>, donde ''n'' es el número de bits que ocupa el tipo. Qué tipos concretos contiene depende del compilador y la arquitectura.
== Manual de referencia de Ada ==
*{{Ada/RM2|B|2|The Package Interfaces}}
{{AutoCat}}
[[en:Ada Programming/Libraries/Interfaces]]
qxfjp9qe8syuffovq7m9ltm5gnnuctf
Programación en C/Uso de funciones
0
7392
431384
410466
2026-08-16T22:23:16Z
Antimundo
74354
Actualizar etiquetas source obsoletas
431384
wikitext
text/x-wiki
<noinclude>
{{Navegar|anterior=Instrucciones de control
|siguiente=Vectores
|reducido=Si
}}
</noinclude>
==clase de Funciones==
Como vimos
[[Programación en C/Primer programa en C#Diseccionando el "Hola Mundo"|anteriormente]]
C tiene como bloque básico la función <syntaxhighlight inline
lang=c>main()</syntaxhighlight> , también hemos visto la sentencia <syntaxhighlight inline
lang=c>printf()</syntaxhighlight> que es otra función, y de igual forma hay muchas más funciones predefinidas, pero
nosotros mismos también podemos definir nuestras propias funciones. De hecho, es
fundamental hacerlo.
<!--
TODO: reescribir esto con otro ejemplo.
-->
Podemos definir una función cualquiera de la misma manera en que definimos la
función <syntaxhighlight inline lang=c>main()</syntaxhighlight>. Basta con poner su tipo,
su nombre, sus argumentos entre paréntesis y luego, entre llaves, su código:
<syntaxhighlight lang=c>
/* Inclusión de archivos */
#include <stdio.h>
void holamundo(void) /* Función donde se ejecuta la lógica del programa */
{
printf("Hola Mundo\n"); /* imprime la cadena */
return; /* sale de la función */
}
int main(void) /* Función principal del programa */
{
holamundo(); /* llamada a la función holamundo */
return 0; /* sale del programa con código 0 (correcto) */
}
</syntaxhighlight>
Este código es en todo equivalente al "Hola Mundo" original, sólo que nos
muestra cómo escribir y cómo utilizar una función. Y además nos muestra un
principio de buena programación: meter las sentencias que "hacen el trabajo" en
otras funciones específicas para sacarlas de <syntaxhighlight inline
lang=c>main()</syntaxhighlight>, dejando en ésta tan sólo un guión general de lo que
hace el programa, no las órdenes específicas. De esta manera se facilita la
comprensión del programa, y por tanto el futuro trabajo de modificarlo.
===La sentencia <syntaxhighlight inline lang=c>return</syntaxhighlight>===
La sentencia <syntaxhighlight inline lang=c>return</syntaxhighlight> puede utilizarse dentro de una función para terminar su ejecución.
En el ejemplo anterior, la función <syntaxhighlight inline lang=c>holamundo</syntaxhighlight> fue declarada con valor de retorno de tipo <syntaxhighlight inline lang=c>void</syntaxhighlight> (es decir, valor de retorno nulo). En ese caso, la sentencia <syntaxhighlight inline lang=c>return</syntaxhighlight> no lleva ningún parámetro adicional, ya que la función no debe devolver ningún valor a la función que la llama.
En cambio, la función <syntaxhighlight inline lang=c>main</syntaxhighlight> tiene un valor de retorno de tipo <syntaxhighlight inline lang=c>int</syntaxhighlight>, por lo que <syntaxhighlight inline lang=c>return</syntaxhighlight> debe ir seguido de un valor entero (0 en el ejemplo). El valor 0 se utiliza para indicar que el programa ha llegado a un punto en el que todo se ha desarrollado correctamente y se utiliza cualquier otro valor para indicar que ha habido algún tipo de error.
La instrucción <syntaxhighlight inline lang=c>return</syntaxhighlight> no es una función, se trata de una sentencia que lo que hace es retornar como valor de la función el valor que se le proporciona como argumento.
===Argumentos===
Las funciones también pueden recibir argumentos o parámetros, para modificar su comportamiento. Por ejemplo, la definición de una función para sumar dos números sería de la siguiente
manera:
<syntaxhighlight lang=c>
#include <stdio.h>
int sumar(int numero1, int numero2)
{
return numero1 + numero2;
}
int main(void)
{
int suma = sumar(5, 3); /* Se ejecuta correctamente*/
printf("La suma es: %d ", suma);
return 0;
}
</syntaxhighlight>
===Declaración y definición===
En el ejemplo anterior podemos notar que la función <syntaxhighlight inline lang=c>sumar</syntaxhighlight> figura en el código antes que <syntaxhighlight inline lang=c>main</syntaxhighlight>. ¿Qué pasaría si las escribiéramos en distinto orden?
<syntaxhighlight lang=c>
#include <stdio.h>
int main(void)
{
int suma = sumar(5, 3); /* ERROR, sumar no ha sido declarada aún */
printf("La suma es: %d ", suma);
return 0;
}
int sumar(int numero1, int numero2)
{
return numero1 + numero2;
}
</syntaxhighlight>
En este caso el programa es erróneo y no compila, ya que en la línea donde se llama a la función <syntaxhighlight inline lang=c>sumar</syntaxhighlight>, el compilador aún no conoce ninguna función con ese nombre, y cuáles son sus argumentos y valor de retorno.
Una posible solución es '''declarar''' el '''prototipo''' de la función al principio, para informar al compilador que existe, y luego '''definir''' el '''cuerpo''' de la misma en cualquier lugar del programa:
<syntaxhighlight lang=c>
#include <stdio.h>
/* Declaración */
int sumar(int numero1, int numero2);
int main(void)
{
int suma = sumar(5, 3);
printf("La suma es: %d ", suma);
return 0;
}
/* Definición */
int sumar(int numero1, int numero2)
{
return numero1 + numero2;
}
</syntaxhighlight>
===Paso de Parámetros===
Las funciones pueden recibir datos como lo hemos observado, pero existen dos formas de enviar los datos hacia una función '''por valor''' y '''por referencia''', las cuales modifican en diferente forma el comportamiento del programa.
====Por Valor====
El paso por valor envía una copia de los parámetros a la función por lo tanto
los cambios que se hagan en ella no son tomados en cuenta dentro de la función
<syntaxhighlight inline lang=c>main()</syntaxhighlight>. Ejemplo:
<syntaxhighlight lang=c>
/*
* por_valor.c
*
* Julio César Brizuela <brizuelaalvarado@gmail.com> 2009
*
* para el wikilibro "Programación en C"
* bajo licencia FDL, adaptado del Dominio Público
*/
#include <stdio.h>
void sumar_valor(int numero); /* prototipo de la función */
int main(void)
{
int numero = 57; /* definimos numero con valor de 57*/
sumar_valor(numero); /* enviamos numero a la función */
printf("Valor de numero dentro de main() es: %d\n", numero);
/* podemos notar que el valor de numero se modifica
* sólo dentro de la función sumar_valor pero en la principal
* número sigue valiendo 57
*/
return 0;
}
void sumar_valor(int numero)
{
numero++; /* le sumamos 1 al numero */
/* el valor de número recibido se aumenta en 1
* y se modifica dentro de la función sumar_valor()
*/
printf("Valor de numero dentro sumar_valor() es: %d\n", numero);
return;
}
</syntaxhighlight>
====Por Referencia====
El paso por referencia se hace utilizando apuntadores. Se envía la dirección de
memoria de la variable, por lo tanto los cambios que haga la función si afectan
el valor de la variable. Ejemplo:
<syntaxhighlight lang=c>
/*
* por_referencia.c
*
* Julio César Brizuela <brizuelaalvarado@gmail.com> 2009
*
* para el wikilibro "Programación en C"
* bajo licencia FDL, adaptado del Dominio Público
*/
#include <stdio.h>
void sumar_referencia(int *numero); /* prototipo de la función */
int main(void)
{
int numero = 57; /* definimos numero con valor de 57*/
sumar_referencia(&numero); /* enviamos numero a la función */
printf("\nValor de numero dentro de main() es: %d ", numero);
/* podemos notar que el valor de numero se modifica
* y que ahora dentro de main() también se ha modificado
* aunque la función no haya retornado ningún valor.
*/
return 0;
}
void sumar_referencia(int *numero)
{
*numero += 1; /* le sumamos 1 al numero */
/* el valor de numero recibido se aumenta en 1
* y se modifica dentro de la función
*/
printf("\nValor de numero dentro sumar_referencia() es: %d", *numero);
return;
}
</syntaxhighlight>
===Variables Locales y Globales===
Además de pasar valores a una función, también se pueden declarar tipos de
datos dentro de las funciones, estos tipos de datos declarados dentro de una
función solo son accesibles dentro de esta misma función y se les conocen como
variables locales, así pues podemos definir los mismos nombres de variables en
diferentes funciones, ya que estas variables solo son accesibles dentro de esas
funciones. Ejemplo:
<syntaxhighlight lang=c>
/*
* locales.c
*
* Julio César Brizuela <brizuelaalvarado@gmail.com> 2009
*
* para el wikilibro "Programación en C"
* bajo licencia FDL, adaptado del Dominio Público
*/
#include <stdio.h>
void funcion1()
{
int dato = 53; /* definimos dato en 53*/
char num1 = 'a'; /* num1 vale a */
/* imprimimos */
printf("Funcion1, dato=%d, num1=%c\n", dato, num1);
return;
}
void funcion2()
{
int dato = 25; /* definimos dato en 25*/
char num2 = 'z'; /* num2 vale z*/
/* imprimimos */
printf("Funcion2, dato=%d, num2=%c\n", dato, num2);
return;
}
int main(void)
{
funcion1(); /* llamamos a funcion1() */
funcion2(); /* llamamos a funcion2() */
return 0;
}
</syntaxhighlight>
En este caso la variable dato, esta definida dentro de cada una de las
funciones y son totalmente distinta una de otra y no se puede utilizar fuera de
esta, así pues num2 no puede ser utilizada por la funcion1() y num1 tampoco
puede ser utilizada por funcion2().
Existen pues variables que se definen fuera de la función principal main() y
fuera de cualquier otra función creada por nosotros, estas variables se les
conoce con el nombre de Variables Globales ya que se pueden utilizar dentro de
main() y dentro de cualquier función creada por nosotros. Ejemplo:
<syntaxhighlight lang=c>
/*
* global.c
*
* Julio César Brizuela <brizuelaalvarado@gmail.com> 2009
*
* para el wikilibro "Programación en C"
* bajo licencia FDL, adaptado del Dominio Público
*/
#include <stdio.h>
int variable_global = 99; /* inicializamos la variable global */
void funcion();
int main(void)
{
/* imprimimos el valor*/
printf("main(), acceso a variable_global %d\n", variable_global);
/* llamamos a la función */
funcion();
return 0;
}
void funcion()
{
/* imprimimos el valor*/
printf("funcion(), acceso a variable_global %d\n", variable_global);
return;
}
</syntaxhighlight>
==Funciones Recursivas==
La recursividad (recursión) es la propiedad por la cual una función se llama
a sí misma '''directa''' o '''indirectamente'''. La recursión
indirecta implica utilizar más de una función.
Se puede considerar la recursividad como una alternativa a la iteración.
La recursión permite especificar soluciones naturales, sencillas, que serían,
en caso contrario, difíciles de resolver. Toda función recursiva debe
contemplar un '''caso base''' o '''condición de salida''', para terminar, o la
recursividad no podrá terminar nunca.
Una función recursiva podría definirse así:
<syntaxhighlight lang=c>
funcion_recursiva( /* parámetros recibidos por la función */ )
{
/* Código */
funcion_recursiva( ); /* llamada a la función misma */
/* Código */
}
</syntaxhighlight>
Uno de los ejemplos más representativos en la recursividad es el factorial de
un numero ( n! ):
:<math> n!=\prod_{k=1}^n k \qquad \forall n \in \mathbb{N}\!</math>
la definición de recursividad del factorial es:
:<math> n! = \begin{cases}
1 & \text{ Si } n = 0 \\
n (n-1)! & \text{ Si } n > 0 \\
\end{cases}
\qquad \forall n \in \mathbb{N}.
</math>
En esta definición, n = 0, es nuestro caso base, que le da fin a la
recursividad.
Entonces nuestro programa que calcula el factorial es:
<syntaxhighlight lang=c>
/*
*factorial.c
*
* Julio César Brizuela <brizuelaalvarado@gmail.com> 2009
*
* para el wikilibro "Programación en C"
* bajo licencia FDL, adaptado del Dominio Público
*/
#include <stdio.h>
long factorial(int n)
{
if (n == 0) /* caso base */
return 1; /* como 0! = 1, se retorna 1*/
else
return n * factorial (n - 1); /* llamada a esta misma función */
}
int main(void)
{
/* en este caso se llama a la función y se imprime directamente*/
printf("%ld ", factorial(5));
return 0;
}
</syntaxhighlight>
También existen otros tipos de funciones recursivas como lo es el producto de
dos números. El producto de '''a <math>\times</math> b''', donde '''a''' y '''b''' son números
enteros positivos seria:
'''Solución iterativa:'''
<math> a \times b = \begin{matrix}\underbrace{a+a+\cdots+a} \\ \ b\ veces \end{matrix} = \sum_{i=1}^b a</math>
'''Solución recursiva:'''
<math> a \times b = \begin{cases}
0 & \text{ Si } b = 0 \\
a + a \times (b-1) & \text{ Si } b > 0 \\
\end{cases}
</math>
Así pues <math>7 \times 3</math> es:
:<math> 7 \times 3 = 7 + 7 \times 2 = 7 + 7 + 7 \times 1 = 7 + 7 + 7 + 0 =
21</math>
Podemos ver que la multiplicación de dos números a, b se puede transformar en
otro problema más pequeño multiplicar '''a''' por '''(b-1)''',
el caso base se produce cuando '''b = 0''' y el producto es '''0'''. Ejemplo:
<syntaxhighlight lang=c>
/*
* producto.c
*
* Julio César Brizuela <brizuelaalvarado@gmail.com> 2009
*
* para el wikilibro "Programación en C"
* bajo licencia FDL, adaptado del Dominio Público
*/
#include <stdio.h>
int producto(int a, int b)
{
if (b == 0) /* caso base */
return 0; /* como b = 0, se retorna 0*/
else
return a + producto (a, b - 1); /* llamada a esta misma función */
}
int main(void)
{
/* en este caso se llama a la función y se imprime directamente*/
printf("%i ", producto( 7, 3));
return 0;
}
</syntaxhighlight>
===Recursividad indirecta o recursión mutua===
Esta se produce cuando una función llama a otra, que esta a su vez terminará
llamando de nuevo a la primera función. El siguiente programa visualiza el
alfabeto utilizando recursión indirecta o mutua:
<syntaxhighlight lang=c>
/*
* elalfabeto.c
*
* Julio César Brizuela <brizuelaalvarado@gmail.com> 2009
*
* para el wikilibro "Programación en C"
* bajo licencia FDL, adaptado del Dominio Público
*/
#include <stdio.h>
void funcionA(char c); /* se declara el prototipo de la función para que el llamado */
void funcionB(char c); /* a la misma en la función no sea implícita */
int main(void)
{
funcionA('z'); /* llamado a funcionA */
return 0;
}
void funcionA(char c)
{
if (c > 'a') /* caso base mientras c no sea menor que A */
funcionB(c); /* llamado a la funcionB */
printf("%c ", c); /* imprimimos el valor de c */
*la variable es un parametro no utilizado para este proceso
}
void funcionB(char c)
{
funcionA(--c); /* llamado a la funcionA decrementando el valor de 'z' */
}
</syntaxhighlight>
===Recursión versus Iteración===
Tanto la iteración como la recursión se basan en estructura de control: la
iteración utiliza una estructura repetitiva y la recursión una estructura de
selección. La iteración utiliza explícitamente una estructura repetitiva
mientras que la recursión consigue la repetición mediante llamadas repetitivas
a funciones.
La iteración termina si la condición del bucle no se cumple, mientras que la
recursión termina cuando se reconoce un caso base.
La recursión puede presentar desventajas ante la iteración ya que se invoca
repetidas veces al mecanismo de llamada de funciones y se necesita un tiempo
mayor para realizar cada llamada.
La razón por la cual se puede elegir u optar por usar recursividad es que
existen muchos problemas complejos que poseen naturaleza recursiva y, en
consecuencia, son mas fáciles de implementar.
====Ejemplo Iterativo====
<syntaxhighlight lang=c>
/*
* iterativo.c
*
* Julio César Brizuela <brizuelaalvarado@gmail.com> 2009
*
* para el wikilibro "Programación en C"
* bajo licencia FDL, adaptado del Dominio Público
*/
#include <stdio.h>
long factorial(int numero);
int main(int argc, char** argv)
{
int contador = 0;
/* calcula el factorial de 0 a 10 */
for ( contador = 0; contador <= 10; contador++ )
printf("%d! = %ld\n", contador, factorial( contador ));
return 0;
}
/* funcion factorial iterativa */
long factorial( int numero )
{
long resultado = 1;
int i = 0;
/* declaracion de la función factorial iterativa */
for ( i = numero; i >= 1; i-- )
resultado *= i;
return resultado;
}
</syntaxhighlight>
====Ejemplo Recursivo====
<syntaxhighlight lang=c>
/*
* recursivo.c
*
* Julio César Brizuela <brizuelaalvarado@gmail.com> 2009
*
* para el wikilibro "Programación en C"
* bajo licencia FDL, adaptado del Dominio Público
*/
#include <stdio.h>
long factorial(int numero);
int main(int argc, char** argv)
{
int contador = 0;
/* calcula el factorial de 0 a 10 */
for ( contador = 0; contador <= 10; contador++ )
printf("%d! = %ld\n", contador, factorial( contador ));
return 0;
}
/* función factorial recursiva */
long factorial( int numero )
{
if ( numero <= 0 ) /* caso base */
return 1; /* casos bases: 0! = 1 y 1! = 1 */
else /* llamada recursiva */
return numero * factorial( numero - 1 ); /* llamada a la función factorial */
}
</syntaxhighlight>
<noinclude>
{{Navegar|anterior=Instrucciones de control
|siguiente=Vectores
|reducido=Si
}}
</noinclude>
qt5x73i79xwee6w0vlai9qvvnrlda9g
Programación en C/Expresiones
0
7393
431386
401887
2026-08-16T22:25:20Z
Antimundo
74354
Actualizar etiquetas source obsoletas
431386
wikitext
text/x-wiki
<noinclude>
{{Navegar|anterior=Tipos de datos
|siguiente=Interacción con el usuario
|reducido=Si
}}
</noinclude>
Vamos a tratar ahora de que el ordenador haga un poco de matemáticas para nosotros. Por ejemplo, que realice unas pocas sumas, restas multiplicaciones y divisiones.
<syntaxhighlight lang=c>
#include <stdio.h>
#include <math.h>
int main()
{
int resultado;
resultado=5+2;
printf("Resultado de la suma: %i\n",resultado);
resultado=5-2;
printf("Resultado de la resta: %i\n",resultado);
resultado=5*2;
printf("Resultado de la multiplicación: %i\n",resultado);
resultado=5/2;
printf("Resultado de la división: %i\n",resultado);
return(0);
}
</syntaxhighlight>
Después de grabarlo (por ejemplo, con el nombre <code>ejemplo.c</code>), lo compilamos y ejecutamos, con (respectivamente):
<pre>
$ gcc ejemplo.c
$ ./a.out
Resultado de la suma: 7
Resultado de la resta: 3
Resultado de la multiplicación: 10
Resultado de la división: 2
$
</pre>
Fijémonos en la línea del principio de la función <code>main</code>:
<syntaxhighlight lang=c>
int resultado;
</syntaxhighlight>
Esta línea lo que hace es reservar un trozo de memoria, del tamaño de un <syntaxhighlight inline lang=c>int</syntaxhighlight> (normalmente 4 bytes), y asignarle el nombre <code>resultado</code>, para poder después referirnos a él. A partir de este momento, podemos considerar que en nuestro programa existe una [[w:Variable (programación)|variable]], que no tiene valor definido, pero a la que le podremos dar valor posteriormente.
Las líneas con <code>printf()</code> ya las conocemos, pero hay algo en ellas que no habíamos visto antes. Esos <syntaxhighlight inline lang=c>%i</syntaxhighlight> y la parte de <code>resultado</code> son nuevas para nosotros.
La función <code>printf()</code> no sólo sabe imprimir cadenas simples, como <syntaxhighlight inline lang=c>"Hola Mundo\n"</syntaxhighlight>, sino también imprimir variables. Para ello, en el lugar de la cadena donde queremos que aparezca el valor de la variable, introducimos lo que se llama una cadena de conversión de <code>printf()</code>. Estas cadenas siempre empiezan por <syntaxhighlight inline lang=c>%</syntaxhighlight>, siendo <syntaxhighlight inline lang=c>%i</syntaxhighlight> la cadena para imprimir un entero, como es en nuestro caso <syntaxhighlight inline lang=c>int resultado</syntaxhighlight>. Finalmente, <code>printf()</code> debe saber qué valor escribir, por eso le damos otro argumento (u otros), usando <code>,</code> como separador, que contienen las variables cuyos valores queremos mostrar.
En el resto del programa hemos visto cómo decirle al ordenador que ejecute una suma, una resta, una multiplicación y una división entera, con los operadores <code>+</code>, <code>-</code>, <code>*</code> y <code>/</code>. Es de notar que el resultado de una operación como estas entre números enteros será siempre otro entero, como se puede observar en la división, en la que no obtenemos un bonito decimal, sino un resultado entero. Además, hemos visto que el resultado de esas operaciones, que llamamos expresiones, puede ser asignado a una variable:
<syntaxhighlight lang=c>
resultado = 7;
</syntaxhighlight>
Esa asignación se hace mediante el operador de asignación: <code>=</code>. Con él, ya conocemos cinco operadores.
Pero, como <code>=</code> también es un operador, ¿cómo sabe el ordenador qué operador debe ejecutar primero? Y si es un operador, ¿por qué no da un resultado? ¿No crea una expresión?
{| style="border-collapse:collapse;background:white;" cellpadding=5px width=50%
! width=50% style="font-weight:bold; text-align:center; border:1px solid gray;"|Operadores
! width=50% style="font-weight:bold; text-align:center; border:1px solid gray;"|Precedencia
|-
|style="border:1px solid gray;"|<code>* /</code>
|style="border:1px solid gray;"|Izq. a Der.
|-
|style="border:1px solid gray;"|<code>+ -</code>
|style="border:1px solid gray;"|Izq. a Der.
|-
|style="border:1px solid gray;"|<code>=</code>
|style="border:1px solid gray;"|Der. a Izq.
|}
Empezando por las últimas preguntas, el operador de asignación sí crea una expresión, como los operadores de suma, resta, multiplicación y división, y esa expresión tiene un resultado, que es el valor que obtiene el lado izquierdo al realizar la operación. En cuanto a saber qué se debe ejecutar primero, el ordenador tiene una lista de precedencia, según la cual siempre ejecuta primero las multiplicaciones y divisiones, de izquierda a derecha, a continuación las sumas y restas, de izquierda a derecha, y a continuación las asignaciones, de derecha a izquierda. Para más detalles acerca de la precedencia de los operadores ver el [[Programación en C/Referencia#Operadores|anexo de los operadores]].
En cuanto a los caracteres de punto y coma, notamos aquí que una expresión también puede ser una sentencia por sí misma, sin necesidad de que haya ninguna función. De hecho, una sentencia puede no tener siquiera una expresión. La línea:
<code>;</code>
es una sentencia perfectamente válida, la sentencia vacía, que sera útil en puntos donde el lenguaje requiera una sentencia pero no sea necesaria para nuestro programa.
<noinclude>
{{Navegar|anterior=Tipos de datos
|siguiente=Interacción con el usuario
|reducido=Si
}}
</noinclude>
6c7cd19bk438ywkr9jli2r5arm5gaj3
Plantilla:Oficial
10
7723
431586
425843
2026-08-17T11:51:11Z
Antimundo
74354
Añadir plantilla de documentación
431586
wikitext
text/x-wiki
{{Metaplantilla de avisos
| tipo = aviso
| imagen = [[Archivo:Blue check.svg|40px]]
| texto = '''Esta página describe una política oficial de Wikilibros'''</br>
Ha sido elaborada por la comunidad, y su cumplimiento es obligatorio para todos los editores. Puedes editarla para mejorar su redacción y formato, pero si deseas cambiar alguna cuestión de fondo, busca el consenso comunitario solicitando una [[Wikilibros:Votaciones|votación]] al respecto.
}}<includeonly>[[Categoría:Wikilibros:Políticas y orientaciones|{{PAGENAME}}]]</includeonly><noinclude>
{{Documentación}}
[[Categoría:Wikilibros:Plantillas de políticas oficiales]]
</noinclude>
rx3iqom6n5ftl6g6lk7s0nhirl5s4y6
Wikilibros:Estadísticas/Archivo/2011
4
7853
431491
195397
2026-08-17T09:30:59Z
Antimundo
74354
Simplificar sintaxis pues las plantillas incluidas generaban muchos enlaces rotos y transclusiones que categorizaban incorrectamente esta página
431491
wikitext
text/x-wiki
==Estadísticas de MediaWiki==
Según MediaWiki tenemos '''{{NUMBEROFARTICLES}}''' páginas, repartidas en un número indeterminado de libros, ya que el software no es capaz de contar libros por sí mismo. Para más información estadística, véase [[Especial:Statistics]] y las [http://en.wikipedia.org/wikistats/wikibooks/ES/Sitemap.htm estadísticas generales].
* <u>THEwikiStics</u>: [http://wikistics.falsikon.de/latest/wikibooks/es/ Page Hits toplist] <small>(compare [http://wikistics.falsikon.de/latest/ traffic] | [http://wikistics.falsikon.de/latest/searches.htm searches])</small>
==Estadísticas por libro==
Según las [http://en.wikipedia.org/wikistats/wikibooks/EN/Wikibooks_ES.htm estadísticas por libro], a fecha de '''11 de febrero de 2010''', en Wikilibros tenemos {{NUMBEROFBOOKS}} libros de más de 10 KB y más de un capítulo. Son los siguientes en orden alfabético:
# [[Accidentes de Tránsito]]
# [[Acuarios de arrecife]]
# [[Administración de tiempo]]
# [[Alemán]]
# [[Álgebra Lineal]]
# [[Álgebra universitaria]]
# [[Álgebra]]
# [[Algoritmia]]
# [[Apicultura fácil]]
# [[Aprendizaje colaborativo]]
# [[Aprendizaje combinado]]
# [[Artes culinarias]]
# [[Astronomía]]
# [[Atlas de la Diversidad Cultural]]
# [[Atlas.ti]]
# [[Biología celular]]
# [[Bioquímica]]
# [[Blender 3D]]
# [[C sharp NET]]
# [[Cálculo en una variable]]
# [[Cardiomiopatías felinas]]
# [[Catalán]]
# [[Catálogo de obras de Erminio Blotta]]
# [[Chile y Latinoamérica en el siglo XX]]
# [[Chino]]
# [[Cibercultura]]
# [[Circuitos y Sistemas Electrónicos]]
# [[Comercio y negocios electrónicos]]
# [[Como nos llegó la Biblia]]
# [[Comunicaciones Unificadas Con Elastix]]
# [[Conjuntos numéricos]]
# [[Contabilidad Financiera]]
# [[Creación de videojuegos]]
# [[Curso de Relatividad General]]
# [[Derecho romano]]
# [[Diccionario de Psicoanálisis]]
# [[Dirección de Proyectos]]
# [[Discos multimedia basados en Wyplayer]]
# [[Documentación en línea de OsiriX]]
# [[Ecuaciones diferenciales ordinarias]]
# [[El Manual de BASH Scripting Básico para Principiantes]]
# [[El software libre en la educación]]
# [[Electricidad]]
# [[Electrónica de Comunicaciones]]
# [[Electrónica]]
# [[En persecución]]
# [[Enfermedades metabólicas producidas por enzimas defectuosas]]
# [[Ensayar el software libre]]
# [[Español]]
# [[Esperanto]]
# [[Estadística]]
# [[Estructuras de datos dinámicas]]
# [[Euskera]]
# [[Excursionismo]]
# [[Farmaguia]]
# [[Física]]
# [[Formulación inorgánica]]
# [[Fractalidades en Investigación Crítica]]
# [[Francés]]
# [[Freistoß]]
# [[Fundamentos de Astrofísica]]
# [[Fundamentos de programación]]
# [[Gallego]]
# [[Gambas]]
# [[Gastronomía de Venezuela]]
# [[Gastronomía del Perú]]
# [[Génesis y evolución del corrido mexicano]]
# [[Grandes biografías]]
# [[Grandes construcciones]]
# [[Guaraní]]
# [[Guía completa de televisión]]
# [[Hacks para un estilo de vida digital]]
# [[Hidrosistemas]]
# [[Historia contemporánea de España]]
# [[Historia de América Latina]]
# [[Historia de Colombia]]
# [[Historia de El Salvador]]
# [[Historia de España]]
# [[Historia de Europa]]
# [[Historia de la arquitectura]]
# [[Historia de la filosofía]]
# [[Historia de México]]
# [[Historia de Venezuela]]
# [[Historia del Partido Comunista Paraguayo (1928-1990)]]
# [[Historia digital del Arte]]
# [[Impactos ambientales]]
# [[Informática Educacional]]
# [[Ingeniería de aguas residuales]]
# [[Ingeniería de fabricación]]
# [[Ingeniería del conocimiento]]
# [[Inglés]]
# [[Inmersión en Python]]
# [[Internet para novatos]]
# [[Introducción a Linux]]
# [[Introducción a Patrones de Diseño en C++ con Qt4]]
# [[Italiano]]
# [[Jahshaka]]
# [[Japonés]]
# [[Juegos populares]]
# [[Kdenlive]]
# [[Latín]]
# [[Lenguaje XHTML]]
# [[Libro Abierto de Circo]]
# [[Manga]]
# [[Manual básico de medicina natural]]
# [[Manual de Ajedrez]]
# [[Manual de Ajuste por Inflación Fiscal]]
# [[Manual de Go]]
# [[Manual de Ingeniería Informática]]
# [[Manual de Iuris Explorer]]
# [[Manual de la bicicleta]]
# [[Manual de LaTeX]]
# [[Manual de uso wiki]]
# [[Manual del estudiante de Ingeniería en Sistemas de UTN]]
# [[Manual del mate y la yerba mate]]
# [[Manual wiki]]
# [[Mapundungun]]
# [[Matemáticas Bachillerato LOGSE]]
# [[Matemáticas elementales]]
# [[Matemáticas]]
# [[Medicina Veterinaria]]
# [[Mejores Practicas para Redes de Datos]]
# [[Mensajería Instantánea Jabber]]
# [[Microcontroladores]]
# [[Montañismo]]
# [[MUELA]]
# [[Multiterminal]]
# [[Náhuatl]]
# [[Napolitano]]
# [[Netiquette]]
# [[Nórdico Antiguo]]
# [[Normativa oficial del idioma gallego]]
# [[Noruego (bokmål)]]
# [[Noruego]]
# [[Notas sobre Sistemas Operativos]]
# [[Objetos y diseños para el aprendizaje]]
# [[Odontotutor]]
# [[OpenOffice.org]]
# [[OpenVPN]]
# [[Origami]]
# [[Patología de la edificación]]
# [[Pensamiento castanediano]]
# [[Petróleo]]
# [[Pisología Social de la Comunicación]]
# [[Portugués]]
# [[Problemario de Señales y Sistemas]]
# [[Programación en Ada]]
# [[Programación en C]]
# [[Programación en C++]]
# [[Programación en Java]]
# [[Programación en Pascal]]
# [[Programación en Perl]]
# [[Programación en PHP]]
# [[Programación en VHDL]]
# [[Programación]]
# [[Programas de desarrollo social]]
# [[Psicología Social de la Comunicación]]
# [[Publicidad Subliminal]]
# [[Quenya]]
# [[Quiché]]
# [[Química]]
# [[Redes informáticas]]
# [[Routers]]
# [[Seguridad informática]]
# [[Sistemas operativos]]
# [[Slot]]
# [[Sueño lúcido]]
# [[Surinam en Imágenes]]
# [[Tablas estadísticas]]
# [[Técnicas básicas de la fotografía]]
# [[Tecnologías para el Desarrollo Rural]]
# [[Temario Oposición Profesor FP Informática]]
# [[Teoría de conjuntos]]
# [[Teoría de la música y armonía]]
# [[Toki pona]]
# [[Transporte de información y redes]]
# [[Trigonometría]]
# [[Turco]]
# [[Tutorial de bots]]
# [[Using Tina POS+]]
# [[Web 2.0]]
# [[Wikichicos]]
# [[XUL]]
# [[Zend Framework]]
== Estadísticas anteriores ==
Para ver las estadísticas anteriores, por favor vaya al [[Wikilibros:Estadísticas/Archivo|Archivo]]
[[Categoría:Wikilibros|Estadísticas]]
[[en:Wikibooks:Multilingual statistics]]
2q2r7meld45a02lktyzkopbctbdz91j
431492
431491
2026-08-17T09:31:38Z
Antimundo
74354
Añadir plantilla de museo, esta página ya no se usa
431492
wikitext
text/x-wiki
{{Museo}}
==Estadísticas de MediaWiki==
Según MediaWiki tenemos '''{{NUMBEROFARTICLES}}''' páginas, repartidas en un número indeterminado de libros, ya que el software no es capaz de contar libros por sí mismo. Para más información estadística, véase [[Especial:Statistics]] y las [http://en.wikipedia.org/wikistats/wikibooks/ES/Sitemap.htm estadísticas generales].
* <u>THEwikiStics</u>: [http://wikistics.falsikon.de/latest/wikibooks/es/ Page Hits toplist] <small>(compare [http://wikistics.falsikon.de/latest/ traffic] | [http://wikistics.falsikon.de/latest/searches.htm searches])</small>
==Estadísticas por libro==
Según las [http://en.wikipedia.org/wikistats/wikibooks/EN/Wikibooks_ES.htm estadísticas por libro], a fecha de '''11 de febrero de 2010''', en Wikilibros tenemos {{NUMBEROFBOOKS}} libros de más de 10 KB y más de un capítulo. Son los siguientes en orden alfabético:
# [[Accidentes de Tránsito]]
# [[Acuarios de arrecife]]
# [[Administración de tiempo]]
# [[Alemán]]
# [[Álgebra Lineal]]
# [[Álgebra universitaria]]
# [[Álgebra]]
# [[Algoritmia]]
# [[Apicultura fácil]]
# [[Aprendizaje colaborativo]]
# [[Aprendizaje combinado]]
# [[Artes culinarias]]
# [[Astronomía]]
# [[Atlas de la Diversidad Cultural]]
# [[Atlas.ti]]
# [[Biología celular]]
# [[Bioquímica]]
# [[Blender 3D]]
# [[C sharp NET]]
# [[Cálculo en una variable]]
# [[Cardiomiopatías felinas]]
# [[Catalán]]
# [[Catálogo de obras de Erminio Blotta]]
# [[Chile y Latinoamérica en el siglo XX]]
# [[Chino]]
# [[Cibercultura]]
# [[Circuitos y Sistemas Electrónicos]]
# [[Comercio y negocios electrónicos]]
# [[Como nos llegó la Biblia]]
# [[Comunicaciones Unificadas Con Elastix]]
# [[Conjuntos numéricos]]
# [[Contabilidad Financiera]]
# [[Creación de videojuegos]]
# [[Curso de Relatividad General]]
# [[Derecho romano]]
# [[Diccionario de Psicoanálisis]]
# [[Dirección de Proyectos]]
# [[Discos multimedia basados en Wyplayer]]
# [[Documentación en línea de OsiriX]]
# [[Ecuaciones diferenciales ordinarias]]
# [[El Manual de BASH Scripting Básico para Principiantes]]
# [[El software libre en la educación]]
# [[Electricidad]]
# [[Electrónica de Comunicaciones]]
# [[Electrónica]]
# [[En persecución]]
# [[Enfermedades metabólicas producidas por enzimas defectuosas]]
# [[Ensayar el software libre]]
# [[Español]]
# [[Esperanto]]
# [[Estadística]]
# [[Estructuras de datos dinámicas]]
# [[Euskera]]
# [[Excursionismo]]
# [[Farmaguia]]
# [[Física]]
# [[Formulación inorgánica]]
# [[Fractalidades en Investigación Crítica]]
# [[Francés]]
# [[Freistoß]]
# [[Fundamentos de Astrofísica]]
# [[Fundamentos de programación]]
# [[Gallego]]
# [[Gambas]]
# [[Gastronomía de Venezuela]]
# [[Gastronomía del Perú]]
# [[Génesis y evolución del corrido mexicano]]
# [[Grandes biografías]]
# [[Grandes construcciones]]
# [[Guaraní]]
# [[Guía completa de televisión]]
# [[Hacks para un estilo de vida digital]]
# [[Hidrosistemas]]
# [[Historia contemporánea de España]]
# [[Historia de América Latina]]
# [[Historia de Colombia]]
# [[Historia de El Salvador]]
# [[Historia de España]]
# [[Historia de Europa]]
# [[Historia de la arquitectura]]
# [[Historia de la filosofía]]
# [[Historia de México]]
# [[Historia de Venezuela]]
# [[Historia del Partido Comunista Paraguayo (1928-1990)]]
# [[Historia digital del Arte]]
# [[Impactos ambientales]]
# [[Informática Educacional]]
# [[Ingeniería de aguas residuales]]
# [[Ingeniería de fabricación]]
# [[Ingeniería del conocimiento]]
# [[Inglés]]
# [[Inmersión en Python]]
# [[Internet para novatos]]
# [[Introducción a Linux]]
# [[Introducción a Patrones de Diseño en C++ con Qt4]]
# [[Italiano]]
# [[Jahshaka]]
# [[Japonés]]
# [[Juegos populares]]
# [[Kdenlive]]
# [[Latín]]
# [[Lenguaje XHTML]]
# [[Libro Abierto de Circo]]
# [[Manga]]
# [[Manual básico de medicina natural]]
# [[Manual de Ajedrez]]
# [[Manual de Ajuste por Inflación Fiscal]]
# [[Manual de Go]]
# [[Manual de Ingeniería Informática]]
# [[Manual de Iuris Explorer]]
# [[Manual de la bicicleta]]
# [[Manual de LaTeX]]
# [[Manual de uso wiki]]
# [[Manual del estudiante de Ingeniería en Sistemas de UTN]]
# [[Manual del mate y la yerba mate]]
# [[Manual wiki]]
# [[Mapundungun]]
# [[Matemáticas Bachillerato LOGSE]]
# [[Matemáticas elementales]]
# [[Matemáticas]]
# [[Medicina Veterinaria]]
# [[Mejores Practicas para Redes de Datos]]
# [[Mensajería Instantánea Jabber]]
# [[Microcontroladores]]
# [[Montañismo]]
# [[MUELA]]
# [[Multiterminal]]
# [[Náhuatl]]
# [[Napolitano]]
# [[Netiquette]]
# [[Nórdico Antiguo]]
# [[Normativa oficial del idioma gallego]]
# [[Noruego (bokmål)]]
# [[Noruego]]
# [[Notas sobre Sistemas Operativos]]
# [[Objetos y diseños para el aprendizaje]]
# [[Odontotutor]]
# [[OpenOffice.org]]
# [[OpenVPN]]
# [[Origami]]
# [[Patología de la edificación]]
# [[Pensamiento castanediano]]
# [[Petróleo]]
# [[Pisología Social de la Comunicación]]
# [[Portugués]]
# [[Problemario de Señales y Sistemas]]
# [[Programación en Ada]]
# [[Programación en C]]
# [[Programación en C++]]
# [[Programación en Java]]
# [[Programación en Pascal]]
# [[Programación en Perl]]
# [[Programación en PHP]]
# [[Programación en VHDL]]
# [[Programación]]
# [[Programas de desarrollo social]]
# [[Psicología Social de la Comunicación]]
# [[Publicidad Subliminal]]
# [[Quenya]]
# [[Quiché]]
# [[Química]]
# [[Redes informáticas]]
# [[Routers]]
# [[Seguridad informática]]
# [[Sistemas operativos]]
# [[Slot]]
# [[Sueño lúcido]]
# [[Surinam en Imágenes]]
# [[Tablas estadísticas]]
# [[Técnicas básicas de la fotografía]]
# [[Tecnologías para el Desarrollo Rural]]
# [[Temario Oposición Profesor FP Informática]]
# [[Teoría de conjuntos]]
# [[Teoría de la música y armonía]]
# [[Toki pona]]
# [[Transporte de información y redes]]
# [[Trigonometría]]
# [[Turco]]
# [[Tutorial de bots]]
# [[Using Tina POS+]]
# [[Web 2.0]]
# [[Wikichicos]]
# [[XUL]]
# [[Zend Framework]]
== Estadísticas anteriores ==
Para ver las estadísticas anteriores, por favor vaya al [[Wikilibros:Estadísticas/Archivo|Archivo]]
[[Categoría:Wikilibros|Estadísticas]]
[[en:Wikibooks:Multilingual statistics]]
qceg83e6kdj2ajikmqlavo3rkaphnw8
431493
431492
2026-08-17T09:32:33Z
Antimundo
74354
Retirar categorización errónea
431493
wikitext
text/x-wiki
{{Museo}}
==Estadísticas de MediaWiki==
Según MediaWiki tenemos '''{{NUMBEROFARTICLES}}''' páginas, repartidas en un número indeterminado de libros, ya que el software no es capaz de contar libros por sí mismo. Para más información estadística, véase [[Especial:Statistics]] y las [http://en.wikipedia.org/wikistats/wikibooks/ES/Sitemap.htm estadísticas generales].
* <u>THEwikiStics</u>: [http://wikistics.falsikon.de/latest/wikibooks/es/ Page Hits toplist] <small>(compare [http://wikistics.falsikon.de/latest/ traffic] | [http://wikistics.falsikon.de/latest/searches.htm searches])</small>
==Estadísticas por libro==
Según las [http://en.wikipedia.org/wikistats/wikibooks/EN/Wikibooks_ES.htm estadísticas por libro], a fecha de '''11 de febrero de 2010''', en Wikilibros tenemos {{NUMBEROFBOOKS}} libros de más de 10 KB y más de un capítulo. Son los siguientes en orden alfabético:
# [[Accidentes de Tránsito]]
# [[Acuarios de arrecife]]
# [[Administración de tiempo]]
# [[Alemán]]
# [[Álgebra Lineal]]
# [[Álgebra universitaria]]
# [[Álgebra]]
# [[Algoritmia]]
# [[Apicultura fácil]]
# [[Aprendizaje colaborativo]]
# [[Aprendizaje combinado]]
# [[Artes culinarias]]
# [[Astronomía]]
# [[Atlas de la Diversidad Cultural]]
# [[Atlas.ti]]
# [[Biología celular]]
# [[Bioquímica]]
# [[Blender 3D]]
# [[C sharp NET]]
# [[Cálculo en una variable]]
# [[Cardiomiopatías felinas]]
# [[Catalán]]
# [[Catálogo de obras de Erminio Blotta]]
# [[Chile y Latinoamérica en el siglo XX]]
# [[Chino]]
# [[Cibercultura]]
# [[Circuitos y Sistemas Electrónicos]]
# [[Comercio y negocios electrónicos]]
# [[Como nos llegó la Biblia]]
# [[Comunicaciones Unificadas Con Elastix]]
# [[Conjuntos numéricos]]
# [[Contabilidad Financiera]]
# [[Creación de videojuegos]]
# [[Curso de Relatividad General]]
# [[Derecho romano]]
# [[Diccionario de Psicoanálisis]]
# [[Dirección de Proyectos]]
# [[Discos multimedia basados en Wyplayer]]
# [[Documentación en línea de OsiriX]]
# [[Ecuaciones diferenciales ordinarias]]
# [[El Manual de BASH Scripting Básico para Principiantes]]
# [[El software libre en la educación]]
# [[Electricidad]]
# [[Electrónica de Comunicaciones]]
# [[Electrónica]]
# [[En persecución]]
# [[Enfermedades metabólicas producidas por enzimas defectuosas]]
# [[Ensayar el software libre]]
# [[Español]]
# [[Esperanto]]
# [[Estadística]]
# [[Estructuras de datos dinámicas]]
# [[Euskera]]
# [[Excursionismo]]
# [[Farmaguia]]
# [[Física]]
# [[Formulación inorgánica]]
# [[Fractalidades en Investigación Crítica]]
# [[Francés]]
# [[Freistoß]]
# [[Fundamentos de Astrofísica]]
# [[Fundamentos de programación]]
# [[Gallego]]
# [[Gambas]]
# [[Gastronomía de Venezuela]]
# [[Gastronomía del Perú]]
# [[Génesis y evolución del corrido mexicano]]
# [[Grandes biografías]]
# [[Grandes construcciones]]
# [[Guaraní]]
# [[Guía completa de televisión]]
# [[Hacks para un estilo de vida digital]]
# [[Hidrosistemas]]
# [[Historia contemporánea de España]]
# [[Historia de América Latina]]
# [[Historia de Colombia]]
# [[Historia de El Salvador]]
# [[Historia de España]]
# [[Historia de Europa]]
# [[Historia de la arquitectura]]
# [[Historia de la filosofía]]
# [[Historia de México]]
# [[Historia de Venezuela]]
# [[Historia del Partido Comunista Paraguayo (1928-1990)]]
# [[Historia digital del Arte]]
# [[Impactos ambientales]]
# [[Informática Educacional]]
# [[Ingeniería de aguas residuales]]
# [[Ingeniería de fabricación]]
# [[Ingeniería del conocimiento]]
# [[Inglés]]
# [[Inmersión en Python]]
# [[Internet para novatos]]
# [[Introducción a Linux]]
# [[Introducción a Patrones de Diseño en C++ con Qt4]]
# [[Italiano]]
# [[Jahshaka]]
# [[Japonés]]
# [[Juegos populares]]
# [[Kdenlive]]
# [[Latín]]
# [[Lenguaje XHTML]]
# [[Libro Abierto de Circo]]
# [[Manga]]
# [[Manual básico de medicina natural]]
# [[Manual de Ajedrez]]
# [[Manual de Ajuste por Inflación Fiscal]]
# [[Manual de Go]]
# [[Manual de Ingeniería Informática]]
# [[Manual de Iuris Explorer]]
# [[Manual de la bicicleta]]
# [[Manual de LaTeX]]
# [[Manual de uso wiki]]
# [[Manual del estudiante de Ingeniería en Sistemas de UTN]]
# [[Manual del mate y la yerba mate]]
# [[Manual wiki]]
# [[Mapundungun]]
# [[Matemáticas Bachillerato LOGSE]]
# [[Matemáticas elementales]]
# [[Matemáticas]]
# [[Medicina Veterinaria]]
# [[Mejores Practicas para Redes de Datos]]
# [[Mensajería Instantánea Jabber]]
# [[Microcontroladores]]
# [[Montañismo]]
# [[MUELA]]
# [[Multiterminal]]
# [[Náhuatl]]
# [[Napolitano]]
# [[Netiquette]]
# [[Nórdico Antiguo]]
# [[Normativa oficial del idioma gallego]]
# [[Noruego (bokmål)]]
# [[Noruego]]
# [[Notas sobre Sistemas Operativos]]
# [[Objetos y diseños para el aprendizaje]]
# [[Odontotutor]]
# [[OpenOffice.org]]
# [[OpenVPN]]
# [[Origami]]
# [[Patología de la edificación]]
# [[Pensamiento castanediano]]
# [[Petróleo]]
# [[Pisología Social de la Comunicación]]
# [[Portugués]]
# [[Problemario de Señales y Sistemas]]
# [[Programación en Ada]]
# [[Programación en C]]
# [[Programación en C++]]
# [[Programación en Java]]
# [[Programación en Pascal]]
# [[Programación en Perl]]
# [[Programación en PHP]]
# [[Programación en VHDL]]
# [[Programación]]
# [[Programas de desarrollo social]]
# [[Psicología Social de la Comunicación]]
# [[Publicidad Subliminal]]
# [[Quenya]]
# [[Quiché]]
# [[Química]]
# [[Redes informáticas]]
# [[Routers]]
# [[Seguridad informática]]
# [[Sistemas operativos]]
# [[Slot]]
# [[Sueño lúcido]]
# [[Surinam en Imágenes]]
# [[Tablas estadísticas]]
# [[Técnicas básicas de la fotografía]]
# [[Tecnologías para el Desarrollo Rural]]
# [[Temario Oposición Profesor FP Informática]]
# [[Teoría de conjuntos]]
# [[Teoría de la música y armonía]]
# [[Toki pona]]
# [[Transporte de información y redes]]
# [[Trigonometría]]
# [[Turco]]
# [[Tutorial de bots]]
# [[Using Tina POS+]]
# [[Web 2.0]]
# [[Wikichicos]]
# [[XUL]]
# [[Zend Framework]]
== Estadísticas anteriores ==
Para ver las estadísticas anteriores, por favor vaya al [[Wikilibros:Estadísticas/Archivo|Archivo]]
k9bj26ucrtrmasi9uskesq0whqc9esm
Programación en C/Introducción
0
8490
431388
341416
2026-08-16T22:35:58Z
Antimundo
74354
Categorizar usando AutoCat
431388
wikitext
text/x-wiki
<noinclude>
{{Navegar|anterior=
|siguiente=Historia de C
|reducido=Si}}
</noinclude>
== Objetivos ==
El objetivo principal de este Wikilibro es que cualquier persona sin conocimientos previos de programación pueda ser capaz de programar en el [[w:Lenguaje de programación C|'''lenguaje C''']].
Una vez logrado el dominio del lenguaje, es probable que los lectores se interesen por otros temas más complejos que superen a los temas básicos. También les será más o menos sencillo aprender cualquier otro lenguaje de [[w:Programación estructurada|programación estructurada]].
Sin embargo, este no es un libro que apunte únicamente a programadores principiantes. También puede resultar de interés para quienes ya tengan experiencia en el área de programación. En esta introducción hay dos secciones en las que se explica para los dos grupos principales de lectores qué camino seguir para comenzar a programar en el lenguaje C o bien perfeccionar conocimientos.
El lenguaje C es tan usado porque es un lenguaje de programación que emplea pocas instrucciones en lenguaje máquina para traducir elementos del código. Esto reduce los tiempos de ejecución de los programas.
==Nota sobre la exactitud==
Muchas de las cosas expresadas en este wikilibro, especialmente en los primeros capítulos, no son completamente exactas, aunque son buenas aproximaciones. Los detalles más exactos irán apareciendo posteriormente, una vez que los materiales anteriores hayan sido correctamente asimilados por el lector. En general, dadas dos definiciones o datos contradictorios en este wikilibro, debe considerarse siempre como más exacto al segundo, habiendo aparecido el primero como una introducción más general al tema.
<!-- ¿Tiene sentido esto? ¿No sería mejor *no* poner notas contradictorias? -->
== Estándar utilizado ==
El lenguaje C fue creado en los años setenta, y a lo largo de su historia ha pasado por muchas modificaciones, tanto con respecto a la sintaxis como con respecto al código incluido dentro de la biblioteca estándar. Es por ello que se fueron desarrollando estándares, para que todos sepan con qué versión del lenguaje se está trabajando.
Los distintos estándares del lenguaje C han sido: el C de Kernighan y Ritchie, un estándar no-oficial que surgió luego de la publicación de su libro en 1978; el C89 o C90, el primer estándar oficial, posterior a la publicación de los estándares ANSI en 1989 e ISO en 1990; y el C99, publicado en 1999.
En este libro se utilizará el estándar C99, si bien por cuestiones de estilo y compatibilidad muchas veces se utilizará código compatible con el estándar C89.
==Para los principiantes==
Para quien no haya programado antes, es recomendable seguir el orden del libro. Los temas están especialmente organizados de manera incremental o acumulativa. Tal vez, lo que se te va a hacer más útil en el camino del aprendizaje es la constancia; sé terco, no trastabilles, no te rindas, tal vez tu pregunta sea ¿cuántas veces tengo que intentar?, las veces necesarias para lograr tu objetivo, sería la respuesta.
Claro que el principal enemigo de nosotros los humanos es el tiempo y por eso en caso de que de verdad estés trancado en algo busca ayuda de alguien que sepa "más que tú". ¿Que no tienes a nadie a tu alrededor con esa característica? Tal vez no buscaste bien y tal vez quieras usar la red de redes. Utiliza los buscadores, pregunta en IRC, en foros de programación, en listas de correo.
==Para los más avanzados==
El lanzamiento queda libre por supuesto, solo tú sabes lo que necesitas. Las reglas del juego son las mismas de siempre: primero saber lo que se quiere o necesita y atacar por ahí.
En este caso, te será útil acceder a los contenidos a partir del índice, eligiendo sólo aquellos que te sean necesarios.
==Requisitos==
Se presupone que los lectores tienen conocimientos elementales de informática a nivel de usuario, y son capaces de instalar un compilador del lenguaje C en sus sistema. Los detalles sobre la instalación se verán en la sección Herramientas.
Con respecto al Hardware, sólo será necesario contar con una PC con sistema operativo, donde sea posible instalar un compilador, y en lo posible un entorno de desarrollo. Cuanto mejor sea la computadora, más rápido será el proceso de compilación y ejecución de los programas. Sin embargo, cualquier PC sirve para aprender con los ejemplos de este libro.
Para quienes no tengan conocimientos básicos de programación, puede ser una buena idea comenzar leyendo los primeros capítulos del Wikilibro [[Fundamentos de programación]], ya que algunos temas explicados en ese libro se asumen ya conocidos.
Finalmente, un requisito imprescindible en todo programador es tener sentido común. Muchas veces se pueden adoptar mejores o peores soluciones ante los diversos problemas, y la decisión de cuál elegir pasa por la aplicación del sentido común.
== Herramientas ==
{{:Programación en C/Herramientas}}
<noinclude>
{{Navegar|
|siguiente=Historia de C
|reducido=Si}}
</noinclude>
{{AutoCat}}
ph53inyto0rn4aly183zo2ov1a00zny
Tutorial de uso de CVS
0
8900
431498
385210
2026-08-17T09:46:43Z
Antimundo
74354
Categorizar usando estantes
431498
wikitext
text/x-wiki
==Resumen==
Breve tutorial introductorio al uso de CVS, con especial énfasis en el uso de la parte cliente de CVS. Se añaden algunas referencias a interfaces adicionales al cliente tradicional, así como enlaces a tutoriales más amplios y detallados. La parte servidora de CVS se trata también con una cierta profundidad.
== Autores ==
La mayoría del texto de este documento fue escrito por [[wikidata:Q87475754|Ismael Olea]] e Ignacio Arenaza, y publicado en 2002 bajo licencia GFDL [http://es.tldp.org/Presentaciones/200211hispalinux/iarenaza/cvs-como.pdf]. Las mejoras y correcciones posteriores son obra de la comunidad de Wikilibros y se pueden consultar en el historial de cada página.
== Contenido ==
* [[Tutorial de uso de CVS/Introducción|Introducción]]
* [[Tutorial de uso de CVS/Configuración|Configuración]]
* [[Tutorial de uso de CVS/Uso de CVS|Uso de CVS]]
* [[Tutorial de uso de CVS/Configurar servidor|Cómo configurar servidor e incorporar nuevos módulos al repositorio]]
* [[Tutorial de uso de CVS/Apéndices|Apéndices]]
* También puedes ver la [[Tutorial de uso de CVS/Versión para imprimir|Versión para imprimir]]
{{Estantes|Programación informática}}
k2j8c60tgli6estgas19ou5rsrilvjo
431504
431498
2026-08-17T09:48:21Z
Antimundo
74354
Usar noinclude
431504
wikitext
text/x-wiki
==Resumen==
Breve tutorial introductorio al uso de CVS, con especial énfasis en el uso de la parte cliente de CVS. Se añaden algunas referencias a interfaces adicionales al cliente tradicional, así como enlaces a tutoriales más amplios y detallados. La parte servidora de CVS se trata también con una cierta profundidad.
== Autores ==
La mayoría del texto de este documento fue escrito por [[wikidata:Q87475754|Ismael Olea]] e Ignacio Arenaza, y publicado en 2002 bajo licencia GFDL [http://es.tldp.org/Presentaciones/200211hispalinux/iarenaza/cvs-como.pdf]. Las mejoras y correcciones posteriores son obra de la comunidad de Wikilibros y se pueden consultar en el historial de cada página.
== Contenido ==
* [[Tutorial de uso de CVS/Introducción|Introducción]]
* [[Tutorial de uso de CVS/Configuración|Configuración]]
* [[Tutorial de uso de CVS/Uso de CVS|Uso de CVS]]
* [[Tutorial de uso de CVS/Configurar servidor|Cómo configurar servidor e incorporar nuevos módulos al repositorio]]
* [[Tutorial de uso de CVS/Apéndices|Apéndices]]
* También puedes ver la [[Tutorial de uso de CVS/Versión para imprimir|Versión para imprimir]]
<noinclude>
{{Estantes|Programación informática}}
</noinclude>
g0c45k5462jv3bcz1xxlja649o7lpl8
Técnicas básicas de la fotografía
0
9330
431327
427715
2026-08-16T16:54:31Z
Antimundo
74354
Arreglos menores de sintaxis
431327
wikitext
text/x-wiki
Este libro tiene como objetivo (este objetivo puede cambiar en cualquier momento) servir de guía para aquel que quiera adentrarse en la práctica fotográfica. Recomendamos que aquel que lea este libro complemente la lectura con ejercicios con los que pueda constatar, cuestionar y comprender la información que aquí se expone.
[[Archivo:Portada_fotografia.jpg|derecha|sinmarco]]
*[[Técnicas básicas de la fotografía/Introducción|Capítulo 1: Introducción]]
;Primera aproximación a la fotografía
*[[Técnicas básicas de la fotografía/Reconociendo tu cámara|Capítulo 2: Reconociendo tu cámara]]
*[[Técnicas básicas de la fotografía/El uso de la cámara|Capítulo 3: El uso de la cámara]]
*[[Técnicas básicas de la fotografía/Guía práctica|Capítulo 4: Guía práctica para tomar una fotografía]]
;Información útil para el fotógrafo en formación
*[[Técnicas básicas de la fotografía/Recursos creativos|Capítulo 6: Trucos y recursos creativos para explotar en la fotografía]]
*[[Técnicas básicas de la fotografía/Nitidez|Capítulo 7: Consejos para incrementar la nitidez]]
;Técnicas avanzadas de la fotografía
*[[Técnicas básicas de la fotografía/Exposición|Capítulo 8: Exposición]]
*[[Técnicas básicas de la fotografía/Iluminación|Capítulo 9: Iluminación]]
*[[Técnicas básicas de la fotografía/Composición|Capítulo 10: Composición]]
;Glosario
*[[Técnicas básicas de la fotografía/Glosario|Capítulo 11: Glosario]]
[[Categoría:Técnicas básicas de la fotografía| ]]
[[bg:Фотография]]
[[en:Basic Photography]]
[[fr:Photographie]]
[[it:Fotografia]]
[[no:Fotografi]]
[[pl:Fotografia/Okładka]]
[[th:การถ่ายภาพ]]
[[tr:Fotoğrafçılık]]
e200h0wafsnswjy2rxo5o5zvq47b2nq
Wikilibros:Proyecto organizar por temas
4
11601
431373
427382
2026-08-16T18:34:04Z
Antimundo
74354
Añadir imagen
431373
wikitext
text/x-wiki
__NOTOC__
{{Nav/Proyecto|imagen=Gnome-colors-applications-office.svg}}
== Objetivos ==
* Hacer que todos los libros estén en la categoría correcta.
* Plantear el [http://es.wikibooks.org/w/index.php?title=Especial%3ACategoryTree&target=principal&mode=categories&dotree=Cargar árbol de categorías]
== Todas las categorías ==
[http://es.wikibooks.org/wiki/Especial:Categories Todas las categorías]
== Organizando Libros por temas ==
=== Matemáticas ===
* {{Libro pag|Álgebra universitaria}}
* {{Libro pag|Teoría intuitiva de conjuntos}}
* {{Libro pag|Cálculo en una variable}}
* {{Libro pag|Álgebra Lineal}}
* {{Libro pag|Precálculo}}
* {{Libro pag|Matemáticas}}
* {{Libro pag|Matemáticas Bachillerato LOGSE}}
=== Química ===
* {{Libro pag|Formulación inorgánica}}
* {{Libro pag|Ingeniería de aguas residuales|Ingeniería sostenible del agua}}
* {{Libro pag|Química}}
* {{Libro pag|Química Orgánica}}
* {{Libro pag|Química para niños}}
* {{Libro pag|Espectroscopía}}
=== Telemática ===
* {{Libro pag|Tecnologías de Internet}}
* {{Libro pag|Transporte de información y redes}}
* {{Libro pag|Mensajería Instantánea Jabber}}
* {{Libro pag|Internet para novatos}}
* {{Libro pag|Redes informáticas}}
=== Física ===
* {{Libro pag|Física}}
* {{Libro pag|Introduccion a la Fisica Teorica}}
* {{Libro pag|Teoría de la Relatividad para torpes}}
* {{Libro pag|Curso de Relatividad General}}
=== Biología ===
* {{Libro pag|Apicultura fácil}}
* {{Libro pag|Biología celular}}
* {{Libro pag|Bioquímica}}
* {{Libro pag|Proteómica}}
== Arquitectura y Urbanismo ==
* {{Libro pag|Historia de la arquitectura|Apuntes de Historia de la Arquitectura (UAA)}}
* {{Libro pag|La catedral de Sevilla}}
* {{Libro pag|Patología de la edificación}}
* {{Libro pag|Sistematización del Diseño Arquitectónico de la UAA}}
* {{Libro pag|Materiales de Construcción (ETSAM)}}
== Artes ==
* {{Libro pag|Historia digital del Arte}}
* {{Libro pag|Catálogo de obras de Erminio Blotta}}
* {{Libro pag|Técnicas básicas de la fotografía}}
* {{Libro pag|Teoría de la Música y Armonía}}
* {{Libro pag|La Improvisación}}
* {{Libro pag|Teatro e Interpretación (traducción del Wikilibro inglés)|Teatro e Interpretación}}
* {{Libro pag|Dibujo}}
== Ciencias de la Educación ==
* {{Libro pag|Aprendizaje colaborativo}}
* {{Libro pag|Aprendizaje combinado}}
* {{Libro pag|Perspectivas actuales sobre Psicopedagogía}}
* {{Libro pag|Cuestiones sobre adaptación social: Desarrollo y aprendizaje}}
* {{Libro pag|Personalidad y educación}}
* {{Libro pag|Pensamiento e interacción en los procesos de enseñanza-aprendizaje}}
== Ciencias Sociales y Humanidades ==
=== Comunicación ===
* {{Libro pag|Oratoria}}
=== Derecho ===
* {{Libro pag|Español llano para abogados}}
* {{Libro pag|Derecho romano}}
=== Desarrollo Social ===
* {{Libro pag|Programas de desarrollo social}}
=== Economía ===
* {{Libro pag|Petróleo}}
* {{Libro pag|Comercio y negocios electrónicos}}
=== Finanzas ===
...
=== Empresa ===
* {{Libro pag|Contabilidad Financiera}}
=== Filosofía ===
* {{Libro pag|Historia de la filosofía}}
* {{Libro pag|Manual de Filosofía}}
* {{Libro pag|Aprende Lógica}}
=== Historia ===
;Países
* {{Libro pag|Historia de Colombia|Colombia}}
* {{Libro pag|Historia de España|España}}
* {{Libro pag|Historia contemporánea de España}}
* {{Libro pag|Historia de los Estados Unidos de América|Estados Unidos de América}}
* {{Libro pag|Historia de México|México}}
* {{Libro pag|Historia de Venezuela|Venezuela}}
* {{Libro pag|Historia de Europa}}
* {{Libro pag|Chile y Latinoamérica en el siglo XX}}
* {{Libro pag|España al comenzar el siglo XXI}}
=== Religión ===
* {{Libro pag|El Cristianismo}}
* {{Libro pag|Héroes de Nuestro Tiempo}}
=== Psicología ===
* {{Libro pag|Introduccion a la Psicología}}
* {{Libro pag|Psicología del Desarrollo}}
* {{Libro pag|Psicología Social de la Comunicación}}
* {{Libro pag|Fractalidades en Investigación Crítica}}
* {{Libro pag|Psicología Social: La exclusión social}}
* {{Libro pag|Psicología Política: Imaginarios sociales de la violencia política}}
* {{Libro pag|Psicología Política: El civismo como estrategia de legitimación de las nuevas políticas securitarias europeas}}
* {{Libro pag|Aprendiendo Psicología}}
* {{Libro pag|Seducción}}
==== Psicoanálisis ====
* {{Libro pag|Diccionario de Psicoanálisis}}
=== Sociedad del Conocimiento ===
* {{Libro pag|Sociedad del Conocimiento y Grupos Humanos en Red}}
* {{Libro pag|Cibercultura}}
* {{Libro pag|Explicatum, explicandum}}
=== Micro-sociología ===
* {{Libro pag|Análisis de Redes Sociales}}
== Ciencias Experimentales ==
=== Astronomía y Astrofísica ===
* {{Libro pag|Astronomía}}
=== Ciencias de la tierra ===
* {{Libro pag|Impactos ambientales}}
* {{Libro pag|Petróleo}}
== Ciencias de la Salud ==
=== Medicina ===
* {{Libro pag|Documentación en línea de OsiriX}}
* {{Libro pag|MUELA| Manual de urgencias y emergencias libre y abierto}}
* {{Libro pag|Enfermedades metabólicas producidas por enzimas defectuosas}}
* {{Libro pag|Acciones puntuales simplificadas para enfrentar la epidemia de cesáreas en la obstetricia moderna}}
* {{Libro pag|Manual de adiestramiento quirúrgico}}
== Construcción ==
* {{Libro pag|Aprender a leer planos}}
* {{Libro pag|Patología de la edificación}}
== Gastronomía ==
* {{Libro pag|Artes culinarias}}
* {{Libro pag|Manual del mate y la yerba mate}}
* {{Libro pag|Gastronomía colombiana}}
* {{Libro pag|Gastronomía del Perú}}
== Ingeniería y Tecnología ==
=== Ingeniería Civil ===
* {{Libro pag|Hidrosistemas}}
=== Electricidad/Electrónica ===
* {{Libro pag|Normas y trucos en cables de red}}
* {{Libro pag|Introducción a Señales, Sistemas y Control}}
* {{Libro pag|Problemario de Señales y Sistemas}}
* {{Libro pag|Diseño de circuitos digitales y tecnología de computadores}}
* {{Libro pag|Electrónica}}
* {{Libro pag|Electrónica de Comunicaciones}}
* {{Libro pag|VHDL}}
* {{Libro pag|Electricidad}}
* {{Libro pag|Teoría de los Circuitos II}}
=== Ingeniería mecánica ===
* {{Libro pag|Ciencia de los Materiales I. Aeronautica}}
* {{Libro pag|Diseño del automóvil}}
=== Ingeniería química ===
* {{Libro pag|Operaciones Básicas}}
=== Ingeniería de Minas ===
* {{Libro pag|Intellimine}}
=== Informática/Ciencia de Computadores ===
;Generales
* {{Libro pag|Manual de Ingeniería Informática}}
* {{Libro pag|Informática Educacional}}
* {{Libro pag|El software libre en la educación}}
* {{Libro pag|Diccionario europeo de la informática}}
* {{Libro pag|El verdadero maestro web}}
;Sistemas operativos
* {{Libro pag|Sistemas operativos}}
* {{Libro pag|Introducción a Linux}}
* {{Libro pag|Introducción a Sistemas Operativos y al Kernel 2.6 de Linux}}
* {{Libro pag|Hacks para sistemas operativos Unix-like}}
* {{Libro pag|Sistemas de ficheros}}
;Guías de usuario
* {{Libro pag|Blender 3D: novato a profesional|Blender 3D}}
* {{Libro pag|Minimódulo de ofimática|Ofimática}}
* {{Libro pag|OpenOffice.org}}
;Diseño web y lenguajes de marcado
* {{Libro pag|Crear una página web}}
* {{Libro pag|Lenguaje HTML}}
* {{Libro pag|Lenguaje XHTML}}
* {{Libro pag|Hojas de estilo CSS}}
* {{Libro pag|Manual de LaTeX}}
* {{Libro pag|Lenguaje XML}}
;Redes de Datos
* {{Libro pag|Mejores Practicas para Redes de Datos}}
;Multimedia
* {{Libro pag|Audio y vídeo digital}}
;Cultura
* {{Libro pag|Ensayar el software libre}}
* {{Libro pag|Hacks para un estilo de vida digital}}
* {{Libro pag|Cultura hacker}}
;Seguridad
* {{Libro pag|Introducción a la Criptografía}}
* {{Libro pag|Usando Windows sin volverte loco}}
* {{Libro pag|Seguridad informática}}
;Inteligencia artificial
* {{Libro pag|Ingeniería del conocimiento}}
;Usos de Internet
* {{Libro pag|Objetos y diseños para el aprendizaje}}
==== Programación ====
;Generales
* {{Libro pag|Fundamentos de programación}}
* {{Libro pag|Creación de videojuegos}}
* {{Libro pag|Manual de programación de OS/2}}
;Estructuras de datos
* {{Libro pag|Estructuras de datos dinámicas}}
;Lenguajes de propósito general
* {{Libro pag|Programación en lenguaje ensamblador}}
* {{Libro pag|Programación en Ada|Ada}}
* {{Libro pag|Programación en C|C}}
* {{Libro pag|Programación en C++|C++}}
* {{Libro pag|C sharp NET|C<nowiki>#</nowiki> .NET}}
* {{Libro pag|Programación en Java|Java}}
* {{Libro pag|Programación en Pascal|Pascal}}
* {{Libro pag|Aprendiendo a programar con Free Pascal I}}
* {{libro pag|Wikichicos/Pascal para niños}}
* {{Libro pag|Programación en Perl|Perl}}
* {{Libro pag|Inmersión en Python|Python}}
;Otros lenguajes
* {{Libro pag|Manual de ASP|ASP}}
* {{Libro pag|Programemos en AspectJ|AspectJ}}
* {{Libro pag|Programación en JavaScript|Javascript}}
* {{Libro pag|Programación en PHP|PHP}}
* {{Libro pag|Programación en LISP|LISP}}
* {{libro pag|Programación con Qt4|Qt 4}}
* {{Libro pag|XUL}}
;Gestión de bases de datos
* {{Libro pag|MySQL|Bases de datos con MySQL}}
;Herramientas de desarrollo
* {{Libro pag|Tutorial de uso de CVS}}
* {{Libro pag|Programación de Aplicaciones GNU}}
== Lingüística ==
* {{Libro pag|Cómo aprender lenguas}}
* {{Libro pag|Génesis y evolución del corrido mexicano}}
* {{Libro pag|Literatura}}
== Miscelánea ==
* {{Libro pag|Acuarios de arrecife}}
* {{Libro pag|Atlas.ti}}
* {{Libro pag|Como nos llegó la Biblia}}
* {{Libro pag|Crear un MUD}}
* {{Libro pag|Manual de heráldica|Heráldica}}
* {{Libro pag|La Hermenéutica Bíblica}}
* {{Libro pag|Manual wiki}}
* {{Libro pag|Marketing}}
* {{Libro pag|Seminarios}}
* {{Libro pag|Sueño lúcido}}
* {{Libro pag|Tecnologías para el Desarrollo Rural}}
* {{Libro pag|Trabajo Colaborativo}}
* {{Libro pag|Tutorial de bots}}
* {{Libro pag|Manual de vexilología|Vexilología}}
* {{Libro pag|Técnicas Estadísticas para las Ciencias de la Documentación}}
* {{Libro pag|Fundamentos básicos de la estructura energética del hombre}}
== Deporte ==
* {{Libro pag|Apuntes de Natación}}
== Ocio ==
* {{Libro pag|Administración de tiempo}}
* {{Libro pag|Bricolaje}}
* {{Libro pag|Baile: Salsa: Rueda de Casino}}
* {{Libro pag|Escultismo para muchachos}}
* {{Libro pag|Excursionismo}}
* {{Libro pag|Glosopoesia}}
* {{Libro pag|Manual de Ajedrez}}
* {{Libro pag|Montañismo}}
* {{Libro pag|Manual de Go}}
* {{Libro pag|Manual del dj}}
== [[Wikichicos]] ==
* {{Libro pag|Wikichicos/Sistema Solar}}
* {{Libro pag|Wikichicos/Grandes felinos}}
* {{Libro pag|Wikichicos/América del Sur}}
* {{Libro pag|Wikichicos/Sistemas de comunicación}}
* {{Libro pag|Wikichicos/La Tierra}}
[[Categoría:Wikilibros:Proyectos|Organizar por temas]]
bq9ba8v0yz2idssxxgsevrihw7c3vs6
431439
431373
2026-08-17T08:49:34Z
Antimundo
74354
Llevo tiempo trabajando en categorizar todos los libros de este listado, por lo que ahora esta información resulta una duplicidad además muy desactualizada y desordenada de la información que ya está ordenada en sus respectivas categorías
431439
wikitext
text/x-wiki
__NOTOC__
{{Nav/Proyecto|imagen=Gnome-colors-applications-office.svg}}
== Objetivos ==
* Hacer que todos los libros estén en la categoría correcta.
* Plantear el [http://es.wikibooks.org/w/index.php?title=Especial%3ACategoryTree&target=principal&mode=categories&dotree=Cargar árbol de categorías]
== Libros organizados por temas ==
* [[:Categoría:Estantes]]: Actual sistema de catalogación del libros.
* [[:Categoría:Libros]]: Antiguo sistema de catalogación de libros, en proceso de migrarse al nuevo sistema de estantes.
[http://es.wikibooks.org/wiki/Especial:Categories Listado de todas las categorías en Wikilibros]
[[Categoría:Wikilibros:Proyectos|Organizar por temas]]
f7dx1tuz3xgx5i6fnq12j9e490qgyhg
Tutorial de uso de CVS/Apéndices
0
13026
431499
332043
2026-08-17T09:46:57Z
Antimundo
74354
Categorizar usando AutoCat
431499
wikitext
text/x-wiki
==Bibliografía==
* La página del propio CVS es http://www.nongnu.org/cvs/
* La documentación oficial de CVS se instala como un fichero info en sistemas GNU/Linux.
* En http://cvsbook.red-bean.com/ está disponible un libro (en inglés) documentando CVS.
==Interfaces gráficas de usuario para CVS==
Existen varias interfaces gráficas para CVS, en mayor o menor estado de desarrollo. Todas ellas se pueden encontrar en http://freshmeat.net
*[http://www.tortoisecvs.org Tortoise]: Interfaz y cliente de CVS para MS Windows, integrado en el explorador de archivos. Muy completo y sencillo de usar.
*[http://cvsgui.sourceforge.net cvsgui]: Una interfaz multiplataforma para CVS.
*[http://www.twobarleycorns.net/tkcvs.html tkcvs]: Interfaz gráfica para CVS escrita en Tcl/Tk muy establecida y estable.
*[http://cervisia.sourceforge.net/ cervisia]: Interfaz gráfica para KDE.
*[http://www.lincvs.org/ lincvs]: Interfaz gráfica multiplataforma que usa la biblioteca grafica Qt.
*[http://eccvs.sourceforge.net/index.html eccvs]: Interfaz gráfica fácil de usar diseñada para Gnome.
*PCL-CVS: Es una extensión de (X)Emacs que permite manipular ficheros gestionados con CVS de forma automática y transparente, disponible como parte de XEmacs.
==Extensiones y otros recursos==
* [http://www.viewvc.org/ viewcvs]: Es un interfaz web para CVS (sólo lectura).
* [http://www.freebsd.org/projects/cvsweb.html CVSweb]: Otro interfaz web para CVS, desarrollado por los autores de FreeBSD.
* [http://sandweb.sourceforge.net sandweb]: Otro interfaz web para CVS, con opciones de administración.
* [http://www.red-bean.com/cvs2cl/ cvs2cl.pl]: que es una herramienta escrita en Perl, para crear ficheros Changelog al estilo GNU. Puede encontrarse en
{{AutoCat}}
rjae3r753t6ascoeqb8d3f2dadf1i2k
Tutorial de uso de CVS/Configurar servidor
0
13027
431501
332042
2026-08-17T09:47:17Z
Antimundo
74354
Categorizar usando AutoCat
431501
wikitext
text/x-wiki
==Configuración del servidor==
Para configurar un servidor CVS con acceso remoto hay básicamente tres formas:
* rsh/ssh: Esta primera opción implica tener una cuenta equivalente en el servidor CVS y no hace falta tocar ni inetd.conf ni ejecutar el servicio pserver. La seguridad de esta solución es nula a menos que se use ssh como sustituto de rsh.
* pserver: La segunda opción usa una cuenta genérica (la misma para todo el mundo o varias diferentes si se desean, pero no son cuentas con acceso local al servidor), necesita activar pserver desde inetd.conf (o xinetd.conf, si se usa este último). La seguridad es superior al método precedente en caso de usar rsh pero inferior al uso de ssh. La gran ventaja de este método es que los usuarios de CVS no necesitan ningún tipo de acceso local al servidor.
* Kerberos: Kerberos queda fuera de juego a mi modesto entender, ya que la infraestructura necesaria para usar este método de autenticación simplemente no tiene sentido para uso de CVS fuera de un mismo dominio administrativo (sin contar la complejidad de instalación y operación de un dominio Kerberos).
En la práctica, buena parte de los servidores CVS públicos usan la opción de pserver, al no ser necesario dar de alta cuentas de sistema a los usuarios en el servidor. Si el acceso va a ser mucho mas restringido (un pequeño grupo estable y de confianza), la opción de usar ssh es claramente preferible.
Si optamos por el método pserver, deberemos añadir una línea como la siguiente en el fichero inetd.conf:
cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/cvs -b /usr/bin -f --allow-root=/var/lib/cvs pserver
El valor /var/lib/cvs corresponde al directorio donde ubicaremos el repositorio en el servidor CVS y que denotaremos de ahora en adelante por la variable de entorno $CVSROOT.
Hay que asegurse también, en caso de estar usando TCP Wrappers (como es el caso del ejemplo) de que permitimos el acceso al servicio CVS (en el fichero /etc/hosts.allow con una línea como la siguiente. De lo contrario se van a rechazar las conexiones.
cvs: ALL
== Clases de usuarios y tipo de acceso permitido. ==
El segundo punto a tener en cuenta es quién tiene acceso a los repositorios CVS y qué tipo de operaciones se pueden realizar. Basicamente, una vez creado el repositorio, se suelen realizar dos grandes grupos de operaciones:
* Adición/actualización de ficheros del repositorio (implica acceso en modo escritura). Aqui van los commit, add, remove, ...
* Actualizaciones en el cliente/creación de diferencias. Esto sólo implica acceso en modo lectura. Aqui van los checkout, update, diff, ...
El acceso en modo escritura al repositorio sólo se debe otorgar a las personas estrictamente necesarias, ya que en teoría el acceso al sistema se abre potencialmente bastante.
== Creacion inicial del repositorio ==
A continuación se muestran los pasos a realizar para la creación inicial del repositorio CVS.
* Configurar /etc/inetd.conf para que lance el servidor pserver como se ha comentado arriba, en caso de usar el método de acceso pserver.
* Definir una cuenta administrativa local para CVS (en el ejemplo se llamará cvsadm) que será quien administre CVS. Esta cuenta será la propietaria de los ficheros de control del repositorio y quien pueda crear nuevos módulos en el mismo. Aprovecharemos para crear un grupo llamado cvs para gestionar más cómodamente los permisos del repositorio y sus módulos. El usuario cvsadm deberá ser parte del grupo cvs. Sin embargo esta cuenta no tienen porque tener acceso local al sistema en caso de usar el método de acceso pserver.
* Crear el repositorio en local en el servidor (en $CVSROOT), ejecutando las ordenes (si queremos colocar el repositorio en /var/lib/cvs):
export CVSROOT=/var/lib/cvs
mkdir -p $CVSROOT
cvs init
El repositorio conviene crearlo como root y tratarlo, desde el punto de vista de los permisos, como si fuera el directorio /etc. Todos sus ancestros sólo deberian ser escribibles por root. El propio $CVSROOT debería ser escribible por el administrador del servidor CVS (cvsadm, como hemos indicado más arriba). NADIE MAS debería tener permisos de escritura en dicho directorio.
Esto se hace asignando su propiedad al usuario cvsadm y haciendo al grupo cvs el grupo de $CVSROOT. Además, sería conveniente que $CVSROOT tuviera activado el bit SGID, para que los subdirectorios y ficheros que se creen debajo hereden el grupo principal del fichero o directorio (e indirectamente, por el ajuste del valor de umask que hace el propio CVS en modo pserver, el permiso de escritura para el grupo cvs y que tenga así control sobre todo lo que se introduzca allí). En resumen, $CVSROOT debería tener los permisos:
drwxr-s--- 10 cvsadm cvs 1024 Oct 2 12:31 $CVSROOT
* El usuario cvsadm será el propietario de los ficheros que haya en $CVSROOT/CVSROOT. El único fichero que es necesario que tenga permisos de escritura para los usuarios de CVS es $CVSROOT/CVSROOT/history. El resto, deben tener sólo permiso de lectura. Esto es:
$CVSROOT/CVSROOT: drwxr-x--- 2 cvsadm cvs 1024 Oct 2 12:52 CVSROOT
$CVSROOT/CVSROOT/history: -rw-rw---- 1 cvsadm cvs 9609 Oct 2 13:01 history
$CVSROOT/CVSROOT/commitlog: -rw-rw---- 1 cvsadm cvs 9609 Oct 2 13:01 commitlog (*)
$CVSROOT/CVSROOT/log.pl: -r-xr-x--- 1 cvsadm cvs 9609 Oct 2 13:01 log.pl (*)
$CVSROOT/CVSROOT/*: -r--r----- 1 cvsadm cvs 9609 Oct 2 13:01 (el resto de ficheros)
(*) Esto sólo es necesario si se va a usar la caracteristica loginfo con el script log.pl o similares.
* Incorporar al grupo cvs los diferentes usuarios locales que van a representar a los usuarios remotos de pserver. En concreto, en mi sistema, existen cvsadm, cvsuser y anoncvs, que representan respectivamente al administrador del servidor CVS, a los usuarios CVS con permiso de escritura en el repositorio (previa autenticación) y a los usuarios con acceso sólo lectura en modo anónimo. La idea de este grupo (como se ha comentado arriba) es poder asignar los permisos locales a los ficheros de forma que tanto el administrador como los usuarios tengan acceso a ellos.
* Si se va a usar pserver, es muy importante que los usuarios que tengan que ver con CVS (cvsadm, anoncvs y cvsuser) no puedan tener acceso local al servidor (esto es, poner una contraseña no válida, un shell no válido, etc.)
* Los módulos iniciales para cada proyecto (manual, como, programa, etc.) los debe crear el administrador del servidor CVS. Luego los puede usar cualquiera. Así garantizamos que los permisos son los adecuados, y que todo esta «controlado y en orden».
* Para funcionalidades adicionales (envio de mensaje de corre cada vez que se hace un commit, actualización de un log de commit en el repositorio, publicacion en el web del estado del repositorio, etc.) el propio administrador del servidor CVS se puede encargar de todo. Todo lo necesario esta en la documentación oficial de CVS.
Todo lo anterior (especialmente el tema de permisos, usuarios necesarios, etc.) son conclusiones mías después de leer la documentacion de CVS y su FAQ. No está indicado en ningún sitio que se deba hacer exactamente así, ya que sólo se dan consejos muy generales y bastante dispersos por toda la documentación. Con esto quiero decir que habría que hacer un análisis un poco más profundo sobre el posible impacto de seguridad.
== Alta de usuarios ==
=== Para el método de acceso ssh ===
En este caso, los usuarios de CVS son directamente usuarios del sistema. Por tanto, el administrador del sistema donde resida el servidor CVS debe dar de alta los usuarios normales y habilitar los permisos adecuados en el repositorio (y sus diferentes ficheros) para que puedan llevar a cabo el tipo de acceso deseado.
=== Para el método de acceso pserver ===
En este caso, tenemos que usar los ficheros $CVSROOT/CVSROOT/passwd , $CVSROOT/CVSROOT/readers y $CVSROOT/CVSROOT/writers . El primero de ellos sirve para indicar qué usuarios remotos tienen acceso al repositorio y el segundo y tercero indican qué usuarios de entre los anteriores tiene acceso en modo sólo lectura y cuáles en modo lectura/escritura, respectivamente.
El formato del primero de ellos es similar al de los ficheros de contraseñas de Apache y de hecho se puede crear y manipular con la herramienta htpasswd. Decimos similar porque no es exactamente igual, al disponer de un tercer campo opcional que nosotros si usaremos. Veamos un ejemplo:
cvsadm:8BQYT0o1J7FI6:cvsadm
anoncvs:
hermes-team:8Ba2dFouJkxI6:cvsuser
lucasiano:gA7sdFouJk9X6:cvsuser
En el ejemplo anterior tenemos cuatro usuarios remotos, pero en realidad sólo tres usuarios locales. Los usuarios «remotos» son cvsadm, anoncvs, hermes-team y lucasiano. Estos son los nombres de usuario que se usarán durante el proceso de autenticación.
Sin embargo, una vez superada la autenticación correctamente (el segundo campo del fichero es la contraseña cifrada con el método crypt estándar; si no existe, como en el caso del usuario anoncvs, valdrá cualquier contraseña), se usarán los usuarios que se indican en el tercer campo para el acceso local a los ficheros del repositorio. Esto es, el usuario remoto lucasiano en realidad será el usuario local cvsuser en el servidor y por tanto tendrá acceso a los ficheros y directorios a los que pueda acceder dicho usuario. En caso de no existir este tercer valor, el nombre de usuario remoto y el local serán el mismo.
Esta funcionalidad es muy interesante, ya que nos permite crear únicamente una cuenta de usuario local en el servidor por cada tipo de acceso diferente necesario, y agregar después cuantas cuentas remotas queramos y mapearlas al usuario local correspondiente. Como el fichero donde se realiza el mapeo es $CVSROOT/ROOT/passwd y este fichero está disponible a través del propio CVS, el administrador del servidor CVS no necesita permisos de administrador global de la máquina donde este ubicado el repositorio para dar de alta nuevos usuarios de CVS. Nótese que en este caso, el fichero con las contraseñas viaja sin cifrar por la red, con lo cual se recomienda usar el método de acceso ssh para este tipo de operaciones).
Para crear nuevos usuarios CVS podemos usar la orden htpasswd de Apache:
export CVSROOT=:ext:cvsadm@cvs.servidor.org:/var/lib/cvs
export CVS_RSH=/usr/bin/ssh
cd directorio-temporal-de-trabajo
cvs checkout CVSROOT
cd CVSROOT
htpasswd passwd usuario-nuevo (nota 1)
New password: no-se-ve-mientras-se-escribe
Re-type new password: no-se-ve-mientras-se-escribe
vi passwd (nota 2)
cvs add passwd (notas 1 y 3)
cvs commit
* nota 1: Si fuese el primer usuario del repositorio, el fichero passwd no existirá, y por tanto será necesario usar la opción -c de la orden htpasswd. De igual modo, habrá que indicar a CVS que existe un nuevo fichero llamado passwd para que lo tenga en cuenta y lo añada al repositorio al hacer el commit.
* nota 2: Si se desea la funcionalidad de mapear el usuario remoto a un usuario local concreto, se puede editar el fichero a mano y añadir el tercer campo, separándolo del segundo por ':'.
* nota 3: Para que esto funcione es necesario haber incluido el nombre del fichero passwd en el fichero $CVSROOT/checkoutlist previamente. (no se aconseja por motivos de seguridad a menos que el acceso administrativo a CVS se realice por medio de ssh, como se ha comentado más arriba y se ha hecho en el ejemplo mostrado).
Hemos mencionado más arriba los ficheros $CVSROOT/CVSROOT/writers y $CVSROOT/CVSROOT/readers. El proposito de ambos es poder delimitar aún más el tipo de acceso permitido a los usuarios remotos. Si un nombre de usuario aparece en el fichero $CVSROOT/CVSROOT/writers este usuario tendrá acceso a las operaciones que impliquen modificaciones al repositorio. Este fichero contiene simplemente el nombre de los usuarios «remotos», uno por línea, que tienen este tipo de acceso:
cvsadm
hermes-team
lucasiano
Si por el contrario aparece en el fichero $CVSROOT/CVSROOT/readers, sólo tendrá acceso en modo lectura y no podrá hacer ningún cambio en el repositorio. El formato es idéntico al fichero anterior.
En caso de que aparezca en ambos ficheros, obtiene acceso de sólo lectura. En caso de que no existan ninguno de los dos ficheros, el usuario obtiene acceso de escritura, así que asegúrese de crearlos durante la configuración inicial del repositorio (no vienen creados de serie).
Por último, hay que tener muy presente que el control de acceso a los módulos se hace en base a los permisos de los directorios y ficheros del repositorio. Por tanto, si se quieren módulos con usuarios completamente independientes, habrá que extender el esquema usuarios/grupos locales aquí presentado y jugar con los permisos. Esto supone una cierta complicacion para el administrador tanto del sistema como del repositorio CVS.
{{AutoCat}}
gx4v0cle85qqzj7sjpgzm7ilq9zvwcv
Tutorial de uso de CVS/Uso de CVS
0
13028
431503
332041
2026-08-17T09:47:44Z
Antimundo
74354
Categorizar usando AutoCat
431503
wikitext
text/x-wiki
==Modo de uso==
A continuación se propone una sencilla metodología de trabajo con CVS para evitar acciones redundantes. Piense por ejemplo en la eliminación de erratas o errores en documentos o en código fuente.
Antes de cada sesión de trabajo es conveniente hacer '''cvs update -Pd''' para asegurarnos de que disponemos de las últimas modificaciones registradas en el repositorio.
Justo al acabar cada sesión de trabajo es conveniente hacer '''cvs commit''' (se puede abreviar en cvs ci) para que todas nuestras modificaciones se registren en el repositorio.
==Añadir nuevos módulos al repositorio==
Para añadir nuevos modulos al repositorio se usa la orden '''cvs import''', que le indica a CVS que debe crear una copia en el repositorio del conjunto de ficheros del directorio actual.
Por ello, para importar un nuevo módulo al repositorio debemos situarnos primero en el directorio raíz del módulo donde están los ficheros del mismo y ejecutar la orden:
<<configuración de las variables de entorno de CVS>>
cd directorio-donde-se-encuentran-los-ficheros
cvs import nombre-módulo etiqueta-vendedor etiqueta-versión
Donde:
*nombre-módulo: es el nombre que le queremos dar al nuevo módulo.
*etiqueta-vendedor: es el nombre que usa CVS para etiquetar la rama que crea con la importación. Puede ser una cadena cualquiera de letras, números y subrayados.
*etiqueta-versión: es el nombre que usa CVS para etiquetar la versión concreta que se crea con esta importación. Puede ser una cadena cualquiera de letras, números y subrayados.
==Descargar un módulo por primera vez==
Para crear una copia de trabajo local del módulo CVS deseado debemos usar la orden '''cvs checkout''' (abreviable como cvs co):
<<configuración de las variables de entorno de CVS>>
cd padre-del-directorio-donde-se-alojará-el-módulo
cvs checkout nombre-del-módulo
Esto creará una jerarquía de directorios donde se almacenará la copia local de trabajo el módulo. Este paso sólo hay que hacerlo una vez por cada módulo.
A partir de este momento no es necesario configurar las variables de entorno porque CVS sabe a qué repositorio pertenece el módulo con sólo examinar los subdirectorios CVS. No se debe modificar nunca esos subdirectorios a mano. De lo contrario CVS perderá la pista de a que módulo pertenecen los ficheros, cuáles son las versiones de la copia local, etc.
==Actualizar nuestra copia local desde el repositorio==
Cuando queramos actualizar la copia local de trabajo del módulo con los cambios que hayan podido hacer otros usuarios y que están recogidos en el repositorio deberemos emplear la orden update:
cd directorio-del-módulo
cvs update -Pd
==Publicar nuestras modificaciones en el repositorio==
Se usa la orden commit (o su equivalente ci):
cd directorio-del-módulo
cvs commit
Tras lo cual el sistema mostrará la pantalla de un editor de textos (el que tengamos configurado como nuestro favorito en la variable de entorno EDITOR) para que introduzcamos el mensaje de log, una o dos líneas describiendo los cambios realizados en el módulo desde el último commit.
Algunas opciones que admite la orden ''commit'' son:
* -l : Solamente se aplica a los ficheros del directorio actual, no a sus subdirectorios.
* -R : Se aplica a los subdirectorios de forma recursiva (por defecto).
* -F fichero: Lee el mensaje de log de un fichero, en lugar de invocar al editor.
* -m "mensaje" : Permite indicar el mensaje de log (debe ir entre comillas), en lugar de invocar al editor.
* -f: Obliga a realizar un commit sobre un fichero incluso si no hemos hecho modificaciones al mismo.
==Resolución de conflictos==
Habrá ocasiones en las que tengamos que resolver los conflictos que surjan entre diferentes versiones de un módulo o fichero del mismo (recuerde que puede haber múltiples personas trabajando de forma concurrente sobre el mismo módulo) para que CVS continúe trabajando. Estos conflictos son normales cuando dos o más personas modifican a la vez exactamente la mismas partes de un fichero.
El procedimiento es simple:
1. CVS se quejará de un fichero al hacer un update o un commit.
2. Editamos ese fichero y encontraremos marcas del tipo:
[...]
>>>>>>>>>>>>>>
texto-opción-1
===========
texto-opción-2
<<<<<<<<<<<<<<
[...]
3. El texto entre marcas es el que produce el conflicto. Hay que elegir qué modificación nos gusta y borramos todo lo demás.
4. Si no quedan más conflictos volvemos a hacer el commit o update.
==Añadir ficheros al módulo==
No olvide que CVS controlará sólo los ficheros que se hayan descargado inicialmente desde el repositorio. Cualquier otro fichero o directorio de la jerarquía del módulo CVS será ignorado.
Si quiere añadir un nuevo fichero o directorio al módulo CVS hay que emplear la orden '''cvs add''':
cd directorio-del-módulo
cvs add fichero
Si el fichero es binario (por ejemplo, una imagen .jpg) hay que tener la precaución de añadir la opción -kb:
cd directorio-del-módulo
cvs add -kb fichero
¿Por qué?, se preguntará el lector más intrépido. Resulta que CVS usa varias variables (en realidad son de RCS, que funciona por debajo de CVS). Si el fichero es binario es posible que se dé una combinación de bytes que coincidan con alguna de estas variables. Si así fuera, RCS/CVS modificaría el contenido y lo corrompería. También se debe a que el sistema de cálculo de diferencias que usan estos sistemas no está diseñado para trabajar con información binaria. Si se obra equivocadamente es probable que corrompamos los datos.
También quiero señalar que si bien se pueden gestionar ficheros binarios, no se hará control de versiones de los mismos. Sólo se guardará la última versión (al no disponer CVS de la funcionalidad necesaria para calcular diferencias de ficheros binarios).
Tras la orden cvs add hay que hacer ejecutar de nuevo la orden '''cvs commit''' para incluir los nuevos ficheros en el repositorio CVS.
Algunas opciones que admite la orden ''add'' son:
* -ka : Trata los ficheros añadidos como texto ASCII (por defecto)
* -kb : Trata los ficheros añadidos como binarios.
* -m "mensaje" : Permite indicar el comentario inicial con que se añeden los ficheros (el mensaje debe ir entre comillas)
==Eliminar ficheros del módulo CVS==
Para eliminar un fichero del módulo CVS hay que emplear la orden '''cvs remove''' , despues de haber borrado el fichero de la copia local de trabajo (se puede usar cvs rm como abreviatura):
cd directorio-del-módulo
cvs remove fichero
Si queremos borrar físicamente los ficheros a la vez que los eliminamos del módulo deberemos usar:
cd directorio-del-módulo
cvs remove -f fichero
==Ver diferencias respecto al repositorio==
Podemos pedir a CVS que compare todos los ficheros de nuestra copia local del proyecto con los ficheros del repositorio mediante el comando '''cvs diff''':
cvs diff [opciones]
La orden anterior produce un listado de todos ficheros modificados y sus diferencias, en el mismo formato que emplean las herramientas ''diff'' y ''patch'' de unix.
En caso de que queramos ver únicamente las diferencias de un fichero, podemos indicarlo como argumento a la orden diff
cvs diff [opciones] nombre_fichero
Algunas opciones que admite la orden ''diff'' son:
* -B : Ignora diferencias consistentes en añadir o eliminar únicamente líneas en blanco.
* -b : Ignora diferencias en la cantidad de espacio en blanco. Esta opción trata todos los espacios en blanco como iguales.
* -c : Añade 3 líneas de contexto por encima y debajo de las líneas de diferencia. Util para emplear con el programa ''patch''.
* -C NUM : Como la anterior, pero emplea NUM líneas de contexto.
* -i : Ignora diferencias entre mayúsculas y minúsculas.
* -u : Muestra la salida en formato de diff unificado.
* -w : Ignora todas las diferencias de espacio en blanco. Básicamente, una versión más fuerte de -b.
{{AutoCat}}
thdt64q6rnuxhudgoj8vvv0difvhcpl
Tutorial de uso de CVS/Configuración
0
13029
431500
332040
2026-08-17T09:47:10Z
Antimundo
74354
Categorizar usando AutoCat
431500
wikitext
text/x-wiki
Puede usar varios ficheros de configuración que CVS reconocerá y usará. Entre otros, tenemos los siguientes:
* ~/.cvsignore : contiene los sufijos de los ficheros que no nos interesa que CVS controle. Por ejemplo podemos tener:
*.aux *.dvi *.ps *.log
si los ficheros de este módulo son principalmente documentos escritos en (La)TeX, ya que las extensiones mostradas arriba corresponden a los diferentes ficheros temporales creados durante el procesado del fichero fuente original para obtener el fichero listo para impresión.
Así evitamos contaminar el repositorio con ficheros que realmente no es necesario que estén controlados por CVS.
* ~/.cvsrc : contiene aquellos parámetros que CVS usará cada vez que se invoque una determinada orden, de forma automática. Por ejemplo:
update -Pd
diff -uw
cvs -z 3
Significa que queremos que cuando usemos la orden update, automáticamente se añadan los parámetros -Pd. Algo similar ocurre con la orden diff, a la que se le añadirán los parámetros -uw.
La última línea, cuya orden es cvs, es especial. Se trata de la forma en que se indican parámetros globales, que se aplican a todas las órdenes.
==La autenticación==
Al trabajar en remoto con CVS pueden elegirse varias alternativas de autenticación (es decir, de demostrar al servidor que somos quienes decimos ser).
Las más utilizadas son vía pserver y vía ssh (aunque existen otras dos formas al menos: vía rsh, totalmente desaconsejada por motivos de seguridad, y vía Kerberos, que no es habitual por necesitar toda la infraestructura de seguridad de Kerberos).
Deberá elegir alguna de estas técnicas en función de sus necesidades, en caso de que no vengan impuestas de forma externa (por ejemplo, porque el repositorio ya existe y el tipo de acceso ya ha sido elegido previamente).
===ssh (OpenSSH)===
Para que CVS use este modo de autenticación se deben usar estas variables de entorno:
export CVSROOT=:ext:USUARIO@cvs.dominio.org:/var/lib/cvs
export CVS_RSH=/usr/bin/ssh
Donde:
*USUARIO es el nombre de usuario que tiene acceso al repositorio.
*cvs.dominio.org es el nombre del servidor donde se aloja el repositorio.
*/var/lib/cvs es el directorio del servidor en el que está el repositorio
*/usr/bin/ssh es la ruta completa al ejecutable de ssh.
Tenga en cuenta que, usando esta técnica, tendrá que autenticarse (es decir, suministrar su contraseña) cada vez que ejecute alguna orden de CVS (a menos que use autenticación con clave pública RSA/DSA para ssh).
La ventaja de usar ssh como método de autenticación es que las comunicaciones con el servidor CVS van completamente cifradas, tanto la autenticación como los datos que intercambiemos con el servidor (cosa que no ocurre con el siguiente método).
El inconveniente de este método de autenticación es que deberá crear cuentas de usuarios locales en el servidor CVS con posibilidad de inicio de sesión (shell válido) para todos aquellos usuarios remotos que necesiten acceso al servidor, lo cual implica un acceso más amplio al equipo donde se ejecuta el servidor CVS que el mero acceso al servicio CVS.
===pserver===
Si no necesitamos que los datos que se intercambian con el servidor vayan cifrados y nos basta con una autenticación relativamente segura, podemos utilizar el método pserver. Las ventajas de este método sobre el anterior son:
* No requiere cuentas de usuario en el servidor CVS para cada uno de los clientes, ni permite ningún tipo de acceso adicional en el servidor.
* Es un esquema fácil de configurar y administrar de forma moderadamente segura (aunque es mucho menos segura que el método via ssh, desde el punto de vista de secuestro de contraseñas de usuario CVS, dado que no circulan cifradas).
Para poder usar este tipo de autenticación, deberá usar una variable de entorno similar a esta:
export CVSROOT=:pserver:USUARIO@cvs.dominio.org:/var/lib/cvs
Donde:
*USUARIO es el nombre de usuario que tiene acceso al repositorio.
*cvs.dominio.org es el nombre del servidor donde se aloja el repositorio.
*/var/lib/cvs es el directorio del servidor en el que está el repositorio
Si usa esta técnica, antes de poder trabajar con CVS deberá autenticarse ante el servidor. Eso se hace con la orden cvs login:
cvs login
CVS le pedirá la contraseña del usuario que haya configurado en la variable de entorno mencionada arriba. Si la contraseña es correcta, CVS guardará la información que necesita en el fichero ~/.cvspass y no tendrá que volver a autenticarse. En algunos casos es necesario crear el archivo ~/.cvspass antes de hacer el cvs login. En esos casos, cvs se niega a realizar la operación. En ese caso se debe emitir la orden touch ~/.cvspass .
Se debe tener presente que cvs login escribe tu contraseña en el archivo ~/.cvspass muy debilmente cifradas, es decir quien tenga acceso al archivo podrá en cosa de segundos descifrar tu contraseña. La tabla de conversión utilizada para cifrar, es entregada con la documentación de CVS.
Si por algún motivo quisiera «cerrar la sesión» CVS (esto es, dejar de trabajar con ese servidor CVS o con ese repositorio) bastará con hacer:
cvs logout
===Métodos combinados===
También es posible usar ambos métodos para el acceso al servidor (vía ssh y vía pserver) de forma conjunta, de forma que ciertos usuarios usen uno de los métodos y otros usuarios el otro. Esto es especialmente interesante para el acceso adminisitrativo al servidor CVS, dado que el método pserver no es lo suficientemente seguro en este caso.
{{AutoCat}}
lleknmk7ivuc77hd78sq7bummfrxk65
Tutorial de uso de CVS/Introducción
0
13030
431502
430685
2026-08-17T09:47:27Z
Antimundo
74354
Categorizar usando AutoCat
431502
wikitext
text/x-wiki
CVS es un sistema sistema de control de versiones útil para grupos de desarrolladores que trabajan cooperativamente usando alguna clase de red.
Para ser más concreto, CVS permite a un grupo de desarrolladores trabajar y modificar concurrentemente ficheros organizados en proyectos. Esto significa que dos o más personas pueden modificar un mismo fichero sin que se pierdan los trabajos de ninguna. Además, las operaciones más habituales son muy sencillas de usar. Es igual de útil para trabajar con código fuente de programas o con toda clase de documentos (como ficheros sgml/html/xml) y también puede almacenar ficheros binarios.
CVS utiliza una arquitectura cliente-servidor: un servidor guarda la(s) versión(es) actual(es) del proyecto y su historia, y los clientes conectan al servidor para sacar una copia completa del proyecto, trabajar en esa copia y entonces ingresar sus cambios. Típicamente, cliente y servidor conectan utilizando Internet, pero cliente y servidor pueden estar en la misma máquina si CVS tiene la tarea de mantener el registro de la historia de las versiones del programa de un proyecto solamente con desarrolladores locales. El servidor normalmente utiliza un sistema operativo similar a Unix, mientras que los clientes CVS pueden funcionar en cualquier de los sistemas operativos más difundidos.
Los clientes pueden también comparar diferentes versiones de ficheros, solicitar una historia completa de los cambios, o sacar una "foto" histórica del proyecto tal como se encontraba en una fecha determinada o en un número de revisión determinado. Muchos proyectos de código abierto permiten el "acceso de lectura anónimo", significando que los clientes pueden sacar y comparar versiones sin necesidad de teclear una contraseña; solamente el ingreso de cambios requiere una contraseña en estos escenarios.
Los clientes también pueden utilizar el comando de actualización con el fin de tener sus copias al día con la última versión que se encuentra en el servidor. Esto elimina la necesidad de repetir las descargas del proyecto completo.
== Terminología CVS ==
Para que no se pierda, un brevísimo vocabulario:
* Servidor CVS: Máquina que ejecuta CVS y actúa como almacén de ficheros.
* Repositorio: Jerarquía de directorios alojada en el servidor CVS que contiene diferentes módulos a disposición de los usuarios.
* Módulo: Árbol de directorios que forma parte del repositorio. Cuenta con un nombre identificador gracias al cual podremos trabajar con él de forma selectiva.
== Invocar a CVS ==
CVS es un programa que se invoca desde intérpretes de órdenes. Según cual sea su configuración (desde el punto de vista de las diferentes formas de autenticación, que veremos en un momento) lo podrá usar en procesos por lotes sin ningún problema.
La manera de invocar cvs es mediante la siguiente instrucción:
cvs ''orden'' [opciones]
Donde ''orden'' es una palabra reservada que le indica a cvs qué acción queremos realizar. Por ejemplo, podemos enviar los cambios que hayamos hecho en un directorio mediante '''cvs commit''', o ver las diferencias entre nuestra copia del proyecto y la versión del repositorio empleando '''cvs diff'''.
Un aspecto que debe tener en cuenta es que CVS tiene parámetros para cada una de sus órdenes. Para conocerlas tiene dos métodos: invocar CVS como '''cvs help''' o consultar la ayuda de su página del manual.
{{AutoCat}}
32pigcjbga3vddxca8wha5weq0ka22o
Programación en Ada/Cláusulas de representación
0
14437
431470
124149
2026-08-17T09:15:26Z
Antimundo
74354
Actualizar etiquetas source obsoletas
431470
wikitext
text/x-wiki
{{navegador|libro=Programación en Ada
|anterior=Interfaz con otros lenguajes
|siguiente=Diseño y programación de sistemas grandes
}}
Una de las características de Ada que facilitan la programación de bajo nivel es la posibilidad de definir a nivel de bit la representación de nuestros tipos. Es posible definir el tamaño y los valores internos de los tipos enumerados, por ejemplo:
<syntaxhighlight lang=ada>
type Estado_T is (Desconectado, Conectado, Desconocido);
-- Especificamos que el compilador ha de usar dos bits
for Estado_T'Size use 2;
-- Especificamos los valores que se usarán en memoria para cada valor
for Estado_T use (Desconectado => 0, Conectado => 1, Desconocido => 3);
</syntaxhighlight>
También es posible definir la estructura en memoria de los registros:
<syntaxhighlight lang=ada>
type Estructura_Estado_T is
record
Estado : Estado_T;
Numero_Reintentos : Integer;
end record;
for Estructura_Estado_T use
record
Estado at 0 range 0 .. 2; -- Primer y 2º bit de la 1ª palabra
Numero_Reintentos at 1 range 0 .. 31; -- 32 bits en la 2ª palabra
end record;
</syntaxhighlight>
Otra manera de controlar la representación es con el pragma Pack, que indica al compilador que use la mínima representación para los componentes de un array o de un registro, sin dejar espacios vacíos entre los elementos.
<syntaxhighlight lang=ada>
type Array_Bits_T is array (Positive range <>) of Boolean;
-- Indicamos que se use un único bit para el tipo Boolean (dos valores, un
-- bit es suficiente) y de este modo tenemos un array de bits sobre el
-- que podemos aplicar operadores booleanos:
pragma Pack (Array_Bits_T);
</syntaxhighlight>
== Manual de Referencia de Ada ==
*{{Ada/RM1|13|Representation Issues}}
[[Categoría:Programación en Ada|{{SUBPAGENAME}}]]
4dd88ekaeg6lreoz9jkdomagirfvosu
431472
431470
2026-08-17T09:16:21Z
Antimundo
74354
Categorizar usando AutoCat
431472
wikitext
text/x-wiki
{{navegador|libro=Programación en Ada
|anterior=Interfaz con otros lenguajes
|siguiente=Diseño y programación de sistemas grandes
}}
Una de las características de Ada que facilitan la programación de bajo nivel es la posibilidad de definir a nivel de bit la representación de nuestros tipos. Es posible definir el tamaño y los valores internos de los tipos enumerados, por ejemplo:
<syntaxhighlight lang=ada>
type Estado_T is (Desconectado, Conectado, Desconocido);
-- Especificamos que el compilador ha de usar dos bits
for Estado_T'Size use 2;
-- Especificamos los valores que se usarán en memoria para cada valor
for Estado_T use (Desconectado => 0, Conectado => 1, Desconocido => 3);
</syntaxhighlight>
También es posible definir la estructura en memoria de los registros:
<syntaxhighlight lang=ada>
type Estructura_Estado_T is
record
Estado : Estado_T;
Numero_Reintentos : Integer;
end record;
for Estructura_Estado_T use
record
Estado at 0 range 0 .. 2; -- Primer y 2º bit de la 1ª palabra
Numero_Reintentos at 1 range 0 .. 31; -- 32 bits en la 2ª palabra
end record;
</syntaxhighlight>
Otra manera de controlar la representación es con el pragma Pack, que indica al compilador que use la mínima representación para los componentes de un array o de un registro, sin dejar espacios vacíos entre los elementos.
<syntaxhighlight lang=ada>
type Array_Bits_T is array (Positive range <>) of Boolean;
-- Indicamos que se use un único bit para el tipo Boolean (dos valores, un
-- bit es suficiente) y de este modo tenemos un array de bits sobre el
-- que podemos aplicar operadores booleanos:
pragma Pack (Array_Bits_T);
</syntaxhighlight>
== Manual de Referencia de Ada ==
*{{Ada/RM1|13|Representation Issues}}
{{AutoCat}}
4guai92q7hrngsl0y0wu9tfd83szthb
Programación en Delphi
0
14891
431356
247362
2026-08-16T17:24:35Z
Antimundo
74354
Categorizar usando estantes
431356
wikitext
text/x-wiki
Bienvenidos al Wikilibro de Programación en Delphi
==Tabla de contenido==
#[[/Introducción|Introducción]]
#[[/Historia|Historia]]
#[[/Hola mundo|Programa Hola mundo]]
#[[/Tipos de Datos Fundamentales|Tipos de Datos Fundamentales]]
#[[/Operaciones de Entrada y Salida básica|Operaciones de Entrada y Salida]]
#[[/Variables|Declaración e Inicialización de Variables]]
#[[/Operadores: Precedencia y Asociatividad|Operadores: presencia y asociatividad]]
#[[/Estructuras de Decisión e Iteración|Estructuras de Decisión e Iteración]]
#[[/Metodos y Precedimientos| Declaración, Definición y uso de Métodos y Funciones]]
#[[/Programación Orientado a Objetos|Programación Orientada a Objetos]]
#[[/Manejo de Excepciones| Manejo de Excepciones]]
#[[/EBNF | Gramática en EBNF]]
#[[/Características específicas del Lenguaje|Características específicas del Lenguaje]]
#[[/Ejemplos|Ejemplos pequeños]]
{{Estantes|Lenguajes de programación}}
l69oi1n4trv8wfq60r8n7koi8l9rq84
431357
431356
2026-08-16T17:25:05Z
Antimundo
74354
Marcar con {{Referencias}}
431357
wikitext
text/x-wiki
{{Referencias}}
Bienvenidos al Wikilibro de Programación en Delphi
==Tabla de contenido==
#[[/Introducción|Introducción]]
#[[/Historia|Historia]]
#[[/Hola mundo|Programa Hola mundo]]
#[[/Tipos de Datos Fundamentales|Tipos de Datos Fundamentales]]
#[[/Operaciones de Entrada y Salida básica|Operaciones de Entrada y Salida]]
#[[/Variables|Declaración e Inicialización de Variables]]
#[[/Operadores: Precedencia y Asociatividad|Operadores: presencia y asociatividad]]
#[[/Estructuras de Decisión e Iteración|Estructuras de Decisión e Iteración]]
#[[/Metodos y Precedimientos| Declaración, Definición y uso de Métodos y Funciones]]
#[[/Programación Orientado a Objetos|Programación Orientada a Objetos]]
#[[/Manejo de Excepciones| Manejo de Excepciones]]
#[[/EBNF | Gramática en EBNF]]
#[[/Características específicas del Lenguaje|Características específicas del Lenguaje]]
#[[/Ejemplos|Ejemplos pequeños]]
{{Estantes|Lenguajes de programación}}
rej2iuoof5fn89qfclqr614qpv9jq7c
Programación en Pascal
0
15486
431336
430688
2026-08-16T17:07:14Z
Antimundo
74354
Retirar autoredirección
431336
wikitext
text/x-wiki
[[Archivo:Lazarus Logo.svg|derecha|sinmarco]]
[[:w:es:Lenguaje de programación Pascal|Pascal]], lenguaje claro, sencillo, completo, rápido, flexible y elegante. Aprende con nosotros los secretos de este lenguaje y empieza a usarlo para crear aplicaciones completas y robustas.
Este curso cubre desde la instalación del compilador, hasta la creación de aplicaciones gráficas complejas.
Para las prácticas, puede usarse tanto ''Delphi'' como ''Lazarus''. Recomendamos este último pues, además de ser el empleado en el curso, es [[:w:es:software libre|software libre]] y multiplataforma.
== Índice ==
{{aviso|Los temas específicos de Free Pascal / Lazarus se tratan en el wiki específico de Lazarus, con el fin de evitar repeticiones y trabajos dobles. Si se va usar Lazarus, recomendamos consultar esos enlaces como parte de este curso. Han sido colocados en el orden que creemos conveniente para el aprendizaje.}}
[[Archivo:Lazarus 2.0 unter Windows 10.png|miniaturadeimagen|300px|Captura de pantalla de Lazarus: el IDE de FreePascal]]
# [[/Introducción|Introducción]] [[Archivo:080.svg|25px]]
## [[/Historia|Evolución Histórica]] {{desarrollo|75%| 20 nov 2008 (UTC)}}
## [[/Porqué Pascal|Porqué Pascal (comparativa con otros lenguajes)]] {{desarrollo|75%| 20 nov 2008 (UTC)}}
# Conceptos básicos sobre programación
## [[/Antes de empezar|Antes de empezar]] {{desarrollo|50%|22:14 25 nov 2008 (UTC)}}
## [[/Nociones generales|Nociones generales]] {{desarrollo|50%|01:18 26 nov 2008 (UTC)}}
## [http://wiki.lazarus.freepascal.org/Installing_Lazarus/es Instalación de Free Pascal / Lazarus (externo)]
# Pascal Standard [[Archivo:050.svg|25px]]
## [[/Hola Mundo|El primer programa: ¡Hola mundo!]] {{desarrollo|75%| 20 nov 2008 (UTC)}}
## [[/Las variables|Las variables y los tipos enteros en Pascal]] {{desarrollo|75%|20:10 20 nov 2008 (UTC)}}
## [[/Los tipos básicos|Los tipos básicos]] {{desarrollo|25%|20:10 20 nov 2008 (UTC)}}
## [[/Tipos simples definidos por el usuario|Tipos simples definidos por el usuario]] {{desarrollo|25%|20:10 20 nov 2008 (UTC)}}
## [[/Constantes|Constantes]] {{desarrollo|25%|22:40 20 nov 2008 (UTC)}}
## [[/Control condicional|Control básico (condicional) de la ejecución]] {{desarrollo|25%|13:57 21 nov 2008 (UTC)}}
## [[/Control repetitivo|Control repetitivo (bucles) de la ejecución]] {{desarrollo|50%|18:49 22 nov 2008 (UTC)}}
## [[/Funciones y procedimientos|Funciones y procedimientos]] {{desarrollo|25%|00:06 24 nov 2008 (UTC)}}
## [[/Tipos avanzados|Tipos avanzados (records y variants)]] {{desarrollo|25%|00:06 24 nov 2008 (UTC)}}
## [[/Arrays|Arrays (cadenas)]] {{desarrollo|25%|22:02 25 nov 2008 (UTC)}}
## [[/Punteros|Punteros]] {{desarrollo|25%|22:02 25 nov 2008 (UTC)}}
## [[/Ficheros|Ficheros]] {{desarrollo|25%|22:02 25 nov 2008 (UTC)}}
## [[/Unidades|Unidades (librerías)]] {{desarrollo|25%|22:02 25 nov 2008 (UTC)}}
## [[/Ejemplo|Ejemplo en Pascal Standard: el juego de la serpiente.]] {{desarrollo|75%|00:06 24 nov 2008 (UTC)}}
# Estructuras dinamicas de datos [[Archivo:000.svg|25px]]
## [[/Listas|Listas]]
## [[/Pilas|Pilas]]
## [[/Colas|Colas]]
## [[/Grafos|Grafos]]
## [[/Árboles|Árboles]]
# Object Pascal [[Archivo:020.svg|25px]]
## [[/Los objetos y las clases|Los objetos y las clases]] {{desarrollo|100%| 06 May 2009 (UTC)}}
## [[/Visibilidad|Visibilidad]] {{desarrollo|75%|07 May 2009 (UTC)}}
## [[/Polimorfismo|Polimorfismo]]
## [[/Propiedades|Propiedades]]
## [[/Herencia e interfaces|Herencia e interfaces]]
## [[/Sobrecarga de operadores|Sobrecarga de operadores]]
# El compilador [[Archivo:000.svg|25px]]
## [[/Optimizaciones|Optimizaciones]]
## [[/Directivas|Directivas]]
## [[/Librerías standard|Un repaso de las librerías]]
## [[/Librerías externas|Librerías externas]]
# Las aplicaciones prácticas (específico Free Pascal/Lazarus)[[Archivo:090.svg|25px]]
## [http://wiki.lazarus.freepascal.org/Lazarus_Tutorial/es Crear un interface gráfico en Lazarus (externo)]
## [http://wiki.lazarus.freepascal.org/Developing_with_Graphics/es TBitmap y creación de nuevos controles (externo)]
## [http://wiki.lazarus.freepascal.org/Lazarus_Database_Tutorial/es Bases de datos y aplicaciones de gestión (externo)]
## [http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial/es Multithreading (multihilo) (externo)]
* [[Programación en Pascal/Texto completo|Todo el texto en una página]], ideal para imprimir.
* Huérfanos:
** [[/Object Pascal|Manual del lenguaje Object Pascal]]
** [[/VCL|La VCL (explicación más detallada)]]
** [[/Instalación|Instalación del compilador Free Pascal y el IDE Lazarus]]
== Enlaces externos ==
* [http://freepascal.org/ Free Pascal]: el compilador (en inglés).
* [http://www.lazarus.freepascal.org/ Lazarus]: el IDE (en inglés).
* [http://wiki.lazarus.freepascal.org/Lazarus_Documentation Lazarus documentation] Wiki oficial con documentación sobre Lazarus/Free Pascal (en inglés)
* [http://wiki.lazarus.freepascal.org/Lazarus_Documentation/es Documentación de Lazarus] Wiki oficial con documentación sobre Lazarus/Free Pascal (en español)
* [http://www.codegear.com/products/delphi/win32 Delphi 2009] (en inglés)
<noinclude>
{{Estantes|Lenguajes de programación}}
</noinclude>
[[de:GNU-Pascal in Beispielen]]
[[en:Pascal Programming]]
[[fr:Programmation Pascal]]
[[he:פסקל]]
[[it:Pascal]]
[[ko:파스칼 프로그래밍]]
[[nl:Programmeren in Pascal]]
[[pl:Object Pascal]]
[[pt:Pascal]]
[[uk:Pascal]]
fqldnxdltfhva1zskkcjy6epkes6fn8
Aprendiendo a programar con Free Pascal/Constantes
0
15991
431332
417096
2026-08-16T17:04:23Z
Antimundo
74354
Categorizar usando AutoCat
431332
wikitext
text/x-wiki
== Constantes ==
#Constantes definidas por el usuario
#Constantes definidas en el sistema
{{AutoCat}}
ia1z2pgfghqwof5k3gbmxgcnpyorvk6
431333
431332
2026-08-16T17:04:49Z
Antimundo
74354
Antimundo trasladó la página [[Aprendiendo a programar con Free Pascal I/Constantes]] a [[Aprendiendo a programar con Free Pascal/Constantes]]: Arreglar nombre
431332
wikitext
text/x-wiki
== Constantes ==
#Constantes definidas por el usuario
#Constantes definidas en el sistema
{{AutoCat}}
ia1z2pgfghqwof5k3gbmxgcnpyorvk6
Programación en C/Herramientas
0
17760
431389
339767
2026-08-16T22:36:18Z
Antimundo
74354
Categorizar usando AutoCat
431389
wikitext
text/x-wiki
<noinclude>
{{Navegar|siguiente=Historia de C
|anterior=Introducción
|reducido=1
}}
</noinclude>
Para programar tanto en C, como en C++, Java o cualquier otro lenguaje de programación, necesitamos contar con aplicaciones o herramientas que nos permitan poner en funcionamiento nuestro programa.
El lenguaje de programación C es compilado, así que en este caso necesitaremos un compilador, que será el encargado de transformar nuestro código fuente en código que la computadora pueda ejecutar.
Además, para facilitar la tarea de los programadores existen los denominados '''Entorno de desarrollo integrados (IDE)'''. En muchos casos, estos entornos incluyen un compilador, un depurador, y otras herramientas.
Las herramientas a instalar dependerán del sistema operativo utilizado. A continuación se listan algunas posibilidades para el sistema operativo Windows o GNU/Linux, no es imprescindible utilizar estas herramientas en particular, cualquier compilador puede servir.
<!-- Sería bueno contar con un enlace a qué significa que sea compilado, qué es un compilador y qué es un IDE. -->
== Windows ==
Uno de los entornos de desarrollo más conocidos entre los programadores de C sobre '''Windows''', tanto novatos como expertos, es el Bloodshed Dev-C++, que es un entorno libre multiplataforma. Tal entorno de desarrollo fue abandonado y retomado mejorándolo pasando a llamarse [http://wxdsgn.sourceforge.net/ WxDev-C++]. Otro entorno libre y gratuito es el [http://www.codeblocks.org/ Code::Blocks]. Ambos entornos pueden utilizarse tanto para C como para C++.
También hay otras alternativas privativas como los compiladores de Borland o de Microsoft (Microsoft Visual C++).
== GNU/Linux ==
En los sistemas '''GNU/Linux''', será necesario tener instaladas las herramientas <code>gcc</code> y <code>make</code> y la versión 6 de la [[:w:Glibc|glibc]] con su documentación, que son las que permitirán compilar los programas.
Para escribir y modificar el código, es posible utilizar cualquier editor de texto plano (en lo posible que cuente con resaltado de sintaxis), como son emacs, vim, kate, gedit o geany.
Sin embargo, para quienes son novatos en la programación, es recomendable utilizar un entorno de desarrollo como son el Anjuta DevStudio (para el entorno GNOME) o KDevelop (para el entorno KDE), ya que incluyen facilidades adicionales para la ejecución y solución de problemas.
Los programas mencionados se incluyen dentro de la instalación estándar de la mayoría de las distribuciones actuales de GNU/Linux, de modo que para instalarlos sólo será necesario seguir el procedimiento usual de instalación de aplicaciones para la distribución deseada.
<noinclude>
{{Navegar|siguiente=Historia de C
|anterior=Introducción
|reducido=1
}}
</noinclude>
{{AutoCat}}
4a1f6swalrypq8nevhqh3h7if2mbwtr
Wikilibros:Proyecto plantillas
4
17786
431369
430982
2026-08-16T18:12:41Z
Antimundo
74354
Añadir información de la plantilla de navegación
431369
wikitext
text/x-wiki
{{nav/Proyecto|plantillas}}
Los objetivos de este proyecto son:
# Organizar todas las plantillas, categorizándolas correctamente.
## Plantear el [http://es.wikibooks.org/w/index.php?title=Especial%3ACategoryTree&target=Wikilibros:Plantillas&mode=categories&dotree=Cargar árbol de categorías de '''Plantilla'''].
## Evitar plantillas en desuso y redundantes.
# Normalizar todas las plantillas.
## Establecer unas pautas generales de diseño.
## Añadir las indicaciones de uso con la plantilla {{ep|Documentación}}.
## Para plantillas de mantenimiento, seguir los consensos del [[Wikilibros:Proyecto mantenimiento|Proyecto mantenimiento]].
== Categorías de plantillas ==
{| border="2" cellpadding="4" cellspacing="0" style="margin: 0.5em 0.5em 0.5em 1em; padding: 0.5em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
! colspan=4 bgcolor="Silver" | [[:Categoría:Wikilibros:Plantillas|Plantillas]] !! bgcolor="Silver" | Estado
|-
| colspan=4 | [[:Categoría:Wikilibros:Plantillas por características|Plantillas por características]] || [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas complejas|Plantillas complejas]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas con funciones sintácticas|Plantillas con funciones sintácticas]]
| width=10% | [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas con imágenes|Plantillas con imágenes]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de normalización|Plantillas de normalización]]
| [[Imagen:Yes check.svg|10px]]
|-
| colspan=4 | [[:Categoría:Wikilibros:Plantillas por espacio de nombres|Plantillas por espacio de nombres]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de libros|Plantillas de libros]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de esperanto|Plantillas de esperanto]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de francés|Plantillas de francés]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de ayuda|Plantillas de ayuda]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de categorías|Plantillas de categorías]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de discusión|Plantillas de discusión]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Metaplantillas|Metaplantillas]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Indicaciones para el uso de plantillas|Indicaciones para el uso de plantillas]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de usuario|Plantillas de usuario]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas Babel|Plantillas Babel]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de wikilibristas|Plantillas de wikilibristas]]
| [[Imagen:Yes check.svg|10px]]
|-
| colspan=4 | [[:Categoría:Wikilibros:Plantillas por tema|Plantillas por tema]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de ciencias|Plantillas de ciencias]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de ciencias sociales|Plantillas de ciencias sociales]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de esperanto|Plantillas de esperanto]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de francés|Plantillas de francés]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de cultura|Plantillas de cultura]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de deportes|Plantillas de deportes]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de ingeniería|Plantillas de ingeniería]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de ocio|Plantillas de ocio]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de tableros|Plantillas de tableros]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de la portada|Plantillas de la portada]]
| [[Imagen:Yes check.svg|10px]]
|-
| colspan=4 | [[:Categoría:Wikilibros:Plantillas por uso|Plantillas por uso]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de avisos|Plantillas de avisos]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de bibliotecarios|Plantillas de aviso a bibliotecarios]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de aviso a lectores|Plantillas de aviso a lectores]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de aviso a usuarios|Plantillas de aviso a usuarios]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de enlace entre proyectos|Plantillas de enlace entre proyectos]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de referencias|Plantillas de referencias]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de licencias|Plantillas de licencias]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de mantenimiento|Plantillas de mantenimiento]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas indicadoras de nivel|Plantillas indicadoras de nivel]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de navegación|Plantillas de navegación]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de categorías|Plantillas de categorías]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas para citar libros|Plantillas para citar libros]]
| [[Imagen:Check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de organización interna|Plantillas de organización interna]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Indicaciones para el uso de plantillas|Indicaciones para el uso de plantillas]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de políticas oficiales|Plantillas de políticas oficiales]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de votación|Plantillas de votación]]
| [[Imagen:Yes check.svg|10px]]
|}
== Otras páginas ==
* [[:Categoría:Wikilibros:Plantillas|Todas las plantillas]]
* [[:Categoría:Wikilibros:Plantillas de bienvenida|Plantillas de bienvenida]]
* [[:Categoría:Wikilibros:Plantillas de mantenimiento|Plantillas de mantenimiento]]
* [[:Categoría:Wikilibros:Plantillas navegadoras|Plantillas navegadoras]]
* [[:Categoría:Wikilibros:Plantillas de avisos|Plantillas de avisos]]
* [[:Categoría:Wikilibros:Plantillas descriptivas|Plantillas descriptivas]]
* [[:Categoría:Wikilibros:Plantillas de enlace entre proyectos|Plantillas de enlace entre proyectos]]
* [[:Categoría:Wikilibros:Plantillas para mejorar las ediciones|Plantillas para mejorar las ediciones]]
* [[:Categoría:Wikilibros:Plantillas de usuario|Plantillas de usuario]]
* [[:Categoría:Wikilibros:Plantillas Babel|Plantillas Babel]]
* [[:Categoría:Wikilibros:Plantillas de proyectos|Plantillas de los proyectos de Wikilibros]]
=== Algunas páginas especiales relacionadas ===
* [[Especial:Uncategorizedtemplates|Plantillas sin categorizar]]
* [[Especial:Unusedtemplates|Plantillas sin uso]]
[[Categoría:Wikilibros:Proyectos|Plantillas]]
[[Categoría:Wikilibros:Plantillas| ]]
iutm0cnpp8ac1ffx55vg8c7j6rorcxe
431376
431369
2026-08-16T18:37:51Z
Antimundo
74354
Añadir imagen
431376
wikitext
text/x-wiki
{{nav/Proyecto|imagen=Template-info.svg}}
Los objetivos de este proyecto son:
# Organizar todas las plantillas, categorizándolas correctamente.
## Plantear el [http://es.wikibooks.org/w/index.php?title=Especial%3ACategoryTree&target=Wikilibros:Plantillas&mode=categories&dotree=Cargar árbol de categorías de '''Plantilla'''].
## Evitar plantillas en desuso y redundantes.
# Normalizar todas las plantillas.
## Establecer unas pautas generales de diseño.
## Añadir las indicaciones de uso con la plantilla {{ep|Documentación}}.
## Para plantillas de mantenimiento, seguir los consensos del [[Wikilibros:Proyecto mantenimiento|Proyecto mantenimiento]].
== Categorías de plantillas ==
{| border="2" cellpadding="4" cellspacing="0" style="margin: 0.5em 0.5em 0.5em 1em; padding: 0.5em; background: #f9f9f9; border: 1px #aaa solid; border-collapse: collapse; font-size: 95%;"
! colspan=4 bgcolor="Silver" | [[:Categoría:Wikilibros:Plantillas|Plantillas]] !! bgcolor="Silver" | Estado
|-
| colspan=4 | [[:Categoría:Wikilibros:Plantillas por características|Plantillas por características]] || [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas complejas|Plantillas complejas]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas con funciones sintácticas|Plantillas con funciones sintácticas]]
| width=10% | [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas con imágenes|Plantillas con imágenes]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de normalización|Plantillas de normalización]]
| [[Imagen:Yes check.svg|10px]]
|-
| colspan=4 | [[:Categoría:Wikilibros:Plantillas por espacio de nombres|Plantillas por espacio de nombres]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de libros|Plantillas de libros]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de esperanto|Plantillas de esperanto]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de francés|Plantillas de francés]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de ayuda|Plantillas de ayuda]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de categorías|Plantillas de categorías]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de discusión|Plantillas de discusión]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Metaplantillas|Metaplantillas]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Indicaciones para el uso de plantillas|Indicaciones para el uso de plantillas]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de usuario|Plantillas de usuario]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas Babel|Plantillas Babel]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de wikilibristas|Plantillas de wikilibristas]]
| [[Imagen:Yes check.svg|10px]]
|-
| colspan=4 | [[:Categoría:Wikilibros:Plantillas por tema|Plantillas por tema]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de ciencias|Plantillas de ciencias]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de ciencias sociales|Plantillas de ciencias sociales]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de esperanto|Plantillas de esperanto]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de francés|Plantillas de francés]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de cultura|Plantillas de cultura]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de deportes|Plantillas de deportes]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de ingeniería|Plantillas de ingeniería]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de ocio|Plantillas de ocio]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de tableros|Plantillas de tableros]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de la portada|Plantillas de la portada]]
| [[Imagen:Yes check.svg|10px]]
|-
| colspan=4 | [[:Categoría:Wikilibros:Plantillas por uso|Plantillas por uso]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de avisos|Plantillas de avisos]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de bibliotecarios|Plantillas de aviso a bibliotecarios]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de aviso a lectores|Plantillas de aviso a lectores]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de aviso a usuarios|Plantillas de aviso a usuarios]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de enlace entre proyectos|Plantillas de enlace entre proyectos]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de referencias|Plantillas de referencias]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de licencias|Plantillas de licencias]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de mantenimiento|Plantillas de mantenimiento]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas indicadoras de nivel|Plantillas indicadoras de nivel]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de navegación|Plantillas de navegación]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de categorías|Plantillas de categorías]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas para citar libros|Plantillas para citar libros]]
| [[Imagen:Check.svg|10px]]
|-
| width=10% | || width=80% colspan=3 | [[:Categoría:Wikilibros:Plantillas de organización interna|Plantillas de organización interna]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Indicaciones para el uso de plantillas|Indicaciones para el uso de plantillas]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de políticas oficiales|Plantillas de políticas oficiales]]
| [[Imagen:Yes check.svg|10px]]
|-
| width=20% colspan=2 | || width=70% colspan=2 | [[:Categoría:Wikilibros:Plantillas de votación|Plantillas de votación]]
| [[Imagen:Yes check.svg|10px]]
|}
== Otras páginas ==
* [[:Categoría:Wikilibros:Plantillas|Todas las plantillas]]
* [[:Categoría:Wikilibros:Plantillas de bienvenida|Plantillas de bienvenida]]
* [[:Categoría:Wikilibros:Plantillas de mantenimiento|Plantillas de mantenimiento]]
* [[:Categoría:Wikilibros:Plantillas navegadoras|Plantillas navegadoras]]
* [[:Categoría:Wikilibros:Plantillas de avisos|Plantillas de avisos]]
* [[:Categoría:Wikilibros:Plantillas descriptivas|Plantillas descriptivas]]
* [[:Categoría:Wikilibros:Plantillas de enlace entre proyectos|Plantillas de enlace entre proyectos]]
* [[:Categoría:Wikilibros:Plantillas para mejorar las ediciones|Plantillas para mejorar las ediciones]]
* [[:Categoría:Wikilibros:Plantillas de usuario|Plantillas de usuario]]
* [[:Categoría:Wikilibros:Plantillas Babel|Plantillas Babel]]
* [[:Categoría:Wikilibros:Plantillas de proyectos|Plantillas de los proyectos de Wikilibros]]
=== Algunas páginas especiales relacionadas ===
* [[Especial:Uncategorizedtemplates|Plantillas sin categorizar]]
* [[Especial:Unusedtemplates|Plantillas sin uso]]
[[Categoría:Wikilibros:Proyectos|Plantillas]]
[[Categoría:Wikilibros:Plantillas| ]]
49zuvxmp888o6q9ts6xducd6qelf2o2
431379
431376
2026-08-16T19:55:04Z
Antimundo
74354
Simplificar estilo de tabla y retirar categorías que no existen
431379
wikitext
text/x-wiki
{{nav/Proyecto|imagen=Template-info.svg}}
Los objetivos de este proyecto son:
# Organizar todas las plantillas, categorizándolas correctamente.
## Plantear el [http://es.wikibooks.org/w/index.php?title=Especial%3ACategoryTree&target=Wikilibros:Plantillas&mode=categories&dotree=Cargar árbol de categorías de '''Plantilla'''].
## Evitar plantillas en desuso y redundantes.
# Normalizar todas las plantillas.
## Establecer unas pautas generales de diseño.
## Añadir las indicaciones de uso con la plantilla {{ep|Documentación}}.
## Para plantillas de mantenimiento, seguir los consensos del [[Wikilibros:Proyecto mantenimiento|Proyecto mantenimiento]].
== Categorías de plantillas ==
{| class="wikitable"
! colspan="4" |[[:Categoría:Wikilibros:Plantillas|Plantillas]]
|-
| colspan="4" |[[:Categoría:Wikilibros:Plantillas por características|Plantillas por características]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas complejas|Plantillas complejas]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas con funciones sintácticas|Plantillas con funciones sintácticas]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas con imágenes|Plantillas con imágenes]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de normalización|Plantillas de normalización]]
|-
| colspan="4" |[[:Categoría:Wikilibros:Plantillas por espacio de nombres|Plantillas por espacio de nombres]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de libros|Plantillas de libros]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Plantillas de francés|Plantillas de francés]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de categorías|Plantillas de categorías]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de discusión|Plantillas de discusión]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Metaplantillas|Metaplantillas]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Indicaciones para el uso de plantillas|Indicaciones para el uso de plantillas]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de usuario|Plantillas de usuario]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Plantillas Babel|Plantillas Babel]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Plantillas de wikilibristas|Plantillas de wikilibristas]]
|-
| colspan="4" |[[:Categoría:Wikilibros:Plantillas por tema|Plantillas por tema]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de ciencias|Plantillas de ciencias]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de ciencias sociales|Plantillas de ciencias sociales]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Plantillas de francés|Plantillas de francés]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de ocio|Plantillas de ocio]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Plantillas de tableros|Plantillas de tableros]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de la portada|Plantillas de la portada]]
|-
| colspan="4" |[[:Categoría:Wikilibros:Plantillas por uso|Plantillas por uso]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de avisos|Plantillas de avisos]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Plantillas de aviso a usuarios|Plantillas de aviso a usuarios]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de enlace entre proyectos|Plantillas de enlace entre proyectos]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de referencias|Plantillas de referencias]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de mantenimiento|Plantillas de mantenimiento]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Plantillas indicadoras de nivel|Plantillas indicadoras de nivel]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de navegación|Plantillas de navegación]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Plantillas de categorías|Plantillas de categorías]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Plantillas para citar libros|Plantillas para citar libros]]
|-
| width="10%" |
| colspan="3" width="80%" |[[:Categoría:Wikilibros:Plantillas de organización interna|Plantillas de organización interna]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Indicaciones para el uso de plantillas|Indicaciones para el uso de plantillas]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Plantillas de políticas oficiales|Plantillas de políticas oficiales]]
|-
| colspan="2" width="20%" |
| colspan="2" width="70%" |[[:Categoría:Wikilibros:Plantillas de votación|Plantillas de votación]]
|}
== Otras páginas ==
* [[:Categoría:Wikilibros:Plantillas|Todas las plantillas]]
* [[:Categoría:Wikilibros:Plantillas de bienvenida|Plantillas de bienvenida]]
* [[:Categoría:Wikilibros:Plantillas de mantenimiento|Plantillas de mantenimiento]]
* [[:Categoría:Wikilibros:Plantillas de avisos|Plantillas de avisos]]
* [[:Categoría:Wikilibros:Plantillas de enlace entre proyectos|Plantillas de enlace entre proyectos]]
* [[:Categoría:Wikilibros:Plantillas de usuario|Plantillas de usuario]]
* [[:Categoría:Wikilibros:Plantillas Babel|Plantillas Babel]]
=== Algunas páginas especiales relacionadas ===
* [[Especial:Uncategorizedtemplates|Plantillas sin categorizar]]
* [[Especial:Unusedtemplates|Plantillas sin uso]]
[[Categoría:Wikilibros:Proyectos|Plantillas]]
[[Categoría:Wikilibros:Plantillas| ]]
s5ml0njxyxec8qsf8u2oo8dspewd5ly
Manual de Programación en Basic
0
18406
431359
426040
2026-08-16T17:28:11Z
Antimundo
74354
Categorizar usando estantes y arreglos menores de formato
431359
wikitext
text/x-wiki
{{Esbozo}}
El denominado BASIC(Beginers All Symbolic Instruction Code) es un leunguaje de programación dedicado principalmente para los iniciados en la programación. Dentro de este libro se manejarán los conceptos más básicos de este lenguaje de Alto Nivel.
== Introducción ==
Historia
Objetivo
Capacidades
=== Sentencias y funciones ===
Las sentencias en basic se identifican por que la sintaxis de la instrucción no requiere de parentesis y no es una estructura de control.
Ejemplos: list, save, load
Las funciones en basic se identifican por que la sintaxis requiere de paréntesis.
Ejemplos: pset, sound
Nota: screen puede utilizarse como sentencia y como función
=== Convenciones ===
Para mejorar la interpretación de los códigos de ejemplo utilizaremos la siguiente gama colores.
{| cellpadding=0 cellspacing=0 width=640 border=0 style="border-collapse: collapse;"
| bgcolor=#000000 width=120 | <font color=#00FF00 size=1 face='Lucida Console'>
A:>gwbasic
Ok.
LOAD prog01.bas
| width=40 |
| bgcolor=#000000 width=120 | <font color=#FF8800 size=1 face='Lucida Console'>
A:>qbasic
Archivo Edición
|width=40 |
| bgcolor=#000000 width=120 | <font color=#FFFFFF size=1 face='Lucida Console'>
A:>basica
A:>freebasic
Ok.
LOAD prog01.bas
|- |
|| <font size=2>Ejemplos de gwbasic.</font>
||
|| <font size=2>Ejemplos de QBasic.</font>
||
|| <font size=2>Ejemplos de cualquier versión.</font>
|}
== Versiones y sus ambientes de trabajo ==
{| cellpadding=0 cellspacing=0 width=200
| bgcolor=#010101 | <font color=#00FF00 size=1 face='Lucida Console'>A:>gwbasic<br>
Ok.<br>
LOAD prog01.bas
|-
| bgcolor=#010101 | <font color=#00FF00 size=1 face='Lucida Console'>Ok.</font>
|-
| bgcolor=#010101 | <font color=#00FF00 size=1 face='Lucida Console'>LIST</font>
|-
| bgcolor=#010101 | <font color=#00FF00 size=1 face='Lucida Console'>10 cls</font>
|-
| bgcolor=#010101 | <font color=#00FF00 size=1 face='Lucida Console'>20 print "hola"</font>
|-
| bgcolor=#010101 | <font color=#00FF00 size=1 face='Lucida Console'>Ok.</font>
|}
=== basic ===
10 print "este es una prueba"
=== basica ===
=== gwbasic ===
=== qbasic ===
Esta versión de basic posee un ambiente de trabajo mas amable, las subrutinas y funciones se presentan en pantallas separadas del codigo general...
{| cellpadding=0 cellspacing=0
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'> Archivo Edición Ver Búsqueda Ejecutar Depurar Opciones Ayuda</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>┌───────────────────────────────── Sin_Nombre ─────────────────────────────┤↑├─┐</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ↑</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ░</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ↓</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ ← ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ → │</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>├──────────────────────────────────────────────────────────────────────────────┤</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ │</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>│ │</font>
|-
| bgcolor=#010101 | <font color=#FF8800 size=1 face='Lucida Console'>└──────────────────────────────────────────────────────────────────────────────┘</font>
|}
=== freebasic ===
Versión moderna de Basic que intenta parecerse al gwbasic, con capacidad de compilar programas en DOS, Windows, Linux, con disponibilidad del codigo fuente (GNU) lo que permite extenderlo a cualquier otro sistema.
== Instrucciones basicas ==
[[Manual de Programación en Basic/Instrucciones básicas]]
save
list
load
run
== Variables y arreglos ==
[[Manual de Programación en Basic/Variables y arreglos]]
Numéricas
Alfanuméricas
Dim
Listas
Tablas
== Entrada y salida de datos ==
[[Manual de Programación en Basic/Entrada y salida de datos]]
print
input
tab
locate
== Estructuras de control ==
[[Manual de Programación en Basic/Estructuras de control]]
goto
if
for
sub
== Operaciones con archivos ==
[[Manual de Programación en Basic/Operaciones con archivos]]
Acceso secuencial
Acceso indexado
open
close
== Gráficos y animación ==
En esta sección exponemos las instrucciones útiles para la generación de imágenes y como animarlas.
[[Manual de Programación en Basic/Gráficos]]
screen
pset
line
draw
paint
get
put
bsave
bload
== Sonidos ==
La reprodución de sonidos en basic se realiza mediante la bocina interna del cpu.
[[Manual de programación en Basic/Sonidos]]
beep
sound
play
== Otras funciones ==
En esta sección se definen las sentencias y funciones que no aplican en ninguna de las enteriores.
[[Manual de programación en Basic/Otras funciones]]
random
{{Estantes|Lenguajes de programación}}
4tjvogvlb4l5dddbcffn4yveqiwl92w
Introducción a la Programación
0
18967
431497
417289
2026-08-17T09:40:24Z
Antimundo
74354
Categorizar usando estantes
431497
wikitext
text/x-wiki
{{fusionar|Fundamentos de programación/Introducción}}
== Introducción ==
Este libro está hecho para personas que no tienen nociones sobre programación, para orientarlas en el tema y encaminarlas a los conceptos básicos de la programación y al desarrollo de programas utilizando algunos lenguajes de programación.
== Programación ==
Se llama '''Programación''' a la implementación de un algoritmo en un determinado lenguaje de programación en una computadora, para realizar un programa.
'''Algoritmo''' es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema.
Un algoritmo tiene las siguientes características importantes:
- Debe ser definido,si se sigue las instrucciones dos veces se debe obtener el mismo resultado
- Debe ser preciso,debe indicar claramente los pasos y el orden en el que se debe ejecutar
- Debe tener un fin
- Debe ser simple,fácil de entender por cualquier persona
'''Programa''' (Software en inglés) es una secuencia de instrucciones que una computadora puede interpretar y ejecutar.
El proceso de creación de software es materia de la ingeniería del software, una de las ramas propias de la Ingeniería Informática.
Según Niklaus Wirth un programa está formado por algoritmos y estructura de datos.
Se han propuesto diversas técnicas de programación, cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas se pueden mencionar las programaciones lineal, estructurada, modular y orientada a objetos.
== Lenguajes de Programación ==
'''Lenguaje de programación''' es el idioma utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.
Hay muchos lenguajes de programación, pero para programar no es necesario conocer todos los lenguajes, es igual que cuando hablamos, podemos comunicarnos en español aunque no sepamos alemán. Aunque la palabra debería ser idioma ya que lenguaje realmente abarca todos los idiomas pero en computación equivocadamente se usa el término lenguaje cuando el término correcto es idiomas de programación.
En la actualidad los lenguajes de programación están escritos para ser comprensibles por el ser humano, a este código se le llama '''código fuente''', pero no es comprendido por la máquina ya que esta solo maneja el lenguaje ensamblador (en inglés assembler).
'''La compilación''' es el proceso de traducir un programa en código fuente a programa en '''código objeto''' (que usa el lenguaje binario), el programa encargado de compilar se llama '''compilador'''. La mayoría de software de programación trae su propio compilador.
=== Tipos de lenguajes de programación ===
lenguajes de programación de alto nivel y lenguajes de bajo nivel. Los lenguajes de alto nivel permiten que con pocas palabras se logre hacer lo mismo que se logra con un lenguaje de bajo nivel.
Ejemplos de lenguajes de alto nivel: C++,Java,Python
Ejemplos de lenguaje de bajo nivel: assembler
'''Por la forma como se ejecutan''' Hay lenguajes compilados e interpretados.
Los lenguajes compilados necesitan de un programa especial que lea el código fuente y cree un archivo binario ejecutable para una plataforma específica. Ejm: C++, Pascal.
Los lenguajes interpretados necesitan de un programa que traduzca en directo el código fuente escrito a instrucciones de la plataforma en la que se ejecutan. Ejm: Python, Visual Basic, Script.
Los primeros son más rápidos, mientras que los segundos son más lentos, esto debido a que al compilar un programa las ordenes son más entendibles para la computadora, mientras que al interpretarlo la máquina primero debe leer el código y convertir al paso las instrucciones a instrucciones de máquina entendibles para ella.
== Entorno de Desarrollo Integrado ==
'''Entorno de Desarrollo Integrado''' (en inglés Integrated Development Environment 'IDE'): Es un programa compuesto por un conjunto de herramientas para un programador. Estos IDE son programas que sirven para programar, ya sea en un lenguaje de programación o en varios lenguajes.
Los IDE que permiten crear programas en muchos lenguajes de programación permiten usar un solo programa para trabajar en varios lenguajes de programación, es decir no limitan al programador.
Ejemplos de IDES:
* Gambas (lenguaje derivado de BASIC),
* Eclipse (lenguaje Java),
* Kdevelop (varios lenguajes),
* Netbeans (varios lenguajes: java, php , C/C++),
* Visual Studio (varios lenguajes: C, C++, C#, Visual basic, ASP, Javascript)
* RAD Studio (Delphi, C++)
== Bibliografía ==
* http://es.wikipedia.org/wiki/Programación
* http://es.wikipedia.org/wiki/Programa
* http://es.wikipedia.org/wiki/Compilar
* http://es.wikipedia.org/wiki/Ambiente_integrado_de_desarrollo
* http://es.wikipedia.org/wiki/Lenguaje_de_programacion
== Enlaces Externos ==
[http://www.ubuntu-es.org/index.php?q=node/77017#comment-215853 Aprende Programación con Realbasic - Crea software multiplataforma (para Linux, mac y windows) desde Linux]
{{Estantes|Programación}}
88lg3pdxp5dy284pq1tatz6h5wpk63a
Wikilibros:Estadísticas/Archivo
4
19149
431490
428775
2026-08-17T09:29:28Z
Antimundo
74354
Añadir archivo de 2011 faltante
431490
wikitext
text/x-wiki
===30 de septiembre de 2007===
# [[Accidentes de Tránsito]]
# [[Acciones puntuales simplificadas para enfrentar la epidemia de cesáreas en la obstetricia moderna]]
# [[Acuarios de Arrecife]]
# [[Administración de tiempo]]
# [[Alemán]]
# [[Álgebra Lineal]]
# [[Álgebra universitaria]]
# [[Algoritmia]]
# [[Apicultura fácil]]
# [[Aprender a leer planos]]
# [[Aprendizaje colaborativo]]
# [[Aprendizaje combinado]]
# [[Artes culinarias]]
# [[Astronomía]]
# [[Atlas de la Diversidad Cultural]]
# [[Atlas.ti]]
# [[Biología celular]]
# [[Bioquímica]]
# [[Blender 3D]]
# [[C sharp NET]]
# [[Cardiomiopatías felinas]]
# [[Catalán]]
# [[Chino]]
# [[Cibercultura]]
# [[Como nos llegó la Biblia]]
# [[Contabilidad Financiera]]
# [[Creación de videojuegos]]
# [[Curso de Relatividad General]]
# [[Curso de napolitano]]
# [[Cálculo en una variable]]
# [[Derecho romano]]
# [[Diccionario de Psicoanálisis]]
# [[Documentación en línea de OsiriX]]
# [[El software libre en la educación]]
# [[Electricidad]]
# [[Electrónica]]
# [[Electrónica de Comunicaciones]]
# [[En persecución]]
# [[Enfermedades metabólicas producidas por enzimas defectuosas]]
# [[Ensayos]]
# [[Erminio Blotta: catálogo de obras]]
# [[Español]]
# [[Esperanto]]
# [[Estructuras de datos dinámicas]]
# [[Euskera]]
# [[Excursionismo]]
# [[Fractalidades en Investigación Crítica]]
# [[Farmaguia]]
# [[Formulación inorgánica]]
# [[Francés]]
# [[Freistoß]]
# [[Fundamentos de programación]]
# [[Física]]
# [[Gallego]]
# [[Gastronomía del Perú]]
# [[Génesis y evolución del corrido mexicano]]
# [[Hacks para sistemas operativos Unix-like]]
# [[Hidrosistemas]]
# [[Historia de América Latina]]
# [[Historia de Colombia]]
# [[Historia de El Salvador]]
# [[Historia de España]]
# [[Historia de España Contemporánea]]
# [[Historia de Europa]]
# [[Historia de México]]
# [[Historia de Venezuela]]
# [[Historia de la arquitectura]]
# [[Historia de la filosofía]]
# [[Historia digital del Arte]]
# [[Impactos ambientales]]
# [[Informática Educacional]]
# [[Ingeniería de aguas residuales]]
# [[Ingeniería del conocimiento]]
# [[Inglés]]
# [[Inmersión en Python]]
# [[Introducción a Linux]]
# [[Introducción a la Psicología]]
# [[Jahshaka]]
# [[Japonés]]
# [[La tesis de Church-Turing]]
# [[Latín]]
# [[Lenguaje XHTML]]
# [[Literatura]]
# [[MUELA]]
# [[Manual basico de medicina natural]]
# [[Manual de Ajedrez]]
# [[Manual de Ajuste por Inflación Fiscal]]
# [[Manual de Ingeniería Informática]]
# [[Manual de LaTeX]]
# [[Manual de edición wiki]]
# [[Manual de uso wiki]]
# [[Manual del estudiante de Ingeniería en Sistemas de UTN]]
# [[Manual del mate y la yerba mate]]
# [[Mapundungun]]
# [[Matemáticas]]
# [[Matemáticas Bachillerato LOGSE]]
# [[Mejores Practicas para Redes de Datos]]
# [[Mensajería Instantánea Jabber]]
# [[Montañismo]]
# [[Multiterminal]]
# [[Odontotutor]]
# [[OpenOffice.org]]
# [[OpenVPN]]
# [[Patología de la edificación]]
# [[Pensamiento castanediano]]
# [[Petróleo]]
# [[Psicología Social de la Comunicación]]
# [[Pokemon]]
# [[Problemario de Señales y Sistemas]]
# [[Programación]]
# [[Programación en Ada]]
# [[Programación en C]]
# [[Programación en C++]]
# [[Programación en Java]]
# [[Programación en PHP]]
# [[Programas de desarrollo social]]
# [[Psicología Social de la Comunicación]]
# [[Publicidad Subliminal]]
# [[Quenya]]
# [[Quiché]]
# [[Redes informáticas]]
# [[Sueño lúcido]]
# [[Tecnologías para el Desarrollo Rural]]
# [[Teoría de conjuntos]]
# [[Teoría de la música y armonía]]
# [[Transporte de información y redes]]
# [[Tutorial de bots]]
# [[Técnicas básicas de la fotografía]]
# [[Using Tina POS+]]
# [[VHDL]]
# [[Wikichicos]]
# [[Wikilibros Pokedex]]
# [[XUL]]
=== Julio 2006 ===
# [[Acuarios de Arrecife]]
# [[Administración de tiempo]]
# [[Alemán]]
# [[Algoritmia]]
# [[Apicultura fácil]]
# [[Aprendiendo Psicología]]
# [[Aprendizaje colaborativo]]
# [[Aprendizaje combinado]]
# [[Artes culinarias]]
# [[Biología celular]]
# [[Blender 3D]]
# [[C sharp NET]]
# [[Catalán]]
# [[Chino]]
# [[Cibercultura]]
# [[Como nos llegó la Biblia]]
# [[Creación de videojuegos]]
# [[Crear un MUD]]
# [[Curso de napolitano]]
# [[Cálculo en una variable]]
# [[Diccionario de Psicoanálisis]]
# [[Diseño del automóvil]]
# [[Documentación en línea de OsiriX]]
# [[El software libre en la educación]]
# [[Electrónica]]
# [[Electrónica de Comunicaciones]]
# [[Enfermedades metabólicas producidas por enzimas defectuosas]]
# [[Ensayos]]
# [[Erminio Blotta]]
# [[Español]]
# [[Esperanto]]
# [[Excursionismo]]
# [[FIC]]
# [[Farmaguia]]
# [[Formulación inorgánica]]
# [[Francés]]
# [[Fundamentos de programación]]
# [[Física]]
# [[Guerra del Pacífico]]
# [[Génesis y evolución del corrido mexicano]]
# [[Hacks para Unix-like]]
# [[Hacks para sistemas operativos Unix-like]]
# [[Historia de Colombia]]
# [[Historia digital del Arte]]
# [[Impactos ambientales]]
# [[Informática Educacional]]
# [[Inglés]]
# [[Inmersión en Python]]
# [[Introducción a Linux]]
# [[Introducción a Señales, Sistemas y Control]]
# [[Introducción a la Psicología]]
# [[Japonés]]
# [[La tesis de Church-Turing]]
# [[Latín]]
# [[Lenguaje XHTML]]
# [[Literatura]]
# [[MUELA]]
# [[Manual de Ajedrez]]
# [[Manual de Ingeniería Informática]]
# [[Manual de LaTeX]]
# [[Manual de edición wiki]]
# [[Manual de programación de OS]]
# [[Manual de uso wiki]]
# [[Manual del mate y la yerba mate]]
# [[Matemáticas Bachillerato LOGSE]]
# [[Mensajería Instantánea Jabber]]
# [[Montañismo]]
# [[Odontotutor]]
# [[Perspectivas actuales sobre Psicopedagogía]]
# [[Petróleo]]
# [[Pisología Social de la Comunicación]]
# [[Pokemon]]
# [[Problemario de Señales y Sistemas]]
# [[Programación en Ada]]
# [[Programación en C]]
# [[Programación en C++]]
# [[Programación en Java]]
# [[Programación en PHP]]
# [[Psicología Social de la Comunicación]]
# [[Psicología para nivel medio superior]]
# [[Sueño lúcido]]
# [[Teoría de la Música y Armonía]]
# [[Teoría de la Relatividad para torpes]]
# [[Transporte de información y redes]]
# [[Transwiki]]
# [[Tutorial de uso de CVS]]
# [[VHDL]]
# [[Wikichicos]]
# [[Wikilibros Pokedex]]
# [[Wikiversidad]]
# [[XUL]]
===Mayo de 2006===
Según las [http://en.wikipedia.org/wikistats/wikibooks/EN/Wikibooks_ES.htm estadísticas por libro], a fecha de '''10 de mayo de 2006''', en Wikilibros tenemos 79 libros de más de 10 KB y más de un capítulo. Son los siguientes en orden alfabético:
# [[Acuarios de Arrecife]]
# [[Administración de tiempo]]
# [[Alemán]]
# [[Apicultura fácil]]
# [[Aprendizaje colaborativo]]
# [[Aprendizaje combinado]]
# [[Artes culinarias]]
# [[Biología celular]]
# [[Blender 3D]]
# [[Catalán]]
# [[Chino]]
# [[Cibercultura]]
# [[Como nos llegó la Biblia]]
# [[Creación de videojuegos]]
# [[Crear un MUD]]
# [[Curso de napolitano]]
# [[Cálculo en una variable]]
# [[Diccionario de Psicoanálisis]]
# [[Documentación en línea de OsiriX]]
# [[El software libre en la educación]]
# [[Electrónica]]
# [[Electrónica de Comunicaciones]]
# [[Enfermedades metabólicas producidas por enzimas defectuosas]]
# [[Ensayos]]
# [[Erminio Blotta]]
# [[Español]]
# [[Esperanto]]
# [[Excursionismo]]
# [[FIC]]
# [[Farmaguia]]
# [[Formulación inorgánica]]
# [[Fractalidades en Investigación Crítica]]
# [[Francés]]
# [[Fundamentos de programación]]
# [[Física]]
# [[Guerra del Pacífico]]
# [[Génesis y evolución del corrido mexicano]]
# [[Hacks para Unix-like]]
# [[Hacks para sistemas operativos Unix-like]]
# [[Historia de Colombia]]
# [[Impactos ambientales]]
# [[Informática Educacional]]
# [[Inglés]]
# [[Inmersión en Python]]
# [[Introducción a Linux]]
# [[Introducción a Señales, Sistemas y Control]]
# [[Introducción a la Psicología]]
# [[Japonés]]
# [[Latín]]
# [[Lenguaje XHTML]]
# [[Literatura]]
# [[MUELA]]
# [[Manual de Ajedrez]]
# [[Manual de Ingeniería Informática]]
# [[Manual de LaTeX]]
# [[Manual de programación de OS]]
# [[Manual de uso wiki]]
# [[Manual del mate y la yerba mate]]
# [[Matemáticas Bachillerato LOGSE]]
# [[Montañismo]]
# [[Perspectivas actuales sobre Psicopedagogía]]
# [[Pokemon]]
# [[Programación]]
# [[Programación en Ada]]
# [[Programación en C]]
# [[Programación en C++]]
# [[Programación en Java]]
# [[Programación en JavaScript]]
# [[Programación en PHP]]
# [[Psicología Social de la Comunicación]]
# [[Psicología para nivel medio superior]]
# [[Sueño lúcido]]
# [[Teoría de la Música y Armonía]]
# [[Transporte de información y redes]]
# [[Tutorial de uso de CVS]]
# [[VHDL]]
# [[Wikichicos Sistema Solar]]
# [[Wikilibros Pokedex]]
# [[XUL]]
===Diciembre 2005===
# [[Alemán]]
# [[Aprendizaje colaborativo]]
# [[Aprendizaje combinado]]
# [[Artes culinarias]]
# [[Astronomía]]
# [[Biología celular]]
# [[Blender 3D: novato a profesional]]
# [[Catalán]]
# [[Chino]]
# [[Cibercultura]]
# [[Como nos llegó la Biblia]]
# [[Creación de videojuegos]]
# [[Crear un MUD]]
# [[Cálculo en una variable]]
# [[Diccionario de Psicoanálisis]]
# [[Documentación en línea de OsiriX]]
# [[Electrónica]]
# [[Electrónica de Comunicaciones]]
# [[Enfermedades metabólicas producidas por enzimas defectuosas]]
# [[Ensayos]]
# [[Erminio Blotta]]
# [[Español]]
# [[Esperanto]]
# [[Excursionismo]]
# [[FIC:Análisis de cómo se estructura el espacio publico para mantener a los cuerpos en constante control]]
# [[Farmaguia]]
# [[Fundamentos de programación]]
# [[Física]]
# [[Guerra del Pacífico]]
# [[Génesis y evolución del corrido mexicano]]
# [[Hacks para sistemas operativos Unix-like]]
# [[Historia de Colombia]]
# [[Informática Educacional]]
# [[Inglés]]
# [[Inmersión en Python]]
# [[Introducción a Linux]]
# [[Introducción a la Psicología]]
# [[Japonés]]
# [[MUELA]]
# [[Manual de Ingeniería Informática]]
# [[Manual de programación de OS/2]]
# [[Manual de uso wiki]]
# [[Matemáticas Bachillerato LOGSE]]
# [[Montañismo]]
# [[Perspectivas actuales sobre Psicopedagogía]]
# [[Programación]]
# [[Programación en Ada]]
# [[Programación en C]]
# [[Programación en Java]]
# [[Programación en JavaScript]]
# [[Programación en PHP]]
# [[Psicología del Desarrollo]]
# [[Psicología para nivel medio superior]]
# [[Sueño lúcido]]
# [[Transporte de información y redes]]
# [[Wikichicos Sistema Solar]]
# [[XUL]]
=== Noviembre 2005 ===
# [[Alemán]]
# [[Aprendizaje colaborativo]]
# [[Artes culinarias]]
# [[Biología celular]]
# [[Blender 3D: novato a profesional]] *
# [[Catalán]]
# [[Chino]]
# [[Cibercultura]]
# [[Como nos llegó la Biblia]]
# [[Creación de videojuegos]]
# [[Crear un MUD]]
# [[Cálculo en una variable]]
# [[Diccionario de Psicoanálisis]]
# [[Documentación en línea de OsiriX]]
# [[Electrónica]]
# [[Ensayos]]
# [[Erminio Blotta: catálogo de obras]]
# [[Español]]
# [[Esperanto]]
# [[Excursionismo]]
# [[FIC:Análisis de cómo se estructura el espacio publico para mantener a los cuerpos en constante control]] *
# [[Fundamentos de programación]]
# [[Física]]
# [[Guerra del Pacífico]]
# [[Hacks para Unix-like]]
# [[Historia de Colombia]]
# [[Informática Educacional]]
# [[Inglés]]
# [[Inmersión en Python]]
# [[Introducción a Linux]]
# [[Introducción a la Psicología]]
# [[Japonés]]
# [[MUELA]]
# [[Manual de Ingeniería Informática]]
# [[Manual de programación de OS/2]] *
# [[Manual de uso wiki]]
# [[Matemáticas Bachillerato LOGSE]]
# [[Montañismo]]
# [[Pensamiento Algorítmico]]
# [[Programación]]
# [[Programación en Ada]]
# [[Programación en C]]
# [[Programación en Java]]
# [[Programación en JavaScript]]
# [[Programación en PHP]]
# [[Psicología del Desarrollo]]
# [[Psicología para nivel medio superior]]
# [[Transporte de información y redes]]
# [[Wikichicos Sistema Solar]]
# [[XUL]]
=== 2011 ===
* Enlace al archivo de 2011: [[Wikilibros:Estadísticas/Archivo/2011]]
b19v95dsv1eyvacjfx3enux2ampjrwr
Wikilibros:Proyecto mantenimiento
4
19162
431367
427469
2026-08-16T18:10:08Z
Antimundo
74354
Añadir información de la plantilla de navegación
431367
wikitext
text/x-wiki
{{Nav/Proyecto|mantenimiento}}
__NOTOC__{{atajo|WL:PM}}
==Objetivos==
#Plantear el [http://es.wikibooks.org/w/index.php?title=Especial%3ACategoryTree&target=Wikilibros:Mantenimiento&mode=categories&dotree=Cargar árbol de categorías de '''Mantenimiento'''].
##Catalogar correctamente los libros por estado de desarrollo ([[Wikilibros:Libros destacados#Libros marcados como completos|completos]], [[:Categoría:Wikilibros:Libros en desarrollo|en desarrollo]], [[:Categoría:Wikilibros:Libros sin plan de desarrollo|estructurar]], dividir [[:Categoría:Wikilibros:Libros para dividir en subpáginas|libro]], [[:Categoría:Wikilibros:Fusionar|fusionar]], [[:Categoría:Wikilibros:Borrar|borrar]], [[:Categoría:Wikilibros:Nombrado incorrectamente|renombrar]]).
##Reducir al mínimo los libros mal enlazados ([[Especial:LonelyPages|huérfanas]], [[Especial:DeadendPages|sin salida]], [[Especial:WithoutInterwiki|sin interwikis]], [[Especial:UncategorizedPages|sin categorizar]]).
##Corregir las categorías con fallos ([[Especial:WantedCategories|requeridas]], [[Especial:UnusedCategories|sin uso]], [[Especial:UncategorizedCategories|sin categorizar]]).
##Corregir las redirecciones erróneas ([[Especial:BrokenRedirects|incorrectas]], [[Especial:DoubleRedirects|dobles]]).
#Organizar todas las plantillas de mantenimiento (coordinándose con el [[Wikilibros:Proyecto plantillas|Proyecto plantillas]]).
##Añadir las indicaciones de uso {{tl|documentación}} a las plantillas de mantenimiento.
##Evitar plantillas de mantenimiento en desuso y redundantes.
##Normalizar todas las plantillas de mantenimiento.
==Categorías de mantenimiento==
===Páginas huérfanas y sin salida===
*En [[Especial:Páginas huérfanas]] se encuentra un listado de todas las páginas huérfanas, es decir que no están enlazadas desde ninguna otra página de Wikilibros. Si deseas colaborar, añádelas a la categoría del libro al que pertenezca mediante <code><nowiki>[[Categoría:«nombre del libro»]]</nowiki></code>. Si no sabes a qué libro corresponde, puedes orientarte por el contenido de la página y por los enlaces que contiene.
*Lo mismo puedes hacer con las [[Especial:Deadendpages|páginas sin salida]], y mirar las páginas que llevan a ella, en ''lo que enlaza aquí''.
===Páginas deficientes===
Cuando vayas por Wikilibros y te encuentres una página que le falta información o formato, colócale una plantilla que lo indique, así puedes informar a otros lo que falta por hacer:
{| class="wikitable"
|-
! Situación !! Plantilla
|-
| Contenido obsoleto o inexacto || {{tl|Desactualizado}}
|-
| Contenido incompleto o deficiente || {{tl|Mejorar}}
|-
| No cuenta con referencias suficientes || {{tl|Referencias}}
|-
| Neutralidad cuestionada || {{tl|Sección no neutral}}
|-
| Pendiente de completar la traducción || {{tl|Traduciendo}}
|-
| No integrado en ningún wikilibro || {{tl|Integrar al wikilibro|<wikilibro>}}
|-
| Propuesta de fusión de libros || {{tl|Fusionar|<wikilibro>}}
|-
| Formato deficiente || {{tl|Mejorar formato}}
|-
| Receta que no cumple con el libro de estilo || {{tl|Receta sin formato}}
|-
| Nombrado incorrecto || {{tl|Corregir nombrado}}
|-
| Libro no estructurado en páginas || {{tl|En subpáginas}}
|-
| En proceso de desarrollo activo || {{tl|En desarrollo}}
|-
| Esbozo || {{tl|Esbozo}}
|-
| Infraesbozo || {{tl|Infraesbozo}}
|-
| Propuesta de libro sin contenido relevante || {{tl|Propuesta}}
|-
| Revisión urgente || {{tl|Revisar}}
|-
| Artículos enciclopédicos || {{tl|a Wikipedia}}
|-
| Consulta de borrado || {{tl|Aviso de borrado}}
|-
| Sospechoso de investigación original || {{tl|Fuente primaria}}
|-
| Posible autopromoción o publicidad || {{tl|Promocional}}
|-
| Carente de contexto claro || {{tl|Contextualizar}}
|-
| Plagio || {{tl|Plagio}}
|-
| Borrado rápido || {{tl|Borrar}}
|}
=== Ediciones vandálicas, de prueba o spam ===
Aquí tienes una lista de [[:Categoría:Wikilibros:Plantillas de aviso a usuarios|plantillas de aviso a usuarios]], usadas para advertir o comunicar a los usuarios diversos mensajes prefijados.
{{Avisos}}
=== Otras plantillas de mantenimiento ===
Todas las plantillas de mantenimiento disponibles actualmente están catalogadas en esta [[:Categoría:Wikilibros:Plantillas de mantenimiento|categoría]], las instrucciones de uso aparecen en la página de la misma plantilla.
=== Algunas páginas especiales relacionadas ===
* [[Especial:Unusedcategories|Categorías sin uso]]
* [[Especial:Lonelypages|Páginas huérfanas]]
* [[Especial:Uncategorizedpages|Páginas sin categorizar]]
* [[Especial:Withoutinterwiki|Páginas sin interwikis]]
* [[Especial:Deadendpages|Páginas sin salida]]
* [[Especial:DoubleRedirects|Redirecciones dobles]]
* [[Especial:BrokenRedirects|Redirecciones incorrectas]]
* [[Especial:Uncategorizedcategories|Categorías sin categorizar]]
* [[Especial:Wantedcategories|Categorías requeridas]]
Otras páginas:
* [[:Categoría:Wikilibros:Plantillas de mantenimiento|Plantillas de mantenimiento]]
[[Categoría:Wikilibros:Proyectos|Mantenimiento]]
[[Categoría:Wikilibros:Mantenimiento| ]]
50jih9z0z4sews6xhe9rb0v52epa9ry
431377
431367
2026-08-16T18:39:51Z
Antimundo
74354
Añadir imagen
431377
wikitext
text/x-wiki
{{Nav/Proyecto|imagen=Preferences-system.svg}}
__NOTOC__{{atajo|WL:PM}}
==Objetivos==
#Plantear el [http://es.wikibooks.org/w/index.php?title=Especial%3ACategoryTree&target=Wikilibros:Mantenimiento&mode=categories&dotree=Cargar árbol de categorías de '''Mantenimiento'''].
##Catalogar correctamente los libros por estado de desarrollo ([[Wikilibros:Libros destacados#Libros marcados como completos|completos]], [[:Categoría:Wikilibros:Libros en desarrollo|en desarrollo]], [[:Categoría:Wikilibros:Libros sin plan de desarrollo|estructurar]], dividir [[:Categoría:Wikilibros:Libros para dividir en subpáginas|libro]], [[:Categoría:Wikilibros:Fusionar|fusionar]], [[:Categoría:Wikilibros:Borrar|borrar]], [[:Categoría:Wikilibros:Nombrado incorrectamente|renombrar]]).
##Reducir al mínimo los libros mal enlazados ([[Especial:LonelyPages|huérfanas]], [[Especial:DeadendPages|sin salida]], [[Especial:WithoutInterwiki|sin interwikis]], [[Especial:UncategorizedPages|sin categorizar]]).
##Corregir las categorías con fallos ([[Especial:WantedCategories|requeridas]], [[Especial:UnusedCategories|sin uso]], [[Especial:UncategorizedCategories|sin categorizar]]).
##Corregir las redirecciones erróneas ([[Especial:BrokenRedirects|incorrectas]], [[Especial:DoubleRedirects|dobles]]).
#Organizar todas las plantillas de mantenimiento (coordinándose con el [[Wikilibros:Proyecto plantillas|Proyecto plantillas]]).
##Añadir las indicaciones de uso {{tl|documentación}} a las plantillas de mantenimiento.
##Evitar plantillas de mantenimiento en desuso y redundantes.
##Normalizar todas las plantillas de mantenimiento.
==Categorías de mantenimiento==
===Páginas huérfanas y sin salida===
*En [[Especial:Páginas huérfanas]] se encuentra un listado de todas las páginas huérfanas, es decir que no están enlazadas desde ninguna otra página de Wikilibros. Si deseas colaborar, añádelas a la categoría del libro al que pertenezca mediante <code><nowiki>[[Categoría:«nombre del libro»]]</nowiki></code>. Si no sabes a qué libro corresponde, puedes orientarte por el contenido de la página y por los enlaces que contiene.
*Lo mismo puedes hacer con las [[Especial:Deadendpages|páginas sin salida]], y mirar las páginas que llevan a ella, en ''lo que enlaza aquí''.
===Páginas deficientes===
Cuando vayas por Wikilibros y te encuentres una página que le falta información o formato, colócale una plantilla que lo indique, así puedes informar a otros lo que falta por hacer:
{| class="wikitable"
|-
! Situación !! Plantilla
|-
| Contenido obsoleto o inexacto || {{tl|Desactualizado}}
|-
| Contenido incompleto o deficiente || {{tl|Mejorar}}
|-
| No cuenta con referencias suficientes || {{tl|Referencias}}
|-
| Neutralidad cuestionada || {{tl|Sección no neutral}}
|-
| Pendiente de completar la traducción || {{tl|Traduciendo}}
|-
| No integrado en ningún wikilibro || {{tl|Integrar al wikilibro|<wikilibro>}}
|-
| Propuesta de fusión de libros || {{tl|Fusionar|<wikilibro>}}
|-
| Formato deficiente || {{tl|Mejorar formato}}
|-
| Receta que no cumple con el libro de estilo || {{tl|Receta sin formato}}
|-
| Nombrado incorrecto || {{tl|Corregir nombrado}}
|-
| Libro no estructurado en páginas || {{tl|En subpáginas}}
|-
| En proceso de desarrollo activo || {{tl|En desarrollo}}
|-
| Esbozo || {{tl|Esbozo}}
|-
| Infraesbozo || {{tl|Infraesbozo}}
|-
| Propuesta de libro sin contenido relevante || {{tl|Propuesta}}
|-
| Revisión urgente || {{tl|Revisar}}
|-
| Artículos enciclopédicos || {{tl|a Wikipedia}}
|-
| Consulta de borrado || {{tl|Aviso de borrado}}
|-
| Sospechoso de investigación original || {{tl|Fuente primaria}}
|-
| Posible autopromoción o publicidad || {{tl|Promocional}}
|-
| Carente de contexto claro || {{tl|Contextualizar}}
|-
| Plagio || {{tl|Plagio}}
|-
| Borrado rápido || {{tl|Borrar}}
|}
=== Ediciones vandálicas, de prueba o spam ===
Aquí tienes una lista de [[:Categoría:Wikilibros:Plantillas de aviso a usuarios|plantillas de aviso a usuarios]], usadas para advertir o comunicar a los usuarios diversos mensajes prefijados.
{{Avisos}}
=== Otras plantillas de mantenimiento ===
Todas las plantillas de mantenimiento disponibles actualmente están catalogadas en esta [[:Categoría:Wikilibros:Plantillas de mantenimiento|categoría]], las instrucciones de uso aparecen en la página de la misma plantilla.
=== Algunas páginas especiales relacionadas ===
* [[Especial:Unusedcategories|Categorías sin uso]]
* [[Especial:Lonelypages|Páginas huérfanas]]
* [[Especial:Uncategorizedpages|Páginas sin categorizar]]
* [[Especial:Withoutinterwiki|Páginas sin interwikis]]
* [[Especial:Deadendpages|Páginas sin salida]]
* [[Especial:DoubleRedirects|Redirecciones dobles]]
* [[Especial:BrokenRedirects|Redirecciones incorrectas]]
* [[Especial:Uncategorizedcategories|Categorías sin categorizar]]
* [[Especial:Wantedcategories|Categorías requeridas]]
Otras páginas:
* [[:Categoría:Wikilibros:Plantillas de mantenimiento|Plantillas de mantenimiento]]
[[Categoría:Wikilibros:Proyectos|Mantenimiento]]
[[Categoría:Wikilibros:Mantenimiento| ]]
0aueuefka0yyad27yhno0hfuhm4785k
Wikilibros:Proyectos
4
19164
431378
406480
2026-08-16T18:55:53Z
Antimundo
74354
Mejorar y simplificar sintaxis de estilos
431378
wikitext
text/x-wiki
{|cellpadding="0" style="max-width:16em; float:right; border-collapse:collapse; margin:1em 0 1em 1em; border: solid #A0EDA0 3px;"
|style="width:; background:#FCFFFC; padding: 1em 1em 0em 1em; text-align:center;" valign="top" |
[[Imagen:Wikibooks-logo.svg|100px|center]]
<span style="font-size: 200%;">Proyectos de Wikilibros</span>
|-
|style="padding:0px 1em; font-size:110%; text-align:left; background:#A0EDA0;" |
[[Wikilibros:Proyecto mantenimiento|Proyecto mantenimiento]]
[[Wikilibros:Proyecto plantillas|Proyecto plantillas]]
[[Wikilibros:Proyecto libros por mejorar|Proyecto libros por mejorar]]
[[Wikilibros:Proyecto libros destacados|Proyecto libros destacados]]
[[Wikilibros:Proyecto organizar por temas|Proyecto organizar por temas]]
|}
{{:Wikilibros:Proyectos/Invitación}}
[[Categoría:Wikilibros:Proyectos]]
h4li6xyrtyb6gh1w1147i2zghiz7mmw
431428
431378
2026-08-17T07:48:35Z
Antimundo
74354
Añadir saltos de línea entre proyectos
431428
wikitext
text/x-wiki
{|cellpadding="0" style="max-width:16em; float:right; border-collapse:collapse; margin:1em 0 1em 1em; border: solid #A0EDA0 3px;"
|style="color: black; background:#FCFFFC; padding: 1em 1em 0em 1em; text-align:center;" valign="top" |
[[Imagen:Wikibooks-logo.svg|100px|center]]
<span style="font-size: 200%;">Proyectos de Wikilibros</span>
|-
|style="padding:0px 1em; text-align:left; background:#A0EDA0; color: black;" |
[[Wikilibros:Proyecto mantenimiento|Proyecto mantenimiento]]
<br>[[Wikilibros:Proyecto plantillas|Proyecto plantillas]]
<br>[[Wikilibros:Proyecto libros por mejorar|Proyecto libros por mejorar]]
<br>[[Wikilibros:Proyecto libros destacados|Proyecto libros destacados]]
<br>[[Wikilibros:Proyecto organizar por temas|Proyecto organizar por temas]]
|}
{{:Wikilibros:Proyectos/Invitación}}
[[Categoría:Wikilibros:Proyectos]]
l3jsp6c11msilevejamvj3i6uatmy05
431435
431428
2026-08-17T08:28:57Z
Antimundo
74354
Ordenar proyectos por orden alfabético
431435
wikitext
text/x-wiki
{|cellpadding="0" style="max-width:16em; float:right; border-collapse:collapse; margin:1em 0 1em 1em; border: solid #A0EDA0 3px;"
|style="color: black; background:#FCFFFC; padding: 1em 1em 0em 1em; text-align:center;" valign="top" |
[[Imagen:Wikibooks-logo.svg|100px|center]]
<span style="font-size: 200%;">Proyectos de Wikilibros</span>
|-
|style="padding:0px 1em; text-align:left; background:#A0EDA0; color: black;" |
[[Wikilibros:Proyecto libros destacados|Proyecto libros destacados]]
<br>[[Wikilibros:Proyecto libros por mejorar|Proyecto libros por mejorar]]
<br>[[Wikilibros:Proyecto mantenimiento|Proyecto mantenimiento]]
<br>[[Wikilibros:Proyecto organizar por temas|Proyecto organizar por temas]]
<br>[[Wikilibros:Proyecto plantillas|Proyecto plantillas]]
|}
{{:Wikilibros:Proyectos/Invitación}}
[[Categoría:Wikilibros:Proyectos]]
if0m4qwx8acnjbckeepb6k9i54ljg8q
Wikilibros:Proyecto libros por mejorar
4
19175
431368
428261
2026-08-16T18:11:13Z
Antimundo
74354
Añadir información de la plantilla de navegación
431368
wikitext
text/x-wiki
{{Nav/Proyecto|libros por mejorar}}
__NOTOC__
==Objetivo==
Se trata de conseguir una mejora general de los libros alojados en Wikilibros. La prioridad es mejorar los libros que ya existen y hay que tener en cuenta [[Wikilibros:Wikilibros por mejorar]]. En orden de preferencia:
#Terminar los candidatos a [[Wikilibros:Libros destacados|Libros destacados]]
#Subir de nivel los libros de la [[Portada]]
#Completar los [[Wikilibros:Wikilibros por mejorar|Wikilibros por mejorar]]
#Mejorar los [[Wikilibros:Libros nuevos|Libros nuevos]]
#Crear los [[Wikilibros:Wikilibros solicitados|Wikilibros solicitados]]
==Requisitos==
*Que el libro y sus capítulos estén bien nombrados. Ver [[Wikilibros:Manual de estilo]].
*Que el libro esté subdividido eficientemente en subpáginas.
*Que todas las páginas del libro estén categorizadas en una categoría con igual nombre que el libro.
*Que la portada sea legible.
*Se valorará que tenga enlaces a otros proyectos.
Existe una lista de lo que falta por hacer [[Wikilibros:Wikilibros por mejorar|'''aquí''']], junto con una lista de todos los libros que están señalados como esbozos o trabajados hasta un 50%
==Solicitudes de libros nuevos==
{{Portada/solicitados}}
==Libros nuevos que aparecen en la portada==
{{Portada/nuevos}}
== Libros para mejorar que aparecen en la portada ==
{{Portada/Libros por mejorar}}
== Otras páginas ==
* [[Wikilibros:Libros nuevos]]
* [[Wikilibros:lo que Wikilibros no es]]
* [[Wikilibros:Wikilibros por mejorar|Página completa de libros por mejorar]]
[[Categoría:Wikilibros:Proyectos|Libros por mejorar]]
ffbov7mswghhz7evdh0pcx3denhayif
431375
431368
2026-08-16T18:35:32Z
Antimundo
74354
Añadir imagen
431375
wikitext
text/x-wiki
{{Nav/Proyecto|imagen=Multimedia-volume-control.svg}}
__NOTOC__
==Objetivo==
Se trata de conseguir una mejora general de los libros alojados en Wikilibros. La prioridad es mejorar los libros que ya existen y hay que tener en cuenta [[Wikilibros:Wikilibros por mejorar]]. En orden de preferencia:
#Terminar los candidatos a [[Wikilibros:Libros destacados|Libros destacados]]
#Subir de nivel los libros de la [[Portada]]
#Completar los [[Wikilibros:Wikilibros por mejorar|Wikilibros por mejorar]]
#Mejorar los [[Wikilibros:Libros nuevos|Libros nuevos]]
#Crear los [[Wikilibros:Wikilibros solicitados|Wikilibros solicitados]]
==Requisitos==
*Que el libro y sus capítulos estén bien nombrados. Ver [[Wikilibros:Manual de estilo]].
*Que el libro esté subdividido eficientemente en subpáginas.
*Que todas las páginas del libro estén categorizadas en una categoría con igual nombre que el libro.
*Que la portada sea legible.
*Se valorará que tenga enlaces a otros proyectos.
Existe una lista de lo que falta por hacer [[Wikilibros:Wikilibros por mejorar|'''aquí''']], junto con una lista de todos los libros que están señalados como esbozos o trabajados hasta un 50%
==Solicitudes de libros nuevos==
{{Portada/solicitados}}
==Libros nuevos que aparecen en la portada==
{{Portada/nuevos}}
== Libros para mejorar que aparecen en la portada ==
{{Portada/Libros por mejorar}}
== Otras páginas ==
* [[Wikilibros:Libros nuevos]]
* [[Wikilibros:lo que Wikilibros no es]]
* [[Wikilibros:Wikilibros por mejorar|Página completa de libros por mejorar]]
[[Categoría:Wikilibros:Proyectos|Libros por mejorar]]
bdszgvya00l7bs553mm95fvusgiqepa
Wikilibros:Proyectos/Invitación
4
19176
431431
101118
2026-08-17T08:18:32Z
Antimundo
74354
Aclarar explicación sobre qué son exactamente los proyectos y cuáles existen
431431
wikitext
text/x-wiki
¡Hay mucho por hacer!
En Wikilibros, los '''proyectos''' son espacios que sirven para organizar y coordinar el trabajo en torno a un tema o una tarea concreta. Puedes participar en cualquier proyecto cuando encuentres una tarea que te interese y, del mismo modo, puedes colaborar en varios proyectos a la vez.
=== Lista de proyectos ===
:[[Archivo:Preferences-system.svg|20px|sinmarco]] [[Wikilibros:Proyecto mantenimiento|'''Proyecto mantenimiento''']]: Localiza y soluciona problemas de mantenimiento, como páginas deficientes, huérfanas o que necesitan atención.
:[[Archivo:Template-info.svg|20px|sinmarco]] [[Wikilibros:Proyecto plantillas|'''Proyecto plantillas''']]: Organiza, clasifica, documenta y mejora las plantillas que se utilizan en Wikilibros.
:[[Archivo:Multimedia-volume-control.svg|20px|sinmarco]] [[Wikilibros:Proyecto libros por mejorar|'''Proyecto libros por mejorar''']]: Reúne libros que necesitan mejoras de estructura, organización, contenido o navegación.
:[[Archivo:Application-certificate Gion.svg|20px|sinmarco]] [[Wikilibros:Proyecto libros destacados|'''Proyecto libros destacados''']]: Reúne los libros que destacan por su calidad, organización y grado de desarrollo, e incluye información sobre su selección.
:[[Archivo:Gnome-colors-applications-office.svg|20px|sinmarco]] [[Wikilibros:Proyecto organizar por temas|'''Proyecto organizar por temas''']]: Organiza los libros por temas y categorías para que sea más fácil encontrarlos y navegar por Wikilibros.<noinclude>
[[Categoría:Wikilibros:Proyectos]]
</noinclude>
hxo72run16kioc4oq7igxqfnhmv1nfe
431433
431431
2026-08-17T08:26:33Z
Antimundo
74354
/* Lista de proyectos */ Ordenar proyectos por orden alfabético
431433
wikitext
text/x-wiki
¡Hay mucho por hacer!
En Wikilibros, los '''proyectos''' son espacios que sirven para organizar y coordinar el trabajo en torno a un tema o una tarea concreta. Puedes participar en cualquier proyecto cuando encuentres una tarea que te interese y, del mismo modo, puedes colaborar en varios proyectos a la vez.
=== Lista de proyectos ===
:[[Archivo:Application-certificate Gion.svg|20px|sinmarco]] [[Wikilibros:Proyecto libros destacados|'''Proyecto libros destacados''']]: Reúne los libros que destacan por su calidad, organización y grado de desarrollo, e incluye información sobre su selección.
:[[Archivo:Multimedia-volume-control.svg|20px|sinmarco]] [[Wikilibros:Proyecto libros por mejorar|'''Proyecto libros por mejorar''']]: Reúne libros que necesitan mejoras de estructura, organización, contenido o navegación.
:[[Archivo:Preferences-system.svg|20px|sinmarco]] [[Wikilibros:Proyecto mantenimiento|'''Proyecto mantenimiento''']]: Localiza y soluciona problemas de mantenimiento, como páginas deficientes, huérfanas o que necesitan atención.
:[[Archivo:Gnome-colors-applications-office.svg|20px|sinmarco]] [[Wikilibros:Proyecto organizar por temas|'''Proyecto organizar por temas''']]: Organiza los libros por temas y categorías para que sea más fácil encontrarlos y navegar por Wikilibros.<noinclude>
:[[Archivo:Template-info.svg|20px|sinmarco]] [[Wikilibros:Proyecto plantillas|'''Proyecto plantillas''']]: Organiza, clasifica, documenta y mejora las plantillas que se utilizan en Wikilibros.
[[Categoría:Wikilibros:Proyectos]]
</noinclude>
6qd5zhuvhqah5m56gya9i5fm3hi2swh
431434
431433
2026-08-17T08:28:14Z
Antimundo
74354
Corregir errata
431434
wikitext
text/x-wiki
¡Hay mucho por hacer!
En Wikilibros, los '''proyectos''' son espacios que sirven para organizar y coordinar el trabajo en torno a un tema o una tarea concreta. Puedes participar en cualquier proyecto cuando encuentres una tarea que te interese y, del mismo modo, puedes colaborar en varios proyectos a la vez.
=== Lista de proyectos ===
:[[Archivo:Application-certificate Gion.svg|20px|sinmarco]] [[Wikilibros:Proyecto libros destacados|'''Proyecto libros destacados''']]: Reúne los libros que destacan por su calidad, organización y grado de desarrollo, e incluye información sobre su selección.
:[[Archivo:Multimedia-volume-control.svg|20px|sinmarco]] [[Wikilibros:Proyecto libros por mejorar|'''Proyecto libros por mejorar''']]: Reúne libros que necesitan mejoras de estructura, organización, contenido o navegación.
:[[Archivo:Preferences-system.svg|20px|sinmarco]] [[Wikilibros:Proyecto mantenimiento|'''Proyecto mantenimiento''']]: Localiza y soluciona problemas de mantenimiento, como páginas deficientes, huérfanas o que necesitan atención.
:[[Archivo:Gnome-colors-applications-office.svg|20px|sinmarco]] [[Wikilibros:Proyecto organizar por temas|'''Proyecto organizar por temas''']]: Organiza los libros por temas y categorías para que sea más fácil encontrarlos y navegar por Wikilibros.
:[[Archivo:Template-info.svg|20px|sinmarco]] [[Wikilibros:Proyecto plantillas|'''Proyecto plantillas''']]: Organiza, clasifica, documenta y mejora las plantillas que se utilizan en Wikilibros.<noinclude>
[[Categoría:Wikilibros:Proyectos]]
</noinclude>
5532pwd4a3ar4yxgr3aclsd0ig5lwm3
Wikilibros:Proyecto libros destacados
4
19178
431374
427471
2026-08-16T18:34:50Z
Antimundo
74354
Añadir imagen
431374
wikitext
text/x-wiki
{{Nav/Proyecto|imagen=Application-certificate Gion.svg}}
__NOTOC__
==Objetivos==
* Ayudar a terminar los libros que ya se encuentran maduros, para llevarlos a la portada como libros destacados, pueden estar listos para leer o les falta poco para que estén completos, una de esas cosas es una subpágina '''/Info''' que sirva para citarlos desde la portada.
* Dar a conocer la [[Wikilibros Discusión:Libros destacados|votación]] con la que se eligen los libros destacados que van a la portada.
== Niveles de desarrollo ==
{{AP|Wikilibros:Niveles de desarrollo}}
;...un libro completo? [[Archivo:100 percent.svg]]: En primer lugar, que trate todos los aspectos de la temática a tratar y estén divididos en capítulos o páginas y que esos capítulos se consideren completos (aunque siempre podrán ser ampliables). En segundo lugar que tengan un formato de presentación agradable al lector, que hayan respetado las políticas en la edición, sobre todo de nombrado en el libro y subpáginas. Cuando un libro está completo, es de esperar que tenga una [[Wikilibros:Versión para imprimir|Versión para imprimir]], y posiblemente un archivo .PDF asociado.<br>—Es posible que el símbolo [[Archivo:100 percent.svg]] sólo indique que su contenido está completo, a partir de ese momento "cualquier colaborador" sin necesitar conocimientos sobre el libro puede darle formato, y otros toques de acabado.
;...un libro que esté madurando? [[Imagen:50 percent.svg]] y [[Imagen:75 percent.svg]]: Que tenga una estructura clara y mantenga un orden. Los capítulos además de enumerados deben tener en conjunto un contenido suficiente. Se suelen empezar a corregir los defectos de [[Wikilibros:Manual de estilo|estilo]]. Los libros más complejos ya usan plantillas para facilitar el trabajo a los desarrolladores. Se comienzan a introducir imágenes y se mejora la presentación. Tienen cada vez menos errores de redacción y sus capítulos se amplían.
;...un libro que esté comenzando? [[Archivo:00 percent.svg]] y [[Imagen:25 percent.svg]]: Que tenga una introducción de cómo quiere enfocar el libro. Que enumere los capítulos, poniendo sus correspondientes enlaces. ''Que se comience a escribir (no se quede en un esbozo).'' Que no se abandone nada más comenzarlo.
[[Categoría:Wikilibros:Proyectos|Libros destacados]]
9pt5tbdydsw3gyxlew1wzqi7psqsk2y
Plantilla:Nav/Proyecto
10
19428
431370
144205
2026-08-16T18:18:15Z
Antimundo
74354
Simplificar plantilla, la información ha sido incluida en las propias páginas de proyecto para simplificar
431370
wikitext
text/x-wiki
{|style="width:180px; background:#FCFFFC; border: solid #8BF39F 1px; text-align:center; margin:5px;" valign="top" align="right"
|-
|style="background:#8BF39F; padding:10px"|'''{{SUBPAGENAME}}'''
|-
|{{{imagen}}}
|-
|style="text-align:center; font-size:100%; background:#8BF39F; padding:2px 2px"|'''[[Wikilibros:Proyectos|Proyectos de Wikilibros]]'''
|-
|style="text-align:center; font-size:80%; background:#B1F8BF; padding:0px 10px"|[[Wikilibros:Proyecto mantenimiento|Proyecto mantenimiento]]
|-
|style="text-align:center; font-size:80%; background:#B1F8BF; padding:0px 10px"|[[Wikilibros:Proyecto plantillas|Proyecto plantillas]]
|-
|style="text-align:center; font-size:80%; background:#B1F8BF; padding:0px 10px"|[[Wikilibros:Proyecto libros por mejorar|Proyecto libros por mejorar]]
|-
|style="text-align:center; font-size:80%; background:#B1F8BF; padding:0px 10px"|[[Wikilibros:Proyecto libros destacados|Proyecto libros destacados]]
|-
|style="text-align:center; font-size:80%; background:#B1F8BF; padding:0px 10px"|[[Wikilibros:Proyecto organizar por temas|Proyecto organizar por temas]]
|}
<noinclude>
[[Categoría:Wikilibros:Plantillas de navegación|{{SUBPAGENAME}}]]
</noinclude>
2w24knefhy0uz9ml1sfrlvioe15cljy
431371
431370
2026-08-16T18:28:30Z
Antimundo
74354
Mejorar estilo
431371
wikitext
text/x-wiki
{|style="width:100%; max-width:16em; background:#FCFFFC; border: solid #8BF39F 1px; text-align:center; margin:5px; border-collapse:collapse;" valign="top" align="right"
|-
|style="background:#8BF39F; padding:10px; font-size:120%;"|'''{{SUBPAGENAME}}'''
|-
|[[Imagen:{{{imagen}}}|100px|sinmarco|centro]]
|-
|style="text-align:center; font-size:100%; background:#8BF39F;"|'''[[Wikilibros:Proyectos|Proyectos de Wikilibros]]'''
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto mantenimiento|Proyecto mantenimiento]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto plantillas|Proyecto plantillas]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto libros por mejorar|Proyecto libros por mejorar]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto libros destacados|Proyecto libros destacados]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto organizar por temas|Proyecto organizar por temas]]
|}
<noinclude>
[[Categoría:Wikilibros:Plantillas de navegación|{{SUBPAGENAME}}]]
</noinclude>
83i41n9ijyqvshwnfffkf15re0u9lnd
431372
431371
2026-08-16T18:29:44Z
Antimundo
74354
Añadir margen
431372
wikitext
text/x-wiki
{|style="width:100%; max-width:16em; background:#FCFFFC; border: solid #8BF39F 1px; text-align:center; margin:5px; border-collapse:collapse; margin:1em 0 1em 1em;" valign="top" align="right"
|-
|style="background:#8BF39F; padding:10px; font-size:120%;"|'''{{SUBPAGENAME}}'''
|-
|[[Imagen:{{{imagen}}}|100px|sinmarco|centro]]
|-
|style="text-align:center; font-size:100%; background:#8BF39F;"|'''[[Wikilibros:Proyectos|Proyectos de Wikilibros]]'''
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto mantenimiento|Proyecto mantenimiento]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto plantillas|Proyecto plantillas]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto libros por mejorar|Proyecto libros por mejorar]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto libros destacados|Proyecto libros destacados]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto organizar por temas|Proyecto organizar por temas]]
|}
<noinclude>
[[Categoría:Wikilibros:Plantillas de navegación|{{SUBPAGENAME}}]]
</noinclude>
iifs5h970v2n1cd0qpp420g6ujyw1ij
431436
431372
2026-08-17T08:30:43Z
Antimundo
74354
Ordenar proyectos por orden alfabético
431436
wikitext
text/x-wiki
{|style="width:100%; max-width:16em; background:#FCFFFC; border: solid #8BF39F 1px; text-align:center; margin:5px; border-collapse:collapse; margin:1em 0 1em 1em;" valign="top" align="right"
|-
|style="background:#8BF39F; padding:10px; font-size:120%;"|'''{{SUBPAGENAME}}'''
|-
|[[Imagen:{{{imagen}}}|100px|sinmarco|centro]]
|-
|style="text-align:center; font-size:100%; background:#8BF39F;"|'''[[Wikilibros:Proyectos|Proyectos de Wikilibros]]'''
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto libros destacados|Proyecto libros destacados]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto libros por mejorar|Proyecto libros por mejorar]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto mantenimiento|Proyecto mantenimiento]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto organizar por temas|Proyecto organizar por temas]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto plantillas|Proyecto plantillas]]
|}
<noinclude>
[[Categoría:Wikilibros:Plantillas de navegación|{{SUBPAGENAME}}]]
</noinclude>
td3t75cliq1wp9sp9ytgx78mle8f7yd
431440
431436
2026-08-17T08:52:44Z
Antimundo
74354
Corregir salto de linea
431440
wikitext
text/x-wiki
{|style="width:100%; max-width:16em; background:#FCFFFC; border: solid #8BF39F 1px; text-align:center; margin:5px; border-collapse:collapse; margin:1em 0 1em 1em;" valign="top" align="right"
|-
|style="background:#8BF39F; padding:10px; font-size:120%;"|'''{{SUBPAGENAME}}'''
|-
|[[Imagen:{{{imagen}}}|100px|sinmarco|centro]]
|-
|style="text-align:center; font-size:100%; background:#8BF39F;"|'''[[Wikilibros:Proyectos|Proyectos de Wikilibros]]'''
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto libros destacados|Proyecto libros destacados]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto libros por mejorar|Proyecto libros por mejorar]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto mantenimiento|Proyecto mantenimiento]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto organizar por temas|Proyecto organizar por temas]]
|-
|style="text-align:center; font-size:90%; background:#B1F8BF;"|[[Wikilibros:Proyecto plantillas|Proyecto plantillas]]
|}<noinclude>
[[Categoría:Wikilibros:Plantillas de navegación|{{SUBPAGENAME}}]]
</noinclude>
gx27qyxe8j5wa5h9syfiu25pkwo6o2l
Wikilibros:Libros por temática
4
19547
431432
428468
2026-08-17T08:21:22Z
Antimundo
74354
Crear redirección a la página actualizada donde realmente se organizan los libros por temática
431432
wikitext
text/x-wiki
#REDIRECCIÓN [[Categoría:Estantes]]
116fxj8jvqpczbf4zw3ae0mwdxouwcq
OpenCms
0
21248
431484
245882
2026-08-17T09:24:25Z
Antimundo
74354
Categorizar usando estantes
431484
wikitext
text/x-wiki
= Introducción =
'''OpenCms''' es un sistema de gestión de contenido de fuentes abiertas basado en Java y en tecnología XML. Es distribuido por la empresa Alkacon Software bajo licencia '''GNU Lesser General Public License'''.
= Tags OpenCms =
== Cómo se usan ==
Para poder utilizar la ''OpenCms JSP taglib'', debe colocarse la directiva '''taglib''' en la página JSP:
<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>
Esta directiva debe colocarse antes de cualquier tag cms.
== Los tags ==
;El tag [[/cms:contentcheck/]]: Condicional. Comprueba la disponibilidad de dos items de contenido XML.
;El tag [[/cms:conteninfo/]]: Provee acceso al resultado ('result set') de un ''contentload''.
;El tag [[/cms:contentload/]]: Provee acceso a la lectura de items de contenido XML.
;El tag [[/cms:contentloop/]]: Permite iterar sobre los valores de los elementos de un item de contenido XML.
;El tag [[/cms:contentshow/]]: Provee acceso y muestra la información del contenido XML.
;El tag [[/cms:decorate/]]: Provee decoración del contenido HTML.
;El tag [[/cms:editable/]]: Habilita el modo ''direct edit'' en una página.
;El tag [[/cms:img/]]: Soporta escalado usando los métodos nativos de OpenCms.
;El tag [[/cms:include/]]: Incluye dinámicamente otros elementos JSP en tiempo de ejecución. Estos sub-elementos pueden ser cacheados (ver la documentación de FlexCache).
;El tag [[/cms:info/]]: Imprime información del sistema en tiempo de ejecución.
;El tag [[/cms:label/]]: Provee acceso a la lectura de texto con idioma de los archivos de propiedades del ''OpenCms workplace''.
;El tag [[/cms:link/]]: Actúa como un ''envoltorio'' para armar una URL de OpenCms válida para determinado recurso.
;El tag [[/cms:property/]]: Provee acceso de lectura de las propiedades del archivo actual.
;El tag [[/cms:template/]]: Divide una página JSP en elementos a incluír via el uso del tag '''[[/cms:include/]]'''.
;El tag [[/cms:user/]]: Provee acceso a la lectura de las propiedades del usuario actual.
{{Estantes|Java}}
aq6hsour3dunw30mhsh0pe2q1viouxh
Spring Framework
0
22482
431478
245536
2026-08-17T09:22:52Z
Antimundo
74354
Categorizar usando estantes
431478
wikitext
text/x-wiki
==Sobre este libro==
Este material es un wikilibro, puedes editarlo según las [[Wikilibros:Políticas y orientaciones|normas de la comunidad]] . Todas las sugerencias, comentarios y modificaciones son bienvenidas siempre y cuando contribuya a mejorar la calidad del contenido.
Este libro se realiza con la intención de enseñar a utilizar el Framework Spring. De momento todo el contenido trata aspectos básicos de Spring. En el caso de que quieras que se traten tópicos avanzados o poseas conocimientos avanzados sobre Spring agradaceríamos tu colaboración.
Puedes utilizar este libro para anotar y compartir con la comunidad todos los avances que vayas realizando con Spring. Por favor, si estáis construyendo nuevas páginas respetad la política de [[Wikilibros:Niveles de desarrollo | niveles de desarrollo]] del wikilibro.
Para leer este libro se necesita un conocimiento medio de Java. Si tienes alguna duda, o alguna parte te parece muy difícil de seguir, puedes realizar tus comentarios en la pagina de discusión. No prometemos que serán respondidas las consultas sobre el lenguaje Java, si puedes esperar respuestas sobre los temas aquí tratados.
Este libro no está exento de errores u omisiones. Tratamos que los ejemplos expuestos aquí, estén probados. Pero no ofrecemos ninguna garantía. Puede ser que algún programa no funcione como se explica aquí debido a que fueron probados en circunstancias diferentes. Te alentamos a que notifiques o edites cualquier error.
Este material se comenzó a editar con la versión 2.5.6 de Sping Framework.
== Temas Pendientes ==
Acabamos de comenzar. Algunas partes ni siquiera tienen los cimientos. Animamos al que quiera contribuir, es libre de hacerlo. Pero si no tienes conocimientos o tiempo para escribir y quieres que un tema en particular aparezca en esta obra, puedes incluirlo en este listado. Aquí enumeramos el contenido que falta. Recuerda que únicamente incluimos tópicos sobre aspectos relacionados con Spring.
* Enlace con Hibernate.
* Enlace con IceFaces.
* Ejemplos de todos los temas.
* Entornos de desarrollo.
== Índice de contenidos ==
# [[Spring Framework/Introducción|Introducción]][[Archivo:75%.svg]]
## [[Spring Framework/Introducción/Spring Paso a Paso|Spring Paso a Paso]][[Archivo:100%.svg]] Tradución del documento original [http://static.springframework.org/docs/Spring-MVC-step-by-step/ Developing a Spring Framework MVC application step-by-step]
### [[Spring Framework/Introducción/Spring Paso a Paso/Vista General|Vista General]][[Archivo:100%.svg]]
### [[Spring Framework/Introducción/Spring Paso a Paso/Objetivo|Objetivo]][[Archivo:100%.svg]]
### [[Spring Framework/Introducción/Spring Paso a Paso/Software Necesario|Software Necesario]][[Archivo:100%.svg]]
### [[Spring Framework/Introducción/Spring Paso a Paso/Aplicación que será desarrollada|Aplicación que será desarrollada]][[Archivo:75%.svg]]
### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación|Capítulo 1. Aplicación Básica y Entorno de instalación]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Creación de la estructura de directorios para el proyecto|Creación de la estructura de directorios para el proyecto]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Creación de 'index.jsp'|Creación de <tt>'index.jsp'</tt>]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Despliegue de la aplicación en Tomcat|Despliegue de la aplicación en Tomcat]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Chequeo de la aplicación|Chequeo de la aplicación]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Descarga del Framework Spring|Descarga del Framework Spring]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Modiciación del fichero 'web.xml' del directorio 'WEB-INF'|Modiciación del fichero <tt>'web.xml'</tt> del directorio <tt>'WEB-INF'</tt>]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Copiado de librerías en 'WEB-INF/lib'|Copiado de librerías en <tt>'WEB-INF/lib'</tt>]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Creación de un Controlador (Controller)|Creación de un Controlador (Controller)]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Creación de un test para el Controlador|Creación de un test para el Controlador]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Creación de una nueva Vista|Creación de una nueva Vista]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Compilación y despliegue de la aplicación|Compilación y despliegue de la aplicación]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Prueba de la aplicación|Prueba de la aplicación]][[Archivo:00%.svg]]
#### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Resumen|Resumen]][[Archivo:00%.svg]]
### [[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 2. Desarrollo y configuración de las Vistas y Controladores|Capítulo 2. Desarrollo y configuración de las Vistas y Controladores]][[Archivo:00%.svg]]
{{Estantes|Java}}
5su8obr9ppvi1oipccgoiornitwpg92
Spring Framework/Introducción/Spring Paso a Paso
0
22483
431479
108839
2026-08-17T09:23:06Z
Antimundo
74354
Categorizar usando AutoCat
431479
wikitext
text/x-wiki
Texto traducido del documento original [http://static.springframework.org/docs/Spring-MVC-step-by-step/ Developing a Spring Framework MVC application step-by-step] de la página oficial de Spring.
'''Autores''': Thomas Risberg, Rick Evans, Portia Tung
==Índice de Contenidos==
#[[Spring Framework/Introducción/Spring Paso a Paso/Vista General | Vista General]][[Image:00%.svg]]
#[[Spring Framework/Introducción/Spring Paso a Paso/Objetivo | Objetivo]][[Image:00%.svg]]
#[[Spring Framework/Introducción/Spring Paso a Paso/Software Necesario | Software Necesario]][[Image:00%.svg]]
#[[Spring Framework/Introducción/Spring Paso a Paso/Aplicación que será desarrollada | Aplicación que será desarrollada]][[Image:00%.svg]]
#[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación | Capítulo 1. Aplicación Básica y Entorno de instalación]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Creación de la estructura de directorios para el proyecto | Creación de la estructura de directorios para el proyecto]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Creación de 'index.jsp' | Creación de <tt>'index.jsp'</tt>]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Despliegue de la aplicación en Tomcat | Despliegue de la aplicación en Tomcat]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Chequeo de la aplicación | Chequeo de la aplicación]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Descarga del Framework Spring | Descarga del Framework Spring]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Modiciación del fichero 'web.xml' del directorio 'WEB-INF' | Modiciación del fichero <tt>'web.xml'</tt> del directorio <tt>'WEB-INF'</tt>]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Copiado de librerías en 'WEB-INF/lib' | Copiado de librerías en <tt>'WEB-INF/lib'</tt>]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Creación de un Controlador (Controller) | Creación de un Controlador (Controller)]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Creación de un test para el Controlador | Creación de un test para el Controlador]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Creación de una nueva Vista | Creación de una nueva Vista]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Compilación y despliegue de la aplicación | Compilación y despliegue de la aplicación]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Prueba de la aplicación | Prueba de la aplicación]][[Image:00%.svg]]
##[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 1. Aplicación Básica y Entorno de instalación/Resumen | Resumen]][[Image:00%.svg]]
#[[Spring Framework/Introducción/Spring Paso a Paso/Capítulo 2. Desarrollo y configuración de las Vistas y Controladores | Capítulo 2. Desarrollo y configuración de las Vistas y Controladores]][[Image:00%.svg]]
{{AutoCat}}
r68ok2bkwxqcs3mb9unx6nbt4k3l112
Spring Framework/Introducción/Spring Paso a Paso/Objetivo
0
22484
431481
108840
2026-08-17T09:23:36Z
Antimundo
74354
Categorizar usando AutoCat
431481
wikitext
text/x-wiki
La siguiente lista detalla los diferentes aspectos que serán tratados a lo largo del tutorial.
*Inversión del Control (IoC)
*Modelo Vista Controlador (MVC) en Spring
*Acceso a Bases de Datos con JDBC
*Integración de Test unitarios
*Manejo de Transacciones
{{AutoCat}}
dv9d1nls89ips7w03k7b0xgk74plr76
Spring Framework/Introducción/Spring Paso a Paso/Vista General
0
22485
431480
141986
2026-08-17T09:23:28Z
Antimundo
74354
Categorizar usando AutoCat
431480
wikitext
text/x-wiki
Este documento es una guía paso a paso que indica como desarrollar una aplicación web utilizando el Framework Spring.
Se asume que no se tienen unos conocimientos básicos de Spring, por esta razón este tutorial es ideal para el aprendizaje o investigación de Spring. Se espera que a lo largo de este tutorial conozca las partes que constituyen el Framework Spring, conozca la Inversion de Control (IoC), la Programación Orientada a Aspectos (AOP), y varias librerias de servicios de Spring (como las librerías JDBC) en el contexto de una aplicación web de Spring MVC.
Spring dispone de muchas opciones para configurar nuestras aplicaciones. La más polular de ellas es la utilización de ficheros XML. Esta es una forma tradicional que es soportada desde las primeras versiones de Spring. Con la introducción de las Anotaciones en Java 5, apareció una nueva forma de configurar nuestras aplicaciones Spring. La nueva versión 2.5 de Spring posee soporte para la utilización de Anotaciones para la configuración de la aplicación web.
Este documento utiliza el estilo tradicional de XML para la configuración. Se está trabajando en una "Edición con Anotaciones" de este documento que será publicada dentro de poco.
Tenga en cuenta que no se va a cubrir información de antecedentes o conceptos teóricos en este tutorial, hay muchos libros disponibles que cubren estos conceptos en profundidad; siempre que aparezca una nueva clase o característica que se utilice en el tutorial, se indicará en que sección del manual de referencia de Spring puede encontrarse más información.
{{AutoCat}}
r2635791q87nhcde54t1f0bm8ryyr9a
Spring Framework/Introducción/Spring Paso a Paso/Software Necesario
0
22486
431482
114878
2026-08-17T09:23:42Z
Antimundo
74354
Categorizar usando AutoCat
431482
wikitext
text/x-wiki
Se asume que el siguiente software ha sido instalado y funciona correctamente. Se utilizan estas tecnologías por su facilidad y *Java SDK 1.5
*Ant 1.7
*Apache Tomcat 6.0.14
*Eclipse 3.3 (Recomendado, pero no necesario)
''Eclipse 3.3 Europa (http://www.eclipse.org/europa) junto con su plataforma de herramientas Web, Web Tools Platform (WTP) (http://www.eclipse.org/webtools) y el IDE para Eclipse del Proyecto Spring (http://www.springide.org) ofrece un excelente entorno de desarrollo para aplicaciones web.''
Es posible utilizar cualquier variación de versión de los programas anteriores. No hay problemas en utilizar NetBeans o IntelliJ en lugar de Eclipse o utilizar Jetty en lugar de Tomcat. En este caso muchas de las indicaciones de este tutorial se harán de forma idéntica en en otras aplicaciones aunque puede haber ciertos momentos en los que haya que proceder de forma diferente.
{{AutoCat}}
gzfk77mmtubwt92exgv5fyvqszukkr8
Spring Framework/Introducción/Spring Paso a Paso/Aplicación que será desarrollada
0
22487
431483
141987
2026-08-17T09:23:47Z
Antimundo
74354
Categorizar usando AutoCat
431483
wikitext
text/x-wiki
La aplicación que se va a construir para aprender a trabajar con Spring es un gestor de inventarios ''muy simple''. A continuación se puede ver una imagen que ilustra los casos que se van a implementar. Se ha elegido un modelo tan simple para centrarnos en los detalles del MVC de Spring Web.
[[Imagen:Spring_paso_a_paso_01.png| Esquema del gestor de inventarios]]
Se va a comenzar construyendo la estructura básica de la aplicación, descargando las librerías necesarias, creando los scripts que ejecutará Ant, etc. El siguente paso será utilizar un método sólido para desarrollar la aplicación de forma estructurada siguiendo los capitulos 2, 3, y 4.
Una vez realizada la instalación se iniciará una presentación del Framework Web Spring MVC. Vamos a utilizar Spring Web MVC para visualizar el inventario que existe en stock. Esto implica escribir algunas clases Java y algunos JSP's. A continuación se mostrará como enlazar nuestra aplicación con el almacenamiento pesirtente de datos utilizando un JDBC simple de Spring.
Una vez finalizado el tutorial se habrá creado una aplicación simple capaz de manejar inventarios. La aplicación nos permitirá crear listados de existencias y permitirá aumentar el precio de estas.
{{AutoCat}}
sr217ho1dsc51jws29hl5ndgnw7m683
Programación en C/Cadenas de caracteres
0
25015
431387
358866
2026-08-16T22:31:49Z
Antimundo
74354
Actualizar etiquetas source obsoletas
431387
wikitext
text/x-wiki
<noinclude>
{{Navegar|anterior=Vectores
|siguiente=Manejo de archivos
|reducido=Si
}}
</noinclude>
Las cadenas de caracteres (también llamadas cadenas o ''strings'') son un tipo particular de vectores, que como su nombre lo dice son vectores de ''char'', con la particularidad que tienen una marca en el fin del mismo (el caracter '\0'), además el lenguaje nos permite escribirlas como texto dentro de comillas dobles si son simples no. Veamos unos ejemplos de su declaración:
<syntaxhighlight lang=c>
char cadena_hola[]="Hola";
char otro_hola[]={'H','o','l','a','\0'}; // Igual al anterior
char vector[]={'H','o','l','a'}; /* Un vector de 4 elementos,
con los elementos 'H','o','l' y 'a' */
char espacio_cadena[1024]="Una cadena en C";
char cadena_vacia[]="";
</syntaxhighlight>
Cómo vimos anteriormente al declarar un vector se define la cantidad de elementos que puede contener, en el caso de las cadenas se debe tener en cuenta el espacio adicional necesario para el ''\0''. Viendo el ejemplo, tanto ''cadena_hola'' y ''otro_hola'' tienen un largo 5 y ''cadena_vacia'' tiene un largo de 1.
También vimos anteriormente que al usar vectores debemos tener en cuenta su largo, y así es que el largo o cantidad de elemento lo necesitamos en todas las funciones que definimos usando vectores y lo recibimos como un parámetro más en estas, en el caso de las cadenas al tener una marca de fin podemos prescindir del largo y procesar una cadenas hasta llegar a la marca de fin.
<!--
TODO: ejemplos de procesamiento de cadenas, ejemplos usando strings.h, comentarios sobre unicode, locale, wchar y cia.
-->
Por ejemplo, la siguiente función calcula el largo de una cadena:
<syntaxhighlight lang=c>
/* devuelve la cantidad de caracteres en cadena sin contar el '\0' */
int largo_cadena(char cadena[])
{
int largo=0
while (cadena[largo]!='\0') largo++;
return largo;
}
</syntaxhighlight>
Se debe tener en cuenta que el largo de una cadena y el largo del vector con la que se representa son distintos, tanto por como ''largo_cadena()'' cuenta el largo de la cadena, como por ''espacio_cadena'' del ejemplo anterior.
Algo bastante usual es necesitar unir dos cadenas, veamos un ejemplo:
<syntaxhighlight lang=c>
bool unir_cadenas(char destino[], char origen[], int largo)
{
int largo_origen = largo_cadena(origen);
int largo_destino = largo_cadena(destino);
if ( largo_origen+largo_destino+1 > largo ) {
return false;
}
for (int i=0; i<largo_origen;i++) {
destino[largo_destino+i] = origen[i];
}
destino[largo_destino+largo_origen]='\0';
return true;
}
...
if ( unir_cadenas(espacio_cadena," que puede crecer hasta 1023 caracteres",1024) ) {
...
</syntaxhighlight>
Estos dos ejemplos son versiones simplificadas de funciones provistas por la biblioteca estándar de C a través del encabezado ''string.h''. Nuestro ''largo_cadena()'' es similar al ''strlen()'' de la biblioteca estándar, y ''unir_cadenas()'' se asemeja al ''strncat()''. Si bien ver estas versiones nos sirven para entender las cadenas en C, en general será preferible usar las funciones provistas por la biblioteca estándar, ya que podemos estar seguros que van a estar programadas de la mejor manera posible.
Entre las funciones que provee la biblioteca estándar de C, las más importantes son:
<syntaxhighlight lang=c>
largo = strlen(cadena) // Para obtener el largo de una cadena
strcpy(destino, origen) // Copia el contenido de origen en destino
// destino debe ser lo suficientemente grande
strcat(destino, origen) // Agrega el contenido de origen al final de destino
// destino debe ser lo suficientemente grande
resultado = strcmp(cadena1, cadena2) // Compara dos cadenas
// devuelve un valor menor, igual o mayor que 0 según si cadena1 es menor,
// igual o mayor que cadena2, respectivamente.
posicion = strchr(cadena, caracter) // Devuelve la posición en memoria de la primer
// aparición de caracter dentro de cadena
posicion = strstr(cadena,subcadena) // Devuelve la posición en memoria de la primer
// aparición de subcadena dentro de cadena
</syntaxhighlight>
<!-- Nota: falta referencia completa de string.h en los anexos
Podemos ver una referencia completa de las funciones provistas por string.h en -->
Veamos algunos ejemplos usando <syntaxhighlight inline lang=c><string.h></syntaxhighlight>:
<syntaxhighlight lang=c>
#include <stdio.h>
#include <string.h>
...
char color[] = "rojo";
char grosor[] = "grueso";
...
char descripcion[1024];
strcpy(descripcion, "Lapiz color ");
strncat(descripcion, color, 1024);
strncat(descripcion, " de trazo ", 1024);
strncat(descripcion, grosor, 1024);
// descripcion contiene "Lapiz color rojo de trazo grueso"
...
</syntaxhighlight>
<!-- Nota: El ejemplo viene de [[en:C Programming]] y es bastante malo. Lo ejemplos de [[en:A Little C Primer/C String Function Library]] parecen ser un poquito mejores. -->
<syntaxhighlight lang=c>
void intercambiar(char vector[], int pos1, int pos2);
void invierte_cadena(char cadena[])
{
int largo = strlen(cadena);
for (int i=0; i < (largo/2); i++) {
intercambiar(cadena, i, (largo-1)-i);
}
}
void intercambiar(char vector[], int pos1, int pos2)
{
char aux=vector[pos1];
vector[pos1]=vector[pos2];
vector[pos2]=aux;
}
</syntaxhighlight>
<!-- Nota: los siguientes ejemplos están sólo por motivos inspiracionales
<syntaxhighlight lang=c>
/* strcpy.c */
#include <stdio.h>
#include <string.h>
void main()
{
char s1[100],
s2[100];
strcpy( s1, "string 2" );
strcpy( s2, "string 1" );
puts( "Original strings: " );
puts( "" );
puts( s1 );
puts( s2 );
puts( "" );
strcpy( s2, s1 );
puts( "New strings: " );
puts( "" );
puts( s1 );
puts( s2 );
}
</syntaxhighlight>
<syntaxhighlight lang=c>
/* strcat.c */
#include <stdio.h>
#include <string.h>
void main()
{
char s1[50],
s2[50];
strcpy( s1, "Tweedledee " );
strcpy( s2, "Tweedledum" );
strcat( s1, s2 );
puts( s1 );
}
</syntaxhighlight>
<syntaxhighlight lang=c>
/* strcmp.c */
#include <stdio.h>
#include <string.h>
#define ANSWER "blue"
void main()
{
char t[100];
puts( "What is the secret color?" );
gets( t );
while ( strcmp( t, ANSWER ) != 0 )
{
puts( "Wrong, try again." );
gets( t );
}
puts( "Right!" );
}
</syntaxhighlight>
<syntaxhighlight lang=c>
/* strchr.c */
#include <stdio.h>
#include <string.h>
void main()
{
char *t = "MEAS:VOLT:DC?";
char *p;
p = t;
puts( p );
while(( p = strchr( p, ':' )) != NULL )
{
puts( ++p );
}
}
</syntaxhighlight>
<syntaxhighlight lang=c>
char *s = "Black White Brown Blue Green";
...
puts( strstr( s, "Blue" ) );
</syntaxhighlight>
-->
<!-- Nota: Esto va en un anexo
Cuando mostrábamos el uso de tablas veíamos que si se queria almacenar una
cadena con un nombre como por ejemplo "Fulano" se debía hacer la declaración
antes y que cada una de las posiciones de la tabla quedaría con uno de los
caracteres y la tabla se vería así:
{| border=1
|Posiciones|| 0 || 1 || 2 || 3 || 4 || 5 || 6
|-----------------
|Contenido|| F || u || l || a || n || o || \0
|}
y la declaración seria algo como esto:
<syntaxhighlight lang=c>
char nombre[6] = "Fulano";
char nombre[] = "Fulano";
</syntaxhighlight>
Entonces en caso de que quisiéramos almacenar una lista de nombres con la idea
de la tabla tendríamos algo como esto:
{| border=1
|-----------------
| F || u || l || a || n || o || \0
|-----------------
| J || u || a || n || \0 || ||
|-----------------
| P || e || d || r || o || \0 ||
|-----------------
|E || l || i || s || a || \0 ||
|}
Y la declaración sería la de una tabla de caracteres de dos dimensiones como
se muestra en estos ejemplos:
<syntaxhighlight lang=c>
// Declaración de una tabla de nombres
char nombre[4][6]={'F','u','l','a','n','o','\0'
'J','u','a','n','\0',' ',' '
'P','e','d','r','o','\0',' '
'E','l','i','s','a','\0',' '};
</syntaxhighlight>
Con una tabla de nombres (de tipo cadena) declarados de la manera que se
muestra en el ejemplo se pueden por ejemplo hacer un saludo personalizado para
diferentes personas.
<syntaxhighlight lang=c>
#include <stdio.h>
#include <stdlib.h>
int main(){
int c;
char nombre[4][6]={'F','u','l','a','n','o','\0'
'J','u','a','n','\0',' ',' '
'P','e','d','r','o','\0',' '
'E','l','i','s','a','\0',' '};
printf ("Esto es un mensaje personalizado. \n\n");
for (c = 0; c < 4; c++){
printf("Hola %s \n\n",nombre[c]);
}
return 0;
}
</syntaxhighlight>
La parte clave que se debe resaltar del ejemplo anterior es que cuando se
necesita hacer referencia a uno de los nombres que estan en la tabla como una
cadena se debe dar un solo índice. Las razones de esto se entenderán en el
momento en que estudiemos el uso de los punteros [[../Punteros|Punteros]]. Que
quede claro que si pedimos un valor como nombre[3][2] estamos haciendo
referencia a un solo caracter de nuestra tabla, que en este caso sería del
nombre 3 el caracter en la posicion 2, o sea "i".
Otra cosa que es importante es recordar el uso de %s para que la funcion
''printf'' entienda que estamos pasandole una cadena como parámetro, la
posición de esta combinación de caracteres será la usada para agregar el valor
que posee la cadena que estamos pasando al ''printf''.
Como se puede ver en la tabla cuando se declara la matriz de caracteres se
debe usar como tamaño de las cadenas el tamaño de la cadena mas larga más uno
(esto por el caracter nulo del final), pero esto significa que las cadenas mas
cortas van a deperdiciar espacio. En el ejemplo "Juan" tiene dos posiciones en
blanco al final que están siendo desperdiciadas. Para evitar este tipo de
cosas que terminaría por desperdiciar mucha memoria en un sistema muy grande
se puede usar otro metodo para hacer declaraciones de cadenas, que sería el
siguiente:
<syntaxhighlight lang=c>
// Declaración de una tabla de nombres
char* nombre[]={"Fulano",
"Juan",
"Pedro",
"Elisa"};
</syntaxhighlight>
Esto no hace ningun cambio al uso de la tabla, pero si al concepto que usa en
su funcionamiento y en la comodidad que nos ofrece el lenguaje para la
declaración de cadenas y al mismo tiempo se evitan los desperdicios. Al
declarar una tabla de esta manera '''lo que tendremos en memoria''' será algo
como esto:
{| border=1
|-----------------
| F || u || l || a || n || o || \0
|-----------------
| J || u || a || n || \0
|-----------------
| P || e || d || r || o || \0
|-----------------
| E || l || i || s || a || \0
|}
En un caso como este el lenguaje se encarga de hacer declaraciones
individuales de cadenas o sea que aunque podamos usar los nombres de la misma
manera que en los ejemplos anteriores no tenemos el desperdicio de memoria.
-->
<noinclude>
{{Navegar|anterior=Vectores
|siguiente=Manejo de archivos
|reducido=Si
}}
</noinclude>
m52cg4zcsheld0it08w1qemh6mgqdip
Programación en Erlang
0
26894
431417
231319
2026-08-16T22:48:20Z
Antimundo
74354
Categorizar usando estantes
431417
wikitext
text/x-wiki
{{Portada libro}}
== Introducción ==
*[[/Introducción]]
== Historia ==
*[[/Historia]]
== “Hola Mundo” ==
*[[/“Hola Mundo”]]
== Diccionario de palabras reservadas ==
*[[/Diccionario de palabras reservadas]]
== Operadores y símbolos del lenguaje ==
*[[/Operadores y símbolos del lenguaje]]
== Tipos de datos fundamentales disponibles en el lenguaje ==
*[[/Tipos de datos fundamentales disponibles en el lenguaje]]
== Operaciones de entrada y salida básicas ==
*[[/Operaciones de entrada y salida básicas]]
== Tipos de datos complejos y su representación ==
*[[/Tipos de datos complejos y su representación]]
== Declaración e inicialización de variables ==
*[[/Declaración e inicialización de variables]]
== Tabla de operadores con asociatividad y precedencia ==
*[[/Tabla de operadores con asociatividad y precedencia]]
== Estructuras de decisión e iteración ==
*[[/Estructuras de decisión e iteración]]
== Iteraciones y recursiones ==
*[[/Iteraciones y recursiones]]
== Declaración, definición y uso de métodos y funciones ==
*[[/Declaración, definición y uso de métodos y funciones]]
== Implementación y uso de la Programación Orientada a Objetos ==
*[[/Manejo de excepciones]]
== Esquema de administración de memoria y separación de memoria ==
*[[/Esquema de administración de memoria y separación de memoria]]
== Implementación de corutinas ==
*[[/Implementación de corutinas]]
== Registrando el nombre de procesos ==
*[[/Registrando el nombre de procesos]]
== Manejo de excepciones ==
*[[/Manejo de excepciones]]
== Gramática en EBNF del lenguaje ==
== Características específicas del lenguaje ==
*[[/Características específicas del lenguaje]]
== Ejemplos pequeños del lenguaje ==
*[[/Ejemplos pequeños del lenguaje ]]
== Apéndice ==
*[[/Apéndice]]
== Bibliografía ==
*[[/Bibliografía]]
{{Estantes|Lenguajes de programación}}
8zpp7pwcb5vnusqmvarsi3rlwova19x
Programación en Vala
0
32072
431353
427829
2026-08-16T17:20:11Z
Antimundo
74354
Retirar categorización antigua
431353
wikitext
text/x-wiki
== Prólogo ==
Este libro pretende ser un manual de iniciación al lenguaje de programación [http://live.gnome.org/Vala Vala]. Este documento es principalmente una traducción del documento [http://live.gnome.org/Vala/Tutorial original], aunque también aportará material propio.
== Índice ==
[[File:Vala programing cover.png|250px|right]]
# [[/Introducción|Introducción]]
## [[/Introducción#¿Qué es Vala?|¿Qué es Vala?]]
## [[/Introducción#¿A quién va dirigido este libro?|¿A quién va dirigido este libro?]]
## [[/Introducción#Convenciones del lenguaje|Convenciones del lenguaje]]
# [[/Su primer programa en Vala/]]
## [[/Su primer programa en Vala#Compilado y ejecución del programa|Compilado y ejecución del programa]]
# [[/Conceptos básicos del lenguaje/]]
## [[/Conceptos básicos del lenguaje#Archivos de código y compilación|Archivos de código y compilación]]
## [[/Conceptos básicos del lenguaje#Visión general de la sintaxis|Visión general de la sintaxis]]
## [[/Conceptos básicos del lenguaje#Comentarios|Comentarios]]
## [[/Conceptos básicos del lenguaje#Tipos de datos|Tipos de datos]]
### [[/Conceptos básicos del lenguaje#Constantes|Constantes]]
### [[/Conceptos básicos del lenguaje#Tipos básicos|Tipos básicos]]
### [[/Conceptos básicos del lenguaje#Cadenas|Cadenas]]
### [[/Conceptos básicos del lenguaje#Vectores|Vectores]]
### [[/Conceptos básicos del lenguaje#Referencias|Referencias]]
### [[/Conceptos básicos del lenguaje#Conversión estática de tipos|Conversión estática de tipos]]
### [[/Conceptos básicos del lenguaje#Conversión dinámica de tipos (Inferencia)|Conversión dinámica de tipos (Inferencia)]]
## [[/Conceptos básicos del lenguaje#Operadores|Operadores]]
## [[/Conceptos básicos del lenguaje#Estructuras de control|Estructuras de control]]
### [[/Conceptos básicos del lenguaje#Bucles|Bucles]]
### [[/Conceptos básicos del lenguaje#Estructuras de control condicionales|Estructuras de control condicionales]]
## [[/Conceptos básicos del lenguaje#Elementos del lenguaje|Elementos del lenguaje]]
### [[/Conceptos básicos del lenguaje#Métodos|Métodos]]
### [[/Conceptos básicos del lenguaje#Métodos delegados|Métodos delegados]]
### [[/Conceptos básicos del lenguaje#Métodos anónimos (Clausura/Closure)|Métodos anónimos
(Clausura/Closure)]]
### [[/Conceptos básicos del lenguaje#Espacios de nombres|Espacios de nombres]]
### [[/Conceptos básicos del lenguaje#Estructuras|Estructuras]]
### [[/Conceptos básicos del lenguaje#Clases|Clases]]
### [[/Conceptos básicos del lenguaje#Interfaces|Interfaces]]
### [[/Conceptos básicos del lenguaje#Atributos del código|Atributos del código]]
# [[/Programación orientada a objetos en Vala/]]
## [[/Programación orientada a objetos en Vala#Código básico|Código básico]]
## [[/Programación orientada a objetos en Vala#Constructores|Constructores]]
## [[/Programación orientada a objetos en Vala#Destructores|Destructores]]
## [[/Programación orientada a objetos en Vala#Señales|Señales]]
## [[/Programación orientada a objetos en Vala#Propiedades|Propiedades]]
## [[/Programación orientada a objetos en Vala#Herencia|Herencia]]
## [[/Programación orientada a objetos en Vala#Clases abstractas|Clases abstractas]]
## [[/Programación orientada a objetos en Vala#Interfaces/Mixins|Interfaces/Mixins]]
## [[/Programación orientada a objetos en Vala#Polimorfismo|Polimorfismo]]
## [[/Programación orientada a objetos en Vala#Información de tipos en tiempo de ejecución|Información de tipos en tiempo de ejecución]]
## [[/Programación orientada a objetos en Vala#Conversión de tipos dinámica|Conversión de tipos dinámica]]
## [[/Programación orientada a objetos en Vala#Tipos genéricos|Tipos genéricos]]
## [[/Programación orientada a objetos en Vala#Esquema de construcción tipo GObject|Esquema de construcción tipo GObject]]
# [[/Funcionalidades avanzadas del lenguaje/]]
## [[/Funcionalidades avanzadas del lenguaje#Aserciones y Diseño por contrato|Aserciones y Diseño por contrato]]
## [[/Funcionalidades avanzadas del lenguaje#Manejo de errores|Manejo de errores]]
## [[/Funcionalidades avanzadas del lenguaje#Dirección de parámetros|Dirección de parámetros]]
## [[/Funcionalidades avanzadas del lenguaje#Colecciones|Colecciones]]
## [[/Funcionalidades avanzadas del lenguaje#Métodos con soporte de sintaxis|Métodos con soporte de sintaxis]]
## [[/Funcionalidades avanzadas del lenguaje#Multihilo|Multihilo]]
## [[/Funcionalidades avanzadas del lenguaje#El bucle principal|El bucle principal]]
## [[/Funcionalidades avanzadas del lenguaje#Métodos asíncronos|Métodos asíncronos]]
## [[/Funcionalidades avanzadas del lenguaje#Referencias débiles|Referencias débiles]]
## [[/Funcionalidades avanzadas del lenguaje#Propiedad de las referencias|Propiedad de las referencias]]
## [[/Funcionalidades avanzadas del lenguaje#Listas de parámetros de longitud variable|Listas de parámetros de longitud variable]]
## [[/Funcionalidades avanzadas del lenguaje#Punteros|Punteros]]
## [[/Funcionalidades avanzadas del lenguaje#Clases que no heredan de GLib.Object|Clases que no heredan de GLib.Object]]
# [[/Funcionalidades experimentales del lenguaje/]]
# [[/Bibliotecas del lenguaje/]]
## [[/Bibliotecas del lenguaje#Acceso a ficheros en Vala (biblioteca GIO)|Acceso a ficheros en Vala (biblioteca GIO)]]
## [[/Bibliotecas del lenguaje#Funcionalidad de redes en Vala (biblioteca GIO y SOUP)|Funcionalidad de redes en Vala (biblioteca GIO y SOUP)]]
## [[/Bibliotecas del lenguaje#Ficheros XML en Vala|Ficheros XML en Vala]]
## [[/Bibliotecas del lenguaje#Prueba unitarias en Vala|Pruebas unitarias en Vala]]
## [[/Bibliotecas del lenguaje#Desarrollo de interfaces gráficas de usuario en Vala (Gtk+)|Desarrollo de interfaces gráficas de usuario en Vala (Gtk+)]]
# [[/Herramientas/]]
## [[/Herramientas#El compilador de Vala (valac)|El compilador de Vala (valac)]]
## [[/Herramientas#Las herramientas para generar bibliotecas|Las herramientas para generar bibliotecas]]
## [[/Herramientas#Depuración de programas|Depuración de programas]]
# [[/Otras técnicas/]]
## [[/Otras técnicas#Usando toda la potencia de GLib|Usando toda la potencia de GLib]]
[[Programación en Vala/Desarrollo]]
{{Estantes|Lenguajes de programación}}
7om5l00symtwobql4e204vo9ka9b2m8
Programación en Vala/Bibliotecas del lenguaje
0
32694
431352
291175
2026-08-16T17:15:49Z
Antimundo
74354
Retirar etiquetas source obsoletas y categorizar usando AutoCat
431352
wikitext
text/x-wiki
Esta sección se encargará de describir el uso de las principales bibliotecas que se necesitan en la mayoría de los casos a la hora de desarrollar una aplicación. Sin embargo no se tratará la gran cantidad de bibliotecas que existen dentro del lenguaje de programación Vala, ya que existen diversas documentaciones sobre cada biblioteca específica. Así para consultar todas las bibliotecas que son accesibles desde el lenguaje en la actualidad se puede consultar la página de [http://valadoc.org/ documentación de vala].
== Acceso a ficheros en Vala (biblioteca GIO) ==
La biblioteca de funciones [http://library.gnome.org/devel/gio/stable/ GIO] es similar en funcionalidad al framework IO de Java. Esta biblioteca contiene objetos para el trabajo con ficheros, tanto para lectura como para escritura. Contiene dos clases base, una para lectura y otra para escritura: '''InputStream''' y '''OutputStream'''. Cuando se abre un fichero para su lectura se obtiene una referencia a un objeto de la clase '''InputStream'''.
Los flujos se pueden usar con el patrón de diseño [[:m:w:es:Decorator_(patrón_de_diseño)|decorador]] para suministrar funcionalidad adicional. Por ejemplo es posible leer el contenido de un fichero línea a línea mediante un '''DataInputStream'''. O se puede aplicar un '''FileInputStream''' para realizar algún filtrado de datos.
=== Leer un fichero línea a línea ===
El siguiente ejemplo lee el contenido de un fichero de texto línea a línea y escribe el texto por pantalla.
<syntaxhighlight lang=csharp>
static int main (string[] args) {
// Referencia a un fichero llamado 'data.txt'
var file = File.new_for_path ("data.txt");
if (!file.query_exists (null)) { // Se comprueba si el fichero existe o no
stderr.printf ("File '%s' doesn't exist.\n", file.get_path ()); // No existe y se muestra un mensaje de error
return 1;
}
try {
// Se abre un fichero para lectura y se convierte el FileInputStream en un
// DataInputStream, para que se pueda leer línea a línea
var in_stream = new DataInputStream (file.read (null));
string line;
// Se lee la línea hasta que se devuelva un null que indica que se ha llegado al final del fichero
while ((line = in_stream.read_line (null, null)) != null) {
stdout.printf ("%s\n", line);
}
} catch (Error e) { // Si se produce un error se muestra
error ("%s", e.message);
}
return 0;
}
</syntaxhighlight>
{{AutoCat}}
9yah9lfzwvvfjseiyv2863bpsv6i1bx
Fundamentos de programación/Enlaces
0
34387
431328
171405
2026-08-16T16:59:01Z
Antimundo
74354
Arreglar plantillas que traían transclusiones erróneas
431328
wikitext
text/x-wiki
==Ver también==
<!-- Busca libros de temática semejante en otros idiomas y reemplaza el enlace siguiente -->
En wikipedia:
* [[w:Java|Java]]
* [[Introducción a la Programación|Introducción a la Programación]] ''Definiciones, lo mas básico.''
* [[Programación en Lexico (POO en castellano)|Programación orientada a objetos]]
* [[Algoritmia|Algoritmia]] ''Programación avanzada.''
* [[Programación de Aplicaciones GNU|Programación de Aplicaciones GNU]]
* [[Programación en lenguaje ensamblador|Programación en lenguaje ensamblador]]
* [[Lenguaje de programación basado en pila|Programación basado en pila]]
* [[Programación en C|C]]
* [[C sharp NET|C#]]
* [[Programación en C++|C++]]
* [[Programación en Ada|Ada]]
* [[Programación en Java|Java]]
* [[Programación en JavaScript|JavaScript]]
* [[Inmersión en Python|Python]]
* [[Programación en Pascal|Pascal]] [[Aprendiendo a programar con Free Pascal I|Free Pascal I]] [[Wikichicos/Pascal para niños|Pascal para niños]]
* [[Programación en Perl|Perl]]
* [[Programación en PHP|PHP]]
* [[Programación_con_Qt4|Qt4]]
* [[Programación_en_Delphi|Delphi]]
* [[Programación en LISP|LISP]]
* [[El Manual de BASH Scripting Básico para Principiantes|GNU/BASH -- UNIX Shell Scripting]]
* [[MySQL|MySQL]]
* [[Matlab]]
* [[Gambas|Gambas]]
* [[Programación en Visual basic|Visual basic]]
*[[Visual Basic|Visual Basic]]
* [[Manual de programación de OS/2|OS/2]]
* [[Lenguaje XHTML|XHTML]]
* [[Sistemas operativos/Lenguajes|Sistemas operativos]]
* [[Manual del estudiante de Ingeniería en Sistemas de UTN/Investigación Operativa/Programación Lineal|Manual del estudiante de Ingeniería en Sistemas de UTN]]
lx8ezc12k30orbv8v2zg90pjlza1k97
431337
431328
2026-08-16T17:07:40Z
Antimundo
74354
Actualizar nombre de libro
431337
wikitext
text/x-wiki
==Ver también==
<!-- Busca libros de temática semejante en otros idiomas y reemplaza el enlace siguiente -->
En wikipedia:
* [[w:Java|Java]]
* [[Introducción a la Programación|Introducción a la Programación]] ''Definiciones, lo mas básico.''
* [[Programación en Lexico (POO en castellano)|Programación orientada a objetos]]
* [[Algoritmia|Algoritmia]] ''Programación avanzada.''
* [[Programación de Aplicaciones GNU|Programación de Aplicaciones GNU]]
* [[Programación en lenguaje ensamblador|Programación en lenguaje ensamblador]]
* [[Lenguaje de programación basado en pila|Programación basado en pila]]
* [[Programación en C|C]]
* [[C sharp NET|C#]]
* [[Programación en C++|C++]]
* [[Programación en Ada|Ada]]
* [[Programación en Java|Java]]
* [[Programación en JavaScript|JavaScript]]
* [[Inmersión en Python|Python]]
* [[Programación en Pascal|Pascal]] [[Aprendiendo a programar con Free Pascal|Free Pascal]] [[Wikichicos/Pascal para niños|Pascal para niños]]
* [[Programación en Perl|Perl]]
* [[Programación en PHP|PHP]]
* [[Programación_con_Qt4|Qt4]]
* [[Programación_en_Delphi|Delphi]]
* [[Programación en LISP|LISP]]
* [[El Manual de BASH Scripting Básico para Principiantes|GNU/BASH -- UNIX Shell Scripting]]
* [[MySQL|MySQL]]
* [[Matlab]]
* [[Gambas|Gambas]]
* [[Programación en Visual basic|Visual basic]]
*[[Visual Basic|Visual Basic]]
* [[Manual de programación de OS/2|OS/2]]
* [[Lenguaje XHTML|XHTML]]
* [[Sistemas operativos/Lenguajes|Sistemas operativos]]
* [[Manual del estudiante de Ingeniería en Sistemas de UTN/Investigación Operativa/Programación Lineal|Manual del estudiante de Ingeniería en Sistemas de UTN]]
6ipx5r034v71eahafton61xi3fhx79b
Teoría de la relatividad para aficionados/Introducción
0
35215
431426
428086
2026-08-17T04:43:50Z
Mazbel
57931
{{+IndiceSección}}
431426
wikitext
text/x-wiki
<noinclude>{{+ÍndiceSección}}</noinclude>
Como indica el título de este wikilibro, las siguientes líneas intentarán explicar de forma sencilla y didáctica la teoría de la relatividad enunciada por [[w:Albert Einstein|Einstein]], sin abordar las ecuaciones.
Se empezará con una descripción de la relatividad galileana, más fácil de entender, ya que se observa en la vida cotidiana.
Luego los motivos que llevaron a la formulación de la [[w:Teoría de la Relatividad Especial|Teoría de la Relatividad Especial]] (T.R.E.) y las personas que trataron de dar una explicación.
Se dará un vistazo de las teorías alternativas a ésta y después la explicación de lleno de la (T.R.E.) y la [[w:Teoría de la Relatividad General|Teoría de la Relatividad General]].
Ya que se trata de un wikilibro, siéntase libre de editarlo si advierte faltas de ortografía, o gramaticales, expresiones difíciles de entender, etcétera. Además, si cree que se necesita otra organización, tiene permiso para realizar los cambios que considere necesarios. Pero recuerde que son varios los editores. No haga algo que pueda considerarse inapropiado, como texto fuera de lugar o contexto, una completa reedición del libro o cosas por el estilo.
{{AutoCat}}
a5eu8sornzoyssbple3lonjz1celpsf
431427
431426
2026-08-17T04:44:17Z
Mazbel
57931
Se ha deshecho la revisión [[Special:Diff/431426|431426]] de [[Special:Contributions/Mazbel|Mazbel]] ([[User talk:Mazbel|disc.]]) No está separado por subpáginas
431427
wikitext
text/x-wiki
Como indica el título de este wikilibro, las siguientes líneas intentarán explicar de forma sencilla y didáctica la teoría de la relatividad enunciada por [[w:Albert Einstein|Einstein]], sin abordar las ecuaciones.
Se empezará con una descripción de la relatividad galileana, más fácil de entender, ya que se observa en la vida cotidiana.
Luego los motivos que llevaron a la formulación de la [[w:Teoría de la Relatividad Especial|Teoría de la Relatividad Especial]] (T.R.E.) y las personas que trataron de dar una explicación.
Se dará un vistazo de las teorías alternativas a ésta y después la explicación de lleno de la (T.R.E.) y la [[w:Teoría de la Relatividad General|Teoría de la Relatividad General]].
Ya que se trata de un wikilibro, siéntase libre de editarlo si advierte faltas de ortografía, o gramaticales, expresiones difíciles de entender, etcétera. Además, si cree que se necesita otra organización, tiene permiso para realizar los cambios que considere necesarios. Pero recuerde que son varios los editores. No haga algo que pueda considerarse inapropiado, como texto fuera de lugar o contexto, una completa reedición del libro o cosas por el estilo.
{{AutoCat}}
7jxdknpxph4t6yuke2u8yuvj7gvhcmz
Programación en Verilog
0
35222
431349
244419
2026-08-16T17:13:11Z
Antimundo
74354
Categorizar usando estantes
431349
wikitext
text/x-wiki
{{Portada libro}}
== Índice de contenidos ==
#[[/Introducción|Introducción]] {{Desarrollo|75%|17:59 20 oct 2011 (UTC)}}
#[[/Elementos básicos del lenguaje|Capítulo 1: Elementos básicos del lenguaje]]{{Desarrollo|100%|19:58 26 oct 2011 (UTC)}}
#[[/Módulos|Capítulo 2: Módulos]] {{desarrollo|100%|19:39 28 oct 2011 (UTC)}}
##[[/Módulos#Características|Características]] {{desarrollo|100%|02:13 31 oct 2011 (UTC)}}
##[[/Módulos#Estructura|Estructura]] {{desarrollo|100%|02:13 31 oct 2011 (UTC)}}
##[[/Módulos#Asignaciones|Asignaciones]] {{desarrollo|100%|02:13 31 oct 2011 (UTC)}}
##[[/Módulos#Temporizaciones|Temporizaciones]] {{desarrollo|100%|02:13 31 oct 2011 (UTC)}}
##[[/Módulos#Eventos|Eventos]] {{desarrollo|100%|02:13 31 oct 2011 (UTC)}}
##[[/Módulos#Parámetros|Parámetros]] {{desarrollo|100%|02:13 31 oct 2011 (UTC)}}
#[[/Jerarquía|Capítulo 3: Jerarquía]] {{desarrollo|100%|12:17 31 oct 2011 (UTC)}}
#[[/Funciones y Tareas|Capítulo 4: Funciones y Tareas]] {{desarrollo|100%|19:39 28 oct 2011 (UTC)}}
#[[/Sintetizabilidad|Capítulo 5: Sintetizabilidad]] {{desarrollo|100%|19:39 28 oct 2011 (UTC)}}
#[[/Máquinas de estado|Capítulo 6: Máquinas de estado]] {{desarrollo|100%|19:39 28 oct 2011 (UTC)}}
#[[/Directivas para el compilador|Capítulo 7: Directivas para el compilador]] {{desarrollo|100%|19:39 28 oct 2011 (UTC)}}
#[[/Testbench|Capítulo 8: Testbench]] {{desarrollo|75%|19:39 28 oct 2011 (UTC)}}
#[[/Ejemplos|Capítulo 9: Ejemplos]] {{desarrollo|75%|19:39 28 oct 2011 (UTC)}}
##[[/Ejemplos#Multiplexor|Multiplexor]] {{desarrollo|100%|16:01 1 nov 2011 (UTC)}}
##[[/Ejemplos#De-Multiplexor|De-Multiplexor]] {{desarrollo|100%|16:01 1 nov 2011 (UTC)}}
##[[/Ejemplos#Registro de desplazamiento|Registro de desplazamiento]] {{desarrollo|100%|16:01 1 nov 2011 (UTC)}}
##[[/Ejemplos#Contador|Contador]] {{desarrollo|100%|16:01 1 nov 2011 (UTC)}}
[[/Bibliografía|Bibliografía]]
[[Categoría:Electricidad y Electrónica]]
{{Estantes|Lenguajes de programación}}
fasfclojj3ztpozkqzl95vyrohox81y
Programación en Verilog/Introducción
0
35246
431338
212023
2026-08-16T17:09:31Z
Antimundo
74354
Categorizar usando AutoCat
431338
wikitext
text/x-wiki
{{Navegador|libro=Programación en Verilog
|actual=Introducción
|anterior=
|siguiente=Elementos básicos del lenguaje
}}
__TOC__
==Introducción==
''Verilog'' es un lenguaje de descripción hardware (HDL: Hardware Description Language) utilizado para describir sistemas digitales, tales como procesadores, memorias o elementos más simples como son los flip-flops. Esto significa que un lenguaje de este tipo puede utilizarse para describir cualquier hardware (digital) a cualquier nivel. Estos sistemas se pueden describir de las dos siguientes formas:
* '''Nivel estructural''': Se utilizan elementos previamente creados, por el propio desarrollador o por terceros, donde cada elemento se interconecta con otro. Es decir, se conectan varios bloques cuya funcionalidad es pequeña para que comunicándolos entre si realicen una tarea mayor.
* '''Nivel de comportamiento''': El diseñador describe la transferancia de información entre registros.
Estos dos niveles de descripción pueden mezclarse, dando diseños mixtos. Aunque existen multitud de lenguajes HDL, tan sólo en la actualidad se utilizan dos de ellos: Verilog y VHDL, los cuales son estándares de la IEEE.
Verilog nació en 1985 como un lenguaje propietario, pero en 1990 dicho lenguaje se convirtió de dominio público, permitiendo a las empresas hacer uso del mismo, con el fin de aumentar la difusión del lenguaje.
==Niveles de abstracción==
Verilog soporta el diseño de un circuito a diferentes niveles de abstracción, de los cuales caben destacar tres de ellos: nivel de puerta, nivel RTL y nivel de comportamiento.
===Nivel de puerta===
Corresponde a una descripción a bajo nivel, también se denomina modelo estructural. El diseño es descrito mediante primitivas lógicas (AND, OR, ...), conexiones y añadiendo distintas propiedades de tiempo. Estas señales pueden tomar los valores '0', '1', 'X' o 'Z' (siendo 'X' el estado indefinido y 'Z' el de alta impedancia). A continuación, se muestra un ejemplo de este tipo de nivel.
----
<source lang=verilog>
module mux(f, a, b, sel);
input a, b, sel;
output f;
and #5 g1(f1, a, nsel);
g2(f2, b, sel);
or #5 g3(f, f1, f2);
not g4(nsel, sel);
endmodule
</source>
----
===Nivel RTL===
También denominado nivel de transferencia de registro. Los diseños descritos en este nivel especifican las características de un circuito mediante operaciones y transferencia de datos. Los circuitos diseñados en este nivel tienen la propiedad de ser sintetizables, por tanto, todo código sintetizable es código RTL. A continuación se muestra un ejemplo de este tipo de nivel.
----
<source lang=verilog>
module flipflop(d, clk, q, q_bar);
input d, clk;
output q, q_bar;
reg q, q_bar;
always@(posedge clk)
begin
q <= #1 d;
q_bar <= #1 !d;
end
endmodule
</source>
----
===Nivel de comportamiento===
La principal característica de este nivel es su total independencia de la estructura del diseño. En este nivel, el diseñador define el comportamiento del circuito, definiéndonos mediante algoritmos en paralelo. Cada uno de los algoritmos están formados por un conjunto de instrucciones que se ejecutan de forma secuencial. En ocasiones es posible utilizar código no sintetizable con el fin de realizar los denominados ''testbenches''. Seguidamente se muestra un ejemplo de este nivel.
----
<source lang=verilog>
module (clk, A, B, C, D);
input clk, A, B;
output C, D;
reg C;
always@(C)
begin
D <= C + 10;
end
always@(posedge clk)
begin
C <= A + B;
end
endmodule
</source>
----
{{Navegador|libro=Programación en Verilog
|actual=Introducción
|anterior=
|siguiente=Elementos básicos del lenguaje
}}
{{AutoCat}}
cragwg5a34osh2556ei62hdzdfyg5jg
Programación en Verilog/Elementos básicos del lenguaje
0
35247
431340
408639
2026-08-16T17:10:39Z
Antimundo
74354
Categorizar usando AutoCat
431340
wikitext
text/x-wiki
{{Navegador|libro=Programación en Verilog
|actual=Elementos básicos del lenguaje
|anterior=Introducción
|siguiente=Módulos
}}
__TOC__
Antes de comenzar es preciso conocer algunos elementos básicos del lenguaje Verilog.
==Comentarios==
Los comentarios van precedidos de los caracteres //, cuya información hasta el final de la línea es ignorado. También, pueden ir entre /* y */, donde la información entre estos caracteres es ignorada, la diferencia con la anterior alternativa, es que en esta segunda puede haber más de una línea. Ejemplos:
----
<source lang=verilog>
// Esto es un comentario de una linea
/* Esto es un comentario
de varias lineas */
</source>
----
==Identificadores==
Un identificador esta formado por una letra o "_" seguido de letras, números y los caracteres "$" o "_". Este lenguaje si distingue entre mayúsculas y minúsculas.
----
<source lang=verilog>
reg A;
reg A0;
reg data_i;
</source>
----
==Números==
Los números en Verilog pueden especificarse en decimal, hexadecimal, octal o binario. Los números negativos se representan en complemento a2 y el carácter "_" puede utilizarse para una representación más clara del número. La sintaxis para la representación de un número es la siguiente.
<TAMAÑO> <BASE> <VALOR>
* '''Tamaño:''' es el número de bits expresado en decimal de la cantidad que viene a continuación. Este dato es opcional, en caso de no darse, por defecto el valor es de 32 bits.
* '''Base:''' indica la base en la que se va a expresar el valor. Es opcional, por defecto es decimal.
''''b''' Base binaria
''''d''' Base decimal
''''h''' Base hexadecimal
''''o''' Base octal
* '''Valor:''' Verilog tiene 4 valores que cualquier señal puede tomar:
{| class=wikitable width= 90% style="text-align:center; margin: 1em auto 1em auto"
|-
!Valor!!Significado
|-
|width=70|'''<tt>0</tt>'''
|style="text-align:left"|Un valor binario de cero. Corresponde a cero voltios.
|-
|'''<tt>1</tt>'''
|style="text-align:left"|Un valor binario de 1. Dependiendo de la tecnología de fabricación, puede corresponder a +5V, +3.3V, o algún otro valor positivo.
|-
|'''<tt>x</tt>'''
|style="text-align:left"|Un valor cualquiera. los valores <tt>x</tt> no son ni 0 o 1, y debería ser tratado como un valor desconocido.
|-
|'''<tt>z</tt>'''
|style="text-align:left"|Un valor de alta impedancia de un buffer de tres estados cuando la señal de control no está definida. Corresponde a un wire que no está conectado, o está flotando.
|}
A continuación, se muestra una serie de ejemplos.
----
<source lang=verilog>
187 // Numero decimal (Utilizado 32 bits)
8'h0a // Numero hexadecimal (Almacenado 00001010)
3'b1 // Numero binario 3 bits (Almacenado 001)
'o73 // Numero octal (Utilizado 32 bits)
2'b1x // Numero de 2 bits (Almacenado 1x)
4'bz // Numero de 4 bits en alta impedancia (Almacenado zzzz)
-4'b10 // Numero binario de 4 bits complemento a2 de 10 (Almacenado 1110)
'b1000_0001 // Numero binario de 8 bits (Utilizado 32 bits)
6'hCA // Numero hexadecimal de 6 bits (Almacenado 001010)
</source>
----
==Tipos de datos==
Fundamentalmente existen dos tipos de datos: reg y wire. La sintaxis para declarar esta variables es la siguiente.
<TIPO> [<MSB> : <LSB>] <NOMBRE>;
* '''Tipo''': existen varios tipos de variables, aunque las más destacadas son reg ywire.
'''reg''': Representan variables con capacidad de almacenar información.
'''wire''': Representan conexiones estructurales entre componentes. No tienen capacidad de almacenamiento.
'''integer''': Registro de 32 bits.
'''real''' Registro capaz de almacenar números en coma flotante
'''time''': Registro sin signo de 64 bits.
* '''MSB''' y '''LSB''': Por defecto estas las variables son de un sólo bit, aunque es posible definir vectores de bits.
* '''Nombre''': Indica el nombre de la variable.
A continuación, se muestran varios ejemplos de variables.
----
<source lang=verilog>
reg[5:0] data; // Registro de 6 bits, donde data[0] es el bit menos significativo
wire outA; // Net de un bit
integer numA; // Registro de 32 bits
reg[31:0] numB; // Registro de 32 bits
</source>
----
==Operadores==
Los operadores que proporciona el lenguaje son:
===Tipos de operadores===
====Binarios aritméticos====
El operador aparece entre dos operandos. Si algún bit es 'X' el resultado es 'X'.
*'''+''' (suma o signo positivo): Sirve para indicar una suma entre dos números. También puede actuar como símbolo si se sitúa delante de una expresión.
----
<source lang=verilog>
// B: 4'b1000 C: 4'b10
A = B + C;
D = +8'h01;
// Resultado A: 4'b1010
// Resultado D: 8'h01
</source>
----
*'''-''' (resta o signo negativo): Sirve para indicar la resta entre dos números. Si va delante de una expresión modifica el signo de la expresión.
----
<source lang=verilog>
// B: 4'b1000 C: 4'b10
A = B - C;
D = -8'h01;
// Resultado A: 4'b110
// Resultado D: 8'hFF (complemento a2 de 1)
</source>
----
*'''*''' (multiplicación): Multiplica dos números de cualquier tipo.
----
<source lang=verilog>
// B: 4'b0100 C: 4'b10
A = B * C;
// Resultado A: 4'b1000
</source>
----
*'''/''' (división): Divide dos números de cualquier tipo.
----
<source lang=verilog>
// B: 4'b1000 C: 4'b10
A = B / C;
// Resultado A: 4'b100
</source>
----
*'''%''' (resto): Obtiene el resto de la división de dos números de cualquier tipo.
----
<source lang=verilog>
// B: 4'b1000 C: 4'b10
A = B % C;
// Resultado A: 4'b0
</source>
----
====Igualdad====
Permiten comparar dos operandos, retornando 1 ó 0, verdadero o falso respectivamente.
*'''==''', '''!=''' (igualdad): El primero devuelve verdadero si los operando son iguales y falso en caso contrario. El segundo indica desigualdad, funcionando al revés que el anterior. Si algún bit es 'X' el resultado también será 'X'.
----
<source lang=verilog>
// A: 4'b1110 B: 4'b1101
if (B != A)...
// Resultado: true
</source>
----
*'''===''', '''!==''' (igualdad): Su funcionalidad es idéntica a la anterior, pero difiere en también se comparan los valores indefinidos ('X') o de alta impedancia ('Z').
----
<source lang=verilog>
// A: 4'b11X0 B: 4'b11X0
if (B === A)...
// Resultado: true
</source>
----
====Relacionales====
Permiten comparar dos operandos, retornando 1 ó 0, verdadero o falso respectivamente. Si algún bit es 'X' el resultado también será 'X'.
*'''>''', '''>=''', '''<''', '''<=''' (menor mayor): Poseen el significado habitual (mayor que, mayor o igual que, menor que, menor o igual que, respectivamente).
----
<source lang=verilog>
// A: 4'b1110 B: 4'b1101
if (B > A)...
// Resultado: false
</source>
----
====Lógicos====
Aparece entre dos operandos lógicos y proporciona un valor lógico (verdadero o falso).
*'''!''' (negación): Cambia el valor lógico del operando que va justo detrás del operador.
----
<source lang=verilog>
// A: true
if (!A) ...
// Resultado: false
</source>
----
*'''&&''' (y lógica): El resultado será la combinación de los dos operandos lógicos. Es decir, para que el valor sea verdadero, ambos operandos deben serlo, en caso contrario el resultado será falso.
----
<source lang=verilog>
// A: true B: false
if (A && B) ...
// Resultado: false
</source>
----
*'''||''' (o logica): El resultado será la combinación de los dos operandos lógicos. Para que el resultado sea verdadero, bastará con que uno de los operandos lo sea.
----
<source lang=verilog>
// A: true B: false
if (A || B) ...
// Resultado: true
</source>
----
====Lógica de bit====
Permite efectuar operaciones lógicas con los bits de los operandos.
*'''~''' (negación): Negación bit a bit.
----
<source lang=verilog>
// B: 4'b1110
A = ~B;
// Resultado A: 4'b1
</source>
----
*'''&''' (AND): AND bit a bit.
----
<source lang=verilog>
// B: 4'b1110 C: 4'b1101
A = B & C;
// Resultado A: 4'b1100
</source>
----
*'''|''' (OR): OR bit a bit.
----
<source lang=verilog>
// B: 4'b1110 C: 4'b1101
A = B | C;
// Resultado A: 4'b1111
</source>
----
*'''^''' (XOR): XOR bit a bit.
----
<source lang=verilog>
// B: 4'b1110 C: 4'b1101
A = B ^ C;
// Resultado A: 4'b0011
</source>
----
*'''~&''' (NAND): NAND bit a bit.
----
<source lang=verilog>
// B: 4'b1110 C: 4'b1101
A = B ~& C;
// Resultado A: 4'b1100
</source>
----
*'''~|''' (NOR): NOR bit a bit.
----
<source lang=verilog>
// B: 4'b1110 C: 4'b1101
A = B ~| C;
// Resultado A: 4'b0
</source>
----
*'''~^''' (NOT XOR): NOT XOR bit a bit. También puede ser '''^~'''.
----
<source lang=verilog>
// B: 4'b1110 C: 4'b1101
A = B ~^ C;
// Resultado A: 4'b0011
</source>
----
====Lógica de reducción====
El resultado de aplicar este operando al único argumento es un sólo bit.
*'''&''' (AND): Se realiza un AND de todos los bits.
----
<source lang=verilog>
// B: 4'b1110
A = &B;
// Resultado A: 0
</source>
----
*'''|''' (OR): Se realiza un OR de cada uno de los bits del operando.
----
<source lang=verilog>
// B: 4'b1110
A = |B;
// Resultado A: 1
</source>
----
*'''^''' (XOR): Se realiza un XOR de cada bit.
----
<source lang=verilog>
// B: 4'b1110
A = ^B;
// Resultado A: 1
</source>
----
*'''~&''' (NAND): Se realiza un NAND de todos los bits.
----
<source lang=verilog>
// B: 4'b1110
A = ~&B;
// Resultado A: 1
</source>
----
*'''~|''' (OR): Se realiza un NOR de cada uno de los bits del operando.
----
<source lang=verilog>
// B: 4'b1110
A = ~|B;
// Resultado A: 0
</source>
----
*'''~^''' (XOR): Se realiza un NOT XOR de cada bit. También puede ser '''^~'''.
----
<source lang=verilog>
// B: 4'b1110
A = ~^B;
// Resultado A: 0
</source>
----
====Otros====
*'''{,}''' (Concatenación): Concatenación de dos operandos.
----
<source lang=verilog>
// B: 4'b110 C: 4'b10
A = {B, C};
D = {2{B}};
E = {B, c[1:0]};
// Resultado A: 8'b110_0010
// Resultado D: 8'b110_0110
// Resultado E: 6'b110_10
</source>
----
*'''<<''' (Desplazamiento izquierda): Desplaza bits a la izquierda, añadiendo ceros.
----
<source lang=verilog>
// A: 8'b1110_1101
A << 2;
// Resultado A: 8'b1011_0100
</source>
----
*'''>>''' (Desplazamiento derecha): Desplaza bits a la derecha, añadiendo ceros.
----
<source lang=verilog>
// A: 8'b1110_1101
A >> 3;
// Resultado A: 8'b0001_1101
</source>
----
*'''?:''' (Condicional): Dependiendo del resultado lógico (verdadero o falso) se devolverá un valor u otro.
----
<source lang=verilog>
// A: 1'b1 B: 3'b111 C: 3'b001
A == 1? B : C;
// Resultado A: 3'b111
</source>
----
===Precedencia de operadores===
El orden de precedencia de los diferentes operadores es el siguiente.
1. Unarios, multiplicación, división y módulo
+, -, *, /, %
2. Suma, resta y desplazamientos
+, -, >>, <<
3. Relación e igualdad
<, >, <=, >=, ==, !=, ===, !===
4. Reducción
&, !&, ^, ~^, |, ~|
5. Lógicos
&&, ||
6. Condicional
?:
{{Navegador|libro=Programación en Verilog
|actual=Elementos básicos del lenguaje
|anterior=Introducción
|siguiente=Módulos
}}
{{AutoCat}}
fph3ev466s48nkt0c0wra4xo1lyjdtl
Programación en Verilog/Módulos
0
35256
431339
409131
2026-08-16T17:09:57Z
Antimundo
74354
Categorizar usando AutoCat
431339
wikitext
text/x-wiki
{{Navegador|libro=Programación en Verilog
|actual=Módulos
|anterior=Elementos básicos del lenguaje
|siguiente=Jerarquía
}}
__TOC__
==Características==
Las características principales de los módulos se pueden recoger en los siguientes puntos.
* Cada módulo dispone de una serie de entradas y salidas, por las cuales se puede interconectar otros módulos, aunque puede no tener entradas ni salidas, como es el caso de los testbenches.
* No existen variables globales.
* Fuera de los módulos solo hay directivas del compilador, que afectarán a partir del punto en donde aparecen.
* A pesar de que se pueden realizar varias simulaciones concurrentes, en general se suele tener un único módulo que emplea los módulos previamente definidos.
* Cada módulo puede describirse de forma arquitectural o de comportamiento.
==Estructura==
En Verilog un sistema digital esta compuesto por la interconexión de un conjunto de módulos. La estructura general de estos módulos es la siguiente.
'''module''' <nombre> (<señales>);
<declaración de señales>
<funcionalidad del módulo>
'''endmodule'''
A continuación, se muestra un ejemplo de un módulo que suma un array de 3 bits indicando si hay acarreo o no.
----
<source lang=verilog>
module sum(A, B, R, C);
input [2:0] A, B;
output [2:0] R;
output C;
reg [2:0] R;
reg C;
always @(A or B)
begin
{C,R} = A + B;
end
endmodule
</source>
----
===Interfaz del módulo===
Los argumentos del módulo pueden ser de tres tipos, estos argumentos comunicarán el interior o funcionalidad del módulo con otros elementos del propio diseño.
* ''input'': Entradas del módulo, cuyo tipo son wire.
* ''output'': Salidas del módulo. Dependiendo del tipo de asignación que las genere serán wire si proceden de una asignación continua y reg si proceden de una asignación procedural.
* ''inout'': Son a la vez entradas y salidas. Únicamente, son de tipo wire.
===Procesos===
Uno de los aspectos que diferencian Verilog de los lenguajes procedurales como es el lenguaje c, es la posibilidad de ejecutar en paralelo varios procesos, aspecto que es fundamental en el lenguaje. Cada proceso se ejecuta de forma secuencial, es decir se ejecuta cada línea del proceso según su orden de precedencia.
Toda la descripción del comportamiento en Verilog debe declararse dentro de un proceso, estos pueden ser de dos tipos: ''initial'' o ''always''.
* ''Initial'': Este tipo de procesos se ejecuta sólo una vez comenzando su ejecución al inicio, y por tanto no existen retardos. Este proceso no es sintetizable, es decir, no puede ser utilizado en una descripción RTL. Su uso esta justificado en los testbenches, para la verificación de los distintos diseños.
'''initial'''
'''begin'''
..... // Sentencias
'''end'''
A continuación se muestra un ejemplo de este tipo de procesos.
----
<source lang=verilog>
initial
begin
clk = 0;
rst = 0;
enable = 0;
data = 0;
end
</source>
----
* ''Always'': Este tipo de procesos se ejecuta continuamente a modo de bucle, y como su propio nombre indica, está continuamente ejecutándose. Este proceso si que es sintetizable y es controlada por la temporización o por eventos. Si dicho bloque se ejecuta por más de un evento, dicho conjunto se denomina ''lista sensible''. La sintaxis de este proceso es la siguiente.
'''always''' [<temporizacion> | <@(lista sensible>]
'''begin'''
..... // Sentencias
'''end'''
El siguiente código muestra un ejemplo de los procesos ''always''.
----
<source lang=verilog>
always @(a or b or sel)
begin
if (sel == 1)
y = a;
else
y = b;
end
</source>
----
Si el proceso engloba más de una asignación procedural o más de una estructura de control, estas deben estar contenidas en un bloque delimitado entre las palabras reservadas begin y end. Es decir, en el ejemplo no es necesario incluir estas palabras.
Otro ejemplo de los procesos ''always'' es el siguiente, donde no existe una lista de sensibilidad.
----
<source lang=verilog>
always
begin
# (10) clk = 0;
# (10) clk = 1;
end
</source>
----
En este proceso pasadas 10 unidades de tiempo se asigna a 0 la variable ''clk'', después de otras 10 unidades se asigna a 1, comenzando de nuevo esta ejecución.
===Estructuras de control===
Verilog dispone de una elevada cantidad de estructuras de control, similares a las disponibles en otros lenguajes de programación. A continuación, se enumeran las estructuras que pueden ser utilizadas.
====if - else====
La sentencia condicional '''if-else''' controla la ejecución de otras sentencias y/o asignaciones. En caso de haber múltiples sentencias o asignaciones es necesario hacer uso del bloque '''begin-end'''. La sintaxis de esta estructura es la siguiente.
'''if''' (''expresion'')
'''begin'''
''Sentencias 1;''
'''end'''
'''else'''
'''begin'''
''Sentencias 2;''
'''end'''
Si la expresión es cierta se ejecutan las ''Sentencias 1'', en caso contrario se ejecutan las ''Sentencias 2''. Un ejemplo puede ser el siguiente.
----
<source lang=verilog>
// sel: 1'b1
if (sel == 1)
A = 4'b1010;
else
A = 4'b0101;
// Resultado A: 4'b1010
</source>
----
====Case====
La sentencia ''case'' evalúa una expresión y en función de su valor ejecutará la sentencia o grupo de sentencias agrupadas en el primer caso que coincida. Si existen varias sentencias se deben agrupar en un bloque '''begin-end'''. Si no se cubren todos los posibles valores se debe hacer uso del caso por defecto, denominado default, el cual se ejecutará cuando ninguno de los casos anteriores se cumplan. La sintaxis de esta estructura es la siguiente.
'''case''' (''expresion'')
'''caso 1''':
'''begin'''
''Sentencias 1;''
'''end'''
'''caso 2''':
'''begin'''
''Sentencias 2;''
'''end'''
.....
'''default''':
'''begin'''
''Sentencias D;''
'''end'''
'''endcase'''
A continuación se detalla un ejemplo, donde dependiendo del valor que tome la expresión se asignará a la variable A un valor.
----
<source lang=verilog>
// sel: 2'b01
case (sel)
2'b00: A = 4'b0011;
2'b01: A = 4'b1100;
default: A = 4'b1111;
endcase
// Resultado A: 4'b1100
</source>
----
====Casez y Casex====
Estas estructuras corresponden a versiones especiales del case, cuya particularidad radica en que los valores lógicos 'X' y 'Z' se tratan como indiferentes.
* ''casez'': Usa el valor 'Z' como indiferente.
* ''casex'': Toma como indiferentes los valores lógicos 'Z' y 'X'.
Un ejemplo del tipo de la estructura ''casez'' se muestra en las siguientes líneas.
----
<source lang=verilog>
// sel: 3'b101
casez (sel)
3'b1zz: A = 4'b0011; // Se ejecuta siempre que el primer bit sea 1
3'b01?: A = 4'b1100; // ? significa indiferente
default: A = 4'b1111;
endcase
// Resultado A: 4'b11
</source>
----
Otro ejemplo para el tipo ''casex'' sería el siguiente.
----
<source lang=verilog>
// sel: 3'bz01
casex (sel)
3'b10X: A = 4'b0011; // X significa cualquier valor
3'bX0?: A = 4'b1100; // ? significa indiferente
default: A = 4'b1111;
endcase
// Resultado A: 4'b1100
</source>
----
====For====
El bucle ''for'' es idéntico a los utilizados en otros lenguajes de programación, como en los anteriores pasos si existen varias sentencias se deben incluir dentro del bloque '''begin-end'''. Su sintaxis es la siguiente.
'''for''' (<''valor inicial''>, ''expresion'', <''incremento''>)
'''begin'''
''Sentencias;''
'''end'''
Un ejemplo de esta estructura es la siguiente.
----
<source lang=verilog>
for(i=0; i<64; i=i+1)
begin
A[i] = i;
B[i] = 0;
end
</source>
----
====While====
El bucle ''while'' se ejecuta mientras la condición que evalúa sea cierta. Su sintaxis es la siguiente.
'''while''' (<''expresion''>)
'''begin'''
''Sentencias'';
'''end'''
A continuación se muestra un ejemplo de este tipo de bucle.
----
<source lang=verilog>
while (data != 4'b0101)
begin
A = A + 1;
if (data[0] == 1'b0)
B = C;
else
B = D;
end
</source>
----
====Repeat====
EL bucle ''repeat'' se ejecuta un determinado número de veces, siendo este número la condición de salida del bucle. SU sintaxis es la que se muestra en las siguientes líneas.
'''repeat''' (<''numero''>)
'''begin'''
''Sentencias'';
'''end'''
A continuación se muestra un ejemplo del bucle ''repeat'', el cual se repetirá 9 veces.
----
<source lang=verilog>
repeat (9)
begin
tmp = data[0];
data = {data << 1, tmp};
end
</source>
----
====Forever====
El bucle forever se ejecuta de forma continua sin condición de finalización. Su sintaxis es la siguiente.
'''forever'''
'''begin'''
''Sentencias'';
'''end'''
Un ejemplo de este bucle podría ser el siguiente
----
<source lang=verilog>
forever
# 5 clk = !clk;
</source>
----
====Wait====
La ejecución de un bloque se realiza de forma continuada, como si de un bucle infinito se tratara (se ejecutan todas las sentencias y se vuelven a repetir). Sería interesante poder parar la ejecución. Una forma de hacerlo e mediante las listas de sensibilidad y la otra forma de hacerlo es mediante la sentencia '''wait'''. Su sintaxis es la siguiente.
'''wait''' (''expresion'');
Un ejemplo de '''wait''' podría ser el siguiente
----
<source lang=verilog>
initial
begin
A = 1;
wait(B == 1);
A = 0;
end
</source>
----
==Asignaciones==
Existen dos maneras de asignar valores en ''Verilog'', de forma '''continua''' o '''procedural'''.
===Asignación continua===
La ''asignación continua'' se utiliza exclusivamente para modelar lógica combinacional, donde no se necesita de una lista de sensibilidad para realizar la asignación. La variable a la que se realiza la asignación continua sólo puede ser declarada de tipo ''net'', es decir ''wire''. Y la asignación sólo puede ser declarada fuera de cualquier proceso y nunca dentro de bloques ''always'' o ''initial''. La sintaxis es la siguiente.
'''assign''' ''variable'' <''#delay''> '''=''' ''asignación''
Un ejemplo de la ''asignación continua'' podría ser el siguiente.
----
<source lang=verilog>
assign A = B & C;
</source>
----
En el ejemplo no se ha añadido una temporización en la asignación, por lo tanto en cada ciclo se revisará dicha sentencia. Estas asignaciones también se ejecutan de forma secuencial las cuales se pueden controlar mediante la temporización.
===Asignación procedural===
La ''asignación procedural'' es la que se ha visto hasta el momento, donde a las variables se le asigna un valor dentro de un proceso ''always'' o ''initial'', el tipo de variable a la que se le asigna el valor puede ser de cualquier tipo. Su sintaxis es la siguiente.
<''#delay''> '''variable =''' ''asignación''
Un ejemplo de esta asignación es el siguiente.
----
<source lang=verilog>
A = B & C;
</source>
----
==Temporizaciones==
Las temporizaciones se consiguen mediante el uso de retardos. El retardo se especifica mediante el símbolo # seguido de las unidades de tiempo del retardo. Un ejemplo podría se el siguiente, donde en el instante 0 se ejecutan las dos primeras sentencias, cinco unidades de tiempo más tarde se realiza la tercera asignación y cuatro más tarde se ejecutan las dos últimas.
----
<source lang=verilog>
initial
begin
clk = 0;
rst = 0;
#5 rst = 1;
#4 clk = 1;
rst = 0;
end
</source>
----
En las temporizaciones caben destacar dos tipos de asignaciones procedurales.
* ''Con bloqueo'': La asignación se realiza antes de proceder con la siguiente.
* ''Sin bloqueo'': El término se evalúa en el instante actual, pero no se asigna hasta finalizar dicho instante.
----
<source lang=verilog>
initial
begin
// Asignación con bloqueo
a = 5;
#1 a = a + 1;
b = a + 1;
// Asignación sin bloqueo
a = 5;
#1 a <= a + 1;
b = a + 1;
end
</source>
----
En el ejemplo, inicialmente se realiza una asignación con bloqueo, donde el resultado será ''a'' = 6 y ''b'' = 7, ya que ''a'' se ha calculado previamente. Mientras que en la asignación sin bloque ''a'' y ''b'' serán 6, ya que ''a'' no ha sido calculado.
==Eventos==
La asignación procedural puede ser controlada por el cambio de una variable en un proceso ''always'', es decir por eventos. Para ello se utiliza el carácter @ seguido del evento que permite la ejecución de la asignación procedural. Se distinguen dos tipos de eventos.
* ''De nivel'': El cambio de valor de una o un conjunto de variables controla el acceso.
----
<source lang=verilog>
always @(C or D)
B = C + D;
</source>
----
* ''De flanco'': La combinación de flanco de subida (de 0 a 1) o de bajada (de 1 a 0).
----
<source lang=verilog>
always @(posedge clk)
B <= C + 1;
</source>
----
==Parámetros==
Los parámetros son como en otros lenguajes las denominadas constantes, su definición sólo puede realizarse en el interior de un módulo, como puede ser el tamaño de un bus. La sintaxis de los parámetros es la siguiente.
'''parameter''' ''nombre'' = ''valor'';
Un ejemplo podría ser el siguiente.
----
<source lang=verilog>
parameter N = 8;
</source>
----
{{Navegador|libro=Programación en Verilog
|actual=Módulos
|anterior=Elementos básicos del lenguaje
|siguiente=Jerarquía
}}
{{AutoCat}}
j0ril3jyizxzbi3rhescnazg5ffm3qa
Programación en Verilog/Jerarquía
0
35312
431341
313465
2026-08-16T17:11:05Z
Antimundo
74354
Categorizar usando AutoCat
431341
wikitext
text/x-wiki
{{Navegador|libro=Programación en Verilog
|actual=Jerarquía
|anterior=Módulos
|siguiente=Funciones y Tareas
}}
Como se ha detallado en el apartado de los módulos, el identificador module se utiliza para la definición de diseños, estos pueden utilizarse para construir diseños más complejos, es decir, la combinación de módulos con funcionalidad sencilla dan como resultado diseños más complejos. La sintaxis para incluir módulos al diseño es la siguiente.
'''<nombre módulo> <nombre instancia>''' (''lista de puertos'');
Un ejemplo para incluir módulos dentro de un diseño es el siguiente.
----
<source lang=verilog>
module select(in, sel, out)
input [7:0] in;
input [3:0] sel;
output [7:0] out;
wire [7:0] out;
mux mux0(in, sel, out);
endmodule
</source>
----
==Conexionado==
El conexionado de un módulo puede realizarse de dos formas distintas.
* ''Por orden:'' La asignación se realiza de forma implícita, donde cada señal corresponde con el puerto del módulo.
* ''Por nombre:'' La conexión se realiza de forma explícita, utilizando '''.puerto'''(''señal'').
Si se dispone de un módulo cuya interfaz es mux(a, b, sel, y), donde ''a, b'' y ''sel'' son entradas e ''y'' una salida, el conexionado a este módulo puede realizarse de la siguiente manera.
----
<source lang=verilog>
module select(in1, in2, sel, out)
....
// Conexionado por orden
mux mux0(in1, in2, sel, out);
// Conexionado por nombre
mux mux1(.b(in2), .a(in1), .y(out), .sel(sel));
endmodule
</source>
----
En el conexionado por nombre la asignación sería la siguiente.
a --> in1
b --> in2
sel --> sel
y --> out
{{Navegador|libro=Programación en Verilog
|actual=Jerarquía
|anterior=Módulos
|siguiente=Funciones y Tareas
}}
{{AutoCat}}
cxxc6ydjvhefsiffnpok2dkrabjasuv
Programación en Verilog/Funciones y Tareas
0
35313
431342
363619
2026-08-16T17:11:14Z
Antimundo
74354
Categorizar usando AutoCat
431342
wikitext
text/x-wiki
{{Navegador|libro=Programación en Verilog
|actual=Funciones y Tareas
|anterior=Jerarquía
|siguiente=Sintetizabilidad
}}
__TOC__
==Funciones==
Una función es similar a una rutina en cualquier otro lenguaje de programación, donde se tiene argumentos de entrada y puede retornar un valor , pero en Verilog hay varias restricciones.
* No se puede invocar a otra tarea, pero si función.
* No puede contener control de tiempo.
* Sólo puede contener una salida.
* Sólo se pueden utilizar para modelar lógica combinacional.
La definición de una función debe estar incluida en el módulo de un diseño. La sintaxis de las funciones es la siguiente, donde rango es el tamaño del valor de retorno.
'''function''' <''rango''> <''nombre''>;
<''argumentos''>
<''declaraciones''>
<''funcionalidad''>
'''endfunction'''
Un ejemplo de función podría ser el siguiente.
----
<source lang=verilog>
module func;
function [7:0] add;
input [7:0] a, b;
reg [7:0] res;
begin
res = a + b;
add = res;
end
endfunction
reg [7:0] A;
initial
begin
A = add(8'b1010, 8'b1);
end
endmodule
// resultado A: 8'b1011
</source>
----
==Tarea==
Una tarea puede tener argumentos, pero no retorna ningún valor, que es distinto que varios de sus argumentos sean de salida. Su finalidad es reducir el código del diseño y sus llamadas se realizan en tiempo de compilación. Las características de las tareas se recogen a continuación.
* Se define en el módulo en el que se utilizan o pueden estar definidas en un fichero aparte y ser incluidas mediante la palabra reservada include.
* Puede invocar a otras funciones o tareas.
* Puede contener control de tiempo (#delay, posedge, negedge).
* Puede tener cualquier número de entradas y/o salidas, estas marcan el orden en que éstas deben pasarse a la tarea.
* Las variables declaradas son locales a dicha tarea.
* Las tareas pueden usar y/o asignar valores a cualquier señal declarada como global.
* Pueden utilizarse para modelar lógica combinacional o secuencial.
* La llamada a una tarea no se puede realizar dentro de una expresión.
La sintaxis de las tareas es la siguiente.
'''task''' <''nombre''>;
<''argumentos''>
<''declaraciones''>
<''funcionalidad''>
'''endtask'''
Un ejemplo de tarea es la siguiente.
----
<source lang=verilog>
module tsk;
reg ack;
reg [7:0] data,
task send;
input [7:0] a;
begin
data = a;
#5 S = 1;
wait(ack != 0);
#5 S = 0;
end
endtask
initial
begin
#5 send(100);
end
endmodule
</source>
----
==Funciones del sistema==
''Verilog'' ofrece una serie de funciones específicas, las cuales no son sintetizables y su uso esta enfocado a la construcción de testbenches. Cada función en ''Verilog'' comienza con el carácter $ y deben estar declaradas dentro de un bloque. A continuación se muestran algunas de las funciones más comunes.
===$time===
Devuelve el tiempo actual de la simulación
----
<source lang=verilog>
A = $time;
</source>
----
===$display===
Imprime por pantalla un mensaje cuando es ejecutado. Se puede añadir una lista de variables. El mensaje debe ser declarado entre comillas, seguido de la lista de variables a imprimir y su formato. Al final del mensaje se introduce un retorno de carro.
Formatos:
%b: binario %h: hexadecimal %c: carácter
%o: octal %d: decimal %s: cadena de caracteres
Caracteres de escape:
\n: Retorno de línea \\: Carácter \
\t: Tabulador %%: Carácter %
----
<source lang=verilog>
$display("Valor variable A %d, Valor variable B %d", A, B);
</source>
----
===$monitor===
Esta función tiene la misma sintaxis que ''$display'', es decir se saca por pantalla un mensaje siempre que una de las variables que se imprime cambie.
----
<source lang=verilog>
$monitor("Valor variable A %d, Valor variable B %d", A, B);
// Cuando A o B cambien su valor se imprimirá el mensaje
</source>
----
===$monitoroff===
Esta función detiene la monitorización de variables que ejecuta la función ''$monitor''.
----
<source lang=verilog>
$monitoroff;
</source>
----
===$monitoron===
Esta función habilita la monitorización de variables que ejecuta la función ''$monitoroff''.
----
<source lang=verilog>
$monitoron;
</source>
----
===$fopen===
Esta función permite abrir un fichero, devolviendo sobre una variable definida como integer el identificador del fichero.
----
<source lang=verilog>
id = $fopen("archivo.txt"); // crea el fichero archivo.txt
</source>
----
===$fclose===
Esta función permite cerrar un fichero. El fichero a cerrar se especifica mediante el identificador.
----
<source lang=verilog>
id = $fclose(id); // crea el fichero id
</source>
----
===$fdisplay===
Esta función es similar a ''$display'', la diferencia con ésta reside en el lugar donde se imprime el mensaje, en este caso se imprime en un fichero.
----
<source lang=verilog>
$fdisplay(id, "Valor variable A %d, Valor variable B %d", A, B);
</source>
----
===$write===
Esta función es similar a ''$display'', la diferencia con ésta reside en que no existe retorno de carro.
----
<source lang=verilog>
$write("Valor variable A %d, Valor variable B %d", A, B);
</source>
----
===$fwrite===
Esta función es similar a ''$fdisplay'', la diferencia con ésta reside en que no existe retorno de carro.
----
<source lang=verilog>
$fwrite("Valor variable A %d, Valor variable B %d", A, B);
</source>
----
===$finish===
Esta función indica el final de la simulación.
----
<source lang=verilog>
$finish;
</source>
----
===$random===
Esta función retorna un valor aleatorio entero de 32 bits cada vez que se invoca, se le suele suministrar una variable como semilla para la generación del número aleatorio.
----
<source lang=verilog>
A = $random(300);
</source>
----
{{Navegador|libro=Programación en Verilog
|actual=Funciones y Tareas
|anterior=Jerarquía
|siguiente=Sintetizabilidad
}}
{{AutoCat}}
e094dsxf3l1silks55ckd5f66e7oicd
Programación en Verilog/Sintetizabilidad
0
35315
431343
180575
2026-08-16T17:11:31Z
Antimundo
74354
Categorizar usando AutoCat
431343
wikitext
text/x-wiki
{{Navegador|libro=Programación en Verilog
|actual=Sintetizabilidad
|anterior=Funciones y Tareas
|siguiente=Máquinas de estado
}}
Disponer de un diseño en ''Verilog'' que simule correctamente es relativamente fácil. Sin embargo, si lo que se desea es un diseño que sea sintetizable deben respetarse ciertas normas, algunas de las cuales se enumeran a continuación.
* No emplear retardos, dado que ello conduciría a diseños no portables. Por norma general, los sintatizadores suelen ignorar estos retrasos.
* No modificar una misma variable en dos procesos diferentes.
* En una asignación procedural, todas las variables de las que dependa la asignación deben aparecer en la lista de sensibilidad.
* Si no se define completamente una variable, el lenguaje supone que conserva el último valor asignado, sintetizándose un biestable que almacene su estado.
* Los sintetizadores no admiten procesos initial.
* Los sintetizadores no suelen admitir los operadores de división y resto.
* Tener en cuenta el problema de carreara (''race condition''), que se produce cuando dos asignaciones se realizan al mismo instante pero una depende de la otra, y por tanto el orden de ejecución es importante.
{{Navegador|libro=Programación en Verilog
|actual=Sintetizabilidad
|anterior=Funciones y Tareas
|siguiente=Máquinas de estado
}}
{{AutoCat}}
6xibpjdlzjzmtvckh58isr0npf7hydp
Programación en Verilog/Máquinas de estado
0
35316
431344
176680
2026-08-16T17:11:43Z
Antimundo
74354
Categorizar usando AutoCat
431344
wikitext
text/x-wiki
{{Navegador|libro=Programación en Verilog
|actual=Máquinas de estado
|anterior=Sintetizabilidad
|siguiente=Directivas para el compilador
}}
Uno de los aspectos más destacados y frecuentes en los diseños Verilog, es la realización de máquinas de estados. En esta sección, se propone un método para la estructuración de una máquina de estados, empleando tres procesos.
* Asignación asíncrona del siguiente estado, partiendo de de las entradas al diseño y del estado en el que se encuentre.
* Asignación síncrona, donde el flanco de reloj hace que el estado actual sea el que se ha estado preparando.
* Asignación de las salidas.
A continuación se modela un semáforo en Verilog, mediante una máquina de estados.
----
<source lang=verilog>
module semaforo(clk, rst, color);
input clk;
input rst;
output [1:0] color;
reg [1:0] state, nextState;
reg [8:0] cnt;
// Asignación asíncrona del siguiente estado
always @(state, cnt)
case(state)
0: // Color Rojo
if (cnt == 100) nextState = 1;
else nextState = 0;
1: // Color Ambar
if (cnt == 120) nextState = 2;
else nextState = 1;
2: // Color Verde
if (cnt == 200) nextState = 0;
else nextState = 2;
default: nextState = 0;
endcase
// Asignación síncrona: Actualización del estado
always @(posedge clk or negedge rst)
if(rst == 0) state = 0;
else state = nextState;
// Asignación de las salidas
always @(state)
if(state == 0) color = 2'b00; // Color Rojo
else if(state == 1) color = 2'b01; // Color Ambar
else color = 2'b10; // Color Verde
// Contador
always @(posedge clk or negedge rst)
if(rst == 0) cnt = 0;
else cnt = cnt + 1;
endmodule
</source>
----
{{Navegador|libro=Programación en Verilog
|actual=Máquinas de estado
|anterior=Sintetizabilidad
|siguiente=Directivas para el compilador
}}
{{AutoCat}}
smudihw9m35pv8lkfbvvvzm4dxpyxtr
Programación en Verilog/Directivas para el compilador
0
35317
431345
176682
2026-08-16T17:11:53Z
Antimundo
74354
Categorizar usando AutoCat
431345
wikitext
text/x-wiki
{{Navegador|libro=Programación en Verilog
|actual=Directivas para el compilador
|anterior=Máquinas de estado
|siguiente=Testbench
}}
__TOC__
''Verilog'' ofrece un conjunto de directivas de compilación que permiten obtener diferentes códigos a partir de una única descripción. A continuación se detallan las más comunes. La sintaxis para la definición de una directiva es la siguiente.
''''directiva''' <''nombre''> <''valor''>
==Define==
La directiva ''define'' permite definir un valor.
----
<source lang=verilog>
'define TD 1
........
assign #TD data = A;
</source>
----
==Include==
La directiva ''include'', como su nombre indica permite incluir un fichero, el cual puede contener, por ejemplo, la definición de otros módulos.
----
<source lang=verilog>
'include "sumador.v"
</source>
----
==Ifdef==
La directiva ''ifdef'' permite compilar un código siempre y cuando se haya definido el símbolo al que referencia.
----
<source lang=verilog>
'define SIMULATION
.....
always @(posedge clk or posedge rst)
if(rst)
data <= 0;
else
'ifdef SIMULATION
data <= A;
'else
data <= B;
'endif
</source>
----
==Timescale==
La directiva ''timescale'' permite definir las unidades de tiempo con las que se va a trabajar. La sintaxis de esta directiva es la siguiente. Donde la unidad de tiempo es mayor o igual a la resolución y los valores que pueden tomar los enteros son 1, 10 y 100 y la unidad de medida puede ser: "s", "ms", "us", "ns", "ps" y "fs".
''''timescale''' <''unidad de tiempo''> / <''resolucion''>
Un ejemplo de esta directiva es la siguiente.
----
<source lang=verilog>
'timescale 1ns/100ps
.........
</source>
----
En el ejemplo, la unidad de tiempo empleada es el nanosegundo y cualquier retraso fraccional se redondeará al primer decimal debido a la resolución especificada.
{{Navegador|libro=Programación en Verilog
|actual=Directivas para el compilador
|anterior=Máquinas de estado
|siguiente=Testbench
}}
{{AutoCat}}
hpiyl5hxjsj3w5ju7j97np28ockbcia
Programación en Verilog/Testbench
0
35318
431346
362565
2026-08-16T17:12:01Z
Antimundo
74354
Categorizar usando AutoCat
431346
wikitext
text/x-wiki
{{Navegador|libro=Programación en Verilog
|actual=Testbench
|anterior=Directivas para el compilador
|siguiente=Ejemplos
}}
__TOC__
La finalidad de un ''testbench'' no es otro que verificar el correcto funcionamiento de un módulo o diseño. El desarrollo de un ''testbench'' es tan complejo como la realización de un módulo a verificar. La ventaja de estos elementos es la posibilidad de no tener que ser sintetizable.
Para describir un ''testbench'' el diseñador debe tener siempre presente las especificaciones de diseño, en la que quedan reflejadas las funciones del diseño y, por tanto, las funciones a verificar.
==Estructura==
La estructura de un testbench se compone de tres elementos básicos.
* '''Módulo DUT''': (''Desing Under Test'') Diseño a verificar.
* '''Módulo test''': Este módulo es el encargado de activar las señales de entrada al módulo DUT y de analizar las salidas que produce éste.
* '''Módulo tb''': Este módulo incluye los anteriores. Se caracteriza por no tener ni entradas ni salidas, es decir corresponde a una declaración estructural del conexionado de los módulos.
==Generación de estímulos==
Para la generación de estímulos se utilizan los procesos initial y always. La elección de éstos viene determinada por las características de las señales a generar. Dependiendo de la naturaleza de la señal, éstas se pueden generar de forma síncrona o asíncrona. La generación asíncrona se basa en el uso de retardos para activar y desactivar señales, mientras que la generación síncrona se basa en el uso de eventos, disparados por flancos para activar y desactivar señales. En este caso todas las señales que se activen de forma síncrona se harán con un retardo.
===Señal reset asíncrona===
<source lang=verilog>
initial
begin
rst = 1'b0;
#35
rst = 1'b1;
#50
rst = 1'b0;
end
</source>
===Señal reset síncrona===
<source lang=verilog>
initial
begin
rst = 1'b0;
repeat(2)
@(posedge clk) #1;
rst = 1'b1;
@(posedge clk) #1;
rst = 1'b0;
end
</source>
-- Salidas
signal mayor : std_logic;
signal menor : std_logic;
signal igual : std_logic;
BEGIN
-- Instancia la Unidad Bajo Prueba (Unit Under Test)
uut: comp4b PORT MAP (
A => A,
B => B,
mayor => mayor,
menor => menor,
igual => igual
);
-- Proceso para los estímulos
stim_proc: process
begin
-- Estado inicial, por 100 ns
A <= "0000";
B <= "0000";
wait for 100 ns;
for i in 0 to 15 loop
A <= A + 1; -- Estímulos para los datos de entrada
B <= B - 1;
wait for 100ns;
end loop;
wait; -- Se mantiene inactivo
end process;
END;
===Señales de control o datos===
<source lang=verilog>
initial
begin
en = 1'b0;
din = 8'b0;
// Se espera 30 ciclos
repeat(30)
@(posedge clk) #1;
// Se activan las entradas
en = 1'b1;
din = 8'b10101010;
// Se desactiva la entrada de datos
@(posedge clk) #1;
din = 8'b0;
// Se espera a la señal ready del DUT
wait (ready == 1'b1);
en = 1'b0; // Se desactiva el enable
// Se comprueba el resultado
if (dout == 8'b01010101)
$display("Test OK");
else
$display("Test FAIL");
// Se finaliza el test
@(posedge clk) #1;
$finish;
end
</source>
{{Navegador|libro=Programación en Verilog
|actual=Testbench
|anterior=Directivas para el compilador
|siguiente=Ejemplos
}}
{{AutoCat}}
88kumkw1kthqn1epe04omr5ztoljo2o
Programación en Verilog/Bibliografía
0
35319
431348
176687
2026-08-16T17:12:29Z
Antimundo
74354
Categorizar usando AutoCat
431348
wikitext
text/x-wiki
==Artículos y notas de aplicación==
==Recursos en internet==
*[http://ghdl.free.fr/ GHDL]
*[http://www.ieee.org/ IEEE]
*[http://www.opencores.org Open Cores]
==Libros y otros textos==
*Manual de Verilog, Jorge Chávez, Marzo 1999.
*Tutorial Verilog, Universidad de Las Palmas, 2001.
{{AutoCat}}
8prgy5bb869m7u64izgq4s3ryio91cf
Programación en Verilog/Ejemplos
0
35320
431347
315050
2026-08-16T17:12:11Z
Antimundo
74354
Categorizar usando AutoCat
431347
wikitext
text/x-wiki
{{Navegador|libro=Programación en Verilog
|actual=Ejemplos
|anterior=Testbench
|siguiente=
}}
__TOC__
A continuación se muestra una serie de ejemplos diseñados en ''Verilog''.
==Multiplexor==
Como ejemplo se tiene un multiplexor de tres buses de 24 bits (entradas A, B y C), donde se supone que la opción de selección (entrada de dos bits) 2'b11 da una salida con todos los bits a cero.
----
<source lang=verilog>
module mux(A, B, C, sel, O);
input [1:0] sel;
input [23:0] A, B, C;
output [23:0] O;
reg [23:0] O;
always @(sel or A or B or C)
case(sel)
'b00: O = A;
'b01: O = B;
'b10: O = C;
default: O = 0;
endcase
endmodule
</source>
----
==De-Multiplexor==
Otro ejemplo es un de-multiplexor que está decodificando un bus de direcciones:
* 'h00_00 <= x <= 'h0f_ff activa el bit de selección 0.
* 'h10_00 <= x <= 'h1f_ff activa el bit de selección 1.
* 'h20_00 <= x <= 'h2f_ff activa el bit de selección 2.
----
<source lang=verilog>
module mux(A, sel);
input [23:0] A;
output [2:0] sel;
reg [2:0] sel;
always @(A)
case(A[15:12])
0: sel = 'b001;
1: sel = 'b010;
2: sel = 'b100;
default: sel = 0;
endcase
endmodule
</source>
----
==Registro de desplazamiento==
En este ejemplo, en una única asignación se inserta el bit de entrada y se realiza el desplazamiento de todos los bits.
----
<source lang=verilog>
module desplaza(clk, rst, A, B);
input clk, rst, A;
output B;
reg [3:0] C, nC;
assign B = C[3];
always @(posedge clk or negedge rst)
if(rst == 0) C = 0;
else C = nC;
always @(C or A)
nC = {C, A};
endmodule
</source>
----
==Contador==
Este ejemplo es un simple contador que incrementa el valor de un registro interno con cada flanco de reloj.
----
<source lang=verilog>
module count(clk, rst, val);
input clk, rst;
output [3:0] val;
reg [3:0] val, nval;
always @(posedge clk or negedge rst)
if(rst == 0) val = 0;
else val = nval;
always @(val)
nval = val + 1;
endmodule
</source>
----
{{Navegador|libro=Programación en Verilog
|actual=Ejemplos
|anterior=Testbench
|siguiente=
}}
{{AutoCat}}
39k5uirqypkjdtqbhyfl1wxxy43odf5
Java Server Faces
0
37175
431474
428538
2026-08-17T09:21:39Z
Antimundo
74354
Usar estante de Java
431474
wikitext
text/x-wiki
Aprende a programar páginas web con Java Server Faces.
== [[Java Server Faces/Prefacio|Prefacio]] ==
{{Desarrollo|25}}
* [[Java Server Faces/Prefacio#Acerca de este libro|Acerca de este libro]]
* [[Java Server Faces/Prefacio#Público objetivo|Público objetivo]]
* [[Java Server Faces/Prefacio#Como participar|Como participar]]
* [[Java Server Faces/Prefacio#Disclaimer|Disclaimer]]
== [[Java Server Faces/Introducción|Introducción]] ==
{{Desarrollo|00}}
* Lo que es JSF
* Versiones e implementaciones
* Ejemplo de código
== [[Java Server Faces/Comenzando|Comenzando]] ==
{{Desarrollo|00}}
* Ciclo de vida
* Configuración
* Creación de una página
* Managed beans
* Expression language
* Rutas de navegación
* Localización e internacionalización
== [[Java Server Faces/Taglib|Taglib]] ==
{{Desarrollo|00}}
* Tags del Head
* Tags de salida de datos
* Tags de entrada de datos
== [[Java Server Faces/Convertidores y validadores|Convertidores y validadores]] ==
{{Desarrollo|25}}
* Utilizar un convertidor
* Convertidores predefinidos
* [[Java_Server_Faces/Convertidores y validadores#Crear un convertidor_personalizado|Crear un convertidor personalizado]]
* Utilizar un validador
* Validadores predefinidos
* Crear un validador personalizado
== [[Java Server Faces/Eventos|Eventos]] ==
{{Desarrollo|00}}
''Por redactar...''
== [[Java Server Faces/AJAX|AJAX]] ==
{{Desarrollo|00}}
''Por redactar...''
== [[Java Server Faces/Facelets|Facelets]] ==
{{Desarrollo|00}}
* Crear una plantilla
* Utilizar una plantilla
* Pasar parámetros a una plantilla
* Crear snippets de código
== [[Java Server Faces/Personalizar JSF|Personalizar JSF]] ==
{{Desarrollo|00}}
* Componentes personalizados
* Render kits
{{Estantes|Java}}
bh8g53qad2sq4185yv7ec000vke6k0u
Java Server Faces/Prefacio
0
37228
431475
424680
2026-08-17T09:22:05Z
Antimundo
74354
Categorizar usando AutoCat
431475
wikitext
text/x-wiki
__FORCETOC__
== Acerca de este libro ==
Este Wikilibro pretende ser un material de referencia para el aprendizaje de Java Server Faces. Es el primero de muchos esfuerzos para realizar material de estudio relacionado a tecnologías Java, que sea de libre uso y distribución. Además, que esté redactado en idioma español (ya que en inglés abundan mucho, pero en español escasean) y en un lenguaje fácil y sencillo.
Para la mejor asimilación de los contenidos aquí mostrados, se incluyen ejemplos y análisis directamente en código fuente, para que el estudiante pueda practicar en código vivo los conocimientos aprendidos.
De la misma forma, se pretende que el conocimiento aquí mostrado sea asimilado de manera incremental. Esto significa, que cada nueva sección requiera o refuerce uno o más temas vistos en capitulos anteriores.
Finalmente, este Wikilibro también pretende ser una referencia para todos aquellos profesionales que ya manejen esta tecnología y que quieran tener a la mano un lugar para resolver dudas.
== Público objetivo ==
Este Wikilibro está dirigido para todos aquellos profesionales de informática y programación, que deseen ampliar sus conocimientos en tecnologías Java. Así mismo, para todos aquellos que tengan intención de profundizar sus habilidades en programación para Web, siguiendo el patrón de diseño MVC.
Se da por supuesto que los lectores de este material conocen a nivel competente las siguientes tecnologías:
* [[:m:w:es:Java_%28lenguaje_de_programaci%C3%B3n%29|Java]]
* [[:m:w:es:Servlet|Servlets]] y [[:m:w:es:JavaServer_Pages|JSP's]]
* [[:m:w:es:HTML|HTML]]
* [[:m:w:es:Extensible_Markup_Language|XML]]
Otros conocimientos recomendados son:
* Desarrollo Web en alguna otra plataforma (ejemplo: [[:m:w:es:PHP|PHP]])
* [[:m:w:es:JavaScript|Javascript]] y/o [[:m:w:es:AJAX|AJAX]]
* [[:m:w:es:Hojas_de_estilo_en_cascada|Cascade Stylesheets]]
== Como participar ==
Un proyecto como éste requiere del apoyo y de la participación de muchas personas.
=== Leyendo ===
Es posible colaborar en este Wikilibro realizando las siguientes actividades.
* Lee el libro.
* Reporta faltas de ortografía.
* Reporta cualquier oración, frase o sentencia que consideres ambigua, poco clara, carente de sentido o gramaticalmente errónea.
* Verifica que los ejemplos de código fuente mostrados en este Wikilibro son correctos en compilación y ejecución.
* Reporta cualquier regionalismo o tecnicismo que no te permita entender.
Para hacer el reporte, edita la [[Discusión:Java_Server_Faces|Discusión]].
=== Editando ===
* Aplica y corrige de acuerdo a los estándares de estilo de Wikilibros
== Disclaimer ==
El descargo de '''responsabilidad (''disclaimer'')''' tradicional de las especificaciones de JavaServer Pages (JSP) de Sun Microsystems establece que la especificación se proporciona "tal cual" (AS IS), sin garantías expresas o implícitas, incluyendo comerciabilidad o idoneidad para un fin determinado. Se advierte que contendría errores técnicos o deficiencias.
Aquí se detallan aspectos clave del disclaimer de JavaServer (JSP):
* '''Sin Garantía:''' Sun (ahora Oracle) no garantiza que la especificación sea adecuada para cualquier propósito ni que no infrinja derechos de terceros.
* '''Experimental:''' La especificación se define a veces como "experimental" y Sun no se compromete a corregir todos los defectos.
* '''Cambios:''' Se realizarían mejoras o cambios en las versiones nuevas de la especificación sin previo aviso.
* '''Uso Personalizado:''' En contextos de seguridad (como Access Manager), existen archivos disclaimer.jsp personalizables para mostrar avisos legales a los usuarios durante el registro.
Para implementaciones técnicas, las especificaciones JSP combinan HTML con Java, y su uso está sujeto a los términos de la licencia de la versión correspondiente.
{{AutoCat}}
4a6z6v33p1orfhhk5vczrxy5h8etdz8
Java Server Faces/Comenzando
0
37420
431477
203608
2026-08-17T09:22:20Z
Antimundo
74354
Categorizar usando AutoCat
431477
wikitext
text/x-wiki
__FORCETOC__
== Ciclo de vida ==
Como ya se comentó anteriormente, ''Java Server Faces'' (a partir de ahora, '''JSF''') es un framework guiado por peticiones. Esto significa, en español mundano, que cada vez que un usuario hace una petición al servidor a través de su navegador el motor de JSF efectua diversas operaciones y le regresa la respuesta al usuario.
Pero, ¿que sucede cuando el usuario hace la petición? ¿Que hace el servlet de JSF con los datos que introduce el usuario y en que momento genera la respuesta?
== Configuración ==
Una vez creado un proyecto, buscamos el archivo '''web.xml''' en la carpeta '''WEB-INF''' y se agrega la siguiente configuración.
'''<! - - Faces Servlet - - >'''
<servlet>
:<servlet-name>Faces Servlet</servlet-name>
:<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
:<load-on-startup>1</load-on-startup>
</servlet>
'''<! - - Faces Servlet Mapping - - >'''
<servlet-mapping>
:<servlet-name>Faces Servlet</servlet-name>
:<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
== Creación de una página ==
== Managed beans ==
== Expression language ==
== Rutas de navegación ==
== Localización e internacionalización ==
{{AutoCat}}
5txf0cu441q105y1ghqcor34uugn80x
Programación en PHP/PHPecho
0
37688
431383
305390
2026-08-16T22:20:46Z
Antimundo
74354
Actualizar etiquetas source obsoletas
431383
wikitext
text/x-wiki
PHP tiene diferentes formas de imprimir, sin embargo '''echo''' es una de las formas mas extendidas por su sencillez.
Debido al caso particular de PHP, este se ejecuta en el servidor, lo que significa que a nosotros solo nos llegara un formato HTML. Escribir '''echo "hola";''' se procesaria en un html como '''hola'''.
Los formatos de echo son tecnicamente los mismo, con ciertas variantes que hay que tener muy en cuenta:
echo "cadena a imprimir"; //cadenas dobles
echo 'cadena a imprimir'; //cadenas simples
echo 'cadena1'.$variable1.'cadena2'; //concatenacion de cadenas
<syntaxhighlight lang="php">
//Realizado por: Gustavo Adolfo Chavarria M.
//UNAN-LEON Nicaragua.
<?php
//Impresion con echo
$variable1="a todos";
echo "Hola ".$variable1; //Imprime Hola a todos.
?>
</syntaxhighlight>
Si bien habíamos dicho antes que echo permite usar tanto comillas dobles como simples, debemos seleccionar cual es que de emplearemos, ya que no podemos mezclarlas. Yo en lo personal uso las comillas simples '''¿Porque?'''
'''Imaginate el siguiente caso, tienes dos url:'''
<syntaxhighlight lang="php">
$url1="<a href="http://url1" alt="url1">Url1</a>";
$url2="<a href="http://url2" alt="url2">Url2</a>";
</syntaxhighlight>
'''Supongamos que hacemos un condicional para elegir la url, o simplemente debes imprimir estas url, si lo hicieras de esta forma:'''
<syntaxhighlight lang="php">
echo $url1; //Error, posiblemente un error 500.
echo "<a href="http://url1" alt="url1">Url1</a>"; //Error, posiblemente un error 500.
</syntaxhighlight>
'''Pero, si lo imprimes asi:'''
<syntaxhighlight lang="php">
echo '<a href="http://url1" alt="url1">Url1</a>';//Bien.
echo "<a href='http://url1' alt='url1'>Url1</a>"; //Bien
</syntaxhighlight>
En HTML estamos mas acostumbrados a usar comillas dobles que en lo personal uso comillas simples en PHP para evitar errores.
{{BookCat}}
nt4um4q6f2rkxgpb2dxoln4bj0asiyc
Java Server Faces/Introducción
0
37982
431476
198549
2026-08-17T09:22:12Z
Antimundo
74354
Categorizar usando AutoCat
431476
wikitext
text/x-wiki
== Lo que es Java Server Faces ==
Java Server Faces es un framework para el desarrollo de aplicaciones Web utilizando Java.
Entre sus características se encuentran las siguientes:
* Sigue el patrón de arquitectura Modelo-Vista-Controlador
* Neutral a cualquier tecnología de despliegue
* Altamente extendible
* Altamente personalizable
== Versiones e implementaciones ==
Java Server Faces es un estándar de JavaEE. Ésto implica varias cosas:
* existen más de una implementación de Java Server Faces
* tales implementaciones son proveidas por el servidor de aplicaciones de JavaEE
Así mismo, se le han ido agregando funcionalidades y haciendo mejoras a la especificación de Java Server Faces a lo largo del tiempo. Por lo que ciertas características pueden o no estar disponibles de acuerdo a la versión de Java Server Faces, al igual que a la versión de la implementación.
La versión 1.1 fue una corrección de bugs y errores en la especificación 1.0; no hubo cambios sustanciales en la misma.
La versión 2.0 fue una restructura mayor a la especificación de Java Server Faces, incluyó un set bastante amplio de nuevas funcionalidades y añadiduras. Las principales mejoras incluídas en esta versión fueron el uso de anotaciones de Java 5 para la configuración de ciertos elementos del framework, el soporte nativo a AJAX sin la necesidad de frameworks o librerías de terceros, y una nueva funcionalidad llamada ''Bibliotecas de recursos''. Esta versión está incluída en la especificación de JavaEE 6.
La versión más actual de Java Server Faces es la 2.1, la cual es una actualización a la especificación de la versión 2.0.
Algunas implementaciones de Java Server Faces, incluyendo sus implementadores.
* Mojarra de Oracle. (implementación de referencia)
* ICEFaces de ICESoft.
* MyFaces de Apache.
== Ejemplo de código ==
Veamos un ejemplo rápido de código, para ilustrar la creación de una aplicación de Java Server Faces.
Este pequeño ejemplo es un tradicional ''Hola Mundo'', el cual consistirá en una página que le solicitará el nombre al usuario y al dar click en el botón de ''Enviar'' la aplicación le responderá cordialmente.
=== El proyecto ===
=== El formulario ===
{{AutoCat}}
mlg95ciosi3i3ezeebkjufnguc5t77b
Localización de un punto
0
38169
431331
396522
2026-08-16T17:03:31Z
Antimundo
74354
Marcar como hoja suelta
431331
wikitext
text/x-wiki
{{Hoja suelta|Algoritmia}}
{{referencias}}
==Localización de un punto – Método Rosa de los Vientos==
Dado un punto P y un polígono [[:m:w:en:Irregular_polygons|simple]] A, si al trazar un segmento entre P y alguno de los vértices del polígono A dicho segmento solamente toca al polígono en el vértice mencionado (es decir ni cruza ni toca ni solapa ningún otro segmento o vértice), resulta:
* Si el segmento accede al vértice por el ángulo interno del polígono → el punto es interior
* Si el segmento accede al vértice por el ángulo externo del polígono → el punto es exterior
[[Archivo:rosa de los vientos 1.jpg|center|300px]]
El método propone que si el segmento incógnita ni cruza ni toca ni solapa ningún segmento del polígono (salvo en el vértice elegido) entonces el punto P no cambia su estado, ya sea interno o externo. Por este motivo alcanza con saber si el segmento incógnita llega al vértice por dentro o por fuera del polígono.
== Descripción del método ==
La primera medida es conocer si los vértices que conforman el polígono están ordenados en forma horaria o antihoraria.
Si calculamos el [[:m:w:en:Irregular_polygons|producto vectorial]], utilizando los vértices del polígono, tenemos que:
* Si el resultado es positivo → entonces los vértices están ordenados en forma antihoraria
* Si el resultado es negativo → entonces los vértices están ordenados en forma horaria
Esta particularidad también nos indica que los ángulos internos del polígono, medidos sobre cada vértice desde el segmento posterior hasta el anterior tienen en el mismo sentido que el ordenamiento de los vértices.
[[Archivo:rosa de los vientos 2.jpg|center]]
Luego de conocido el ordenamiento de los vértices, tomamos un vértice del polígono al azar y chequeamos que ningún de los segmentos del polígono se cruzan, tocan o se solapan con el segmento que se forma entre el punto P y el vértice seleccionado (con excepción obviamente de este vértice). Este procedimiento lo repetimos hasta encontrar un vértice del polígono que cumpla con esta condición.
Nota: El contacto entre dos segmentos cualesquiera se halla utilizando la ecuación de la [[recta]] (y= a*x+b), donde a es la pendiente de la recta y b es la ordenada al origen o bien (x=c) para rectas verticales, donde c representa el valor constante de x. Con estas ecuaciones se ubica el punto de cruce de ambas rectas (si no son paralelas), verificando si ese punto es interior a los dos segmentos. El único punto que debe ser interno a los dos segmentos es el vértice elegido del polígono a evaluar. Si existe otro punto de contacto, entonces ese vértice no sirve para evaluar si el punto P es interior o exterior.
Se deberá tener en cuenta, además, situaciones especiales tales como segmentos de una misma recta (a1= a2 y b1=b2 o bien c1=c2) donde se deberá evaluar solapamiento de segmentos, que tampoco sirven para este análisis.
Una vez hallado un vértice de las características mencionadas podemos calcular el ángulo interno y externo y compararlo con el ángulo del segmento incógnita.
Otra forma, evitando fórmulas trigonométricas, es calcular sobre los dos segmentos concurrentes (pertenecientes al polígono) y el segmento incógnita, las pendientes de la recta y la orientación.
La '''pendiente''' a se calcula como (y2-y1)/(x2-x1). El cálculo arroja un valor numérico positivo para el primer y tercer cuadrante y negativo para el segundo y cuarto cuadrante. Cuando y2=y1 → la recta es horizontal → a=0 y cuando x2=x1 la recta es vertical → hacemos a=“V”.
Por su parte la '''orientación''' surge al colocar imaginariamente el vértice del polígono en el centro de coordenadas (x=0, y=0) y evaluar como acceden a dicho vértice tanto el segmento anterior como el posterior y el segmento incógnita, teniendo en cuenta los distintos cuadrantes. En este caso tendremos que los segmentos pueden acceder desde:
+Y, +X+Y, +X, +X-Y, -Y, -X-Y, -X, -X+Y (enumerado en forma horaria).
Otra forma sería asimilar los cuadrantes a la '''Rosa de los Vientos''', por lo tanto quedaría:
'''N, NE, E, SE, S, SO, O, NO''' (Particularmente esta notación parece ser más amistosa desde lo visual)
Conociendo el hecho de que los ángulos internos del polígono (medidos desde el segmento posterior hacia el segmento anterior de cada vértice) coincide con el sentido de enumeración de los vértices del polígono (horario o antihorario), estamos en condiciones de calcular cuales son los cuadrantes cubiertos en forma parcial o total por el ángulo interno y por lo tanto cuales son los cubiertos por el ángulo externo.
[[Archivo:rosa de los vientos 3.jpg|center]]
En nuestro ejemplo del polígono 1,2,3,4,5 el producto vectorial de los vértivces es: (5*2-5*6)+(5*1-3*2)+(3*2-1*1)+(1*6-1*2)+(1*6-5*6) = '''-36 < 0 → sentido horario.'''
Se puede apreciar que los vértices 2, 3 y 4 cumplen con las condiciones de no intersección, mientras que los vértices 1 y 5 no la cumplen.
Tomemos por lo tanto el vértice 2.
Las coordenadas de los vértices son: 1=(5,6), 2=(5,2), 3=(3,1), mientras que P=(3,0).
El segmento 1-2 es anterior al vértice 2 y el 2-3 es posterior al vértice 2, mientras que el segmento P-2 es el segmento incógnita:
:{| class="wikitable"
|-
! Segmentos
! Pendiente
! Orientación respecto del vértice 2
|-
| 1-2
| <math>\frac{2-6}{5-5} \longrightarrow \mathbf{V}</math>
| N
|-
| 2-3
| <math>\frac{1-2}{3-5} \longrightarrow \mathbf{+0,5}</math>
| SO
|-
| P-2
| <math>\frac{2-0}{5-3} \longrightarrow \mathbf{+1}</math>
| SO
|}
Teniendo en cuenta que para recorrer el angulo interno del vértice 2 partiendo desde el segmento 2-3 (el posterior) hasta el 1-2 (el anterior) lo debemos hacer en el sentido horario, del cuadro podemos afirmar que :
*''' Los cuadrantes incluidos en el polígono son: SO(parcial-pendientes <= |0,5|), O, NO, N'''
*''' Los cuadrantes excluidos del polígono son: SO(parcial-pendientes >|0,5|), S, SE, E, NE'''
:{| class="wikitable" style="text-align:center;"
|-
! style="width:50px;" | N
! style="width:50px;" | NE
! style="width:50px;" | E
! style="width:50px;" | SE
! style="width:50px;" | S
! style="width:50px;" | SO
! style="width:50px;" | O
! style="width:50px;" | NO
|-
| I || E || E || E || E || <math>\le\vert0,5\vert</math> || I || I
|}
Donde:
* '''I''' → Cuadrante Incluido totalmente en el polígono
* '''E''' → Cuadrante Excluido totalmente del polígono
* '''<= |0,5|''' → En este cuadrante, el polígono Incluye las pendientes menores e iguales en valor absoluto a 0,5 y Excluye a las de valor mayor
Si '''P''' hubiera accedido desde cualquiera de los cuadrantes incluidos totalmente '''(O,NO,N)''', entonces estaría incluido en el polígono '''A'''. En cambio si hubiera accedido desde cuadrantes totalmente excluidos '''(S, SE, E, NE)''', estaría excluido.
En el caso que acceda desde un cuadrante incluido en forma parcial, se deben comparar los valores de las pendientes.
En nuestro caso la pendiente del segmento P-2 es mayor a la del segmento 2-3 en valor absoluto (|1|>|0,5|) y como el cuadrante SO está excluido para pendientes mayores de |0,5| → '''el punto P es externo al polígono A.'''
== Véase también ==
* [[Recta]]
* [[:m:w:en:Point_in_polygon|Point in Polygon]]
* [[:m:w:en:Irregular_polygons|Polygon]]
* [[:m:w:en:JTS_Topology_Suite|JTS Topology Suite]]
* [[Valor absoluto]]
== Enlaces externos ==
* [http://wmatem.eis.uva.es/~matpag/CONTENIDOS/Geometria/marco_geometria.htm Geometría]
[[Categoría:Algoritmia]]
autoaxxh3u7xmdrlc5k01l4e0cmy936
Programación Orientada a Objetos
0
38251
431351
427857
2026-08-16T17:14:59Z
Antimundo
74354
Retirar categorización antigua
431351
wikitext
text/x-wiki
[[File:Object-Oriented-Programming-Methods-And-Classes-with-Inheritance.png|thumb|125px|Un ejemplo de código fuente que muestra las clases, métodos y herencia.]]
<span style="font-size:120%;">La '''programación orientada a objetos''' o '''POO''' ('''OOP''' según sus siglas en inglés) es un paradigma de '''programación''' que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos.</span>
Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe variedad de lenguajes de programación que soportan la orientación a objetos.
==Contenido==
{| class="wikitable" align="right"
|-
!
<span style="font-size: 120%;">[[Programación Orientada a Objetos/Texto completo|Versión para imprimir]]</span>
|}
<div style="font-size: 120%;">
* [[Programación Orientada a Objetos/Introducción|Capítulo 1: Introducción]]
* [[Programación Orientada a Objetos/Origen|Capítulo 2: Origen]]
* [[Programación Orientada a Objetos/Conceptos Fundamentales|Capítulo 3: Conceptos Fundamentales]]
* [[Programación Orientada a Objetos/Características de la POO|Capítulo 4: Características de la POO]]
* [[Programación Orientada a Objetos/Resumen|Capítulo 5: Resumen]]
* [[Programación Orientada a Objetos/Lenguajes orientados a objetos|Capítulo 6: Lenguajes orientados a objetos]]
</div>
<noinclude>
{{Estantes|Programación informática}}
</noinclude>
qtlntvrskr8vtj7sm85jd7qua85gbaq
Programación en Erlang/Introducción
0
41488
431405
231296
2026-08-16T22:46:02Z
Antimundo
74354
Categorizar usando AutoCat
431405
wikitext
text/x-wiki
Erlang es un lenguaje de programación concurrente y un sistema de ejecución que incluye una máquina virtual y bibliotecas.
El subconjunto de programación secuencial de Erlang es un lenguaje funcional, con evaluación estricta, asignación única, y tipado dinámico. Fue diseñado en la compañía Ericsson para realizar aplicaciones distribuidas, tolerantes a fallos, soft-real-time y de funcionamiento ininterrumpido. Proporciona el cambio en caliente de código de forma que éste se puede cambiar sin parar el sistema. Originalmente, Erlang era un lenguaje propietario de Ericsson, pero fue cedido como open source en 1998. La implementación de Ericsson es, principalmente interpretada pero también incluye un compilador HiPE (sólo soportado en algunas plataformas).
La creación y gestión de procesos es trivial en Erlang, mientras que, en muchos lenguajes, los hilos se consideran un apartado complicado y propenso a errores. En Erlang toda concurrencia es explícita.
{{AutoCat}}
0ll6kvyvidesklc3kzdt9nf1chywzu2
Programación en Erlang/Historia
0
41490
431407
231297
2026-08-16T22:46:21Z
Antimundo
74354
Categorizar usando AutoCat
431407
wikitext
text/x-wiki
=== Información General ===
Erlang fue diseñado para escribir programas concurrentes que se ejecutasen eternamente. Erlang usa procesos concurrentes para estructurar el programa. Estos procesos no tienen memoria compartida y se comunican por paso de mensajes asíncronos. Los procesos de Erlang son ligeros y pertenecen al lenguaje, no al sistema operativo. Erlang tiene mecanismos que permiten que los programas cambien on-the-fly (en vivo) así, esos programas pueden evolucionar y cambiar sin detener su ejecución. Estos mecanismos simplifican la construcción de software implementando sistemas non-stop (que no se detienen).
El desarrollo inicial de Erlang tuvo lugar en 1986 en el Laboratorio de Computación de Ericsson. Erlang fue diseñado con un objetivo específico en mente: proporcionar una mejor forma de programar aplicaciones de telefonía. En ese momento, las aplicaciones de telefonía eran atípicas del tipo de problemas que podían resolver los lenguajes de programación convencionales. Las aplicaciones de telefonía son, por su naturaleza, altamente concurrentes: un simple switch debe manejar decenas o cientos de miles de transacciones simultáneas. Tales transacciones son intrínsecamente distribuidas y el software se espera que sea altamente tolerante a fallos. Cuando el software que controla los teléfonos falla, sale en los periódicos, algo que no ocurre cuando fallan las aplicaciones de escritorio. El software de telefonía debe también cambiar on-the-fly, esto es, sin perder el servicio mientras se realiza una actualización del código. El software de telefonía debe también operar en tiempo real, con ajustados requisitos de tiempo para algunas operaciones, y más relajado tiempo en otras clases de operaciones.
=== Datos ===
'''Creador:''' Joe Armstrong
'''Empresa Desarrolladora:''' Ericsson
'''Año de Creación:''' 1986
'''Objetivo:''' Solucionar los problemas de un entorno altamente concurrente, que no puede permitirse caer y que debe de actualizarse sin pérdida de servicio.
'''Razón de su Nombre:''' Erlang recibe el nombre de A. K. Erlang. A veces se piensa que el nombre es una abreviación de ERicsson LANGuage, debido a su uso intensivo en Ericsson. Según Bjarne Däcker quién fue el jefe del Computer Science Lab en su día.
'''Lugar de Creación:''' Suecia
'''Tipo de Paradigma:''' Funcional
'''Fue influenciado por:''' Prolog
'''Ha Influenciado A:''' Clojure, Scala
{{AutoCat}}
q37sf2rrofkt6p66moxzm2ju2o7dsbh
Programación en Erlang/“Hola Mundo”
0
41492
431396
231320
2026-08-16T22:44:19Z
Antimundo
74354
Categorizar usando AutoCat y arreglos menores de sintaxis
431396
wikitext
text/x-wiki
=== Programa Hola Mundo ===
Erlang es un poco diferente a otros lenguajes funcionales como Haskell.
En Erlang primero se tiene que crear un modulo con extensión erl. Cada instrucción termina con un punto, sino se hace esto el compilador no se da cuenta cuándo acaba la instrucción. En el archivo creado hay que escribir: -module(archivo.erl). Donde archivo es el nombre del documento que se creó. Después se exportan las funciones que se pueden usar por la consola mediante la instrucción: -export([función/1]). Para compilar el código se escribe en la consola c(archivo). Esto compila el programa. El número que acompaña el nombre de la instrucción dice cuántos parámetros acepta.
''Cree un archivo en “C:\Program Files\erl5.7.2\usr” o escriba “pwd().” Para saber a dónde debe crear los módulos. A continuación haremos nuestro primer programa.''
==== Primer.erl ====
-module(primer).
-export([hello_world/0]).
hello_world() ->
"hello world".
Para compilar escriba en el Shell c(primer). Acuérdese de los puntos al final de la instrucción. Para ejecutar las funciones de los modulos en el Shell usted debe escribir: “modulo:función(parametros).” Por tanto este programa se ejecuto: “primer:hello_world().”.
1>c(primer).
{ok,primer}
2>primer:hello_world().
"hello world"
3>
{{AutoCat}}
jaz0fhcs2ga4xqjba6t20ylg6ri0v5k
Programación en Erlang/Diccionario de palabras reservadas
0
41493
431411
231321
2026-08-16T22:47:04Z
Antimundo
74354
Categorizar usando AutoCat
431411
wikitext
text/x-wiki
=== Palabras Reservadas ===
Las palabras reservadas en Erlang son las siguientes:
{|Border=2
|-
|after
|and
|-
|andalso
|band
|-
|begin
|bnot
|-
|bor
|bsl
|-
|bsr
|bxor
|-
|case
|catch
|-
|Cond
|div
|-
|End
|fun
|-
|if
|let
|-
|not
|of
|-
|or
|orelse
|-
|query
|receive
|-
|rem
|try
|-
|when
|xor
|}
{{AutoCat}}
dbi9kbtu177jkmn175gidl6dm6wsy0i
Programación en Erlang/Operadores y símbolos del lenguaje
0
41494
431401
231322
2026-08-16T22:45:22Z
Antimundo
74354
Categorizar usando AutoCat
431401
wikitext
text/x-wiki
=== Operadores de Control ===
{|Border=2
|-
!Simbolo
!Propósito
|-
|,
|Separador de Comando
|-
|;
|Separador de Comando
|-
|.
|Finalizador de Comando
|-
|<nowiki>-></nowiki>
|Declaración de Funciones o Guard
|-
|%
|Comentario
|}
Erlang puede ser un poco confuso ya que existen 2 tipos de separadores de comando. La , se utiliza para separar expresiones. Esto generalmente se utiliza cuando se tiene una expresión después de otra como es en la programación secuencial. El separador ; es utilizado cuando existen distintos niveles de comandos que necesitan ser finalizados como en el caso de case o guard. El . se utiliza para terminar una función (o expresión, si se está corriendo desde la consola). Los comentarios inician con un % y cubre el resto de la oración pero lo el final, el final de un comentario es marcado por un “ “ (espacio).
=== Expresiones Aritmeticas ===
{|Border=1
|-
!Simbolo
!Proposito
!Tipo de Datos
|-
|<nowiki>+</nowiki>
|Suma
| Enteros o Flotantes
|-
|<nowiki>-</nowiki>
|Resta
| Enteroso o Flotantes
|-
|*
|Multiplicación
| Enteros o Flotantes
|-
|div
|División de Enteros
| Enteros
|-
|<nowiki>/</nowiki>
|División de Punto Flotante
|Enteros
|-
|rem
|División Modular
|Entero
|}
Erlang utiliza notación infija para las operaciones aritméticas. Por ejemplo: (2+3)*2 se evaluaría a 10 como esperado. Ya que Erlang es el tipo de lenguaje dinámico se requiere un operador especial para prevenir la coerción a un punto flotante. Utilizando el operador / causaría la misma conversión implícita.
Ejemplos:
1> +1.
1
2> -1.
-1
3> 1+1.
2
4> 4/2.
2.0
5> 5 div 2.
2
6> 5 rem 2.
1
=== Operadores Áritmeticos de Bit a Bit ===
{|Border=4
|-
!Símbolo
!Propósito
!Tipo de Datos
|-
|band
|Y Lógica
|Entero
|-
|bor
|O Lógica
|Entero
|-
|bxor
|O exclusiva Lógica
|Entero
|-
|bnot
|No Lógico Unario
|Entero
|-
|bsl
|Bitshift Left
|Entero
|-
|bsr
|Bitshift Right
|Entero
|}
Ejemplos:
0
2> 2#10 bor 2#01.
3
3> a + 10.
** exception error: bad argument in an arithmetic expression
in operator +/2
called as a + 10
4> 1 bsl (1 bsl 64).
** exception error: a system limit has been reached
in operator bsl/2
called as 1 bsl 18446744073709551616
=== Operadores Lógicos ===
{|Border=4
|-
!Símbolo
!Propósito
|-
|and
|Y Lógica (AND)
|-
|or
|O Lógica (OR)
|-
|xor
|O Exclusiva (XOR)
|-
|not
|No Lógica (NOT)
|}
Ejemplos:
1> not true.
false
2> true and false.
false
3> true xor false.
true
4> true or garbage.
** exception error: bad argument
in operator or/2
called as true or garbage
{{AutoCat}}
7do2cyv334r8m23hz24sf86xhilb5k4
Programación en Erlang/Tipos de datos fundamentales disponibles en el lenguaje
0
41495
431397
231332
2026-08-16T22:44:35Z
Antimundo
74354
Categorizar usando AutoCat
431397
wikitext
text/x-wiki
=== Condiciones ===
Un pedazo de datos de cualquier tipo de datos se llama un '''término'''.
=== Números ===
Hay dos tipos de literales numéricos, ''enteros'' y ''carrozas''. Además de la notación convencional, hay dos Erlang-notaciones específicas:
* $ Char
El valor ASCII de los caracteres de caracteres.
*# base de valor
Entero con la base de base, que debe ser un entero en el rango de 2 .. 36.
=== Atoms ===
Un átomo es un literal, una constante con nombre. Un átomo debe estar entre comillas simples ( ') si no empiezan con una letra minúscula o si contiene caracteres que no sean caracteres alfanuméricos, guiones bajos (_), o @.
=== Bit Cuerdas y Binarios ===
Una cadena de bits que se utiliza para almacenar un área de memoria sin tipo. Cadenas se expresan mediante la sintaxis de bits. Las cadenas de bits que consta de un número de bits que es divisible por ocho son llamados '''Binarios'''
=== Referencia ===
Una referencia es un término que es único en un sistema de tiempo de ejecución de Erlang, creado por llamar make_ref / 0.
=== Fun ===
Funs hacer posible la creación de una función anónima y pasa a la función por si misma - no su nombre - como argumento a otras funciones.
Ejemplos:
1> Fun1 = fun (X) -> X+1 end.
#Fun<erl_eval.6.39074546>
2> Fun1(2).
3
=== Tupla ===
Compuesto de tipo de datos con un número fijo de términos:
{Term1,...,TermN} Término1 ,..., TermN ()
Cada término de duración en la tupla se llama un elemento. El número de elementos se dice que es el tamaño de la tupla. Existe un número de BIFS para manipular tuplas.
=== Lista ===
Compuesto de tipo de datos con un número variable de los términos.
[Term1,...,TermN] [Término1 ,..., TermN]
Cada término de término de la lista se llama un elemento. El número de elementos se dice que es la longitud de la lista. Formalmente, la lista es o bien la lista vacía [] o consista en una cabeza (primer elemento) y una cola (el resto de la lista) que también es una lista. Este último puede ser expresado como [H | T]. La notación [término1 ,..., TermN] anterior es en realidad la abreviatura de la lista [término1 |[...|[ TermN |[]]]].
Ejemplo:
[] Es una lista, por lo tanto <br />
[c | []] es una lista, por lo tanto <br />
[b | [c |[]]] es una lista, por lo tanto <br />
[a,b,c] . [a | [b | [c |[]]]] es una lista, o en definitiva [a, b, c]. <br />
Una lista en la cola es una lista se llama a veces una lista adecuada. Se permite tener una lista en la que la cola no es una lista, por ejemplo, [a | b]. Sin embargo, este tipo de lista es de poca utilidad práctica.
Ejemplos:
1> L1 = [a, 2, (c, 4)]. [A, 2, (c, 4)] 2> [H | T] = L1. [A, 2, (c, 4)] 3> H. de 4> T. [2, (c, 4)] 5> L2 = [d | T]. [d, 2, (c, 4)]
6> longitud (L1). 3 7> longitud ([ ]). 0
Una colección de funciones de procesamiento de la lista se puede encontrar en las listas stdlib módulo.
=== String ===
Las cadenas se escriben entre comillas ( "), pero no es un tipo de datos en Erlang. En lugar de una cadena" Hola "es la abreviatura de la lista [e $ $ h,, $ l, l $, $ o], que es [ 104.101.108.108.111].
Dos cadenas literales adyacentes se concatenan en una sola. Esto se hace en tiempo de compilación y no incurrir en gastos de tiempo de ejecución.
Ejemplo:
"string" "42" "cadena" "42"
es equivalente a
"string42" "string42"
=== Registro ===
Un registro es una estructura de datos para almacenar un número fijo de elementos. Sin embargo, registro no es un tipo de datos real. Las expresiones de registro son traducidos a tupla expresiones durante la compilación. Por lo tanto, las expresiones de registro no son comprendidos por el depósito si no se adoptan medidas especiales.
-module (persona).
-export ([new/2]).
registro (persona, (nombre, edad)).
nuevo (nombre, edad) ->
# (name = Nombre de la persona, edad = edad).
1> persona:nuevo(Ernie,44).
(persona,Ernie,44)
=== Boolean ===
No hay ningún tipo de datos Boolean en Erlang. En cambio los átomos de verdadero y falso se usa para designar a los valores booleanos.
{{AutoCat}}
2542hgkcjy47kz6n30j9w2zgpinb3ui
Programación en Erlang/Operaciones de entrada y salida básicas
0
41496
431402
231333
2026-08-16T22:45:34Z
Antimundo
74354
Categorizar usando AutoCat
431402
wikitext
text/x-wiki
Al ser Erlang un lenguaje funcional, comparte muchas cosas con Haskell.
=== Operaciones de entrada ===
Como muchos lenguajes funcionales Erlang posee su propio Shell en el cual se puede escribir directamente código y evaluarlos (correrlos) para así ver que pasa.
Al empezar el interprete se correrá el Shell, y se vera algo así:
% erl
Erlang (BEAM) emulator version 5.2 [source] [hipe]
Eshell V5.2 (abort with ^G)
1>
Si escribimos 2 + 5 en Erlang obtenemos lo siguiente:
1> 2 + 5.
7
2>
=== Operaciones de salida ===
Al igual que en la mayoría de los lenguajes funcionales, no se envía mensajes de salida, sino que estos envían respuestas a las entradas.
2> (42 + 77) * 66 / 3.
2618.0
También se pueden hacer métodos, y luego llamarlos para que estos nos den una salida
-module(tut).
-export([double/1]).
double(X) ->
2 * X.
4> tut:double(10).
20
Asi que como vemos, al igual que en Haskell.
{{AutoCat}}
gvofn2rk2p8ym1gytyt9di44jm5d800
Programación en Erlang/Tipos de datos complejos y su representación
0
41497
431398
231334
2026-08-16T22:44:44Z
Antimundo
74354
Categorizar usando AutoCat
431398
wikitext
text/x-wiki
=== Registros ===
Un registro es una estructura de datos con un número fijo de campos que se accede por su nombre, similar a una estructura de C o un registro de Pascal. Esto difiere de tuplas, donde los campos son visitados por la posición. En el caso del ejemplo de persona, defina un tipo de registro
como sigue:
-record(person, {name,age,phone}).
Esto introduce el tipo de registro person, donde cada instancia de registro contiene tres campos llamados name, age y phone. Los nombres de campo se definen como los átomos. Aquí hay un ejemplo de una instancia de registro de este tipo:
#person{name="Joe",
age=21,
phone="999-999"}
En el código anterior, #person es el constructor de registros person. Lo que pasa en este ejemplo es que hicimos una lista de los campos en el mismo orden que en la definición, pero esto no es necesario. La siguiente expresión da el mismo valor:
-record(person, {name,age=0,phone=""}).
Ahora, un registro persona como esta:
#person{name="Fred"}
tendrá cero años de edad y un número de teléfono vacío; en ausencia de un valor por defecto especificado, "predeterminado predeterminado" es el átomo no definido.
La definición general de un registro name con campos denominados campo1 a campon tomará la siguiente forma:
-record{name, {field1 [ = default1 ],
field2 [ = default2 ],
...
fieldn [ = defaultn ] }
donde las partes entre corchetes son las declaraciones opcionales de valores de campo por defecto. El mismo nombre de campo se puede utilizar en más de un tipo de registro; de hecho, dos registros podrían compartir la misma lista de nombres. El nombre del registro puede ser utilizado en sólo una definición, sin embargo, como este se utiliza para identificar el registro.
=== Trabajando con Registros ===
Suponga que le dan un valor de registro. ¿Cómo se puede acceder a los campos, y cómo puede usted describir un registro modificado?. Teniendo en cuenta el siguiente ejemplo:
Person = #person{name="Fred"}
se accesa a los campos de los registros de esta manera: Person#person.name, Person#person.age, y así sucesivamente. ¿Cuáles serán los valores de estos? La forma general para acceder a este campo seria:
RecordExp#name.fieldName
donde name y fieldName no pueden ser variables y RecordExp es una expresión que denota un registro. Normalmente, esta sería una variable, pero también podría ser el resultado de una aplicación de la función o de un acceso al campo para otro tipo de registro.
Supongamos que desea modificar un solo campo de un registro. Usted puede escribir directamente, como en el texto siguiente:
NewPerson = Person#person{age=37}
En tal caso, la sintaxis del registro es una ventaja real. Usted ha mencionado sólo el campo cuyo valor es modificado; los que no se han modificado de Person a NewPerson no es necesario
la figurarlo en la definición. De hecho, el mecanismo de registro permite a cualquier selección de los campos que se actualizará, como en:
NewPerson = Person#person{phone="999-999",age=37}
El caso general será:
RecordExp#name{..., fieldNamei=valuei, ... }
donde los campo actualizados pueden ocurrir en cualquier orden, pero cada nombre de campo puede ocurrir, como máximo, sólo una vez.
=== Implementación de registros ===
El compilador de Erlang implementa registros antes de que se ejecute programas. Los registros se traducen tuplas, y funciones en los registros se traducen en funciones y BIFs sobre el
tuplas correspondientes.
** Tuplas: son un tipo de datos compuestos utilizados para almacenar una colección de items, que son valores de datos de Erlang pero que no tienen que ser todos del mismo tipo. Tuplas están delimitados por llaves, {...}, y sus elementos están separados por comas. Algunos ejemplos de tuplas incluyen:
{123, bcd} {123, def, abc} {abc, {def, 123}, ghi} {}
{person, 'Joe', 'Armstrong'} {person, 'Mike', 'Williams'}
=== Listas ===
Listas y tuplas se utilizan para almacenar colecciones de elementos; en ambos casos, los elementos pueden ser de diferentes tipos, y las colecciones pueden ser de cualquier tamaño. Las listas y las tuplas son muy diferentes, sin embargo, en la forma en que pueden ser procesados. Comenzaremos por describir cómo las listas se denotan en Erlang, y examinar la forma en que las cadenas son un tipo especial de lista, antes de explicar en detalle cómo las listas pueden ser procesadas.
Listas están delimitadas por corchetes, [...], y sus elementos están separados por comas. Elementos en listas no tienen que ser del mismo tipo de datos y, como las tuplas, se puede
ser libremente mezclados. Algunos ejemplos de listas son:
[january, february, march]
[123, def, abc]
[a,[b,[c,d,e],f], g]
[]
[{person, 'Joe', 'Armstrong'}, {person, 'Robert', 'Virding'},
{person, 'Mike', 'Williams'}]
[72,101,108,108,111,32,87,111,114,108,100]
[$H,$e,$l,$l,$o,$ ,$W,$o,$r,$l,$d]
"Hello World"
La lista [a, [b, [c, d, e], f], g] se dice que tiene una longitud de 3. El primer elemento es el átomo
a, la segunda es la lista [b, [c, d, e], f], y el tercero es el átomo g. La lista vacía es denotada por [], mientras que [{person, 'Joe', 'Armstrong'}, {person, 'Robert', 'Virding'}, {person, 'Mike', Williams'}] es una lista de tuplas etiquetadas.
=== Arrays ===
El módulo array contiene un tipo de dato abstracto funcional, matrices extendibles. Pueden tener un tamaño fijo, o crecer según sea necesario. El módulo contiene la funcionalidad para establecer y revisar los valores, así como para definir recurrencias sobre ellos.
los arreglos utilizan la indexación basada en cero. Esta es una elección deliberada de diseño y difiere de Erlang otras estructuras de datos, por ejemplo, tuplas.
Salvo que se indique por el usuario cuando se crea la matriz, el valor por defecto es el átomo no definido. No hay ninguna diferencia entre una entrada no establecida y una entrada que se ha establecido explícitamente en el mismo valor como predeterminado. Si tiene necesidad de diferenciar entre entrados establecidas y no establecidas, debe asegurarse de que el valor predeterminado no se puede confundir con los valores de las entradas establecidas.
El arreglo no se reduce de forma automática; si un índice que se ha utilizado con éxito para establecer una entrada, todos los índices en el intervalo [0, I] se quedara accesible a menos que el tamaño de la matriz está explícitamente cambiado.
Ejemplos:
%% crear un arreglo con tamaño predeterminado con entradas 0-9 indicadas como indefinido
A0 = array:new(10).
10 = array:size(A0).
%% Crear un arreglo extendible e indicando la entrada 17 como verdadera,
%% causando que el arreglo crezca automaticamente
A1 = array:set(17, true, array:new()).
18 = array:size(A1).
%% Leer un valor guardado
true = array:get(17, A1).
%% Accesando un valor no indicado retorna el valor por defecto
undefined = array:get(3, A1).
%% Accesando un valor mas alla de la ultima entrada indicada también retorna el
%% valor por defecto, si el arreglo no tiene tamaño definido
undefined = array:get(18, A1).
%% funciones "sparse" (esparcidas) ignoran las entradas con valores por defecto
A2 = array:set(4, false, A1).
[{4, false}, {17, true}] = array:sparse_to_orddict(A2).
%% Un arreglo extendible puede después ser de tamaño fijo
A3 = array:fix(A2).
%% Un arreglo de tamaño fijo no cece automaticamente y no
%% permite ser accesado mas alla de la ultima entrada indicada
{'EXIT',{badarg,_}} = (catch array:set(18, true, A3)).
{'EXIT',{badarg,_}} = (catch array:get(18, A3)).
=== Estructura de Datos Complejas ===
Cuando nos referimos a términos de Erlang, nos referimos a estructuras de datos legales. Los Términos Erlang pueden ser valores de datos simples, pero a menudo utilizamos la expresión para describir arbitrariamente estructuras de datos complejas.
En Erlang, las estructuras de datos complejas son creados anidadando tipos de datos compuestos. Estas estructuras de datos puede contener variables ligadas o los valores simples y compuestos ellos mismos. Un ejemplo de una lista que conteniendo tuplas tipo person (etiquetados con el átomo person) con el nombre, apellido, y una lista de atributos que se vería así:
[{person,"Joe","Armstrong",
[ {shoeSize,42},
{pets,[{cat,zorro},{cat,daisy}]},
{children,[{thomas,21},{claire,17}]}]
},
{person,"Mike","Williams",
[ {shoeSize,41},
{likes,[boats,wine]}]
}
]
O bien, si tuviéramos que escribir en unos pocos pasos utilizando variables, lo haríamos así. Note cómo, para facilitar la lectura, hemos llamado a las variables con sus tipos de datos:
1> JoeAttributeList = [{shoeSize,42}, {pets,[{cat, zorro},{cat,daisy}]},
1> {children,[{thomas,21},{claire,17}]}].
[{shoeSize,42},
{pets,[{cat,zorro},{cat,daisy}]},
{children,[{thomas,21},{claire,17}]}]
2> JoeTuple = {person,"Joe","Armstrong",JoeAttributeList}.
{person,"Joe","Armstrong",
[{shoeSize,42},
{pets,[{cat,zorro},{cat,daisy}]},
{children,[{thomas,21},{claire,17}]}]}
3> MikeAttributeList = [{shoeSize,41},{likes,[boats,wine]}].
[{shoeSize,41},{likes,[boats,wine]}]
4> MikeTuple = {person,"Mike","Williams",MikeAttributeList}.
{person,"Mike","Williams",
[{shoeSize,41},{likes,[boats,wine]}]}
5> People = [JoeTuple,MikeTuple].
[{person,"Joe","Armstrong",
[{shoeSize,42},
{pets,[{cat,zorro},{cat,daisy}]}, {children,[{thomas,21},{claire,17}]}]},
{person,"Mike","Williams",
[{shoeSize,41},{likes,[boats,wine]}]}]
Una de las bellezas de Erlang es el hecho de que no hay necesidad explícita de la asignación y cancelación de memoria. Para los
programadores de C, esto significa que no hay más noches sin dormir la caza de errores de puntero o de fugas de memoria. La memoria para almacenar los tipos de datos complejos es asignado por el sistema de ejecución cuando sea necesario, y la cancelacion de forma automática por el recolector de basura cuando la estructura ya no es referenciada.
{{AutoCat}}
gkesxt8idsuqzzqy8oun32qee5uzdi9
Programación en Erlang/Declaración e inicialización de variables
0
41498
431413
231335
2026-08-16T22:47:24Z
Antimundo
74354
Categorizar usando AutoCat
431413
wikitext
text/x-wiki
=== Tipos de Variables ===
Erlang maneja diferentes tipos de variables, los cuales se dividen en 2:
# Constantes: estos tipos de dato son los que ya no son divisibles en más datos primitivos. Las Constantes pueden ser de 2 tipos:
## Números. Los números caben dentro de 2 tipos. Los tipos son:
### Enteros (Ejemplos: 120, -35000, 590, etc.)
### Flotantes (Ejemplos: 3.14159, -1.2e-45, 30.141216, etc.)
## Átomos. Los átomos son simplemente constantes con nombres. (Ejemplos: abcdef, ‘Un atomo con espacios’, lunes, martes, sábado, Hola_Mundo, etc.)
# Compuestos: estos son los tipos de dato que se usan para agrupar datos. Los tipos son:
## Tuplas. Las tuplas son usadas para almacenar un número fijo de datos y se utilizan mediante ‘{}’. Las tuplas son similares a los registros o estructuras para los lenguajes funcionales. (Ejemplo: {a,12,77},{},{1,2,3},etc.)
## Listas. Las listas son utilizadas para almacenar un número variable de datos y son escritos como secuencias de datos que son cerradas mediante ‘[]’. (Ejemplos: [], [1,2,3,34],[1,’Hola Mundo’],etc.)
=== Declaración de Variables ===
La declaración de variables es diferente a Erlang que a otros leguajes, ya que Erlang no define una variable de tipo int o float. Sino que este se da cuenta al volverse le a asignar. Las variables de Erlang son de simple asignamiento. Comienzan con una letra capital o un ‘underscore’ seguidas de un texto alfanumérico.
{{AutoCat}}
a1k622g04bdxoephsmf13l820us6gco
Programación en Erlang/Tabla de operadores con asociatividad y precedencia
0
41499
431399
231336
2026-08-16T22:44:53Z
Antimundo
74354
Categorizar usando AutoCat
431399
wikitext
text/x-wiki
En expresiones que consisten de sub-expresiones los operadores serán desarrollados de acuerdo a su precedencia definida.
{|Border=1
|+'''Precedencia (de más alta a más baja)'''
|-
!Símbolo
!Asociatividad
|-
|<nowiki>:</nowiki>
|
|-
|<nowiki>#</nowiki>
|
|-
|<nowiki>Unary + - bnot not </nowiki>
|
|-
|<nowiki>/ * div rem band and </nowiki>
|Izquierda
|-
|<nowiki>+ - bor bxor bsl bsr or xor</nowiki>
|Izquierda
|-
|<nowiki>++ --</nowiki>
|Derecha
|-
|<nowiki>== /= =< < >= > =:= =/= </nowiki>
|
|-
|andalso
|
|-
|orelse
|
|-
|<nowiki>= !</nowiki>
| Derecha
|-
|catch
|
|}
Los operadores con la prioridad más alta serán los primeros en evaluarse. Operadores con la misma prioridad serán evaluados por su asociatividad. Los operadores aritméticos con asociatividad por la izquierda son evaluados de izquierda a derecha.
Ejemplo: <br />
6 + 5 * 4 - 3 / 2 => 6 + 20 - 1.5 => 26 - 1.5 => 24.5
=== Expresiones booleanas de Corto Circuito ===
Ejemplo:
Expr1 orelse Expr2
Expr1 andalso Expr2
Estas son expresiones booleanas en las que Expr2 será evaluada solo si es necesario. En una expresión orelse, Expr2 se evaluara si y solo si Expr1 se evalúa a false. En una expresión andalso, Expr2 será evaluado si y solo si Expr1 se evalúa a true.
Ejemplo:
if A >= 0 andalso math:sqrt(A) > B -> ...
if is_list(L) andalso length(L) == 1 -> ...
{{AutoCat}}
gn00dpsgjswazq0os7naiq8symud1uq
Programación en Erlang/Estructuras de decisión e iteración
0
41500
431408
231337
2026-08-16T22:46:35Z
Antimundo
74354
Categorizar usando AutoCat
431408
wikitext
text/x-wiki
=== IF ===
if
GuardSeq1 ->
Body1;
...;
GuardSeqN ->
BodyN
end
Las ramas de un si-expresión se analizan de forma secuencial hasta que una secuencia de guardia GuardSeq que se evalúa como verdadera se encuentra. Entonces, el organismo correspondiente (la secuencia de expresiones separadas por ',') es evaluada.
El valor de retorno del cuerpo es el valor de retorno de la expresión del IF.
Si no hay secuencia de guardia es cierto, una carrera if_clause tiempo de error. Si es necesario, la expresión de la guardia real puede ser utilizado en la última rama, ya que la secuencia de la guardia siempre es cierto.
is_greater_than(X,Y) ->
if
X>Y ->
true;
true -> % works on an ´else´ branch
false
end
=== Case ===
La expresión expr es evaluado y el patrón de los patrones se comparan con la secuencia de resultados. Si un partido tiene éxito y la secuencia de la guardia opcional GuardSeq es cierto, el organismo correspondiente se evalúa. <br />
El valor de retorno del cuerpo es el valor de retorno de la expresión caso. Si no hay un patrón de coincidencia con una secuencia de la guardia real, una ejecución case_clause tiempo de error.
case Expr of
Pattern1 [when GuardSeq1] ->
Body;
....;
PatternN [when GuardSeqN] ->
BodyN
end
{{AutoCat}}
kgz9i3aw2bejokoci4lrq4go52l7qmj
Programación en Erlang/Iteraciones y recursiones
0
41501
431404
236520
2026-08-16T22:45:51Z
Antimundo
74354
Categorizar usando AutoCat
431404
wikitext
text/x-wiki
=== Guard sequences ===
Una secuencia de guardia es un conjunto de guardias separados por punto y coma (;). La secuencia de guardia es cierto si al menos uno de los guardias es cierto.
GUARD1, ...; GuardK
Un guard es un conjunto de expresiones del guard , separadas por comas (,). El guard es cierto si todas las expresiones de la Guardia resultado verdadero.
GuardExpr1, ..., GuardExprN
Las expresiones del Guard permitido (a veces se llaman pruebas de guard) es un subconjunto del conjunto de las expresiones válidas Erlang, desde la evaluación de una expresión de guard debe ser garantizado de estar libre de efectos secundarios.
{|Border=1
|+Expresiones Validas de los Guards
|-
|atom true
|-
|Otras constantes (términos y variables ligadas), todos considerados como falsos
|-
|Comparacion de terminos
|-
|Expresiones aritmeticas y booleanas
|-
|Llamadas al BIFs (Built-in functions) especificadas abajo
|-
!Tipo de prueba BIFs
!Otros BIFS permitidos en los guards
|-
|is_atom/1
|abs(Integer | Float)
|-
|is_constant/1
|float(Term)
|-
|is_integer/1
|trunc(Integer | Float)
|-
|is_float/1
|round(Integer | Float)
|-
|is_number/1
|size(Tuple|Binary)
|-
|is_reference/1
|element(N, Tuple)
|-
|is_port/1
|hd(List)
|-
|is_pid/1
|tl(List)
|-
|is_function/1
|length(List)
|-
|is_tuple/1
|self()
|-
|is_record/2 The 2nd argument is the record name
|node()
|-
|is_list/1
|node(Pid|Ref|Port)
|-
|is_binary/1
|
|}
pequeño ejemplo:
fact(N) when N>0 -> % first clause head
N * fact(N-1); % first clause body
fact(0) -> % second clause head
1. % second clause body
=== Tail Recursion ===
Si la última expresión de una función es una llamada de función, una llamada recursiva de tail se realiza de tal manera que no hay recursos del sistema (como la pila de llamadas) se consumen. Esto significa que un bucle infinito, como un servidor se puede programar de manera que sólo utiliza las llamadas tail recursivas.
fact(N) when N>1 -> fact(N, N-1);
fact(N) when N=1; N=0 -> 1.
fact(F,0) -> F; % The variable F is used as an accumulator
fact(F,N) -> fact(F*N, N-1).
Ejemplo 1:
Construye un lista, imprime la function, aplicando la function a la lista lists:map(). Retorna un valor.
counter1() ->
L = lists:seq(1,10),
PrintInt = fun(I) -> io:fwrite("~p ", [I]) end,
lists:foreach(PrintInt, L).
counter3() ->
L = lists:seq(1,10),
[ printInt(I) || I <- L].
Ejemplo 2:
Recursión con un acumulador. usar un guard sequence ("cuando N > 10") para especificar el caso base. Se define dos funciones "counter4/0" (zero args) y "counter4/1".
"counter4/1" consiste en dos clausulas separadas por ;
counter4() -> counter4(1).
counter4(N) when N > 10 -> none;
counter4(N) ->
printInt(N), counter4(N + 1).
Ejemplo 3: Procesamiento de la lista con un acumulador
counter6() ->
%L = [1,1,1,1,1,1,1,1,1,1],
L = lists:duplicate(10,1),
counter6(L, 0).
counter6([], Acc) -> Acc;
counter6([H|T], Acc) ->
N = H + Acc,
printInt(N),
counter6(T, N).
Ejemplo 4:
Procesamieinto de una matriz con recursividad
count_matrix1() ->
count_matrix1( 5, 0, 0 ).
count_matrix1(Size, Size, Size) -> none;
count_matrix1(Size, Size, PtrY) ->
io:format("~n"),
count_matrix1(Size, 0, PtrY+1);
count_matrix1(Size, PtrX, PtrY) ->
io:format("(~p,~p) ", [PtrX, PtrY]),
count_matrix1(Size, PtrX+1, PtrY).
{{AutoCat}}
f72q6vu7z1gyi839jmc3zd4ooaqxxw1
Programación en Erlang/Declaración, definición y uso de métodos y funciones
0
41502
431412
231323
2026-08-16T22:47:12Z
Antimundo
74354
Categorizar usando AutoCat
431412
wikitext
text/x-wiki
=== Métodos y funciones en Erlang ===
Para ver una función en Erlang podemos el archivo even_prime.er con el siguiente código
-module(even_prime). % 1
-export([is_even_prime/1]). % 2
% 3
is_even_prime(2) -> % 4 clause 1 is simple
true; % 5
is_even_prime(N) when is_integer(N) -> % 6 clause 2 has a guard: is_integer(N)
false; % 7
is_even_prime(Any) -> % 8 clause 3 is simple
'I prefer integer inputs'. % 9
Las clausulas de las funciones están puestas en el orden en el cual se verifican. Primero is_even_prime(2) es verificada para ver si concuerda. Si el argumento es verificado dicha función regresa verdadero. Si is_even_prime(2) no es verificada, entonces se trata is_even_prime(N). is_even_prime(N) es verificada. La declaración when is_integer es una guardia que solo admite tipos integer a N. al final nos dice que la función se terminad definiendo. is_even_prime(Any) coincide con cualquier cosa de cualquier tipo y regresa “i prefer integer imputs” . la función se ha terminado. Esta función es una función total y cumple todos los los posibles argumentos de entrada.
Salidas
2> c(even_prime).
./even_prime.erl:8: Warning: variable 'Any' is unused
{ok,even_prime}
3> even_prime:is_even_prime(2).
true
4> even_prime:is_even_prime(1).
false
5> even_prime:is_even_prime(seven).
'I prefer integer inputs'
=== Estructura de una función ===
<nowiki>==================================================================</nowiki>
Syntax/structure of a function:
<nowiki>==================================================================</nowiki>
<nowiki>semicolon - ends a clause</nowiki>
<nowiki>period - ends a function </nowiki>
<nowiki>when - starts a guard</nowiki>
<nowiki>arrow - separates the head from the tail of the function</nowiki>
<nowiki>function head - input part of function includes the signature and guard</nowiki>
<nowiki>function tail - output/consequence(s) part of function</nowiki>
<nowiki>signature - the function name and argument structure/count</nowiki>
<nowiki>==================================================================</nowiki>
<nowiki>rotate_list( [H|T] ) when is_atom(H) -> T ++ [H].</nowiki>
.
<nowiki>[----signature-----] [----guard----] . </nowiki>
.
<nowiki>[-----------function head----------] . [--function tail--]</nowiki>
<nowiki>==================================================================</nowiki>
{{AutoCat}}
ng4lpg8drfypylgbnf86ize5jhn314n
Programación en Erlang/Esquema de administración de memoria y separación de memoria
0
41504
431409
367759
2026-08-16T22:46:46Z
Antimundo
74354
Categorizar usando AutoCat
431409
wikitext
text/x-wiki
maneja todos sus procedimientos a través del heap ya que este no utiliza stack. Hay varias estrategias utilizadas para el manejamiento y mantenimiento del Heap. Entre ellas están:
* “process local heap”
* “unified heap”
=== "Process Local Heap" ===
Esta estrategia lo que realiza es crear una heap local donde ubica cada objeto. Cada proceso llama una colección independiente. El recolector de basura trabaja por procesos.
=== "Unified Heap" ===
Esta estrategia toma que todos los heaps son uno sólo que comparte todos los procesos. Este heap almacena la continuación de los procesos y los otros objetos alojados por proceso. Sólo cuando la heap es acabada por uno de estos procesos que el recolector de basura es llamado. El algoritmo utilizado en el Erlang basado para los sistemas ETOS es una combinación entre two-spacecopying y mark-and-sweep.
=== Algoritmo del Recolector de Basura para “Process Local Heap” ===
El algoritmo se divide en 2 pasos. El primero de ellos, realiza una barrida de todo el heap y lo compacta. El último, mueve los objetos de regreso hasta su destinación final. La gran ventaja de este algoritmo es que no ocupa espacio adicional. Sin embargo, en el otro aspecto el tiempo de corrida de este algoritmo depende del tamaño del heap.
=== Manejamiento de Memoria para el “Unified Heap” ===
Para acomodarse al ambiente multitasking el unified heap puede crecer y achicarse así sea necesario en la evolución del programa que evidentemente se mantiene proporcional el tamaño del espacio de procesamiento del Sistema Operativo al de la data utilizada. Por el default, al final de un ciclo el tamaño del heap es redefinido para que quepa los datos ocupen la mitad del tamaño del heap.
=== Manejamiento de Procesos ===
La estrategia utilizada es un manejador de procesos por prioridad. Cada proceso tiene un número de punto flotante marcando su prioridad. Esto otorga un buen control, de cuando deben entrar y salir los procesos. Los descriptores de procesos son alojados en el “unified heap” como cualquier otro. Cada descriptor de procesos tiene un apuntador al siguiente proceso
=== Paso de Parámetros ===
Erlang del “Process Local Heap” realiza una copia para pasar los parámetros de diferentes procesos. Ya que cada proceso tiene una colección diferente es por esta razón la necesidad de una copia. Sin embargo, gracias a que el “Unified Heap” toman la heap como un todo el paso de parámetros mediante procesos no genera un problema como en el “Process Local Heap”.
{{AutoCat}}
b5lw7vyqzhbt1henn02o9s4dkfmyfz7
Programación en Erlang/Implementación de corutinas
0
41505
431406
231326
2026-08-16T22:46:09Z
Antimundo
74354
Categorizar usando AutoCat
431406
wikitext
text/x-wiki
=== Procesos ===
Erlang, a diferencia de otros lenguajes funcionales, tiene la capacidad de manejar concurrencia y programación distribuida. Concurrencia es poder manejar varios hilos de ejecución al mismo tiempo. Por ejemplo, sistemas operativos modernos le permitirían utilizar un procesador de textos, una hoja de cálculo, un cliente de correo y un trabajo de impresión todo esto ejecutándose al mismo tiempo. Por supuesto cada procesador (CPU) en el sistema probablemente sólo maneja un hilo (o trabajo) a la vez, pero cambia entre los trabajos a una velocidad que da la ilusión de correrlos todo al mismo tiempo. Es fácil crear hilos paralelos de ejecución en Erlang y es fácil permitir que estos hilos se comuniquen unos con otros. En Erlang a cada hilo de ejecución se le denomina proceso.
Nota: El término "proceso" es utilizado, generalmente, cuando los hilos de ejecución no comparten datos uno con el otro y el termino "hilo" cuando ellos comparten datos de alguna manera. Los hilos de ejecución en Erlang no comparten datos, por eso se llaman procesos.
El BIF (Built-in Function) spawn de Erlang es utilizado para crear un nuevo proceso spawn(Modulo, Funcion_Exportada, Lista de Argumentos)
Ejemplo: (Parte I)
-module(tut14).
-export([start/0, say_something/2]).
say_something(What, 0) ->
done;
say_something(What, Times) ->
io:format("~p~n", [What]),
say_something(What, Times - 1).
start() ->
spawn(tut14, say_something, [hello, 3]),
spawn(tut14, say_something, [goodbye, 3]).
5> c(tut14).
{ok,tut14}
6> tut14:say_something(hello, 3).
hello
hello
hello
done
Podemos observar que la función say_something escribe su primer argumento la cantidad de veces especificada por el segundo argumento. Ahora si observamos a la función start. Este inicia dos procesos, uno que escribe “hello” tres veces y otro que escribe “goodbye” tres veces. Ambos de los procesos utilizan la función say_something.
Nota: La función utilizada por spawn para iniciar un proceso fue exportado desde un modulo (Ej. En el -export al inicio del modulo).
(Parte II)
9> tut14:start().
hello
goodbye
<0.63.0>
hello
goodbye
hello
goodbye
Podemos notar que en esta parte no se escribió “hello” tres veces y después “goodbye” tres veces, en vez el primer proceso escribió “hello” y el Segundo “goodbye”, el siguiente otro “hello”, etc… Ahora, de donde sale el <0.63.0>? Lo que retorna una función es el valor de la ultima “cosa” que realize la función. Lo último que hace la función start es
spawn(tut14, say_something, [goodbye, 3]).
spawn retorna el identificador de un proceso (Process Identifier o pid), este identifica de manera unica un proceso.Asi que <0.63.0> es el pid que la función spawn llama.
Nota: Observe que en io:format se utilize ~p en vez de ~w. Esto es así ya que, ~p escribe la data en una sintaxis estándar, de la misma manera que ~w, sin embargo este rompe los terms que al imprimir son más largos de una línea en varias líneas y las indenta de manera coherente. También intenta detectar listas con caracteres imprimibles e imprimirlos como strings.
=== Como enviar mensajes ===
En el siguiente ejemplo se crean dos procesos que se envían mensajes el uno al otro un determinado número de veces.
Ejemplo:
-module(tut15).
-export([start/0, ping/2, pong/0]).
ping(0, Pong_PID) ->
Pong_PID ! finished,
io:format("ping finished~n", []);
ping(N, Pong_PID) ->
Pong_PID ! {ping, self()},
receive
pong ->
io:format("Ping received pong~n", [])
end,
ping(N - 1, Pong_PID).
pong() ->
receive
finished ->
io:format("Pong finished~n", []);
{ping, Ping_PID} ->
io:format("Pong received ping~n", []),
Ping_PID ! pong,
pong()
end.
start() ->
Pong_PID = spawn(tut15, pong, []),
spawn(tut15, ping, [3, Pong_PID]).
1> c(tut15).
{ok,tut15}
2> tut15: start().
<0.36.0>
Pong received ping
Ping received pong
Pong received ping
Ping received pong
Pong received ping
Ping received pong
ping finished
Pong finished
La función start primero crea un proceso llamado “pong”:
Pong_PID = spawn(tut15, pong, [])
Este proceso ejecuta tut15:pong(). Pong_PID es la identidad del proceso “pong”. La función start ahora, crea un nuevo proceso llamado “ping”.
spawn(tut15, ping, [3, Pong_PID]),
este proceso ejecuta
tut15:ping(3, Pong_PID)
<0.36.0> es el valor de retorno de la función start.
El proceso “pong” ahora realiza lo siguiente:
receive
finished ->
io:format("Pong finished~n", []);
{ping, Ping_PID} ->
io:format("Pong received ping~n", []),
Ping_PID ! pong,
pong()
end.
El contructor receive es usado para permitir que los procesos esperen mensajes de otros procesos. Tiene este formato:
receive
pattern1 ->
actions1;
pattern2 ->
actions2;
....
patternN
actionsN
end.
Nota: antes del end no se utiliza un “;”.
Mensajes entre procesos son validos únicamente entre los tipos de datos establecidos por Erlang. Pueden ser lists, tuples, integers, atoms, pids etc.
Cada proceso tiene su propia cola para los mensajes que recibe. Los nuevos mensajes que recibe, son puestos al final de la cola. Cuando un proceso ejecuta receive, el primer mensaje en la cola es emparejado con el primer patrón en receive, si esto concuerda, el mensaje es removido de la cola y las acciones correspondientes al patrón son ejecutadas.
Sin embargo, si el primer patrón no concuerda, el segundo patrón es probado, si este concuerda, el mensaje es removido de la cola y las acciones correspondientes al segundo patrón son ejecutadas. Si el segundo patrón no concuerda, el tercero es probado, etc. Así será hasta que ya no haya más patrones por probar. Si ya no existen más patrones por probar, el primer mensajes es retenido en la cola y se intenta con el segundo mensaje. Si este concuerda cualquier patrón, las acciones apropiadas son ejecutadas y el segundo mensaje es removido de la cola (manteniendo el primer y el resto de los mensajes en la cola). Si el segundo mensaje no concuerda se prueba el tercer mensaje, etc. Asi será hasta que se llegue al final de la cola. Si se llega al final de la cola, los procesos detienen su ejecucion y esperan hasta que un Nuevo mensaje sea recibido, este procedimiento de repite.
La implementación en Erlang es “ingeniosa” y minimize el número de veces que cada mensaje es probado contra los patrones en receive.
Continuando con el ejemplo de Ping-Pong:
"Pong" esta esperando mensajes. Si el atom finished es recibido, “pong” imprime “pong finished” y como no tiene nada mas que hacer, finalize. Si recibe un mensaje en este formato:
{ping, Ping_PID}
Imprime "Pong received ping" y envia el atom pong al proceso "ping":
Ping_PID ! pong
Nota: El operador “!” es utilizado para enviar mensajes. Su sintaxis es la siguiente:
Pid ! Message
En este caso Message (cualquier termino en Erlang) es enviado al proceso con identidad Pid.
Después de enviar el mensaje pong, al proceso “ping”, “pong” llama a la función pong de nuevo, lo que causa regresar a receive otra vez y esperar otro mensaje. Ahora el proceso “ping” fue iniciado ejecutando:
tut15:ping(3, Pong_PID)
Viendo la función ping/2, observamos que la segunda clausula de ping/2 es ejecutada ya que el valor del primer argumento es 3 (no 0)(la primera clausula es ping(0,Pong_PID), segunda clausula es ping(N,Pong_PID), por consiguiente N se convierte en 3).
La segunda clausula envía un mensaje a “pong”:
Pong_PID ! {ping, self()},
self() retorna el pid del proceso y esto ejecuta self(), en este caso el pid de “ping”. (En el código de “pong” esto caerá en la variable Ping_PID en receive).
"Ping" ahora deberá esperar por la respuesta de “pong”:
receive
pong ->
io:format("Ping received pong~n", [])
end,
y escribe "Ping received pong" cuando esta respuesta haya llegado, después de esto “ping” llama a la función ping una vez más.
ping(N - 1, Pong_PID)
N-1 causa que el primer argumento sea disminuido hasta llegar a 0. Cuando esto ocurre, la primera clausula de ping/2 será ejecutada:
ping(0, Pong_PID) ->
Pong_PID ! finished,
io:format("ping finished~n", []);
El atom finished es enviado a "pong" (causando que el proceso termine) y se imprime "ping finished" en la ventana. "Ping" al no tener nada que hacer se finaliza.
{{AutoCat}}
ppxqusio0z44xxe7mxnl47hihng1u5k
Programación en Erlang/Registrando el nombre de procesos
0
41506
431400
231327
2026-08-16T22:45:04Z
Antimundo
74354
Categorizar usando AutoCat
431400
wikitext
text/x-wiki
En el ejemplo anterior, primero se creo "pong" para poder darle la identidad de “pong” a “ping” al ser iniciada. En otras palabras, “ping" debe saber la identidad de “pong” para poder enviarle algún mensaje. Algunas veces los procesos que necesitan saber la identidad de otros son iniciados completamente independientes uno del otro. Erlang provee mecanismos para dale nombres a los procesos y así utilizar estos nombres como identidades en vez de los pids. Esto se hace utilizando la BIF register:
register(some_atom, Pid)
Ahora, si reescribimos el ejemplo de Ping-Pong utilizando esto y dandole el nombre pong al proceso "pong":
-module(tut16).
-export([start/0, ping/1, pong/0]).
ping(0) ->
pong ! finished,
io:format("ping finished~n", []);
ping(N) ->
pong ! {ping, self()},
receive
pong ->
io:format("Ping received pong~n", [])
end,
ping(N - 1).
pong() ->
receive
finished ->
io:format("Pong finished~n", []);
{ping, Ping_PID} ->
io:format("Pong received ping~n", []),
Ping_PID ! pong,
pong()
end.
start() ->
register(pong, spawn(tut16, pong, [])),
spawn(tut16, ping, [3]).
2> c(tut16).
{ok, tut16}
3> tut16:start().
<0.38.0>
Pong received ping
Ping received pong
Pong received ping
Ping received pong
Pong received ping
Ping received pong
ping finished
Pong finished
En la función start/0,
register(pong, spawn(tut16, pong, [])),
ambos generan el proceso “pong” y les da el nombre pong. En el proceso “ping”, ahora, se puede enviar mensajes a pong de esta manera:
pong ! {ping, self()},
y así ping/2 ahora se convierte en ping/1 ya que, no debemos utilizar el argumento Pong_PID.
{{AutoCat}}
mknwrvtnyjj6t9p3oenyho24uggijns
Programación en Erlang/Características específicas del lenguaje
0
41507
431414
231328
2026-08-16T22:47:34Z
Antimundo
74354
Categorizar usando AutoCat
431414
wikitext
text/x-wiki
=== Constructores de Alto Nivel ===
Erlang es un lenguaje declarativo. Los Lenguajes declarativos trabajan sobre el principio de tratar
para describir lo que debe ser computado, en lugar de decir cómo se calcula este valor.
Una definición de función-particularmente uno que utiliza un patrón de coincidencia (pattern matching) para seleccionar entre diferentes casos, y para extraer los componentes de las estructuras complejas de datos, leerán como un set de ecuaciones.
=== Procesos concurrentes y paso de mensaje ===
Concurrencia en Erlang es fundamental para su éxito. En lugar de proporcionar hilos
de que comparten memoria, cada proceso de Erlang se ejecuta en su propio espacio de memoria y en su propia heap y stack. Los procesos no pueden interferir unos con otros sin darse cuenta, al igual que todos es fácil en modelado de hilos, dando lugar a bloqueos y otros horrores.
Los procesos se comunican entre sí mediante el paso de mensajes, donde el mensaje puede ser cualquier valor de dato Erlang en absoluto. El paso de mensajes es asincrónica, por lo que una vez que se envía un mensaje, el proceso puede continuar procesando. Los mensajes se recuperan del proceso de buzón de correo selectivamente, por lo que no es necesario procesar los mensajes en el orden en que se reciben. Esto hace que la concurrencia de más robusta, en particular cuando los procesos son distribuidos a través de diferentes equipos y el orden en que se reciben los mensajes dependerá de las condiciones de ambiente la red. La Figura 1-1 muestra un ejemplo, donde un "servidor de la zona" procesa calcular áreas de formas para un cliente.
=== Escalable, segura y concurrencia eficiente ===
La Concurrencia de Erlang es rápida y escalable. Sus procesos son de peso ligero en el que la máquina virtual de Erlang no crea un subproceso de sistema operativo para cada proceso creado. Se crean, programado, y manipulados en la máquina virtual, independiente del sistema operativo subyacente. Como resultado, el tiempo de proceso de creación es del orden de microsegundos e independiente del número de procesos existentes simultáneamente.
Los procesos de Erlang se comunican entre sí a través del paso de mensajes. A pesar de
del número de procesos concurrentes en el sistema, el intercambio de mensajes dentro de la
sistema le toma microsegundos. Todo lo que está involucrado en el paso de mensajes es la copia de los datos del espacio de memoria de un proceso hacia el espacio de memoria del otro, todo dentro de la misma máquina virtual.
=== Propiedades livianas en tiempo real ===
A pesar de que Erlang es un lenguaje de alto nivel, se puede usar para tareas con limitaciones livianas en tiempo real. La gestión del almacenamiento en Erlang es automatizado, con la recolección de basura en práctica en función de cada proceso. Esto le da al sistema un tiempo de respuesta en el orden de milisegundos, incluso en la presencia de basura recolectada en la memoria. Debido a esto, Erlang puede manejar grandes cargas sin degradación en el rendimiento, incluso durante los picos de sostenido.
=== Robustez ===
¿Cómo se construye un sistema robusto? Aunque Erlang no puede resolver todos sus problemas, facilitará en gran medida su tarea en una fracción del esfuerzo de otros lenguages de programación. Gracias a una serie de simples pero potentes mecanismos de control de errores y del seguimiento de los constructores de excepciones, una biblioteca de módulos muy general se han construido, diseñado con robustez en su núcleo. Al programar para el caso correcto y dejando que estas bibliotecas manejen los errores, no sólo son programas más cortos y fáciles de entender,
pero usualmente contienen menos errores.
=== Coincidencia de patrones (Pattern Matching) ===
Coincidencia de patrones en Erlang se usa para:
* Asigna valores a las variables
* Control del flujo de ejecución de los programas
* Extraer valores de tipos de datos compuestos
La combinación de estas características permite escribir conciso, legible y potente
programas, sobre todo cuando la coincidencia de patrones se usa para manejar los argumentos de una función que se está definiendo. El patrón de concordancia se escribe así:
Pattern = Expression
Y como dijimos antes, es una generalización de lo que ya vimos cuando hablamos
acerca de las variables.
El patrón se compone de estructuras de datos que puede contener tanto variables dependientes y no dependientes, así como valores literales (como los átomos, enteros o cadenas). Una variable de la dependiente es una variable que ya tiene un valor, y una variable independiente es una que todavía no depende de un valor. Ejemplos de patrones incluyen:
Double
{Double, 34}
{Double, Double}
[true, Double, 23, {34, Treble}]
La expresión se compone de estructuras de datos, variables dependientes, operaciones matemáticas, y llamadas a funciones. No puede contener valores independientes.
¿Qué sucede cuando se realiza una comparación de patrones? Dos resultados posibles:
* El patrón de concordancia puede tener éxito, y esto resulta en las variables independientes se convierten en dependientes (y el valor de la expresión que se retorna).
* El patrón de concordancia pueden fallar, y ninguna variable se convierte en dependiente como consecuencia de ello.
{{AutoCat}}
0qwbiicknkd6qxtv8ox0kgyhj57483t
Programación en Erlang/Ejemplos pequeños del lenguaje
0
41508
431410
400216
2026-08-16T22:46:55Z
Antimundo
74354
Categorizar usando AutoCat
431410
wikitext
text/x-wiki
Para entender mejor el lenguaje que mejor manera que con los ejemplos comunes de todos los lenguajes. Y así notar la diferencia entre Erlang y el resto.
==== factorial.erl ====
-module(factorial).
-export([factorial/1]).
factorial(N) when N == 0 -> 1;
factorial(N) when N > 0 -> N * factorial(N-1).
1> c(factorial).
{ok,factorial}
2> factorial:factorial(20).
2432902008176640000
3>
Lo importante de este caso es ver el modo como funciona factorial en Erlang. Las comparaciones que se realizan en Erlang son descritas en la siguiente tabla:
{| border=1
|-
! Operador
! Descripción
! Tipo
|-
| X > Y
| X es mayor que Y
| Coerce
|-
| X < Y
| X es menor que Y
| Coerce
|-
| X =< Y
| X es igual o menor que Y
| Coerce
|-
| X >= Y
| X es igual o mayor que Y
| Coerce
|-
| X == Y
| X es igual a Y
| Coerce
|-
| X /= Y
| X no es igual a Y
| Coerce
|-
| X =:= Y
| X es igual a Y
| Exact
|-
| X =/= Y
| X no es igual a Y
| Exact
|}
La diferencia entre ‘Exact’ y ‘Coerce’ es inmensa. Por ejemplo en ‘Coerce’ cuando comparamos 2 números solo compara magnitudes tal como 5.0 == 4+1. Sin embargo ‘Exact’ lo que hace es decir que no son iguales porque 5.0 no es igual a 5 ya que un entero no es similar a un punto flotante. <br />
Los casos tipos if, else y case se verán aplicados al mismo factorial para entender la diferencia.
==== Tipo If y Else ====
-module(factorial2).
-export([factorial/1]).
factorial(N) ->
if
N == 0 -> 1;
N > 0 -> N*factorial(N-1)
end.
Si se puede observar esto es como condición instrucción terminada en ‘;’ excepto la condición final.
==== Tipo Case ====
-module (factorial3).
-export ([factorial/1]).
factorial(N) ->
case N of
0 -> 1;
N when N > 0 ->
N * factorial(N - 1)
end.
Si se observa de este código tenemos que podemos hacer condiciones dentro del mismo case.
Para demostrar un programa fácil pero con un poco más de complejidad haremos el cifrado de César con rotación 13.
==== Cifrado Cesar (Rotación 13) ====
El cifrado de cesar con rotación 13 mueve una letra 13 posiciones más adelante.<br />
-module (cesar).
-export ([cifrar/1, descifrar/1]).
cifrar(String) ->
list_to_atom([X+13 || X <- String]).
descifrar(String) ->
list_to_atom([X-13 || X <- String]).
Al compilar:
1> c(cesar).
{ok, cesar}
2> cesar:cifrar("hola").
'u|yn'
3> cesar:descifrar("u|yn").
hola
Lo que aquí se aprecia es un nuevo tipo de instrucción. EL cual Erlang permite usar una lista y aplicarle una función a todos los elementos de la lista. De ahí la instrucción list_to_atom devuelve la lista de enteros como una lista de caracteres es decir una cadena.
{{AutoCat}}
ea6tc0gxa853wg7jg96ysrmeg2x71kj
Programación en Erlang/Apéndice
0
41509
431416
231330
2026-08-16T22:47:56Z
Antimundo
74354
Categorizar usando AutoCat
431416
wikitext
text/x-wiki
=== Windows ===
Los pasos para instalar erlang son los siguientes:
* Descargar el archivo: [http://erlang.org/download/otp_win32_R13B01.exe "Página de Erlang"]
* Al descargarlo, ejecutarlo inmediatamente
* Seguir las instrucciones en el instalador
* Ejecutar el programa
=== Otros Sistemas Operativos ===
Los pasos son los siguientes:
* Deben ir a la página: [http://erlang.org/download.html "Página de Erlang(2)"]
* Descargar el código fuente de ser necesario y compilarlo.
* Descargar la documentación de la página
* Asegurarse de descargar los archivos del mismo tipo.
{{AutoCat}}
rdzg57g7zywcz3rowfjeovxbw2mj8sx
Programación en Erlang/Bibliografía
0
41510
431415
231331
2026-08-16T22:47:48Z
Antimundo
74354
Categorizar usando AutoCat
431415
wikitext
text/x-wiki
Armstrong, J., Virding, R., Wikström, C., & Williams, M. (1996). Concurrent Programming in ERLANG. Älvsjö: Prentice Hall.
Feely, M. (s.f.). CiteSeerX. Recuperado el 17 de Septiembre de 2009, de CiteSeerX: A case for the unified heap approach to Erlang memory management (2001): [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.20.9664 "Heap Approach Erlang"]
Wikipedia. (s.f.). Erlang Programming/Pattern Matching. Recuperado el 17 de Septiembre de 2009, de Wikipedia:Erlang Programming/Pattern Matching: [[:m:b:en:Erlang_Programming/Pattern_Matching|"Pattern Matching"]]
{{AutoCat}}
0myndz06fsbaofytmh2jxoxmm85s3dp
Programación en Erlang/Manejo de excepciones
0
41511
431403
231324
2026-08-16T22:45:43Z
Antimundo
74354
Categorizar usando AutoCat
431403
wikitext
text/x-wiki
=== Mecanismos de excepciones: catch y throw ===
throw(expresión) evalúa la expresión y proporciona el resultado al catch más cercano. Puede usarse para generar un mensaje de error.
(catch expresión) evalúa la expresión, y si captura un mensaje de error genera una estructura de datos, bien la generada por throw o la generada por el propio sistema.
Los mensajes de error proporcionados por el sistema suelen ser bastante descriptivos:
* badarg si se le pasa un argumento incorrecto a una función,
* badarith si se intenta hacer una operación con argumentos inadecuados,
* badmatch si se intenta concordar con un patrón que no encaja,
* case_clause si ninguna cláusula en un case sirve para un argumento dado...
=== Programación defensiva ===
Hay dos formas de corregir errores provocados por la entrada de datos
incorrectos en el sistema:
* Comprobar los datos antes de usarlos.
* No comprobar los datos, sino recuperarse cuando ocurre un error.
La prevención de errores añade código poco útil para el sistema, incrementando el tamaño y la complejidad del mismo. Si la aparición de errores es infrecuente, es preferible no desperdiciar tiempo comprobando cada dato, ahorrando así tiempo en el caso frecuente de que no haya errores.
=== Reemplazo de código en caliente ===
La unidad mínima de reemplazo de código es el módulo. Dos versiones distintas del mismo módulo pueden estar cargadas en memoria al mismo tiempo. Cuando se realiza una llamada a una función se utiliza la última versión disponible del modulo.
=== Catch and Throw ===
Devuelve el valor de expr a menos que se produce una excepción durante la evaluación. En ese caso, se detecta la excepción. Para las excepciones de error de la clase, es decir, errores de ejecución: ( 'EXIT', (Razón, Stack)) es devuelto. Para las excepciones de la salida de clase, que es el código de llamada de salida (término): ( 'EXIT', término) es devuelto. Para las excepciones de la clase de tiro, que es el código de llamada tiro (term): Término se devuelve.
Razón depende del tipo de error que se produjo, y la pila es la pila de llamadas a funciones más recientes, ver los errores y tratamiento de errores.
Tenga en cuenta que tiene una baja prioridad de capturas y capturas subexpresiones a menudo tiene que ser encerrado en un bloque o exprecion en paréntesis:
El BIF tiro (Cualquiera) puede ser utilizado para la retención local de una función. Debe ser evaluado dentro de una captura, que devolverá el valor Any. Ejemplo:
Tenga en cuenta que aunque la captura de palabras clave se utiliza en la expresión de tratar, no es una expresión de captura dentro de la expresión intentarlo.
=== Try ===
Devuelve el valor de Exprs (una secuencia de expresiones Expr1, ..., exprn) a menos que se produce una excepción durante la evaluación. En ese caso la excepción es capturada y los patrones de ExceptionPattern con el derecho de clase de excepción de clase son de forma secuencial compara con la excepción capturada. Un omitirse la clase es la abreviatura de tiro. Si un partido tiene éxito y la secuencia opcional de la Guardia ExceptionGuardSeq es cierto, la ExceptionBody correspondiente se evalúa a convertirse en el valor de retorno.
Si se produce una excepción durante la evaluación de Exprs pero no hay ExceptionPattern congruencia de la clase de derecho con una secuencia de la guardia real, la excepción se pasa como si Exprs no se había encerrado en una expresión de intentarlo. Si se produce una excepción durante la evaluación de ExceptionBody no es capturado.
try Exprs
catch
[nowiki] [Class1 :]ExceptionPattern1 [when ExpresionGuard1] -> [/nowiki]
...ExceptionBody1;
[nowiki] [Class1 :]ExceptionPatternN [when ExpresionGuardN] -> [/nowiki]
ExceptionBodyN
end
{{AutoCat}}
2wwpattwh52tuw7wqx5377eb4m7hbex
ADR/Clasificación
0
42032
431506
430582
2026-08-17T09:49:26Z
DMacks
83687
/* Clase 6.1: Materias tóxicas */ higher quality image
431506
wikitext
text/x-wiki
== Clasificación ==
Todas las mercancías peligrosas están clasificadas atendiendo a sus características químicas y a su grado de peligrosidad.
Existen nueve clases diferentes.
{{VT|ADR/Clasificación/Resumen}}
=== Clase 1: Materias y objetos explosivos ===
[[Archivo:Dangclass1.svg|thumb|200px|right|Etiqueta genérica para materiales clase 1.]]
Son materias u objetos que, debido a una reacción química desprenden gases a una temperatura o velocidad que puedan producir daños; o materias que pueden producir reacciones exotérmicas.
Dentro de esta clase las materias y los objetos se subdividen en función del riesgo de explosión en masa, de proyección o de incendio.
Los materiales explosivos se clasifican en:
* División 1.1 : Materias y objetos que representan un riesgo de explosión de toda la masa.
* División 1.2 : Objetos que representan un riesgo de proyección, pero no un riesgo de explosión de toda la masa.
* División 1.3 : Materias y objetos que representan un riesgo de incendio y un riesgo que se produzcan pequeños efectos de onda de choque.
* División 1.4 : Objetos que '''no''' representan un riesgo considerable.
* División 1.5 : Materias muy poco sensible que implica un riesgo de explosión en masa.
* División 1.6 : Objetos extremadamente poco sensibles que no representan riesgo de explosión de toda la masa.
=== Clase 2: Gases ===
Son materias que a presión normal y 20º C se encuentran en estado gaseoso o bien con una presión de vapor superior a 3 [[w:es:Bar (unidad)|bares]] a 50º C. Los gases pueden presentarse licuados, comprimidos o refrigerados.
En función de sus propiedades pueden clasificarse como asfixiantes, [[w:es:comburente|comburentes]], [[w:es:inflamable|inflamables]] o [[w:es:tóxico|tóxicos]]. En virtud de esta clasificación se establecen tres divisiones.
<gallery>
Archivo:Dangclass2 1.png|2.1 Gases inflamables.
Archivo:Dangclass2 2.png|2.2 Gases no inflamables.
Archivo:Dangclass2 3.png|2.3 Gases tóxicos.
</gallery>
==== 2.1 Gases inflamables ====
Gases que, a 20 °C y a una presión de 101,3 kPa:
# Son inflamables en mezcla de proporción igual o inferior al 13% en volumen.
# Tiene una gama de inflamabilidad con el aire de al menos 12%.
Esto es, resumiendo, gases que pueden inflamarse en contacto con una fuente de
calor. ''Ej. propileno, etano, butano.''
==== 2.2 Gases no inflamables no tóxicos ====
Son gases que:
# Diluyen , sustituyen o desplazan el oxígeno del aire produciendo asfixia.
# Tienen características comburentes. y favorecen la combustión en mayor medida que el aire. ''Ej. oxígeno, helio.''
# No pueden adscribirse a ninguna de las demás clases.
==== 2.3 Gases tóxicos ====
Pueden producir, por inhalación, efectos agudos o crónicos o
irritantes, e incluso la muerte. Los gases tóxicos pueden, además, ser inflamables, corrosivos o comburentes. ''Ej. cloro.''
Se los considera tóxicos cuando presentan una [[w:es:CL%=|CL50]] de 5000 partes por millón.
=== Clase 3: Líquidos inflamables ===
[[Archivo:Dangclass3.png|thumb|100px|right|Clase 3.]]
Son líquidos cuyo punto de inflamación es de 60º C. Estas materias pueden presentar, además, características tóxicas o corrosivas. ''Ej. tolueno, aguarrás, gasolina, pinturas, barnices.''
La clase 3 comprende las siguientes sustancias:
* Líquidos inflamables.
* Explosivos líquidos insensibles.
'''Punto de inflamación''' de un líquido inflamable: Es la temperatura más baja de ese líquido a la que sus vapores forman con el aire un mezcla inflamable.
No debe confundirse con '''punto de ignición''' que es la temperatura a la que hay que elevar la mezcla aire-vapores para provocar realmente una explosión.
=== Clase 4. Solidos inflamables, sustancias que pueden experimentar combustión espontanea, sustancias que en contacto con el agua desprenden gases inflamables ===
=== Clase 4.1: Materias sólidas inflamables, materias autorreactivas y materias explosivas desensibilizadas sólidas ===
[[Archivo:Dangclass4 1.png|thumb|100px|right|Clase 4.1.]]
son aquellas que pueden reaccionar espontáneamente.
=== Clase 4.2: Materias que pueden experimentar inflamación espontánea ===
( de la division 4.2 se hayan incluidas las materias denominadas pirofóricas )
Sustancias que pueden calentarse espontáneamente en las condiciones normales del transporte o pueden calentarse al estar en contacto con el aire y pueden inflamarse. Por ejemplo: Carbón, virutas de metales ferrosos, algodón húmedo, etc.
[[Archivo:Dangclass4 2.png|thumb|100px|right|Clase 4.2.]]
=== Clase 4.3: Materias que en contacto con el agua desprenden gases inflamables ===
Abarca diversos tipos de materias que al entrar en contacto con el agua, desprenden gases inflamables.
Los paneles de peligro suelen llevar una X precediendo a la identificación de dicho peligro.
Por ejemplo: Bario, Sodio, Potasio, Carburo Cálcico, etc...
=== Clase 5.1: Materias comburentes ===
[[Archivo:ADR 5.1.svg |thumb|100px|right|Clase 5.1.]]
Son líquidos o sólidos que pueden provocar o favorecer la combustión (generalmente dan lugar a reacciones que desprenden oxígeno)por tanto en contacto con otros materiales aumentan el riesgo de que se produzcan incendios y favorecen el desarrollo de los mismos. ''Ej. nitrato amónico.''
Las mezclas de sustancias comburentes con materias combustibles, e incluso con materias como azúcar, harina, aceites comestibles, aceites minerales, son peligrosas.
En contacto con ácidos líquidos, la mayoría de las sustancias comburentes producen una reacción violenta con desprendimiento de gases tóxicos.
=== Clase 5.2: Peróxidos orgánicos ===
[[Archivo:ADR 5.2 noir.png |thumb|100px|right|Clase 5.2.]]
Los peróxidos orgánicos son sustancias susceptibles de experimentar descomposición exotérmica a temperaturas normales o elevadas. La descomposición puede producirse por efecto del calor, del contacto con impurezas, por rozamiento o impacto.
Son materias derivadas del peróxido de hidrógeno, en el cual uno o dos de los átomos de hidrógeno son sustituidos por radicales orgánicos.
Los peróxidos orgánicos se dividen en:
* No más de 1% de oxígeno activo procedente de peróxidos orgánicos cuando su contenido de peróxido de hidrógeno sea de no más de un 1 %.
* No más de 0,5 % de oxígeno activo procedente de peróxidos orgánicos cuando su contenido de peróxido de hidrógeno sea de más de un 1% pero de no más de un 7%.
Existen limitaciones de cantidad para cargar en una unidad de transporte, por ser un material muy peligroso.
=== Clase 6.1: Materias tóxicas ===
[[Archivo:Dangclass6 1.svg|thumb|100px|right|Clase 6.1]]
Materias que, en cantidades relativamente pequeñas, que pueden dañar a la salud del ser humano o causar su muerte por inhalación, absorción cutánea o ingestión. ''Ej. metanol, cloruro de metileno.''
Por su propia naturaleza, esta sustancias entrañan el riesgo de envenenamiento si entran en contacto con el cuerpo humano.
Casi todas las sustancias tóxicas desprenden gases tóxicos si un incendio las afecta o si se calientan hasta su descomposición.
Véase también: Dosis letal mediana [[w:es:DL50|DL50]] y concentración letal mediana [[w:es:CL50|CL50]]
=== Clase 6.2: Materias infecciosas ===
[[Archivo:Dangclass6 2.png|thumb|100px|right|Clase 6.2]]
* Materias de las que se sabe o se cree que contienen [[w:es:agente patógeno|agentes patógenos]], es decir, microorganismos (bacterias, virus, priones) que pueden provocar enfermedades a los animales o a los seres humanos. ''Ej. muestras de diagnóstico o ensayo.''
* Productos biológicos, productos derivados de organismos vivos que requieran de tratamiento espacial para su transporte, Ej. material destinado a la confección de vacunas para seres humanos o animales.
* Cultivos, de laboratorio para el estudio de enfermedades humanas o animales.
* Especímenes de pacientes: Materiales animales o humanos extraídos de pacientes. Ej secreciones, excrementos, sangre o tejidos celulares.
* Microorganismos genéticamente modificados: cualquier organismo que ha sido modificado mediante ingeniería genética que no se produce de forma natural.
* Desechos médicos o clínicos: material descartable de la práctica clínica en humanos o animales o bien de investigación biológica.
=== Clase 7: Materias radioactivas ===
[[Archivo:Dangclass7.png|thumb|100px|right|Clase 7]]
Son objetos o materias que contienen [[w:es:radionucleido|radionucleidos]] en los cuales tanto la concentración de actividad como la actividad total de la remesa excedan los valores específicos mínimos.
Por sustancias fisionables se entiende:
* Uranio 233.
* Uranio 235.
* Plutonio 239.
* Plutonio 241.
* Cualquier combinación de estos radionucleidos.
Materiales emisores alfa de baja toxicidad son:
* Uranio natural.
* Uranio empobrecido.
* Torio natural.
* Uranio 235.
* Uranio 238.
* Torio 232.
* Torio 228.
* Torio 230.
Todos ellos contenidos en minerales o en concentrados físicos o químicos o emisores alfa con un período de semidesintegración de menos de unos 10 días.
=== Clase 8: Materias corrosivas ===
[[Archivo:Dangclass8.png|thumb|100px|right|Clase 8.]]
Las materias u objetos que, por contacto, dañan el tejido epitelial de la piel, las mucosas o los ojos; o que pueden dar lugar a daños en otras mercancías o en propiedades en caso de derrame. ''Ej. ácido sulfúrico, hipoclorito sódico.''
Todas las sustancias de la presente clase con efectos destructivos en mayor o menor grado sobre materiales los metales o los textiles.
Además de actuar directamente de manera destructiva si entran en contacto con la piel o las mucosas, algunas de las sustancia de esta clase son tóxicas o perjudiciales. Su ingestión o inhalación de sus vapores pueden dar por resultado un envenenamiento y algunas de ellas pueden incluso atravesar la piel.
=== Clase 9: Materias y objetos que presentan peligros diversos ===
[[Archivo:Dangclass9.png|thumb|100px|right|Clase 9.]]
Son materias que suponen algún tipo de peligro no contemplado entre los anteriores: dioxinas, polvos finos que pueden provocar daños en las vías respiratorias, pilas de litio, materias peligrosas para el medio ambiente, dentro de esta categoría la mercancía más común es el Hielo seco (CO2) que se usa para refrigerar diversos productos.
Las sustancias que se transportan o se presentan para su transporte a temperaturas iguales a 100 °C.
Los organismos genéricamente modificados que no responden a definición de sustancias infecciosas pero que pueden provocar en animales plantas o sustancias microbiológicas modificaciones que normalmente no se producirían como resultado de la reproducción natural.
{{AutoCat}}
0d4or6d6twqhkjftfz94v3hvjjdwwi5
Plantilla:Políticas
10
42743
431587
431259
2026-08-17T11:51:20Z
Antimundo
74354
Añadir plantilla de documentación
431587
wikitext
text/x-wiki
{| class="policybox" style="float:right; width:100%; max-width:16em; border:1px solid var(--border-color-subtle, #c8ccd1); color:var(--color-base, #202122); background:var(--background-color-neutral-subtle, #f8f9fa); font-size:90%; border-radius:2px; text-align:center; margin:1em 0 1em 1em;" cellspacing=0 cellpadding=0
|-
!style="padding: 0.5em;background:var(--background-color-progressive-subtle--hover, #d9e2ff);color:var(--color-base, #404244); font-size: 110%" |[[Wikilibros:Políticas y orientaciones|Políticas y orientaciones]]
|-
|style="padding: 1px; color:var(--color-neutral, #202122); background:var(--background-color-progressive-subtle, #e8eeff);"| '''Estándares'''
|-
|[[Wikilibros:Lo que Wikilibros no es|Lo que Wikilibros no es]]
|-
|[[Wikilibros:Derechos de autor|Derechos de autor]]
|-
|[[Wikilibros:Política de imágenes|Política de imágenes]]
|-
|[[Wikilibros:Punto de vista neutral|Punto de vista neutral]]
|-
|[[Wikilibros:Aplicación analógica de las políticas de Wikipedia en español|Políticas de Wikipedia]]
|-
|[[Wikilibros:Política sobre el uso de inteligencia artificial generativa|Política sobre el uso de I.A.]]
|-
|style="padding: 1px; color:var(--color-neutral, #202122); background:var(--background-color-progressive-subtle, #e8eeff);"| '''Convenciones'''
|-
|[[Wikilibros:Niveles de desarrollo|Niveles de desarrollo]]
|-
|[[Wikilibros:Manual de estilo|Manual de estilo]]
|-
|[[Wikilibros:Política de nombrado|Política de nombrado]]
|-
|[[Wikilibros:Versión para imprimir|Versión para imprimir]]
|-
|style="padding: 1px; color:var(--color-neutral, #202122); background:var(--background-color-progressive-subtle, #e8eeff);"| '''Comunidad'''
|-
|[[Wikilibros:Etiqueta|Etiqueta]]
|-
|[[Wikilibros:Presume buena fe|Presume buena fe]]
|-
|[[Wikilibros:No ataques personales|Ataques personales]]
|-
|[[Wikilibros:Usuarios|Tipos de usuarios]]
|-
|style="padding: 1px; color:var(--color-neutral, #202122); background:var(--background-color-progressive-subtle, #e8eeff);"| '''Procedimientos'''
|-
|[[Wikilibros:Votaciones|Votaciones]]
|-
|[[Wikilibros:Política de borrado|Política de borrado]]
|-
|[[Wikilibros:Política de protección|Política de protección]]
|-
|[[Wikilibros:Semiprotección de páginas|Política de semiprotección]]
|-
|[[Wikilibros:Acciones oficiales|Acciones oficiales]]
|}<noinclude>
{{Documentación}}
[[Categoría:Wikilibros:Políticas y orientaciones]]
[[Categoría:Wikilibros:Plantillas de navegación]]
[[Categoría:Wikilibros:Plantillas de políticas oficiales]]
</noinclude>
04athn2d2odcfqs4323zp14o6201n3m
Plantilla:Ayuda
10
51537
431584
425815
2026-08-17T11:49:27Z
Antimundo
74354
Evitar salto de línea innecesario y mejorar sintaxis para que se adapte mejor a móviles
431584
wikitext
text/x-wiki
{| cellpadding="3" style="float:right; width:100%; max-width:16em; font-size: 90%; margin-left: 1em; border: 2px solid #FFD700; border-collapse: collapse; text-align: center;"
|-
! style="background-color: #FFD700" | [[Wikilibros:Ayuda|Ayuda de Wikilibros]]
|-
| [[Wikilibros:Bienvenida|Bienvenida]]
|-
| [[Manual de Wikilibros|Manual]]
|-
| [[Ayuda:Preguntas frecuentes|Preguntas frecuentes]]
|-
| [[Wikilibros:Portal de la comunidad|Comunidad]]
|-
| [[Wikilibros:Café|Café]]
|-
| [[Wikilibros:Tablón de anuncios a los bibliotecarios|Contacto bibliotecarios]]
|-
| [[Wikilibros:Políticas y orientaciones|Políticas]]
|}<noinclude>
[[Categoría:Wikilibros:Ayuda]]
[[Categoría:Wikilibros:Plantillas de navegación]]
</noinclude>
isbwugs6z22e6qs1dje9554ogiup4rj
431585
431584
2026-08-17T11:50:38Z
Antimundo
74354
Añadir plantilla de documentación
431585
wikitext
text/x-wiki
{| cellpadding="3" style="float:right; width:100%; max-width:16em; font-size: 90%; margin-left: 1em; border: 2px solid #FFD700; border-collapse: collapse; text-align: center;"
|-
! style="background-color: #FFD700" | [[Wikilibros:Ayuda|Ayuda de Wikilibros]]
|-
| [[Wikilibros:Bienvenida|Bienvenida]]
|-
| [[Manual de Wikilibros|Manual]]
|-
| [[Ayuda:Preguntas frecuentes|Preguntas frecuentes]]
|-
| [[Wikilibros:Portal de la comunidad|Comunidad]]
|-
| [[Wikilibros:Café|Café]]
|-
| [[Wikilibros:Tablón de anuncios a los bibliotecarios|Contacto bibliotecarios]]
|-
| [[Wikilibros:Políticas y orientaciones|Políticas]]
|}<noinclude>
{{Documentación}}
[[Categoría:Wikilibros:Ayuda]]
[[Categoría:Wikilibros:Plantillas de navegación]]
</noinclude>
0igwyn1lwxkklkcsb1qh2eobdx06ceg
Manual de LaTeX/Listados de código/Listados con listings
0
53612
431422
424192
2026-08-16T23:10:33Z
Antimundo
74354
Actualizar etiquetas source obsoletas
431422
wikitext
text/x-wiki
==El paquete ''listings'', modo de uso==
El paquete {{LaTeX/Package|listings}} es el de uso habitual para la adición de código fuente de múltiples lenguajes de programación en un documento. Su funcionamiento es parecido al paquete {{LaTeX/Package|verbatim}}.
Para utilizar este paquete, se debe utilizar:
{{LaTeX/Usage|code=
\usepackage{listings}
}}
Este paquete permite el resaltado de los lenguajes de programación más comunes, además de ser configurable. Lo único que se necesita es utilizar el entorno {{LaTeX/Environment|lstlisting}}:
{{LaTeX/Usage|code=
\begin{lstlisting}
El código se inserta aquí.
\end{lstlisting}
}}
También es posible, y es muy útil, insertar desde un fichero de código fuente. Esto facilita al máximo las modificaciones y pruebas del código a insertar mientras aún lo estás editando ya que las modificaciones que se hagan en el código se reflejarán de forma automática en el documento LaTeX (principio DRY): {{Wikipedia|DRY}}
{{LaTeX/Usage|code=
\lstinputlisting{nombre_fichero_codigo.py}
}}
En este ejemplo se insertaría un fichero de código en Python. Lo relevante es que se puede incluir cualquier fichero indicando su nombre completo. El lenguaje que se reconoce no depende de la extensión del fichero ni de ninguna indicación interna al mismo, sino que depende de los ajustes que haya establecido para este paquete en el documento. Por ejemplo, para especificar que se trata del lenguaje Python es necesario expresar lo siguiente:
{{LaTeX/Usage|code=
\lstinputlisting[language=Python]{nombre_fichero_codigo.py}
}}
También es posible seleccionar qué líneas se desean incluir:
{{LaTeX/Usage|code=
\lstinputlisting[language=Python, firstline=37, lastline=45]{nombre_fichero_codigo.py}
}}
Lo que es muy útil para mostrar en el documento solamente aquello que sea relevante del código fuente. Si se omiten alguno de estos parámetros, {{LaTeX/Parameter|firstline}} o {{LaTeX/Parameter|lastline}}, que se deben mostrar todas las líneas desde el comienzo o hasta el final, respectivamente.
El siguiente es un documento completo que inserta un programa en Pascal:
<syntaxhighlight lang="latex">
\documentclass{article}
\usepackage{listings} % Incluye el paquete listings
\usepackage[spanish]{babel}
\usepackage[T1]{fontenc}
\begin{document}
\lstset{language=Pascal} % Establece el lenguaje por defecto. Se puede cambiar para cada bloque de código insertado
\begin{lstlisting}[frame=single] % Inicia el bloque de código
for i:=maxint to 0 do
begin
{ no hace nada }
end;
Write("Insensible a las mayúsculas");
Write("en las palabras reservadas de Pascal.");
\end{lstlisting}
\end{document}
</syntaxhighlight>
[[File:Latex pkg listing es.png|Resultado del paquete listings de latex aplicado a un trozo de código en pascal]]
===Lenguajes soportados===
El paquete {{LaTeX/Package|listings}} es capaz de resaltar los siguientes lenguajes:
ABAP<sup>2,4</sup>, ACSL, Ada<sup>4</sup>, Algol<sup>4</sup>, Ant, Assembler<sup>2,4</sup>, Awk<sup>4</sup>, bash, Basic<sup>2,4</sup>, C#<sup>5</sup>, C++<sup>4</sup>, C<sup>4</sup>, Caml<sup>4</sup>, Clean, Cobol<sup>4</sup>, Comal, csh, Delphi, Eiffel, Elan, erlang, Euphoria, Fortran<sup>4</sup>, GCL, Gnuplot, Haskell, HTML, IDL<sup>4</sup>, inform, Java<sup>4</sup>, JVMIS, ksh, Lisp<sup>4</sup>, Logo, Lua<sup>2</sup>, make<sup>4</sup>, Mathematica<sup>1,4</sup>, Matlab, Mercury, MetaPost, Miranda, Mizar, ML, Modelica<sup>3</sup>, Modula-2, MuPAD, NASTRAN, Oberon-2, Objective C<sup>5</sup> , OCL<sup>4</sup>, Octave, Oz, Pascal<sup>4</sup>, Perl, PHP, PL/I, Plasm, POV, Prolog, Promela, Python, R, Reduce, Rexx, RSL, Ruby, S<sup>4</sup>, SAS, Scilab, sh, SHELXL, Simula<sup>4</sup>, SQL, tcl<sup>4</sup>, TeX<sup>4</sup>, VBScript, Verilog, VHDL<sup>4</sup>, VRML<sup>4</sup>, XML, XSLT.
Para algunos de ellos, se permiten diferentes dialectos. Para más información, utiliza la documentación que viene con el paquete, debería estar en tu distribución, bajo el nombre <tt>listings-*.dvi</tt>.
;Notas
# Soporta Mathematica solamente si se trata de un fichero en texto plano. No se pueden incluir ficheros *.NB., sin embargo, Mathematica puede exportar ficheros fuente formateados para su uso en LaTeX.
# En estos lenguajes es obligatorio especificar el dialecto del lenguaje (por ejemplo: {{LaTeX/LaTeX|code=language={[x86masm]Assembler}<!---->}}).
# Modelica se soporta mediante el paquete {{LaTeX/Package|dtsyntax}} disponible [https://code.google.com/p/dtsyntax/ aquí].
# Para estos lenguajes hay múltiples dialectos soportados: C, por ejemplo, puede ser ANSI, Handel, Objective y Sharp. Ver p. 12 del [http://mirrors.ctan.org/macros/latex/contrib/listings/listings.pdf manual de listings] para una introducción a esto.
# Definido como un dialecto de otro lenguaje.
===Parámetros de configuración===
Se pueden modificar los parámetros que afectan a cómo se muestra el código. Estos parámetros de configuración se pueden insertar en cualquier parte del documento, antes o después de {{LaTeX/LaTeX|code=\begin{document}<!---->}}). A continuación se muestra un ejemplo con todos los parámetros que se puede utilizar como base para modificarlo según las necesidades. El significado de cada parámetro se explica en la propia línea como un comentario.
<syntaxhighlight lang="latex">
\documentclass[a4paper,12pt]{article}
\usepackage[spanish]{babel}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{color}
\definecolor{miverde}{rgb}{0,0.6,0}
\definecolor{migris}{rgb}{0.5,0.5,0.5}
\definecolor{mimalva}{rgb}{0.58,0,0.82}
\lstset{ %
backgroundcolor=\color{white}, % Indica el color de fondo; necesita que se añada \usepackage{color} o \usepackage{xcolor}
basicstyle=\footnotesize, % Fija el tamaño del tipo de letra utilizado para el código
breakatwhitespace=false, % Activarlo para que los saltos automáticos solo se apliquen en los espacios en blanco
breaklines=true, % Activa el salto de línea automático
captionpos=b, % Establece la posición de la leyenda del cuadro de código
commentstyle=\color{miverde}, % Estilo de los comentarios
deletekeywords={...}, % Si se quiere eliminar palabras clave del lenguaje
escapeinside={\%*}{*)}, % Si quieres incorporar LaTeX dentro del propio código
extendedchars=true, % Permite utilizar caracteres extendidos no-ASCII; solo funciona para codificaciones de 8-bits; para UTF-8 no funciona. En xelatex necesita estar a true para que funcione.
frame=single, % Añade un marco al código
keepspaces=true, % Mantiene los espacios en el texto. Es útil para mantener la indentación del código(puede necesitar columns=flexible).
keywordstyle=\color{blue}, % estilo de las palabras clave
language=Pascal, % El lenguaje del código
otherkeywords={*,...}, % Si se quieren añadir otras palabras clave al lenguaje
numbers=left, % Posición de los números de línea (none, left, right).
numbersep=5pt, % Distancia de los números de línea al código
numberstyle=\small\color{migris}, % Estilo para los números de línea
rulecolor=\color{black}, % Si no se activa, el color del marco puede cambiar en los saltos de línea entre textos que sea de otro color, por ejemplo, los comentarios, que están en verde en este ejemplo
showspaces=true, % Si se activa, muestra los espacios con guiones bajos; sustituye a 'showstringspaces'
showstringspaces=false, % subraya solamente los espacios que estén en una cadena de esto
showtabs=true, % muestra las tabulaciones que existan en cadenas de texto con guión bajo
stepnumber=2, % Muestra solamente los números de línea que corresponden a cada salto. En este caso: 1,3,5,...
stringstyle=\color{mimalva}, % Estilo de las cadenas de texto
tabsize=2, % Establece el salto de las tabulaciones a 2 espacios
title=\lstname % muestra el nombre de los ficheros incluidos al utilizar \lstinputlisting; también se puede utilizar en el parámetro caption
}
\begin{document}
\begin{lstlisting}[frame=single] % Inicia el bloque de código
for i:=maxint to 0 do
begin
{ comentario
%* \textbf{texto en negrita} *)
no hace nada }
end;
Write('Insensible a las mayúsculas');
Write('en las palabras reservadas de Pascal.');
\end{lstlisting}
\end{document}
</syntaxhighlight>
;escapeinside
El parámetro {{LaTeX/Parameter|escapeinside}} necesita explicación. La opción {{LaTeX/LaTeX|code=escapeinside={A}{B}<!---->}} define los delimitadores de inicio y fin que se utilizarán para permitir la introducción de código LaTeX entre el código, en este caso, que todo el código entre "A" y "B" será interpretado como código LaTeX utilizando el estilo vigente en el entorno ''listings''. En este ejemplo, se interpretan como código LaTeX a partir de {{LaTeX/LaTeX|code=%*<!---->}}, hasta que se encuentre el cierre con {{LaTeX/LaTeX|code=*)<!---->}}.
Hay muchas más opciones, se recomienda revisar la documentación oficial.
===Definición de estilos===
Este paquete permite definir estilos. Es decir, perfiles que definen un conjunto de parámetros.
Por ejemplo:
<syntaxhighlight lang="latex">
\lstdefinestyle{customc}{
belowcaptionskip=1\baselineskip,
breaklines=true,
frame=L,
xleftmargin=\parindent,
language=C,
showstringspaces=false,
basicstyle=\footnotesize\ttfamily,
keywordstyle=\bfseries\color{green!40!black},
commentstyle=\itshape\color{purple!40!black},
identifierstyle=\color{blue},
stringstyle=\color{orange},
}
\lstdefinestyle{customasm}{
belowcaptionskip=1\baselineskip,
frame=L,
xleftmargin=\parindent,
language=[x86masm]Assembler,
basicstyle=\footnotesize\ttfamily,
commentstyle=\itshape\color{purple!40!black},
}
\lstset{escapechar=@,style=customc}
</syntaxhighlight>
En este ejemplo, se definen dos estilos y se establece uno de ellos 'customc' como el estilo por defecto y la @ como el carácter de escape.
Se puede utilizar así:
<syntaxhighlight lang="c">
\begin{lstlisting}
#include <stdio.h>
#define N 10
/* Comentario en un
* bloque*/
int main()
{
int i;
// Line comment.
puts("¡Hola Mundo!");
for (i = 0; i < N; i++)
{
puts("¡LaTeX también es genial para los programadores!");
}
return 0;
}
\end{lstlisting}
\lstinputlisting[caption=Scheduler, style=customc]{hello.c}
</syntaxhighlight>
El trozo de código C se imprimirá como:
[[File:Latex listing ES 2.png|Resultado de aplicar un estilo a un trozo de código C]]
El código se ha compilado con XeLaTeX para facilitar que las exclamaciones funcionen en el trozo de código C.
===Inclusión de ficheros automática===
Si se tiene un conjunto de ficheros de código fuente para incluir, se puede uno encontrar repitiendo una y otra vez el mismo texto LaTeX
Aquí es donde las macros muestran toda su potencia:
<syntaxhighlight lang="latex">
\newcommand{\includecode}[2][c]{\lstinputlisting[caption=#2, escapechar=, style=custom#1]{#2}<!---->}
% ...
\includecode{sched.c}
\includecode[asm]{sched.s}
% ...
\lstlistoflistings
</syntaxhighlight>
Con este ejemplo, se crea un comando para facilitar al máximo la inclusión de código. Se establece un estilo por defecto para que sea ''customc''. Todos los listados tendrán su nombre el el título: no hay que escribir el nombre del fichero dos veces gracias a la macro.
===Problemas de codificación (¡¡¡IMPORTANTE EN ESPAÑOL!!!)===
En el ejemplo anterior, para evitar el problema de codificación que surge con LaTeX y el uso de utf8 dentro de {{LaTeX/Package|listings}}, se ha compilado los ejemplos con XeLaTeX.
El problema es que, por defecto, {{LaTeX/Package|listings}} no soporta codificación multibyte para el código fuente.
Para poder manejar UTF-8, resulta necesario decirle a {{LaTeX/Package|listings}} cómo interpretar los caracteres especiales que surjan entre el código fuente, mediante la definición de los mismos.
Esto se puede hacer de la siguiente forma:
<syntaxhighlight lang="latex">
\lstset{literate=
{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
{à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
{ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
{€}{{\EUR}}1 {£}{{\pounds}}1
}
</syntaxhighlight>
La tabla anterior cubre la mayoría de los caracteres de los idiomas latinos:
Para una explicación más detallada del uso de {{LaTeX/LaTeX|code=literate<!---->}} se puede revisar la sección 6.4 en la [http://mirrors.ctan.org/macros/latex/contrib/listings/listings.pdf Documentación de listings].
Otra posibilidad es sustituir el paquete {{LaTeX/LaTeX|code=\usepackage{listings}<!---->}} (en el preámbulo) por {{LaTeX/LaTeX|code=\usepackage{listingsutf8}<!---->}}.
===Personalización de los títulos===
Se pueden tener unos títulos (caption y/o title) muy avanzados gracias al paquete {{LaTeX/Package|caption}}. Veamos un ejemplo de uso con {{LaTeX/Package|listings}}.
<syntaxhighlight lang="latex">
\usepackage{caption}
\usepackage{listings}
\DeclareCaptionFont{white}{ \color{white} }
\DeclareCaptionFormat{listing}{
\colorbox[cmyk]{0.43, 0.35, 0.35,0.01 }{
\parbox{\textwidth}{\hspace{15pt}#1#2#3}
}
}
\captionsetup[lstlisting]{ format=listing, labelfont=white, textfont=white, singlelinecheck=false, margin=0pt, font={bf,footnotesize} }
% ...
\lstinputlisting[caption=My caption]{sourcefile.lang}
</syntaxhighlight>
808cu7wackoy6rflceiw847l4q98730
Conceptos de Java
0
54068
431489
422897
2026-08-17T09:27:27Z
Antimundo
74354
Categorizar usando estantes
431489
wikitext
text/x-wiki
{{hoja suelta}}
'''''<u>La sobrecarga de métodos en Java con ejemplos:</u>'''''
La sobrecarga de metodo es una característica que permite que una clase tiene dos o más métodos que tienen mismo nombre, si sus listas de argumentos son diferentes.
Las listas de argumentos podrían diferir en:
1. Número de parámetros.
2. Los datos de parámetros.
3. Secuencia de tipo de datos de parámetros.
La sobrecarga de métodos también se conoce como polimorfismo estático.
Puntos a tener en cuenta:
1. El polimorfismo estático también se conoce como tiempo de compilación de unión o enlace anticipado.
2. unión estática ocurre en tiempo de compilación donde la unión de llamada a un método para su definición sucede en tiempo de compilación.
La sobrecarga de métodos ejemplos:
Ejemplo 1: Sobrecarga - distinto número de parámetros en la lista de argumentos
Cuando el nombre de los métodos son los mismos, pero el número de argumentos son diferentes.<syntaxhighlight lang="java" line="1">
class DisplayOverloading
{
public void disp(char c)
{
System.out.println(c);
}
public void disp(char c, int num)
{
System.out.println(c + " "+num);
}
}
class Sample
{
public static void main(String args[])
{
DisplayOverloading obj = new DisplayOverloading();
obj.disp('a');
obj.disp('a',10);
}
}
</syntaxhighlight>'''Salida:'''
'''a'''
'''a 10'''
En el ejemplo anterior - disp () método ha sido sobrecargado con base en el número de argumentos - Tenemos dos definición de disp () método, uno con un argumento y otra con dos argumentos.
Ejemplo 2: Sobrecarga - Diferencia en el tipo de datos de los argumentos
En este ejemplo, disp () método está sobrecargado con base en el tipo de datos de los argumentos <syntaxhighlight lang="java" line="1">
class DisplayOverloading2
{
public void disp(char c)
{
System.out.println(c);
}
public void disp(int c)
{
System.out.println(c );
}
}
class Sample2
{
public static void main(String args[])
{
DisplayOverloading2 obj = new DisplayOverloading2();
obj.disp('a');
obj.disp(5);
}
}
</syntaxhighlight>'''Salida:'''
'''a'''
'''5'''
- Al igual que el ejemplo 1, aquí también, tenemos dos definición de disp () método, un argumento con carbón de leña y otro con el argumento int.
Ejemplo 3: Sobrecarga - Secuencia de tipo de datos de los argumentos
Aquí disp () método está sobrecargado basándose en la secuencia de tipo de datos de los argumentos - Tanto los métodos tienen diferentes secuencias de tipo de datos en la lista de argumentos. Primer método es tener lista de argumentos como (char, int) y el segundo está teniendo (int, char). Puesto que la secuencia es diferente, el método puede ser sobrecargado sin ningún problema.<syntaxhighlight lang="java" line="1">
class DisplayOverloading3
{
public void disp(char c, int num)
{
System.out.println("I’m the first definition of method disp");
}
public void disp(int num, char c)
{
System.out.println("I’m the second definition of method disp" );
}
}
class Sample3
{
public static void main(String args[])
{
DisplayOverloading3 obj = new DisplayOverloading3();
obj.disp('x', 51 );
obj.disp(52, 'y');
}
}
</syntaxhighlight>'''Salida:'''
'''I’m the first definition of method disp'''
'''I’m the second definition of method disp'''
'''''<u>Conceptos:</u>'''''
'''Método:''' Un método es una subrutina cuyo código es definido en una clase y puede pertenecer tanto a una clase, como es el caso de los métodos de clase o estáticos, como a un objeto, como es el caso de los métodos de instancia.
'''Argumento:''' Los argumentos son los valores actuales asignados a los parámetros variables cuando el subrutina es llamada.
'''Parámetros:''' Un parámetro es una propiedad intrínseca de un procedimiento.
'''Polimorfismo:''' El polimorfismo se ''refiere a la propiedad por la que es posible enviar mensajes sintácticamente iguales a objetos de tipos distintos.''
'''''<u>Método primordial en Java con el ejemplo</u>'''''
La declaración de un método en la subclase que ya está presente en la clase de padres que se conoce como método primordial.
Ejemplo:
Uno de los ejemplo más simple - Aquí la clase Boy se extiende de la clase human. Tanto las clases tienen un vacío como el método eat(). La clase Boy está dando su propia aplicación para el método de eat() o en otras palabras, se está anulando el método eat().<syntaxhighlight lang="java" line="1">
class Human{
public void eat()
{
System.out.println("Human is eating");
}
}
class Boy extends Human{
public void eat(){
System.out.println("Boy is eating");
}
public static void main( String args[]) {
Boy obj = new Boy();
obj.eat();
}
}
</syntaxhighlight>'''Salida:'''
'''Boy is eating'''
Ventaja primordial del método
La principal ventaja primordial del método es que la clase puede dar su propia aplicación específica a un método heredado sin siquiera modificar la clase padre (clase base).
El reemplazo de métodos de envío método dinámico
La expedición del método dinámico es una técnica que nos permite asignar la referencia de clase base a un objeto de clase hijo.<syntaxhighlight lang="java" line="1">
class ABC{
public void disp()
{
System.out.println("disp() method of parent class");
}
public void abc()
{
System.out.println("abc() method of parent class");
}
}
class Test extends ABC{
public void disp(){
System.out.println("disp() method of Child class");
}
public void xyz(){
System.out.println("xyz() method of Child class");
}
public static void main( String args[]) {
//Referencia de clase de padres de niños objeto de clase
ABC obj = new Test();
obj.disp();
obj.abc();
}
}
</syntaxhighlight>'''Salida:'''
'''disp() method of Child class'''
'''abc() method of parent class'''
En el ejemplo anterior, el objeto obj fue capaz de llamar a la disp () (método de alteración temporal) y ABC () (método no sustituida del clase base). Sin embargo, si se intenta llamar al método XYZ () (que ha sido declarada recientemente en la clase de prueba) [obj.xyz ()] entonces se daría error de compilación con el siguiente mensaje:
Excepción en el hilo java.lang.Error "main": compilación sin resolver problema: El método XYZ () está definido para el tipo ABC.
1. lista de argumentos: La lista de argumentos del método primordial debe ser la misma que la del método de la clase padre. Los tipos de datos de los argumentos y su secuencia deben mantenerse, ya que es en el método de primer orden.
2. Modificador de acceso: El modificador de acceso del método de alteración temporal (método de la subclase) no puede ser más restrictivo que el método reemplazado de la clase padre.
Por ejemplo, Esto no está permitido como método disp clase hija es más restrictivo (protegida) de la clase base (público).<syntaxhighlight lang="java" line="1">
class MyBaseClass{
public void disp()
{
System.out.println("Parent class method");
}
}
class MyChildClass extends MyBaseClass{
protected void disp(){
System.out.println("Child class method");
}
public static void main( String args[]) {
MyChildClass obj = new MyChildClass();
obj.disp();
}
}
</syntaxhighlight>'''Salida:'''
'''Excepción en el hilo java.lang.Error "principal": compilación sin resolver problema: No se puede reducir la visibilidad del método heredado de una clase base.'''
Sin embargo, este escenario es perfectamente válido como pública es menos restrictiva que protegida.<syntaxhighlight lang="java" line="1">
class MyBaseClass{
protected void disp()
{
System.out.println("Parent class method");
}
}
class MyChildClass extends MyBaseClass{
public void disp(){
System.out.println("Child class method");
}
public static void main( String args[]) {
MyChildClass obj = new MyChildClass();
obj.disp();
}
}
</syntaxhighlight>'''Salida:'''
'''Child class method'''
1. métodos privados, estáticas y finales no se pueden sustituir, ya que son locales a la clase.
2. el reemplazo de métodos (método de la clase hija) puede lanzar excepciones sin control, independientemente de si el método reemplazado (método de la clase padre) lanza cualquier excepción o no.
3. La unión de métodos sustituidos suceda en tiempo de ejecución que se conoce como enlace dinámico.
4. Si una clase está extendiendo una clase abstracta o implementar una interfaz, entonces tiene que reemplazar todos los métodos abstractos menos que la clase en sí es una clase abstracta.
La palabra clave super en Anulación
súper palabra clave se utiliza para llamar a la clase principal método / constructor. super.methodname () llama al método especificado de clase base, mientras que super () llama al constructor de la clase base. Vamos a ver el uso de súper en orden.<syntaxhighlight lang="java" line="1">
class ABC{
public void mymethod()
{
System.out.println("Class ABC: mymethod()");
}
}
class Test extends ABC{
public void mymethod(){
//This will call the mymethod() of parent class
super.mymethod();
System.out.println("Class Test: mymethod()");
}
public static void main( String args[]) {
Test obj = new Test();
obj.mymethod();
}
}
</syntaxhighlight>'''Salida:'''
'''Class ABC: mymethod()'''
'''Class Test: mymethod()'''
{{Estantes|Java}}
o6y9o5jh36dkzkwwxycfrpxkc014yru
Programación en PHP/Bucle foreach
0
54650
431381
385382
2026-08-16T22:19:47Z
Antimundo
74354
Categorizar usando AutoCat
431381
wikitext
text/x-wiki
'''foreach()''' ejecuta las sentencias en su interior para cada elemento de la matriz.
<syntaxhighlight lang="php">
<?php
$lista = array('rojo', 'verde', 'azul');
foreach ($lista as $indice => $valor) {
echo "El índice $indice de la lista tiene el valor $valor<br>";
}
?>
</syntaxhighlight>
'''Resultado:'''<br />
<pre>
El índice 0 de la lista tiene el valor rojo
El índice 1 de la lista tiene el valor verde
El índice 2 de la lista tiene el valor azul
</pre>
{{AutoCat}}
oevbcfdg1exou7kdjgisy7uv3zcmd5g
Programación en PHP/Bucle do while
0
54651
431382
385381
2026-08-16T22:19:58Z
Antimundo
74354
Categorizar usando AutoCat
431382
wikitext
text/x-wiki
'''do while()''' ejecuta al menos una vez evaluando la condición después del bucle.
<syntaxhighlight lang="php">
$valor = 0;
do {
echo 'valor = ' . $valor . '<br />';
$valor++;
} while ($valor < 3);
</syntaxhighlight>
'''Rdo:'''<br />
valor = 0<br />
valor = 1<br />
valor = 2<br />
{{AutoCat}}
1noimptp88m3ot0zrxxp8xa0h6o5rhm
Juegos populares/Juegos de mesa/El ahorcado
0
55200
431469
325142
2026-08-17T09:13:20Z
Antimundo
74354
Marcar como hoja suelta
431469
wikitext
text/x-wiki
{{Hoja suelta|Juegos populares}}
{| width=200 cellpadding=0 cellspacing=0 align=right
| bgcolor=#EEEEEE align=center | '''El Ahorcado'''
|-
|| Destreza de pensamiento
|-
| bgcolor=#EEEEEE| Se juega en
|-
|| Colombia,México,Chile,Argentina,España,
|-
| bgcolor="#EEEEEE" | Otras versiones
|-
| N/A
|-
| bgcolor=#EEEEEE| Otros nombres
|-
|| El colgado
|}
El ahorcado es un juego muy sencillo de lápiz y papel jugado por jóvenes donde se tiene que adivinar.
*Juego para 2 o mas jugadores.
== Materiales==
* Una hoja / un tablero
* Un lápiz / marcador o tiza
==Didáctica==
El juego consiste en que al azar y por turnos un jugador debe de pensar en una palabra o frase, luego este tendrá que dibujar en la hoja o tablero lineas o la cantidad de espacios correspondientes a cada letra, luego el otro jugador deberá decir una letra del abecedario según piense tenga la palabra o frase,
* Si la letra es parte de la palabra o frase, el jugador principal tendrá que poner la letra en su ubicación y sitio.
* Si la palabra no hace parte de la palabra o frase, o la letra es repetida, el jugador tendrá que dibujar una parte del cuerpo de un monigote y luego de una horca.
Luego si hay mas jugadores, estos deberán hacer el mismo procedimiento turnadamente de decir una letra; la idea es adivinar la palabra o frase antes de que el monigote termine dibujado en la horca.
*si un jugador cree saber la palabra o frase, podrá decirlo durante su turno, SI ES CORRECTO ESTE GANARA, si es incorrecto se tendrá que dibujar 2 partes mas del monigote o de la horca.(también puede ser descalificado según variación de la norma.
*si las personas aun no adivinan y el monigote esta completamente dibujado y ahorcado con su horca, todos los jugadores pierden.
* luego el que haya dicho la palabra, si nadie adivino nadie obtiene puntos y sigue el que tenga el 2do turno o se puede volver a iniciar la ronda.
* Si La persona adivino la palabra obtiene la oportunidad de pensar la nueva palabra de la siguiente ronda.
== otra reglas y variaciones ==
* si un jugador se arriesga a decir la palabra o frase y esta es incorrecta puede ser descalificado o puede hacer agregar 2 partes mas al dibujo.
* los jugadores pueden pedir 1 pista acerca de la palabra o frase durante el juego.
* si el juego es por puntos, los puntos pueden ser de +1, +2, +3, +4 o +5
* el juego puede ser individual o por grupos de cierta cantidad.
==Ganador==
El ganador sera la persona o grupo que haya adivinado mas palabras.
== Categorías ==
[[Juegos populares]]
[[Juegos populares/Juegos de mesa]]
[[Juegos populares/Al aire libre]]
0p9n2ojccwi0xc6oxl5sdl0hamex51j
Programación en F Sharp
0
56643
431354
416679
2026-08-16T17:21:54Z
Antimundo
74354
Categorizar usando estantes
431354
wikitext
text/x-wiki
{{Esbozo}}
== Contenido ==
# [[Programación en F Sharp/Prefacio|Prefacio]]
# [[Programación en F Sharp/Capítulo de ejemplo 2|Introducción]]
=== Bases de F# ===
Esta sección está pensada para personas que estan iniciandose en F# y programacion funcional en general
# [[Programación en F Sharp/Configuracion del entorno|Configuracion del entorno]] - Instalacion de F# en Windows, Linux y MacOS.
# [[Programación en F Sharp/Conceptos Basicos|Conceptos Basicos]] - Curso intensivo de conceptos de programación funcional.
{{Estantes|Lenguajes de programación}}
co7y62y6l0zj0flq1qlpu8ijfwzhh6t
Programación en F Sharp/Prefacio
0
56645
431355
346600
2026-08-16T17:22:06Z
Antimundo
74354
Categorizar usando AutoCat
431355
wikitext
text/x-wiki
== F#: Prefacio de como llego a existir este libro ==
Escrito por [[:en:User:Awesome_Princess|Awesome Princess]]:
Normalmente los autores eligen escribir un prefacio sobre el mismo libro. Pero por mi egocentrismo quiero escribir sobre mi. No porque sea una persona especialmente interesante, sino porque mis experiencias con la programación funcional son relevantes para la creación de este libro.
En 2006, me estaba aburriendo de mi trabajo, el único tipo de software que siempre habia creado había sido colocar una interfaz gráfica en frente de una base de datos y me estaba cansando de eso. Quería encontrar un trabajo interesante.
Por diversión empecé a buscar ofertas de empleo en compañías de alto nivel (Google, eBay, Microsoft, Amazon, etc.). Me di cuenta que todos los trabajos aburridos (aplicaciones CRUD, desarrollos web simples, etc) requieren programadores con experiencia en Java, C# o C++. Por otro lado los trabajos interesantes (Programación de compiladores, verificación de circuitos digitales, computación paralela masiva, biométrica, etc) requerían de programadores con experiencia en lenguajes poco familiares. En particular:
* Lei en un articulo de Paul Graham "[http://www.paulgraham.com/avg.html Beating the average]" que la primera version de Yahoo! Store fue escrita mayormente en Lisp
* Me encontre con ofertas de empleo para Google buscando programadores con experiencia en Haskell o Python ademas de C++
* Lei en un [http://erlang.org/faq/faq.html FAQ de Erlang] que el lenguaje de programación Erlang es la herramienta elegida por proveedores de servicios de telecomunicación como T-Mobile
* Durante años escuche que Lisp era el lenguaje principal durante la era dorada de las investigaciones de inteligencia artificial
* Me encontre con ofertas de trabajo en Microsoft en el área de verificación de controladores buscando programadores OCaml.
Las mas notables aplicaciones en el mundo no estan escritas en Java, están escritas en estos oscuros y extraños lenguajes, un paradigma de programación totalmente ajeno desde mi punto de vista enfocado en C#. Decidi suplementar mis conocimientos aprendiendo uno de estos oscuros lenguajes de programación funcional.
No fue muy dificil de hacer elección entre un lenguaje u otro, si voy a aprender un nuevo lenguaje necesita satisfacer algunas condiciones: Debe ser práctico para uso personal. Haskell me daba algo de miedo en ese momento y no iba a poder explotar las capacidades de concurrencia en Erlang con el alcance de las aplicaciones que escrinitria para mi. La eleccion se redujo a Lisp o OCaml, basado en esta [http://www.cs.ubc.ca/~murphyk/Software/which_language.html comparacion de diferentes lenguajes], me decidi por los tipos estáticos, la velocidad de código, el tamaño de los binarios y el nicho en mercados financiero de OCaml.
Aprendi OCaml y cambio totalmente mi manera de pensar. Despues de usar el lenguaje y mantener contacto con grupos de noticias en OCaml, pude aprender el lenguaje bastante rapido
En agosto de 2007 me tome un tiempo para familiarizarme con el lenguaje F#. Mientras que la mayor parte se me hizo facil, una cosa que note sobre el lenguaje, para algunas personas era inaccesible tratar de aprender el lenguaje. La escasez de material didáctico disponible de F# hacía casi imposible para los novatos aprender F# como primer lenguaje. Incluso hoy Noviembre de 2008 solo existen pocas publicaciones, incluso para una persona con varios años de experiencia en programación como yo, me costo comprender el lenguaje
Durante mucho tiempo quise escribir algo de utilidad para neófitos en F#, algo que contuviera la información necesaria sobre el lenguaje en un solo recurso. Este Libro fue originalmente iniciado por un compañero Wikipedista en 2006, pero nadie había escrito contenido sustancial durante casi 2 años. Encontré este libro y decidí (por el bien de las personas con ganas de aprender F#) compilar todo lo que sabía sobre el lenguaje en un formato aceptable para un aprendiz del lenguaje.
Me complace la forma en la que el libro ha ido progresando, al final me gustaría que la gente enlazara este libro como el tutorial de preferencia del lenguaje F# en internet
{{AutoCat}}
77qvh1od61lh1qv668mfb2ir75g4808
Ahorcado en Python
0
59779
431444
418464
2026-08-17T09:00:03Z
Antimundo
74354
Simplificar sintaxis y categorizar usando estantes
431444
wikitext
text/x-wiki
El objetivo del libro es enseñar cómo programar el juego [[El ahorcado]], por medio del lenguaje Python.
Este libro se ha creado con el objetivo de enseñar programación desde la experiencia de la creación de un juego de terminal como es el [[El_ahorcado|juego del ahorcado]]. Mediante este libro aprenderemos sobre tipos de datos, estructuras de control, y almacenamiento de datos archivos, entre otros conceptos, basados en el lenguaje [[w:Python]].
== Índice ==
=== Diccionario de palabras ===
{{:Ahorcado en Python/Diccionario de palabras}}
=== Clasificación y puntos ===
{{:Ahorcado en Python/Clasificación y puntos}}
=== Juego base ===
{{:Ahorcado en Python/Juego base}}
=== Ganar y perder ===
{{:Ahorcado en Python/Ganar y perder}}
{{Estantes|Python}}
26v0lq9rad1woofz34smy5dwnoobwav
431450
431444
2026-08-17T09:06:23Z
Antimundo
74354
Corregir estante
431450
wikitext
text/x-wiki
El objetivo del libro es enseñar cómo programar el juego [[El ahorcado]], por medio del lenguaje Python.
Este libro se ha creado con el objetivo de enseñar programación desde la experiencia de la creación de un juego de terminal como es el [[El_ahorcado|juego del ahorcado]]. Mediante este libro aprenderemos sobre tipos de datos, estructuras de control, y almacenamiento de datos archivos, entre otros conceptos, basados en el lenguaje [[w:Python]].
== Índice ==
=== Diccionario de palabras ===
{{:Ahorcado en Python/Diccionario de palabras}}
=== Clasificación y puntos ===
{{:Ahorcado en Python/Clasificación y puntos}}
=== Juego base ===
{{:Ahorcado en Python/Juego base}}
=== Ganar y perder ===
{{:Ahorcado en Python/Ganar y perder}}
{{Estantes|Lenguajes de programación}}
tgz7goaflzmy2ysq1l9pf28jfdlpaq7
Ahorcado en Python/Juego base
0
59795
431447
416881
2026-08-17T09:03:19Z
Antimundo
74354
Categorizar usando AutoCat
431447
wikitext
text/x-wiki
* [[Ahorcado en Python/Juego base/Palabras y listados de letras|Palabras y listados de letras]]
* [[Ahorcado en Python/Juego base/Bucle principal|Bucle principal]]
* [[Ahorcado en Python/Juego base/Filtrar letras permitidas|Filtrar letras permitidas]]<noinclude>
{{AutoCat}}
</noinclude>
eyn0owucpaobb5xtow834f24ly6gb2n
Ahorcado en Python/Diccionario de palabras
0
59797
431449
418173
2026-08-17T09:06:05Z
Antimundo
74354
Simplificar sintaxis y categorizar usando AutoCat
431449
wikitext
text/x-wiki
* [[Ahorcado en Python/Diccionario de palabras/Guardar una lista de palabras|Guardar una lista de palabras]]
* [[Ahorcado en Python/Diccionario de palabras/Crear categorías de palabras|Crear categorías de palabras]]
* [[Ahorcado en Python/Diccionario de palabras/Guardar palabras en un archivo externo|Guardar palabras en un archivo externo]]<noinclude>
{{AutoCat}}
</noinclude>
liu6sl2auxhzstesds34vaxolf28t4w
Ahorcado en Python/Diccionario de palabras/Guardar una lista de palabras
0
59798
431452
416871
2026-08-17T09:07:06Z
Antimundo
74354
Categorizar usando AutoCat
431452
wikitext
text/x-wiki
=== Agregar más palabras ===
Para hacer el juego más interesante, necesitaremos incluir más palabras, de tal forma que la elección sea aleatoria y se más difícil adivinar la palabra secreta.
Una opción es crear una lista de palabras:
<syntaxhighlight lang="python">
palabras = 'valoracion aprenderpython comida juego python'.split()
</syntaxhighlight>
La función split() nos separará las palabras en una lista, mirando los espacios entrer palabras.
Podemos crear una función que devuelva una palabra al final, de la lista listaPalabras. Para ello utilizaremos una función de la librería random, que deberemos importar al principio de nuestro programa.
<syntaxhighlight lang="python">
import random
</syntaxhighlight>
La función '''radint''' devuelve un número aleatorio del rango que pidamos. Esta función pertenece al '''módulo random''', que hemos importado al comienzon de nuestro programa.
<syntaxhighlight lang="python">
posicion = random.randint(0, len(palabras) - 1)
palabraSecreta = palabras[posicion]
</syntaxhighlight>
En un lugar del programa, deberemos llamar a la función buscarPalabraAleat y asignarle el valor devuelto a la variable que tiene la palabra con la que vamos a jugar.
{{AutoCat}}
7iuu5pvnls0ravsf2bia38qmzr37o7j
Ahorcado en Python/Diccionario de palabras/Crear categorías de palabras
0
59799
431453
416869
2026-08-17T09:07:14Z
Antimundo
74354
Categorizar usando AutoCat
431453
wikitext
text/x-wiki
=== Categorías de palabras ===
Otra mejora del programa consiste en cambiar la lista de palabras por un diccionario que permita agrupar por categorías. En este caso, listaPalabras es un diccionario que contiene claves (keys) y valores (values). Cada categoría será una clave (ej:formas), y su valor una lista de elementos (rectangulo,circulo,cuadrado, ...).
- colores
- rojo
- verde
- formas
- rectangulo
- circulo
- cuadrado
- ...
<syntaxhighlight lang="python">
import random
listaPalabras = { 'colores': 'rojo verde azul naranja'.split(),
'formas': 'rectangulo circulo cuadrado'.split(),
'animales': 'perro oso gato'.split()
}
categoria = random.choice(list(listaPalabras.keys()))
numPalabra = random.randint(0, len(listaPalabras[categoria]) - 1)
palabraElegida = listaPalabras[categoria][numPalabra]
print([categoria,palabraElegida])
</syntaxhighlight>
{{AutoCat}}
1ylnfhejs1dz2qj7a5x4nuctc9p4ers
Ahorcado en Python/Diccionario de palabras/Guardar palabras en un archivo externo
0
59800
431454
416870
2026-08-17T09:07:21Z
Antimundo
74354
Categorizar usando AutoCat
431454
wikitext
text/x-wiki
=== Colocar listado de palabras en archivo externo ===
Una vez el listado de categorías y palabras aumenta, puede resultar útil sacar todo este listado a un archivo externo, que únicamente contendrá categorías y palabras. Desde el programa, accederemos a este listado para cargar las palabras del juego.
==== Leer y escribir en un JSON ====
Como querremos guardar y cargar los datos entre el archivo y una variable del tipo diccionario de Python, utilizaremos el módulo JSON.
Cargaremos los datos mediante el método **json.load()**
<syntaxhighlight lang="python">
import json
self.archivo = "diccionario.json"
self.listaPalabras = json.load(open(self.archivo))
</syntaxhighlight>
Una vez cargados los datos, podemos crear dos funciones, una que extraiga una categoría al azar, y otra que cargue una palabra de dicha categoría:
<syntaxhighlight lang="python">
def eligeCategoria(self):
self.categoria = random.choice(list(self.listaPalabras.keys()))
def eligePalabra(self):
numPalabra = random.randint(0, len(self.listaPalabras[self.categoria]) - 1)
self.palabra = self.listaPalabras[self.categoria][numPalabra]
</syntaxhighlight>
{{AutoCat}}
lep2hbu8o99hcwo32ub5s3887v9a1kc
Ahorcado en Python/Clasificación y puntos
0
59801
431448
416865
2026-08-17T09:04:42Z
Antimundo
74354
Simplificar sintaxis y categorizar usando AutoCat
431448
wikitext
text/x-wiki
* [[Ahorcado en Python/Clasificación y puntos/Crear sistema de puntuación|Crear sistema de puntuación]]
* [[Ahorcado en Python/Clasificación y puntos/Mostrar clasificación|Mostrar clasificación]]<noinclude>
{{AutoCat}}</noinclude>
7qsrl9h8i84mhipir69vw4yni6qrdd2
Ahorcado en Python/Clasificación y puntos/Crear sistema de puntuación
0
59802
431455
416866
2026-08-17T09:07:31Z
Antimundo
74354
Categorizar usando AutoCat
431455
wikitext
text/x-wiki
=== Clasificación ===
Podríamos hacer el juego más competitivo creando una clasificación. Para ello, tendríamos que pensar en algún sistema de puntuación para poder comparar los resultados de las diferentes partidas.
Creamos un diccionario tablaClasificacion, que contendrá el nombre del jugador y su puntuación.
<syntaxhighlight lang="python">
tablaClasificacion = { 'Dani': 4000,
'Pepe': 2000,
'Manolo': 1000 }
</syntaxhighlight>
==== Añadir puntuación ====
Tendríamos que pedir el nombre al jugador en una variable nombre al comenzar la partida y guardarlo en alguna variable, como jugador. Al final de la partida, calculamos la puntuación y la guardamos en el diccionario:
<syntaxhighlight lang="python">
tablaClasificacion[nombre] = puntuacion
</syntaxhighlight>
{{AutoCat}}
7aqk6kky6lqfwq0m1m0rraece7m6h3j
Ahorcado en Python/Clasificación y puntos/Mostrar clasificación
0
59803
431456
416867
2026-08-17T09:07:43Z
Antimundo
74354
Categorizar usando AutoCat
431456
wikitext
text/x-wiki
==== Mostrar clasificación =====
La función mostrarClasificación podría ser:
<syntaxhighlight lang="python">
def mostrarClasificacion(tablaClasificacion):
print("--------------------------------")
print(" CLASIFICACION ")
print("--------------------------------")
jugadores = list(tablaClasificacion.keys())
for nombreJugador in jugadores:
print(" ", nombreJugador, " ", tablaClasificacion[nombreJugador])
print("--------------------------------\n")
</syntaxhighlight>
{{AutoCat}}
6c7sydk8y07ba646x0ruuou6orpvej6
Ahorcado en Python/Juego base/Palabras y listados de letras
0
59804
431457
416884
2026-08-17T09:07:55Z
Antimundo
74354
Categorizar usando AutoCat
431457
wikitext
text/x-wiki
== Ahorcado base ==
Importamos el '''módulo os''' para poder utilizar la función de limpiar pantalla:
<syntaxhighlight lang="python">
import os # Para borrar la pantalla
</syntaxhighlight>
Tenemos que guardar la lista de las letras que hemos dicho, tanto correctas como incorrectas. Para ello, utilizaremos dos listas, de momento vacías:
<syntaxhighlight lang="python">
letraIncorrecta = []
letraCorrecta = []
</syntaxhighlight>
Guardaremos en una variable llamada '''palabraSecreta''' la palabra que tenemos que adivinar, y en otra una copia de la misma palabra, pero vacía (con _ en lugar de letras), que se llamará '''palabraResuelta'''.
A medida que vayamos acertando letras, iremos modificando '''palabraResuelta''', cambiando los _ por letras, a medida que se vayan acertando:
<syntaxhighlight lang="python">
palabraSecreta = list("navidad") # Palabra original, la guardamos
longitudPalabra = len(palabraSecreta)
palabraResuelta = ['_'] * longitudPalabra # Creamos una lista para resolver con todo "_"
</syntaxhighlight>
{{AutoCat}}
4tz0ibbftd560tvjrvqsetltjy9sufo
Ahorcado en Python/Juego base/Bucle principal
0
59805
431458
416882
2026-08-17T09:08:03Z
Antimundo
74354
Categorizar usando AutoCat
431458
wikitext
text/x-wiki
Una vez declarado esto, entraremos en un bucle de pedir letras, hasta que el juego termine. De momento, el bucle será infinito, aunque después deberemos modificar esto:
<syntaxhighlight lang="python">
while True:
</syntaxhighlight>
Podemos pintar un poco de texto informando del juego, que podremos personalizar:
<syntaxhighlight lang="python">
print ("") # pinta una línea en blanco
print ('A H O R C A D O (Ramon Llull Edition)')
print ("--------------------------------------\n\n") Cada # \n añade un salto de línea
</syntaxhighlight>
Antes de pedir letras, mostramos las incorrectas, para evitar que se repitan:
<syntaxhighlight lang="python">
print ('Letras incorrectas: ', end = '')
for letra in letraIncorrecta:
print (letra, end = '') # end = '' evita que se haga un salto de línea despues del print
print ("")
</syntaxhighlight>
Ahora mostraremos la palabra tal como está, con las letras que hayan sido acertadas en su posición, y las que quedan con un _:
<syntaxhighlight lang="python">
print ("--------------------------------------\n")
print("PALABRA: ")
for i in range(longitudPalabra): # Remplaza los espacios en blanco por la letra bien escrita
if palabraSecreta[i] in letraCorrecta:
palabraResuelta[i] = palabraSecreta[i]
# Mostramos la palabra como está ahora
for letra in palabraResuelta: # Mostrará la palabra secreta con espacios entre letras
print (letra+" ", end = '')
print ("\n")
</syntaxhighlight>
Por último, pedimos al usuario que introduzca una letra:
<syntaxhighlight lang="python">
print ('Adivina una letra:')
letra = input()
</syntaxhighlight>
Si la letra está en la palabra, la meteremos en la lista letraCorrecta. Sino, en la lista letraIncorrecta:
<syntaxhighlight lang="python">
if letra in palabraSecreta:
letraCorrecta.append(letra)
else:
letraIncorrecta.append(letra)
</syntaxhighlight>
{{AutoCat}}
7d3cd8zzr2goxg9cwhrlimcjbyiyjq3
Ahorcado en Python/Ganar y perder
0
59806
431445
416873
2026-08-17T09:01:53Z
Antimundo
74354
Simplificar sintaxis
431445
wikitext
text/x-wiki
* [[Ahorcado en Python/Ganar y perder/Ganar partida|Ganar partida]]
* [[Ahorcado en Python/Ganar y perder/Perder partida|Perder partida]]
* [[Ahorcado en Python/Ganar y perder/Jugar de nuevo|Jugar de nuevo]]<noinclude>
[[Categoría:Juegos en programación]]
</noinclude>
gjdryv8omwc77i9hcv6h9bdpdhhl28f
431446
431445
2026-08-17T09:02:53Z
Antimundo
74354
Categorizar usando AutoCat
431446
wikitext
text/x-wiki
* [[Ahorcado en Python/Ganar y perder/Ganar partida|Ganar partida]]
* [[Ahorcado en Python/Ganar y perder/Perder partida|Perder partida]]
* [[Ahorcado en Python/Ganar y perder/Jugar de nuevo|Jugar de nuevo]]<noinclude>
{{AutoCat}}
</noinclude>
9wxr345rnqq6sujol43gecp7tksq21e
Ahorcado en Python/Ganar y perder/Ganar partida
0
59807
431460
416874
2026-08-17T09:08:18Z
Antimundo
74354
Categorizar usando AutoCat
431460
wikitext
text/x-wiki
Podemos crear una variable booleana finJuego que sea True si ha terminado el juego, y falso si no es así.
El juego puede terminar bajo dos condiciones:
Partida ganada: que hayamos resuelto la palabra antes de agotar nuestras oportunidades.
Para ello podemos comprobar que no quedan huecos de letras vacías en la palabra resuelta:
<syntaxhighlight lang="python">
if "_" not in palabraResuelta
</syntaxhighlight>
{{AutoCat}}
9x6e7s3act2elidh3l9j5f7rx1itkd3
Ahorcado en Python/Ganar y perder/Perder partida
0
59808
431461
416876
2026-08-17T09:08:25Z
Antimundo
74354
Categorizar usando AutoCat
431461
wikitext
text/x-wiki
Partida perdida: que hayamos fallado un número suficiente de veces
Podemos ayudarnos de una variable que contenga el máximo número de vidas o "errores" permitidos. Si hemos fallado tantas letras como vidas,el juego tiene que terminar.
<syntaxhighlight lang="python">
vidas = 6
if len(letraIncorrecta) == vidas:
</syntaxhighlight>
El bucle principal se tiene que cambiar:
<syntaxhighlight lang="python">
juegoTerminado = False
while not juegoTerminado:
if ganado:
juegoTerminado = True
mostrarFraseGanado
if perdido:
juegoTerminado = True
mostrarFrasePerdido (y la palabra)
</syntaxhighlight>
{{AutoCat}}
qwg0nltw99anygusa72evxmyqagjtwm
Ahorcado en Python/Ganar y perder/Jugar de nuevo
0
59809
431462
416875
2026-08-17T09:08:33Z
Antimundo
74354
Categorizar usando AutoCat
431462
wikitext
text/x-wiki
Una vez terminada la partida, se nos puede preguntar si deseamos volver a jugar otra vez o no. Para ello, la función nos puede preguntar y simplemente mirar si la respuesta comienza por "s". Si es así , probablemente hayamos escrito "SI", "S" o "s".
<syntaxhighlight lang="python">
def jugarOtra():
print('¿Quieres jugar otra partida? (Sí o no))
return input().lower().startswith('s')
</syntaxhighlight>
{{AutoCat}}
r3210vej0udb6boa88ahnimba70i8ph
Ahorcado en Python/Juego base/Filtrar letras permitidas
0
59810
431459
416883
2026-08-17T09:08:10Z
Antimundo
74354
Categorizar usando AutoCat
431459
wikitext
text/x-wiki
=== Filtrar el tipo de letra permitido ===
Cualquier tecla del teclado puede ser utilizada por el usuario a la hora de elegir la letra, por lo que debemos comprobar que solo están permitidas letras del alfabeto. Para ello, mejor crear una función elijeLetra(), puesto que la vamos a utilizar cada vez que pidamos al usuario una letra.
<syntaxhighlight lang="python">
def elijeLetra():
...
...
return letra
</syntaxhighlight>
El bloque principal consiste en capturar un input (el funcionamiento que ya tenemos):
<syntaxhighlight lang="python">
print ('Adivina una letra:')
letra = input()
</syntaxhighlight>
Podemos forzar que la letra se convierta a minúsculas utilizando el método '''.lower()''':
<syntaxhighlight lang="python">
letra = letra.lower()
</syntaxhighlight>
Podemos comprobar que solo se introduce una letra y no dos o más:
<syntaxhighlight lang="python">
if len(letra) != 1:
</syntaxhighlight>
No tendríamos que poder decir una letra que ya se ha dicho antes. En este caso algunaLetra es una lista que contiene todas las letras que ya se han dicho antes.
<syntaxhighlight lang="python">
if letra in algunaLetra:
</syntaxhighlight>
Comprobar que la letra está en el alfabeto:
<syntaxhighlight lang="python">
if letra not in 'abcdefghijklmnopqrstuvwxyz':
</syntaxhighlight>
{{AutoCat}}
atw8m8gno1doxpxmix91xuk5fb5tsdz
Ahorcado en Python/Palabras y listados de letras
0
59811
431465
416885
2026-08-17T09:09:08Z
Antimundo
74354
Categorizar usando AutoCat
431465
wikitext
text/x-wiki
Importamos el '''módulo os''' para poder utilizar la función de limpiar pantalla:
<syntaxhighlight lang="python">
import os # Para borrar la pantalla
</syntaxhighlight>
Tenemos que guardar la lista de las letras que hemos dicho, tanto correctas como incorrectas. Para ello, utilizaremos dos listas, de momento vacías:
<syntaxhighlight lang="python">
letraIncorrecta = []
letraCorrecta = []
</syntaxhighlight>
Guardaremos en una variable llamada '''palabraSecreta''' la palabra que tenemos que adivinar, y en otra una copia de la misma palabra, pero vacía (con _ en lugar de letras), que se llamará '''palabraResuelta'''.
A medida que vayamos acertando letras, iremos modificando '''palabraResuelta''', cambiando los _ por letras, a medida que se vayan acertando:
<syntaxhighlight lang="python">
palabraSecreta = list("navidad") # Palabra original, la guardamos
longitudPalabra = len(palabraSecreta)
palabraResuelta = ['_'] * longitudPalabra # Creamos una lista para resolver con todo "_"
</syntaxhighlight>
{{AutoCat}}
d5n0hkdu5qe9dsmy7p1yd0yuphlyd66
Ahorcado en Python/Bucle principal
0
59812
431463
416863
2026-08-17T09:08:53Z
Antimundo
74354
Categorizar usando AutoCat
431463
wikitext
text/x-wiki
Una vez declarado esto, entraremos en un bucle de pedir letras, hasta que el juego termine. De momento, el bucle será infinito, aunque después deberemos modificar esto:
<syntaxhighlight lang="python">
while True:
</syntaxhighlight>
Podemos pintar un poco de texto informando del juego, que podremos personalizar:
<syntaxhighlight lang="python">
print ("") # pinta una línea en blanco
print ('A H O R C A D O \n\n')
</syntaxhighlight>
Antes de pedir letras, mostramos las incorrectas, para evitar que se repitan:
<syntaxhighlight lang="python">
print ('Letras incorrectas: ', end = '')
for letra in letraIncorrecta:
print (letra, end = '') # end = '' evita que se haga un salto de línea despues del print
print ("")
</syntaxhighlight>
Ahora mostraremos la palabra tal como está, con las letras que hayan sido acertadas en su posición, y las que quedan con un _:
<syntaxhighlight lang="python">
print ("--------------------------------------\n")
print("PALABRA: ")
for i in range(longitudPalabra): # Remplaza los espacios en blanco por la letra bien escrita
if palabraSecreta[i] in letraCorrecta:
palabraResuelta[i] = palabraSecreta[i]
# Mostramos la palabra como está ahora
for letra in palabraResuelta: # Mostrará la palabra secreta con espacios entre letras
print (letra+" ", end = '')
print ("\n")
</syntaxhighlight>
Por último, pedimos al usuario que introduzca una letra:
<syntaxhighlight lang="python">
print ('Adivina una letra:')
letra = input()
</syntaxhighlight>
Si la letra está en la palabra, la meteremos en la lista letraCorrecta. Sino, en la lista letraIncorrecta:
<syntaxhighlight lang="python">
if letra in palabraSecreta:
letraCorrecta.append(letra)
else:
letraIncorrecta.append(letra)
</syntaxhighlight>
{{AutoCat}}
k77xu04cqy00a5wk2u22v75vr2byabh
Ahorcado en Python/Filtrar letras permitidas
0
59814
431464
416872
2026-08-17T09:09:01Z
Antimundo
74354
Categorizar usando AutoCat
431464
wikitext
text/x-wiki
=== Filtrar el tipo de letra permitido ===
Cualquier tecla del teclado puede ser utilizada por el usuario a la hora de elegir la letra, por lo que debemos comprobar que solo están permitidas letras del alfabeto. Para ello, mejor crear una función elijeLetra(), puesto que la vamos a utilizar cada vez que pidamos al usuario una letra.
<syntaxhighlight lang="python">
def elijeLetra():
...
...
return letra
</syntaxhighlight>
El bloque principal consiste en capturar un input (el funcionamiento que ya tenemos):
<syntaxhighlight lang="python">
print ('Adivina una letra:')
letra = input()
</syntaxhighlight>
Podemos forzar que la letra se convierta a minúsculas utilizando el método '''.lower()''':
<syntaxhighlight lang="python">
letra = letra.lower()
</syntaxhighlight>
Podemos comprobar que solo se introduce una letra y no dos o más:
<syntaxhighlight lang="python">
if len(letra) != 1:
</syntaxhighlight>
No tendríamos que poder decir una letra que ya se ha dicho antes. En este caso algunaLetra es una lista que contiene todas las letras que ya se han dicho antes.
<syntaxhighlight lang="python">
if letra in algunaLetra:
</syntaxhighlight>
Comprobar que la letra está en el alfabeto:
<syntaxhighlight lang="python">
if letra not in 'abcdefghijklmnopqrstuvwxyz':
</syntaxhighlight>
{{AutoCat}}
a0ntggis5kcaye68sid9orzzlezkloq
Manual del escritor/Anexo/Escritores asiáticos
0
61862
431423
431045
2026-08-17T03:30:50Z
~2026-44916-64
127708
/* A */
431423
wikitext
text/x-wiki
==A==
* '''Abdulla Avloniy (1878-1934):''' Representante de la cultura nacional uzbeka de finales del siglo XIX e inicios del XX. Fue poeta, dramaturgo, periodista, académico y líder comunitario y público. escribió diversos poemas sobre los acontecimientos de su época y el cuento alegórico sobre ''La fiesta de la envidia''. Publicó seis colecciones literarias y recibió un trío de premios.
* '''Abdulla Kadiri (1894-1938):''' Dramaturgo, poeta, escritor y traductor uzbeko soviético. Influyente en el siglo XX, introdujo el realismo a la literatura uzbeka mediante sus novelas históricas e inspiró a muchos novelistas centoasiáticos. Escribió un ciuarteto de novelas históricas históricas, varias obras teatrales y numerosos artículos de periódico.
* '''Ahmad Zein (1968):''' Escritor y periodista yemení afincado actualmente en Riad. Colabora con la publicación Al-Hayat y ha publicado en Banipal.
* '''Akhundov, Suleyman Sani (1875-1939):''' Dramaturgo y prosista azerí. Eligió el seudónimo de Sani, que significa "segundo" en árabe, con el fin de evitar confusiones con su homónimo Mirza Fatali Ajundov. Escribió un quinteto de colecciones de piezas y una colección de cuentos.
* '''Avicena (980-1037):''' Polímata, médico, filósofo, astrónomo y científico persa perteneciente a la edad de Oro del Islam. Escribió cerca de tres centenares de libros sobre diversos temas, entre los cuales predominan la filosofía persa. Se destacó como filósofo, poeta, astrónomo, médico, teórico en la música, físico, matemático, químico, ético, alfaquí (jurista en derecho islámico), escritor y polímata. Sus obras notables fueron sobre el Canon de la Medicina y El Libro de la Curación.
==B==
* '''Babur (1483-1530):''' Emperador y fundador del Imperio mogol de la India. descendiente del conquistador turco mongol Tamerlán. Fue autor de sus memorias y de varias poesías, de las cuales se distinguió como poeta, escritor y autobiógrafo, a parte de ser monarca.
* '''Bão Ninh (1952):''' Escritor vietnamita célebre por la novela ''El dolor de la Guerra'' sobre la guerra de Vietnam. escribió también Steppe, obra que no deseó publicarla por falta de naturalidad. un cuento corto suyo se incluye en la antología ''Night, Again''.
* '''Al-Biruni (973-1050):''' Matemático, astrónomo, geógrafo, físico, filósofo, viajero, historiador y farmacéutico persa. Escribió una decena de libros científicos, que albergan temas de matemática (aritmética, álgebra, geometría), física, geografía y geodesia, astronomía, botánica, química, farmacéutica, medicina, psicología, etc.
* '''Bushra al-Maqtari (1979):''' Escritora y activista yemení. Se popularizó al liderar la protesta antigubernamental en su ciudad natal durante la revolución yemení de 2011. Recibió un par de distinciones por sus diversos trabajos literarios. incursionó en la literatura en prosa sobre temas políticos.
==C==
* '''Sansón Chanba (1866-1937):''' Escritor y estadista de Abjasia. Publicó justamente al finalizar la década de 1910, ''La hija de las montañas'', y al iniciar la década de 1920 la obra ''Amkhadzyr'', la primera obra escrita en idioma abjasio. Al finalizar la década de 1930 lo arrestaron y lo ejecutaron en la Gran Purga de Stalin.
* '''Cho´lpon (1883-1938):''' Poeta, dramaturgo, novelista y trductor uzbeko, cuy nombre real es Abdulkhamid Sulaymono'g'li Yunusov. Fue uno de los poetas más populares del Asia Central durante la primera mitas del Siglo XX. También fue una de las primeras personas en traducir obras de William Shakespeare al uzbeko. Escribió cuatro colecciones poéticas y una novela titulada ''Noche y Día''. También escribió cuentos y obras teatrales. Murió ejecutado durante la Gran Purga estalinista.
==D==
* '''Al-Darimi:''' Escolástico e imán suní interesado por el hadiz (fraseología mahometana). Se le conoce especialmente por su compilación ''Sunan al Darimi''.
==E==
* '''Elham Manea (1966):''' escritora yemení-suiza nacida en El Cairo. Fue una firme defensora de la separación del estado y la religión en países islámicos, la libertad de expresión, la defensa de los derechos de las mujeres. Escribió sus libros: ''La ley islámica en Occidente'' (2009) y ''Los peligros del islamismo no violento'' (2021). Se hizo crítica al multiculturalismo y a la permisividad de Occidente ante el Islam.
==F==
* '''Fátima la Socotrana (siglo IX d. C.):''' Poetisa yemení del siglo IX, siglo III tras la hégira. Cuyo nombre real fue Fátima bint Ahmad Muhammad al-Jahdami. Se cree que vivió en la isla de Socotra entre 816 y 913 (casi un siglo de existencia).
==G==
* '''Vladímir Gaglóyev (1927-96):''' Escritor y dramaturgo osetio. Trabajó como periodista y publicista, fue redactor de la revista El Mensajero (de 1968 a 1978). Una calle en Tsjivali fue nombrada en su honor.
* '''Galávanova, Nina (1915-94):''' Escritora, poetisa, traductora y profesora surosetia, considerada la primera escritora osetia de la historia. Además, la nombraron maestra honorable de la RSS de Georgia. Escribió su primer cuento ''Primavera''. También redactó colecciones de prosas, poemas, novelas en osetio. Tradujo al osetio los diversos clásicos de la literatura universal, incluyendo León Tolstoi e Iván Frank. Recibió un sexteto de Premios, de los cuales la mitad fue la más importante en su trayectoria literaria.
* '''Golóyev, Vladímir (1810-75):''' Poeta, escritor y dramaturgo soviético de Osetia del Sur, director de la editorial Tsjivali. Escribió su novela corta ''En las tormentas de guerra'', la cual se narró extensamente. En 1952, publicó su primera colección de relatos ''Nuevo Sol''. Publicó su primer relato en la primera revista Nuestros Logros, cuyo editor jefe era Máximo Gorki.
* '''Dimitri Gulia (1874-1960):''' Escritor de etnia Abjasia y nacionalidad soviética. Considerado como el padre de la literatura abjasia. Escribió numerosos poemas, narraciones y novelas y la mayor parte de sus trabajos traducidos al ruso y al georgiano.
==H==
* '''Hajibeyli, Jeyhun (1891-1962):''' Lingüista, periodista, traductor y diplomático azerí. Escribió una oncena de obras relacionadas con la cultura azerbaiyana. Se graduó en la Universidad de París, donde muy posteriormente murió.
* '''Hajibeyov Uzeyir (1885-1948):''' Compositor, director de orquesta, musicólogo, publicista, dramaturgo y traductor soviético. Escribió un septeto de colecciones de óperas, de la cual recibió ocho distinciones por sus trabajos artísticos.
* '''Hamza Hakimzade Niyazi (1889-1929):''' Autor, compositor, poeta, dramaturgo, académico y activista político uzbeko. Niyazi, junto con G'afur G'ulum, se le considera como un desarrollador de la tradición literaria uzbeka moderna. Por sus actividades antirreligiosas murió lapidado por fundamentalistas islámicos por su ferviente partidario de la revolución.
* '''Abú Muhammad al-Hasan al-Hamdānī (893-945):''' Geógrafo, poeta, gramático, historiador y astrónomo árabe. Fue uno de los mejores representantes de la cultura islámica en los últimos años del califato abasí.
* '''Hamid Alimjan (1909-44):''' Poeta y dramaturgo uzbeco de la época soviética. Representante de la poesía soviética. Representante de la poesía soviética en Uzbekistán, afiliado al Partido Comunista de la Unión Soviética, se distinguió como poeta, dramaturgo y crítico literario. Se distinguió con una Orden al Mérito Extraordinario. Falleció de un accidente de tránsito a sus casi tres décadas y media de vida.
* '''Hayim Habshush (1833-99):''' Rabino yemenita de Sarrá, recordado por ayudar a estudiosos como Joseph Halévu o Edward Glaser. Esta y otras experiencias las recopiló en su libro de 1893, "Los viajes de Habshush" en árabe y en hebreo.
* '''Ho Chi Minh (1890-1969):''' Revolucionario y político anticolonial vietnamita, de ideología comunista. Escribió cinco obras literarias sobre su experiencia, en poesía escribió el diario de prisión.
* '''Hô Xûan Hu'o'ng (1772-1822):''' Poetisa vietnamita nacida al final de la dinastía Lê en escritura Chó Nóm. Considerada una de las figuras más importantes de su país. Escribió notablemente ''Perfume primaveral''. Contribuyó a la prominencia en el Siglo XVIII en vez de chino tradicional.
* '''Abdulwahab Hussain (1954):''' Activista político, escritor, figura religiosa y filósofo bahrení. Fue uno de los líderes de la oposición más importantes en el levantamiento en Bahrein en 1990 cuando fue arrestado doblemente por un lustro, en los que estuvo expuesto supuestamente en un régimen de ostracismo y tortura. Al entrar el nuevo siglo y milenio, fue liberado y apoyó al gobierno en sus planes de reforma.
* '''Sabine Huynh (1872):''' Escritora, traductora y crítica literaria francesa nacida en Vietnam. Actualmente reside en Tel Aviv. Se educó como doctora en lingüística en la Universidad Hebrea de Jerusalén y de posgrado en sociolingüística en la Universidad de Ottawa. escribió una docena de libros.
==I==
* '''Iskander Fazil (1929-2016):''' Escritor ruso de origen abjasio, conocido en la antigua Unión Soviética por sus descripciones de la vida del Cáucaso escritas en ruso. Escribió un octeto de prosas, un quinteto de colecciones en verso y una sola pieza de teatro.
* '''Iván Yaguzidze (1775-1830):''' Escritor, educador y misionero ortodoxo osetio, uno de los fundadores de la literatura osética. Como traductor, pedagogo, poeta y figura pública, escribió un poema extenso, que se escribió en georgiano y se publicó por primera vez en 1885,es decir, cinco décadas después de su defunción.
* '''Alessander Tibilov (1887-1938):''' Escritor, periodista, crítico literario y figura publica soviético de Osetia del Sur, fundador de la revista literaria osetia Fidiuaeg. Escribió artículos críticos sobre la obra literaria de sus contemporáneos osetio. Más de un siglo después de su muerte publicó Tsjinvali, una colección de obras y un par de colecciones literarias.
==J==
* '''Serguei Jachirov (1918-2007):''' Poeta, escritor y dramaturgo soviético de Osetia del Sur. Escribió un octeto de poesías y una colección de sátiras en lengua osetia. Su novela ''Ansiedad'' dedica a la independencia del pueblo osetio.
==K==
* '''Kamil Yashin (1909-97):''' poeta, dramaturgo, prosista, guionista y celebridad soviética de origen uzbeko. Recibió distinciones que llegarían a dos octetos.
* '''Firidoun bey Kocharli (1863-1920:)''' Escritor y pedagogo azerí. Impulsó el idioma azerí en su literatura. Escribió su primer artículo, sobre comedias azeríes, ensayos sobre la literatura azerí (1904). Tradujo distintas obras de escritores rusos.
==L==
* '''Latifov, Mirza Sadig (1852-1901):''' Poeta, médico y pedagogo azerbaiyano, miembro de la sociedad literaria Majlisi-Feramushan. Escribió numerosas y variadas poesías acorde a su experiencia de vida.
* '''Lê Tháng Tông (1442-97):''' Emperador de Dai Viet que reinó de 1460 a 1497. Fue elogiado grandemente como soberanoen la historia vietnamita. Escribió poemas que se conservaron cronológicamente, el cual se destacó una poesía militar de campaña contra los Champa.
* '''Lu'u Quang Vũ (1948-1988): Dramaturgo y poeta vietnamita. Su esposa Xuân Quynh fue la poeta moderna más famosa de Vietnam. Se destacó con un trío de literatura narrativa, más de un trío de poesías y casi una treintena de dramas teatrales.
==M==
* '''Afaese Manoa (1942-):''' Escritor, compositor y músico tuvaluano, conocido por haber sido el compositor del himno nacional de Tuvalu tras la independencia del Reino Unido en 1978. Se le conoce como el escritor de una lengu en lka que casi no hay literatura y como otros escritores oceánicos, sus obras reflejan un fuerte sentimiento de vocación religiosa.
* '''Mashrab (1657-1711):''' Figura clásica en la literatura uzbeka. Fue un poeta y pensador, seguidor de la tradición Sufi Tarikat. A través de sus obras abogaba por la igualdad y el empoderamiento femenino, promoviendo en la participación de actividades socioeconómicas y culturales. Su poesía se trasmitió extensamente por el Asia Central. En su honor se hizo una revista satírica homónima.
* '''Grace Mera Molisa (1946-2002):''' Activista vanuatense por los derechos de la mujer, escritora y política de Vanuatu. También fue poetisa. escribió una antología de poemas y un trío de obras relacionadas con la historia vanuatense.
* '''Sergó Mindiashvili (1940-2011):''' Poeta, escritor y prosista soviético de Osetia del Sur. Escribió un septeto de poema rios distintos completamente. Y una colección la escribió incompletamente, puesto que acaeció su defunción y la esposa del poeta la completó. Sus obras se tradujeron a distintos idiomas.
* '''Murakami, Haruki (1949-):''' escritor japonés de ficción, dentro de sus obras destacan "Kafka en la Orilla" y "Tokyo Blues".
==N ==
* '''Natavan, Khurshidbandu (1832-97):''' Poetisa azerbaiyana. En 1858 se encontró con Alejandro Dumas, en Bakú, donde le influyo en su literatura. Aprendió idiomas orientales y leyó autores clásicos. Su poesía se inspiró en temas como el humanismo, la amistad y el amor.
* '''Ngô Van (1913-2005):''' Escritor vietnamita de ideología comunista antiestalinista. Como militante comunista, fue perseguido tanto por el poder colonial francés como por el régimen estalinista. Se publicaron un trío de obras suyas al español y un secteto al francés.
* '''Nguyên Phan Quê Mai (1973):''' Poetisa y novelista vietnamita. Autora de diez libros de poesía, ficción y no ficción en vietnamita e inglés. Escribió su poesía en vietnamita y fue galardonada con algunos premios literarios más importantes de Vietnam.
* '''Nodira (1792-1842):''' Poetisa y estadista uzbeka. Es considerada como una poetisa más célebre y destacada de su país. escribió su poesía en uzbeko, tayiko y persa. Utilizó otros seudónimos como Komila y Maknuna. Gran parte de sus divanes logradamente perduraron, y consisten en más de 10 mil líneas de poesía.
==O==
* '''Oripov, Abdulla (1941-2016):''' Poeta, político, traductor, periodista y expresidente de l Unión de escritores de Uzbekistán. Como político fue miembro del Parlamento y del Senado de su país. Recibió un sexteto de distinciones, de las cuales la mitad las recibió significativamente. escribió dos oncenas de obras literarias.
* '''Osaf, Aydin (1921-2018):''' Arquitecto, periodista, escritor y ensayista turco. Era un hombre muy conocido en el periodismo turco, escribió un octeto de ensayos humorísticos, un trío de libros de viajes (dentro de dicho trío envuelve una trilogía), un libro de ficción y más de una docena de memorias.
* '''Özakman, Turgut (1930-2013):''' Abogado y escritor turco. Como abogado se forma en la escuela de Leyes de la Universidad de Ankara. Escribió muchas novelas y obras literarias dramáticas. Escribió conjuntamente el triplete Turco, sobre la Guerra de Independencia turca, la Batalla de Galípoli sobre la fundación de la República turca. Ganó el gran Premio Presidencial de la Cultura y las Artes a fin de siglo.
* '''Özdemir Asaf (1923-1981):''' poeta turco prominente durante el periodo republicano temprano. Fue el poeta más amado en matinés literarias. Fue fundador de la Asociación de Supervivencia de los Derechos fundamentales.
==P==
* '''Ashiq Paris (1811-47):''' Poeta popular del siglo XIX qué se le considera la primera mujer azerí prominente. Su poesía consistió, primordialmente en duelos poéticos verbales, donde utilizó diversas formas populares en azerí.
* '''Phan Hay Chú (1782-1840):''' Administrador y escritor vietnamita. Su obra más conocida y representativa fue (''Tipos de medios, Calendario de la dinastía''). La primera "enciclopedia" de Vietnam. También escribió sobre el equilibrio geográfico de Vietnam y el Lejano Oeste.
* '''Phan Thi Hoai (1960):''' Influyente escritora, editora y traductora vietnamita radicada en Alemania. Tradujo importantes obras de literatura alemana al vietnamita: Franz kafka, Bertolt Brecht, Thomas Bernhard y Friedrich Dürrenmatt.
==Q==
==R==
* '''Ramziya Abbas al-Iryani (1951-2013):''' Pionera novelista, escritora, diplomática y feminista yemení. Fue sobrina, admás, del expresidente Abdul Rahman al-Iryani. Se hizo famosa con el cuento y la novela, mediante las obras ''La Víctima de la Codicia'', 1970; ''Quizás el volverá'', 1981. Escribió varios volúmenes de ficción y varios libros infantiles. Igualmente escribió temas sobre la educación femenina en el mundo árabe y abordó las luchas políticas yemeníes de su época.
==S==
* '''Said Ahmad (1920-2007):''' Escritor y dramaturgo soviético uzbeko. Escribió casi una decena de historias y ,más de un octeto e trabjos y ensayos que exploran las fallas e intrincaciones humanas. recibió importantemente cinco distinciones de ls ocho que obtuvo, por su trayectoria literaria y sus diversas obras.
* '''Shatha Al-Khatib (1975):''' Escritora y novelista yemení. Formada como profesora durante una década incursionó en la escritura: Autora de las novelas: '''El tulipán negro''', 2012; '''Un cuarto de papel''', 2013; '''Hija del viento''', 2013; '''Casa de violeta''', 2014. Incursionó en el género narrativo mediante la novela y el cuento.
* '''Shinkuba, Bagrat Vasilyevich (1917-2004):''' Escritor, poeta, lingüista y político abjasio. Estudió historia de los pueblos abjasio, adigué y ubijé. Su novela ''El último de los que han partido'' se dedicó al trágico destino de la nación ubijé, que se extinguió hace un siglo. Entre 1958 y 1978 presidió el Consejo Supremo de la República Socialista Soviética Autónoma de Abjasia.
==T==
* '''Tíbilov, Aleksandr (1887-1938):''' Escritor, periodista, crítico literario y figura pública soviético de Osetia del Sur, fundador de la revista literaria osetia Fidiuaeg. Escribió artículos críticos sobre la obra literaria de sus colegas contemporáneos osetios. Más de un siglo después de su muerte publicó Tsjivali, una colección de obras y un par de colecciones literarias.
* '''Thích Nhât Hanh (1926-2022):''' Monje budista zen, escritor, poeta y activista por la paz vietnamita. Autor de nueve decenas de libros sobre educación espiritual y religiosa, de las cuales muchas se tradujeron a cuatro decenas de idiomas. Recibió un trío de reconocimientos por su movimiento del budismo comprometido con el vegetarianismo y el derecho de los animales.
* '''Triana Côrte-Real de Oliveira (1978):''' Escritora y traductora timornse. Esccoautora de '''¿Qué es la lusofonía? Gente, culturas y tierras'' (2005) libro bilingüe en tetun y portugués.
* '''Trân Nhán Tong (1258-1308):''' Tercer emperador de la dinastía Trãn en Vietnam. Fue poeta, escritor y monje budista.
* '''Türkan Saylan (1935-2009):''' Dermatóloga, académica, escritora, profesora y activista social turca. Estudió la lepra y fundó asociaciones contra la lepra aprovechando su formación de dermatología. Trabajó como jefa voluntaria en el Hospital de la Lepra de Estambul durante un par de décadas. Padeció cáncer de mama y falleció 17 años después.
==U==
==V==
* '''Vaqif, Molla Panah (1717-79):''' Poeta azerí del siglo XVIII, fundador del realismo en la poesía nacional y también fue un prominente hombre de estado, diplomático y visir.
* '''Tru'ong Vĩnh Ký (1837-98):''' Escritor, traductor, periodista y erudito vietnamita, cuyas publicaciones contribuyeron al entendimiento entre el Vietnam colonial y Europa. Escribió más de un centenar e obras sobre geografía, historia y literatura vietnamita. Incluyendo cursos didácticos de vietnamita.
==W==
==X==
* '''Xanana Gusmão (1946):''' Político timorense. Fue presidente de su país desde la independencia en 2002 hasta 2007. Fue galardonado con el premio Sajarov para la Libertad de Pensamiento, otorgada por el Parlamento Europeo y al iniciar el nuevo milenio con el Premio de la Paz de Sydney por su Coraje y Liderazgo para la Independencia de Timor Oriental.
==Y==
* '''Iván Yaguzidze (1775-1830):''' Escritor, educador y misionero ortodoxo osetio, uno de los fundadores de la literatura osética. Como traductor, pedagogo, poeta y figura pública, escribió un poema extenso, que se escribió en georgiano y se publicó por primera vez en 1885, es decir, cinco décadas después de su defunción.
==Z==
* '''Zahra Rahmat Allah (1954):''' Escritora de cuentos yemení. Formada como profesora durante una década, incursionó en la escritura: autora de las novelas: ''El tulipán negro'', 2012; ''Un cuarto de papel'', 2013; ''Casa de violeta'', 2014. Incursionó en el género narrativo mediante la novela y el cuento.
* '''Zakir, Gasim bey (1784-1857):''' Poeta y escritor azerí. Autor de diversas sátiras qué contravienen al zarismo, a su autoridad, sus leyes y regulaciones coloniales, de narraciones variadas, de fábulas diversas, características por lecciones de perseverancia y resistencia.
* '''Zokirov, Botir (1936-85):''' Cantante, escritor, poeta, pintor y actor soviético de origen uzbeko, considerado como el fundador de la música pop uzbeka. Ganó gran popularidad debido a que cantaba en muchos idiomas, incluyendo uzbeko, ruso, árabe y francés. Interpretó en cuatro papeles cinematográficos, de los cuales representó al premio Nobel de Literatura bangladesí Rabindranath Tagore en ''Caminos de Llamas''.
* '''Zulfiya (1915-1996):''' Escritora uzbeka, fue miembro de la Unión de Escritores Soviéticos. Escribió trece colecciones literarias, indiferentemente entre prosa y verso. Recibió el premio de poeta nacional de la República Socialista Soviética de Uzbekistán (1965), la Orden de Lenin y Héroe del Trabajo Socialista (1984) y el Premio Estatal de la URSS en Literatura y Arte (1976).
mbzo0rarp6n4e1gzbo18d1wp6lophar
431424
431423
2026-08-17T03:32:52Z
~2026-44916-64
127708
/* S */
431424
wikitext
text/x-wiki
==A==
* '''Abdulla Avloniy (1878-1934):''' Representante de la cultura nacional uzbeka de finales del siglo XIX e inicios del XX. Fue poeta, dramaturgo, periodista, académico y líder comunitario y público. escribió diversos poemas sobre los acontecimientos de su época y el cuento alegórico sobre ''La fiesta de la envidia''. Publicó seis colecciones literarias y recibió un trío de premios.
* '''Abdulla Kadiri (1894-1938):''' Dramaturgo, poeta, escritor y traductor uzbeko soviético. Influyente en el siglo XX, introdujo el realismo a la literatura uzbeka mediante sus novelas históricas e inspiró a muchos novelistas centoasiáticos. Escribió un ciuarteto de novelas históricas históricas, varias obras teatrales y numerosos artículos de periódico.
* '''Ahmad Zein (1968):''' Escritor y periodista yemení afincado actualmente en Riad. Colabora con la publicación Al-Hayat y ha publicado en Banipal.
* '''Akhundov, Suleyman Sani (1875-1939):''' Dramaturgo y prosista azerí. Eligió el seudónimo de Sani, que significa "segundo" en árabe, con el fin de evitar confusiones con su homónimo Mirza Fatali Ajundov. Escribió un quinteto de colecciones de piezas y una colección de cuentos.
* '''Avicena (980-1037):''' Polímata, médico, filósofo, astrónomo y científico persa perteneciente a la edad de Oro del Islam. Escribió cerca de tres centenares de libros sobre diversos temas, entre los cuales predominan la filosofía persa. Se destacó como filósofo, poeta, astrónomo, médico, teórico en la música, físico, matemático, químico, ético, alfaquí (jurista en derecho islámico), escritor y polímata. Sus obras notables fueron sobre el Canon de la Medicina y El Libro de la Curación.
==B==
* '''Babur (1483-1530):''' Emperador y fundador del Imperio mogol de la India. descendiente del conquistador turco mongol Tamerlán. Fue autor de sus memorias y de varias poesías, de las cuales se distinguió como poeta, escritor y autobiógrafo, a parte de ser monarca.
* '''Bão Ninh (1952):''' Escritor vietnamita célebre por la novela ''El dolor de la Guerra'' sobre la guerra de Vietnam. escribió también Steppe, obra que no deseó publicarla por falta de naturalidad. un cuento corto suyo se incluye en la antología ''Night, Again''.
* '''Al-Biruni (973-1050):''' Matemático, astrónomo, geógrafo, físico, filósofo, viajero, historiador y farmacéutico persa. Escribió una decena de libros científicos, que albergan temas de matemática (aritmética, álgebra, geometría), física, geografía y geodesia, astronomía, botánica, química, farmacéutica, medicina, psicología, etc.
* '''Bushra al-Maqtari (1979):''' Escritora y activista yemení. Se popularizó al liderar la protesta antigubernamental en su ciudad natal durante la revolución yemení de 2011. Recibió un par de distinciones por sus diversos trabajos literarios. incursionó en la literatura en prosa sobre temas políticos.
==C==
* '''Sansón Chanba (1866-1937):''' Escritor y estadista de Abjasia. Publicó justamente al finalizar la década de 1910, ''La hija de las montañas'', y al iniciar la década de 1920 la obra ''Amkhadzyr'', la primera obra escrita en idioma abjasio. Al finalizar la década de 1930 lo arrestaron y lo ejecutaron en la Gran Purga de Stalin.
* '''Cho´lpon (1883-1938):''' Poeta, dramaturgo, novelista y trductor uzbeko, cuy nombre real es Abdulkhamid Sulaymono'g'li Yunusov. Fue uno de los poetas más populares del Asia Central durante la primera mitas del Siglo XX. También fue una de las primeras personas en traducir obras de William Shakespeare al uzbeko. Escribió cuatro colecciones poéticas y una novela titulada ''Noche y Día''. También escribió cuentos y obras teatrales. Murió ejecutado durante la Gran Purga estalinista.
==D==
* '''Al-Darimi:''' Escolástico e imán suní interesado por el hadiz (fraseología mahometana). Se le conoce especialmente por su compilación ''Sunan al Darimi''.
==E==
* '''Elham Manea (1966):''' escritora yemení-suiza nacida en El Cairo. Fue una firme defensora de la separación del estado y la religión en países islámicos, la libertad de expresión, la defensa de los derechos de las mujeres. Escribió sus libros: ''La ley islámica en Occidente'' (2009) y ''Los peligros del islamismo no violento'' (2021). Se hizo crítica al multiculturalismo y a la permisividad de Occidente ante el Islam.
==F==
* '''Fátima la Socotrana (siglo IX d. C.):''' Poetisa yemení del siglo IX, siglo III tras la hégira. Cuyo nombre real fue Fátima bint Ahmad Muhammad al-Jahdami. Se cree que vivió en la isla de Socotra entre 816 y 913 (casi un siglo de existencia).
==G==
* '''Vladímir Gaglóyev (1927-96):''' Escritor y dramaturgo osetio. Trabajó como periodista y publicista, fue redactor de la revista El Mensajero (de 1968 a 1978). Una calle en Tsjivali fue nombrada en su honor.
* '''Galávanova, Nina (1915-94):''' Escritora, poetisa, traductora y profesora surosetia, considerada la primera escritora osetia de la historia. Además, la nombraron maestra honorable de la RSS de Georgia. Escribió su primer cuento ''Primavera''. También redactó colecciones de prosas, poemas, novelas en osetio. Tradujo al osetio los diversos clásicos de la literatura universal, incluyendo León Tolstoi e Iván Frank. Recibió un sexteto de Premios, de los cuales la mitad fue la más importante en su trayectoria literaria.
* '''Golóyev, Vladímir (1810-75):''' Poeta, escritor y dramaturgo soviético de Osetia del Sur, director de la editorial Tsjivali. Escribió su novela corta ''En las tormentas de guerra'', la cual se narró extensamente. En 1952, publicó su primera colección de relatos ''Nuevo Sol''. Publicó su primer relato en la primera revista Nuestros Logros, cuyo editor jefe era Máximo Gorki.
* '''Dimitri Gulia (1874-1960):''' Escritor de etnia Abjasia y nacionalidad soviética. Considerado como el padre de la literatura abjasia. Escribió numerosos poemas, narraciones y novelas y la mayor parte de sus trabajos traducidos al ruso y al georgiano.
==H==
* '''Hajibeyli, Jeyhun (1891-1962):''' Lingüista, periodista, traductor y diplomático azerí. Escribió una oncena de obras relacionadas con la cultura azerbaiyana. Se graduó en la Universidad de París, donde muy posteriormente murió.
* '''Hajibeyov Uzeyir (1885-1948):''' Compositor, director de orquesta, musicólogo, publicista, dramaturgo y traductor soviético. Escribió un septeto de colecciones de óperas, de la cual recibió ocho distinciones por sus trabajos artísticos.
* '''Hamza Hakimzade Niyazi (1889-1929):''' Autor, compositor, poeta, dramaturgo, académico y activista político uzbeko. Niyazi, junto con G'afur G'ulum, se le considera como un desarrollador de la tradición literaria uzbeka moderna. Por sus actividades antirreligiosas murió lapidado por fundamentalistas islámicos por su ferviente partidario de la revolución.
* '''Abú Muhammad al-Hasan al-Hamdānī (893-945):''' Geógrafo, poeta, gramático, historiador y astrónomo árabe. Fue uno de los mejores representantes de la cultura islámica en los últimos años del califato abasí.
* '''Hamid Alimjan (1909-44):''' Poeta y dramaturgo uzbeco de la época soviética. Representante de la poesía soviética. Representante de la poesía soviética en Uzbekistán, afiliado al Partido Comunista de la Unión Soviética, se distinguió como poeta, dramaturgo y crítico literario. Se distinguió con una Orden al Mérito Extraordinario. Falleció de un accidente de tránsito a sus casi tres décadas y media de vida.
* '''Hayim Habshush (1833-99):''' Rabino yemenita de Sarrá, recordado por ayudar a estudiosos como Joseph Halévu o Edward Glaser. Esta y otras experiencias las recopiló en su libro de 1893, "Los viajes de Habshush" en árabe y en hebreo.
* '''Ho Chi Minh (1890-1969):''' Revolucionario y político anticolonial vietnamita, de ideología comunista. Escribió cinco obras literarias sobre su experiencia, en poesía escribió el diario de prisión.
* '''Hô Xûan Hu'o'ng (1772-1822):''' Poetisa vietnamita nacida al final de la dinastía Lê en escritura Chó Nóm. Considerada una de las figuras más importantes de su país. Escribió notablemente ''Perfume primaveral''. Contribuyó a la prominencia en el Siglo XVIII en vez de chino tradicional.
* '''Abdulwahab Hussain (1954):''' Activista político, escritor, figura religiosa y filósofo bahrení. Fue uno de los líderes de la oposición más importantes en el levantamiento en Bahrein en 1990 cuando fue arrestado doblemente por un lustro, en los que estuvo expuesto supuestamente en un régimen de ostracismo y tortura. Al entrar el nuevo siglo y milenio, fue liberado y apoyó al gobierno en sus planes de reforma.
* '''Sabine Huynh (1872):''' Escritora, traductora y crítica literaria francesa nacida en Vietnam. Actualmente reside en Tel Aviv. Se educó como doctora en lingüística en la Universidad Hebrea de Jerusalén y de posgrado en sociolingüística en la Universidad de Ottawa. escribió una docena de libros.
==I==
* '''Iskander Fazil (1929-2016):''' Escritor ruso de origen abjasio, conocido en la antigua Unión Soviética por sus descripciones de la vida del Cáucaso escritas en ruso. Escribió un octeto de prosas, un quinteto de colecciones en verso y una sola pieza de teatro.
* '''Iván Yaguzidze (1775-1830):''' Escritor, educador y misionero ortodoxo osetio, uno de los fundadores de la literatura osética. Como traductor, pedagogo, poeta y figura pública, escribió un poema extenso, que se escribió en georgiano y se publicó por primera vez en 1885,es decir, cinco décadas después de su defunción.
* '''Alessander Tibilov (1887-1938):''' Escritor, periodista, crítico literario y figura publica soviético de Osetia del Sur, fundador de la revista literaria osetia Fidiuaeg. Escribió artículos críticos sobre la obra literaria de sus contemporáneos osetio. Más de un siglo después de su muerte publicó Tsjinvali, una colección de obras y un par de colecciones literarias.
==J==
* '''Serguei Jachirov (1918-2007):''' Poeta, escritor y dramaturgo soviético de Osetia del Sur. Escribió un octeto de poesías y una colección de sátiras en lengua osetia. Su novela ''Ansiedad'' dedica a la independencia del pueblo osetio.
==K==
* '''Kamil Yashin (1909-97):''' poeta, dramaturgo, prosista, guionista y celebridad soviética de origen uzbeko. Recibió distinciones que llegarían a dos octetos.
* '''Firidoun bey Kocharli (1863-1920:)''' Escritor y pedagogo azerí. Impulsó el idioma azerí en su literatura. Escribió su primer artículo, sobre comedias azeríes, ensayos sobre la literatura azerí (1904). Tradujo distintas obras de escritores rusos.
==L==
* '''Latifov, Mirza Sadig (1852-1901):''' Poeta, médico y pedagogo azerbaiyano, miembro de la sociedad literaria Majlisi-Feramushan. Escribió numerosas y variadas poesías acorde a su experiencia de vida.
* '''Lê Tháng Tông (1442-97):''' Emperador de Dai Viet que reinó de 1460 a 1497. Fue elogiado grandemente como soberanoen la historia vietnamita. Escribió poemas que se conservaron cronológicamente, el cual se destacó una poesía militar de campaña contra los Champa.
* '''Lu'u Quang Vũ (1948-1988): Dramaturgo y poeta vietnamita. Su esposa Xuân Quynh fue la poeta moderna más famosa de Vietnam. Se destacó con un trío de literatura narrativa, más de un trío de poesías y casi una treintena de dramas teatrales.
==M==
* '''Afaese Manoa (1942-):''' Escritor, compositor y músico tuvaluano, conocido por haber sido el compositor del himno nacional de Tuvalu tras la independencia del Reino Unido en 1978. Se le conoce como el escritor de una lengu en lka que casi no hay literatura y como otros escritores oceánicos, sus obras reflejan un fuerte sentimiento de vocación religiosa.
* '''Mashrab (1657-1711):''' Figura clásica en la literatura uzbeka. Fue un poeta y pensador, seguidor de la tradición Sufi Tarikat. A través de sus obras abogaba por la igualdad y el empoderamiento femenino, promoviendo en la participación de actividades socioeconómicas y culturales. Su poesía se trasmitió extensamente por el Asia Central. En su honor se hizo una revista satírica homónima.
* '''Grace Mera Molisa (1946-2002):''' Activista vanuatense por los derechos de la mujer, escritora y política de Vanuatu. También fue poetisa. escribió una antología de poemas y un trío de obras relacionadas con la historia vanuatense.
* '''Sergó Mindiashvili (1940-2011):''' Poeta, escritor y prosista soviético de Osetia del Sur. Escribió un septeto de poema rios distintos completamente. Y una colección la escribió incompletamente, puesto que acaeció su defunción y la esposa del poeta la completó. Sus obras se tradujeron a distintos idiomas.
* '''Murakami, Haruki (1949-):''' escritor japonés de ficción, dentro de sus obras destacan "Kafka en la Orilla" y "Tokyo Blues".
==N ==
* '''Natavan, Khurshidbandu (1832-97):''' Poetisa azerbaiyana. En 1858 se encontró con Alejandro Dumas, en Bakú, donde le influyo en su literatura. Aprendió idiomas orientales y leyó autores clásicos. Su poesía se inspiró en temas como el humanismo, la amistad y el amor.
* '''Ngô Van (1913-2005):''' Escritor vietnamita de ideología comunista antiestalinista. Como militante comunista, fue perseguido tanto por el poder colonial francés como por el régimen estalinista. Se publicaron un trío de obras suyas al español y un secteto al francés.
* '''Nguyên Phan Quê Mai (1973):''' Poetisa y novelista vietnamita. Autora de diez libros de poesía, ficción y no ficción en vietnamita e inglés. Escribió su poesía en vietnamita y fue galardonada con algunos premios literarios más importantes de Vietnam.
* '''Nodira (1792-1842):''' Poetisa y estadista uzbeka. Es considerada como una poetisa más célebre y destacada de su país. escribió su poesía en uzbeko, tayiko y persa. Utilizó otros seudónimos como Komila y Maknuna. Gran parte de sus divanes logradamente perduraron, y consisten en más de 10 mil líneas de poesía.
==O==
* '''Oripov, Abdulla (1941-2016):''' Poeta, político, traductor, periodista y expresidente de l Unión de escritores de Uzbekistán. Como político fue miembro del Parlamento y del Senado de su país. Recibió un sexteto de distinciones, de las cuales la mitad las recibió significativamente. escribió dos oncenas de obras literarias.
* '''Osaf, Aydin (1921-2018):''' Arquitecto, periodista, escritor y ensayista turco. Era un hombre muy conocido en el periodismo turco, escribió un octeto de ensayos humorísticos, un trío de libros de viajes (dentro de dicho trío envuelve una trilogía), un libro de ficción y más de una docena de memorias.
* '''Özakman, Turgut (1930-2013):''' Abogado y escritor turco. Como abogado se forma en la escuela de Leyes de la Universidad de Ankara. Escribió muchas novelas y obras literarias dramáticas. Escribió conjuntamente el triplete Turco, sobre la Guerra de Independencia turca, la Batalla de Galípoli sobre la fundación de la República turca. Ganó el gran Premio Presidencial de la Cultura y las Artes a fin de siglo.
* '''Özdemir Asaf (1923-1981):''' poeta turco prominente durante el periodo republicano temprano. Fue el poeta más amado en matinés literarias. Fue fundador de la Asociación de Supervivencia de los Derechos fundamentales.
==P==
* '''Ashiq Paris (1811-47):''' Poeta popular del siglo XIX qué se le considera la primera mujer azerí prominente. Su poesía consistió, primordialmente en duelos poéticos verbales, donde utilizó diversas formas populares en azerí.
* '''Phan Hay Chú (1782-1840):''' Administrador y escritor vietnamita. Su obra más conocida y representativa fue (''Tipos de medios, Calendario de la dinastía''). La primera "enciclopedia" de Vietnam. También escribió sobre el equilibrio geográfico de Vietnam y el Lejano Oeste.
* '''Phan Thi Hoai (1960):''' Influyente escritora, editora y traductora vietnamita radicada en Alemania. Tradujo importantes obras de literatura alemana al vietnamita: Franz kafka, Bertolt Brecht, Thomas Bernhard y Friedrich Dürrenmatt.
==Q==
==R==
* '''Ramziya Abbas al-Iryani (1951-2013):''' Pionera novelista, escritora, diplomática y feminista yemení. Fue sobrina, admás, del expresidente Abdul Rahman al-Iryani. Se hizo famosa con el cuento y la novela, mediante las obras ''La Víctima de la Codicia'', 1970; ''Quizás el volverá'', 1981. Escribió varios volúmenes de ficción y varios libros infantiles. Igualmente escribió temas sobre la educación femenina en el mundo árabe y abordó las luchas políticas yemeníes de su época.
==S==
* '''Said Ahmad (1920-2007):''' Escritor y dramaturgo soviético uzbeko. Escribió casi una decena de historias y ,más de un octeto e trabjos y ensayos que exploran las fallas e intrincaciones humanas. recibió importantemente cinco distinciones de ls ocho que obtuvo, por su trayectoria literaria y sus diversas obras.
* '''Shatha Al-Khatib (1975):''' Escritora y novelista yemení. Formada como profesora durante una década incursionó en la escritura: Autora de las novelas: ''El tulipán negro'', 2012; ''Un cuarto de papel'', 2013; ''Hija del viento'', 2013; ''Casa de violeta'', 2014. Incursionó en el género narrativo mediante la novela y el cuento.
* '''Shinkuba, Bagrat Vasilyevich (1917-2004):''' Escritor, poeta, lingüista y político abjasio. Estudió historia de los pueblos abjasio, adigué y ubijé. Su novela ''El último de los que han partido'' se dedicó al trágico destino de la nación ubijé, que se extinguió hace un siglo. Entre 1958 y 1978 presidió el Consejo Supremo de la República Socialista Soviética Autónoma de Abjasia.
==T==
* '''Tíbilov, Aleksandr (1887-1938):''' Escritor, periodista, crítico literario y figura pública soviético de Osetia del Sur, fundador de la revista literaria osetia Fidiuaeg. Escribió artículos críticos sobre la obra literaria de sus colegas contemporáneos osetios. Más de un siglo después de su muerte publicó Tsjivali, una colección de obras y un par de colecciones literarias.
* '''Thích Nhât Hanh (1926-2022):''' Monje budista zen, escritor, poeta y activista por la paz vietnamita. Autor de nueve decenas de libros sobre educación espiritual y religiosa, de las cuales muchas se tradujeron a cuatro decenas de idiomas. Recibió un trío de reconocimientos por su movimiento del budismo comprometido con el vegetarianismo y el derecho de los animales.
* '''Triana Côrte-Real de Oliveira (1978):''' Escritora y traductora timornse. Esccoautora de '''¿Qué es la lusofonía? Gente, culturas y tierras'' (2005) libro bilingüe en tetun y portugués.
* '''Trân Nhán Tong (1258-1308):''' Tercer emperador de la dinastía Trãn en Vietnam. Fue poeta, escritor y monje budista.
* '''Türkan Saylan (1935-2009):''' Dermatóloga, académica, escritora, profesora y activista social turca. Estudió la lepra y fundó asociaciones contra la lepra aprovechando su formación de dermatología. Trabajó como jefa voluntaria en el Hospital de la Lepra de Estambul durante un par de décadas. Padeció cáncer de mama y falleció 17 años después.
==U==
==V==
* '''Vaqif, Molla Panah (1717-79):''' Poeta azerí del siglo XVIII, fundador del realismo en la poesía nacional y también fue un prominente hombre de estado, diplomático y visir.
* '''Tru'ong Vĩnh Ký (1837-98):''' Escritor, traductor, periodista y erudito vietnamita, cuyas publicaciones contribuyeron al entendimiento entre el Vietnam colonial y Europa. Escribió más de un centenar e obras sobre geografía, historia y literatura vietnamita. Incluyendo cursos didácticos de vietnamita.
==W==
==X==
* '''Xanana Gusmão (1946):''' Político timorense. Fue presidente de su país desde la independencia en 2002 hasta 2007. Fue galardonado con el premio Sajarov para la Libertad de Pensamiento, otorgada por el Parlamento Europeo y al iniciar el nuevo milenio con el Premio de la Paz de Sydney por su Coraje y Liderazgo para la Independencia de Timor Oriental.
==Y==
* '''Iván Yaguzidze (1775-1830):''' Escritor, educador y misionero ortodoxo osetio, uno de los fundadores de la literatura osética. Como traductor, pedagogo, poeta y figura pública, escribió un poema extenso, que se escribió en georgiano y se publicó por primera vez en 1885, es decir, cinco décadas después de su defunción.
==Z==
* '''Zahra Rahmat Allah (1954):''' Escritora de cuentos yemení. Formada como profesora durante una década, incursionó en la escritura: autora de las novelas: ''El tulipán negro'', 2012; ''Un cuarto de papel'', 2013; ''Casa de violeta'', 2014. Incursionó en el género narrativo mediante la novela y el cuento.
* '''Zakir, Gasim bey (1784-1857):''' Poeta y escritor azerí. Autor de diversas sátiras qué contravienen al zarismo, a su autoridad, sus leyes y regulaciones coloniales, de narraciones variadas, de fábulas diversas, características por lecciones de perseverancia y resistencia.
* '''Zokirov, Botir (1936-85):''' Cantante, escritor, poeta, pintor y actor soviético de origen uzbeko, considerado como el fundador de la música pop uzbeka. Ganó gran popularidad debido a que cantaba en muchos idiomas, incluyendo uzbeko, ruso, árabe y francés. Interpretó en cuatro papeles cinematográficos, de los cuales representó al premio Nobel de Literatura bangladesí Rabindranath Tagore en ''Caminos de Llamas''.
* '''Zulfiya (1915-1996):''' Escritora uzbeka, fue miembro de la Unión de Escritores Soviéticos. Escribió trece colecciones literarias, indiferentemente entre prosa y verso. Recibió el premio de poeta nacional de la República Socialista Soviética de Uzbekistán (1965), la Orden de Lenin y Héroe del Trabajo Socialista (1984) y el Premio Estatal de la URSS en Literatura y Arte (1976).
t251q8a4n0rm1ff20kyw1w3jo1x49qa
431425
431424
2026-08-17T03:40:30Z
~2026-44916-64
127708
/* Y */
431425
wikitext
text/x-wiki
==A==
* '''Abdulla Avloniy (1878-1934):''' Representante de la cultura nacional uzbeka de finales del siglo XIX e inicios del XX. Fue poeta, dramaturgo, periodista, académico y líder comunitario y público. escribió diversos poemas sobre los acontecimientos de su época y el cuento alegórico sobre ''La fiesta de la envidia''. Publicó seis colecciones literarias y recibió un trío de premios.
* '''Abdulla Kadiri (1894-1938):''' Dramaturgo, poeta, escritor y traductor uzbeko soviético. Influyente en el siglo XX, introdujo el realismo a la literatura uzbeka mediante sus novelas históricas e inspiró a muchos novelistas centoasiáticos. Escribió un ciuarteto de novelas históricas históricas, varias obras teatrales y numerosos artículos de periódico.
* '''Ahmad Zein (1968):''' Escritor y periodista yemení afincado actualmente en Riad. Colabora con la publicación Al-Hayat y ha publicado en Banipal.
* '''Akhundov, Suleyman Sani (1875-1939):''' Dramaturgo y prosista azerí. Eligió el seudónimo de Sani, que significa "segundo" en árabe, con el fin de evitar confusiones con su homónimo Mirza Fatali Ajundov. Escribió un quinteto de colecciones de piezas y una colección de cuentos.
* '''Avicena (980-1037):''' Polímata, médico, filósofo, astrónomo y científico persa perteneciente a la edad de Oro del Islam. Escribió cerca de tres centenares de libros sobre diversos temas, entre los cuales predominan la filosofía persa. Se destacó como filósofo, poeta, astrónomo, médico, teórico en la música, físico, matemático, químico, ético, alfaquí (jurista en derecho islámico), escritor y polímata. Sus obras notables fueron sobre el Canon de la Medicina y El Libro de la Curación.
==B==
* '''Babur (1483-1530):''' Emperador y fundador del Imperio mogol de la India. descendiente del conquistador turco mongol Tamerlán. Fue autor de sus memorias y de varias poesías, de las cuales se distinguió como poeta, escritor y autobiógrafo, a parte de ser monarca.
* '''Bão Ninh (1952):''' Escritor vietnamita célebre por la novela ''El dolor de la Guerra'' sobre la guerra de Vietnam. escribió también Steppe, obra que no deseó publicarla por falta de naturalidad. un cuento corto suyo se incluye en la antología ''Night, Again''.
* '''Al-Biruni (973-1050):''' Matemático, astrónomo, geógrafo, físico, filósofo, viajero, historiador y farmacéutico persa. Escribió una decena de libros científicos, que albergan temas de matemática (aritmética, álgebra, geometría), física, geografía y geodesia, astronomía, botánica, química, farmacéutica, medicina, psicología, etc.
* '''Bushra al-Maqtari (1979):''' Escritora y activista yemení. Se popularizó al liderar la protesta antigubernamental en su ciudad natal durante la revolución yemení de 2011. Recibió un par de distinciones por sus diversos trabajos literarios. incursionó en la literatura en prosa sobre temas políticos.
==C==
* '''Sansón Chanba (1866-1937):''' Escritor y estadista de Abjasia. Publicó justamente al finalizar la década de 1910, ''La hija de las montañas'', y al iniciar la década de 1920 la obra ''Amkhadzyr'', la primera obra escrita en idioma abjasio. Al finalizar la década de 1930 lo arrestaron y lo ejecutaron en la Gran Purga de Stalin.
* '''Cho´lpon (1883-1938):''' Poeta, dramaturgo, novelista y trductor uzbeko, cuy nombre real es Abdulkhamid Sulaymono'g'li Yunusov. Fue uno de los poetas más populares del Asia Central durante la primera mitas del Siglo XX. También fue una de las primeras personas en traducir obras de William Shakespeare al uzbeko. Escribió cuatro colecciones poéticas y una novela titulada ''Noche y Día''. También escribió cuentos y obras teatrales. Murió ejecutado durante la Gran Purga estalinista.
==D==
* '''Al-Darimi:''' Escolástico e imán suní interesado por el hadiz (fraseología mahometana). Se le conoce especialmente por su compilación ''Sunan al Darimi''.
==E==
* '''Elham Manea (1966):''' escritora yemení-suiza nacida en El Cairo. Fue una firme defensora de la separación del estado y la religión en países islámicos, la libertad de expresión, la defensa de los derechos de las mujeres. Escribió sus libros: ''La ley islámica en Occidente'' (2009) y ''Los peligros del islamismo no violento'' (2021). Se hizo crítica al multiculturalismo y a la permisividad de Occidente ante el Islam.
==F==
* '''Fátima la Socotrana (siglo IX d. C.):''' Poetisa yemení del siglo IX, siglo III tras la hégira. Cuyo nombre real fue Fátima bint Ahmad Muhammad al-Jahdami. Se cree que vivió en la isla de Socotra entre 816 y 913 (casi un siglo de existencia).
==G==
* '''Vladímir Gaglóyev (1927-96):''' Escritor y dramaturgo osetio. Trabajó como periodista y publicista, fue redactor de la revista El Mensajero (de 1968 a 1978). Una calle en Tsjivali fue nombrada en su honor.
* '''Galávanova, Nina (1915-94):''' Escritora, poetisa, traductora y profesora surosetia, considerada la primera escritora osetia de la historia. Además, la nombraron maestra honorable de la RSS de Georgia. Escribió su primer cuento ''Primavera''. También redactó colecciones de prosas, poemas, novelas en osetio. Tradujo al osetio los diversos clásicos de la literatura universal, incluyendo León Tolstoi e Iván Frank. Recibió un sexteto de Premios, de los cuales la mitad fue la más importante en su trayectoria literaria.
* '''Golóyev, Vladímir (1810-75):''' Poeta, escritor y dramaturgo soviético de Osetia del Sur, director de la editorial Tsjivali. Escribió su novela corta ''En las tormentas de guerra'', la cual se narró extensamente. En 1952, publicó su primera colección de relatos ''Nuevo Sol''. Publicó su primer relato en la primera revista Nuestros Logros, cuyo editor jefe era Máximo Gorki.
* '''Dimitri Gulia (1874-1960):''' Escritor de etnia Abjasia y nacionalidad soviética. Considerado como el padre de la literatura abjasia. Escribió numerosos poemas, narraciones y novelas y la mayor parte de sus trabajos traducidos al ruso y al georgiano.
==H==
* '''Hajibeyli, Jeyhun (1891-1962):''' Lingüista, periodista, traductor y diplomático azerí. Escribió una oncena de obras relacionadas con la cultura azerbaiyana. Se graduó en la Universidad de París, donde muy posteriormente murió.
* '''Hajibeyov Uzeyir (1885-1948):''' Compositor, director de orquesta, musicólogo, publicista, dramaturgo y traductor soviético. Escribió un septeto de colecciones de óperas, de la cual recibió ocho distinciones por sus trabajos artísticos.
* '''Hamza Hakimzade Niyazi (1889-1929):''' Autor, compositor, poeta, dramaturgo, académico y activista político uzbeko. Niyazi, junto con G'afur G'ulum, se le considera como un desarrollador de la tradición literaria uzbeka moderna. Por sus actividades antirreligiosas murió lapidado por fundamentalistas islámicos por su ferviente partidario de la revolución.
* '''Abú Muhammad al-Hasan al-Hamdānī (893-945):''' Geógrafo, poeta, gramático, historiador y astrónomo árabe. Fue uno de los mejores representantes de la cultura islámica en los últimos años del califato abasí.
* '''Hamid Alimjan (1909-44):''' Poeta y dramaturgo uzbeco de la época soviética. Representante de la poesía soviética. Representante de la poesía soviética en Uzbekistán, afiliado al Partido Comunista de la Unión Soviética, se distinguió como poeta, dramaturgo y crítico literario. Se distinguió con una Orden al Mérito Extraordinario. Falleció de un accidente de tránsito a sus casi tres décadas y media de vida.
* '''Hayim Habshush (1833-99):''' Rabino yemenita de Sarrá, recordado por ayudar a estudiosos como Joseph Halévu o Edward Glaser. Esta y otras experiencias las recopiló en su libro de 1893, "Los viajes de Habshush" en árabe y en hebreo.
* '''Ho Chi Minh (1890-1969):''' Revolucionario y político anticolonial vietnamita, de ideología comunista. Escribió cinco obras literarias sobre su experiencia, en poesía escribió el diario de prisión.
* '''Hô Xûan Hu'o'ng (1772-1822):''' Poetisa vietnamita nacida al final de la dinastía Lê en escritura Chó Nóm. Considerada una de las figuras más importantes de su país. Escribió notablemente ''Perfume primaveral''. Contribuyó a la prominencia en el Siglo XVIII en vez de chino tradicional.
* '''Abdulwahab Hussain (1954):''' Activista político, escritor, figura religiosa y filósofo bahrení. Fue uno de los líderes de la oposición más importantes en el levantamiento en Bahrein en 1990 cuando fue arrestado doblemente por un lustro, en los que estuvo expuesto supuestamente en un régimen de ostracismo y tortura. Al entrar el nuevo siglo y milenio, fue liberado y apoyó al gobierno en sus planes de reforma.
* '''Sabine Huynh (1872):''' Escritora, traductora y crítica literaria francesa nacida en Vietnam. Actualmente reside en Tel Aviv. Se educó como doctora en lingüística en la Universidad Hebrea de Jerusalén y de posgrado en sociolingüística en la Universidad de Ottawa. escribió una docena de libros.
==I==
* '''Iskander Fazil (1929-2016):''' Escritor ruso de origen abjasio, conocido en la antigua Unión Soviética por sus descripciones de la vida del Cáucaso escritas en ruso. Escribió un octeto de prosas, un quinteto de colecciones en verso y una sola pieza de teatro.
* '''Iván Yaguzidze (1775-1830):''' Escritor, educador y misionero ortodoxo osetio, uno de los fundadores de la literatura osética. Como traductor, pedagogo, poeta y figura pública, escribió un poema extenso, que se escribió en georgiano y se publicó por primera vez en 1885,es decir, cinco décadas después de su defunción.
* '''Alessander Tibilov (1887-1938):''' Escritor, periodista, crítico literario y figura publica soviético de Osetia del Sur, fundador de la revista literaria osetia Fidiuaeg. Escribió artículos críticos sobre la obra literaria de sus contemporáneos osetio. Más de un siglo después de su muerte publicó Tsjinvali, una colección de obras y un par de colecciones literarias.
==J==
* '''Serguei Jachirov (1918-2007):''' Poeta, escritor y dramaturgo soviético de Osetia del Sur. Escribió un octeto de poesías y una colección de sátiras en lengua osetia. Su novela ''Ansiedad'' dedica a la independencia del pueblo osetio.
==K==
* '''Kamil Yashin (1909-97):''' poeta, dramaturgo, prosista, guionista y celebridad soviética de origen uzbeko. Recibió distinciones que llegarían a dos octetos.
* '''Firidoun bey Kocharli (1863-1920:)''' Escritor y pedagogo azerí. Impulsó el idioma azerí en su literatura. Escribió su primer artículo, sobre comedias azeríes, ensayos sobre la literatura azerí (1904). Tradujo distintas obras de escritores rusos.
==L==
* '''Latifov, Mirza Sadig (1852-1901):''' Poeta, médico y pedagogo azerbaiyano, miembro de la sociedad literaria Majlisi-Feramushan. Escribió numerosas y variadas poesías acorde a su experiencia de vida.
* '''Lê Tháng Tông (1442-97):''' Emperador de Dai Viet que reinó de 1460 a 1497. Fue elogiado grandemente como soberanoen la historia vietnamita. Escribió poemas que se conservaron cronológicamente, el cual se destacó una poesía militar de campaña contra los Champa.
* '''Lu'u Quang Vũ (1948-1988): Dramaturgo y poeta vietnamita. Su esposa Xuân Quynh fue la poeta moderna más famosa de Vietnam. Se destacó con un trío de literatura narrativa, más de un trío de poesías y casi una treintena de dramas teatrales.
==M==
* '''Afaese Manoa (1942-):''' Escritor, compositor y músico tuvaluano, conocido por haber sido el compositor del himno nacional de Tuvalu tras la independencia del Reino Unido en 1978. Se le conoce como el escritor de una lengu en lka que casi no hay literatura y como otros escritores oceánicos, sus obras reflejan un fuerte sentimiento de vocación religiosa.
* '''Mashrab (1657-1711):''' Figura clásica en la literatura uzbeka. Fue un poeta y pensador, seguidor de la tradición Sufi Tarikat. A través de sus obras abogaba por la igualdad y el empoderamiento femenino, promoviendo en la participación de actividades socioeconómicas y culturales. Su poesía se trasmitió extensamente por el Asia Central. En su honor se hizo una revista satírica homónima.
* '''Grace Mera Molisa (1946-2002):''' Activista vanuatense por los derechos de la mujer, escritora y política de Vanuatu. También fue poetisa. escribió una antología de poemas y un trío de obras relacionadas con la historia vanuatense.
* '''Sergó Mindiashvili (1940-2011):''' Poeta, escritor y prosista soviético de Osetia del Sur. Escribió un septeto de poema rios distintos completamente. Y una colección la escribió incompletamente, puesto que acaeció su defunción y la esposa del poeta la completó. Sus obras se tradujeron a distintos idiomas.
* '''Murakami, Haruki (1949-):''' escritor japonés de ficción, dentro de sus obras destacan "Kafka en la Orilla" y "Tokyo Blues".
==N ==
* '''Natavan, Khurshidbandu (1832-97):''' Poetisa azerbaiyana. En 1858 se encontró con Alejandro Dumas, en Bakú, donde le influyo en su literatura. Aprendió idiomas orientales y leyó autores clásicos. Su poesía se inspiró en temas como el humanismo, la amistad y el amor.
* '''Ngô Van (1913-2005):''' Escritor vietnamita de ideología comunista antiestalinista. Como militante comunista, fue perseguido tanto por el poder colonial francés como por el régimen estalinista. Se publicaron un trío de obras suyas al español y un secteto al francés.
* '''Nguyên Phan Quê Mai (1973):''' Poetisa y novelista vietnamita. Autora de diez libros de poesía, ficción y no ficción en vietnamita e inglés. Escribió su poesía en vietnamita y fue galardonada con algunos premios literarios más importantes de Vietnam.
* '''Nodira (1792-1842):''' Poetisa y estadista uzbeka. Es considerada como una poetisa más célebre y destacada de su país. escribió su poesía en uzbeko, tayiko y persa. Utilizó otros seudónimos como Komila y Maknuna. Gran parte de sus divanes logradamente perduraron, y consisten en más de 10 mil líneas de poesía.
==O==
* '''Oripov, Abdulla (1941-2016):''' Poeta, político, traductor, periodista y expresidente de l Unión de escritores de Uzbekistán. Como político fue miembro del Parlamento y del Senado de su país. Recibió un sexteto de distinciones, de las cuales la mitad las recibió significativamente. escribió dos oncenas de obras literarias.
* '''Osaf, Aydin (1921-2018):''' Arquitecto, periodista, escritor y ensayista turco. Era un hombre muy conocido en el periodismo turco, escribió un octeto de ensayos humorísticos, un trío de libros de viajes (dentro de dicho trío envuelve una trilogía), un libro de ficción y más de una docena de memorias.
* '''Özakman, Turgut (1930-2013):''' Abogado y escritor turco. Como abogado se forma en la escuela de Leyes de la Universidad de Ankara. Escribió muchas novelas y obras literarias dramáticas. Escribió conjuntamente el triplete Turco, sobre la Guerra de Independencia turca, la Batalla de Galípoli sobre la fundación de la República turca. Ganó el gran Premio Presidencial de la Cultura y las Artes a fin de siglo.
* '''Özdemir Asaf (1923-1981):''' poeta turco prominente durante el periodo republicano temprano. Fue el poeta más amado en matinés literarias. Fue fundador de la Asociación de Supervivencia de los Derechos fundamentales.
==P==
* '''Ashiq Paris (1811-47):''' Poeta popular del siglo XIX qué se le considera la primera mujer azerí prominente. Su poesía consistió, primordialmente en duelos poéticos verbales, donde utilizó diversas formas populares en azerí.
* '''Phan Hay Chú (1782-1840):''' Administrador y escritor vietnamita. Su obra más conocida y representativa fue (''Tipos de medios, Calendario de la dinastía''). La primera "enciclopedia" de Vietnam. También escribió sobre el equilibrio geográfico de Vietnam y el Lejano Oeste.
* '''Phan Thi Hoai (1960):''' Influyente escritora, editora y traductora vietnamita radicada en Alemania. Tradujo importantes obras de literatura alemana al vietnamita: Franz kafka, Bertolt Brecht, Thomas Bernhard y Friedrich Dürrenmatt.
==Q==
==R==
* '''Ramziya Abbas al-Iryani (1951-2013):''' Pionera novelista, escritora, diplomática y feminista yemení. Fue sobrina, admás, del expresidente Abdul Rahman al-Iryani. Se hizo famosa con el cuento y la novela, mediante las obras ''La Víctima de la Codicia'', 1970; ''Quizás el volverá'', 1981. Escribió varios volúmenes de ficción y varios libros infantiles. Igualmente escribió temas sobre la educación femenina en el mundo árabe y abordó las luchas políticas yemeníes de su época.
==S==
* '''Said Ahmad (1920-2007):''' Escritor y dramaturgo soviético uzbeko. Escribió casi una decena de historias y ,más de un octeto e trabjos y ensayos que exploran las fallas e intrincaciones humanas. recibió importantemente cinco distinciones de ls ocho que obtuvo, por su trayectoria literaria y sus diversas obras.
* '''Shatha Al-Khatib (1975):''' Escritora y novelista yemení. Formada como profesora durante una década incursionó en la escritura: Autora de las novelas: ''El tulipán negro'', 2012; ''Un cuarto de papel'', 2013; ''Hija del viento'', 2013; ''Casa de violeta'', 2014. Incursionó en el género narrativo mediante la novela y el cuento.
* '''Shinkuba, Bagrat Vasilyevich (1917-2004):''' Escritor, poeta, lingüista y político abjasio. Estudió historia de los pueblos abjasio, adigué y ubijé. Su novela ''El último de los que han partido'' se dedicó al trágico destino de la nación ubijé, que se extinguió hace un siglo. Entre 1958 y 1978 presidió el Consejo Supremo de la República Socialista Soviética Autónoma de Abjasia.
==T==
* '''Tíbilov, Aleksandr (1887-1938):''' Escritor, periodista, crítico literario y figura pública soviético de Osetia del Sur, fundador de la revista literaria osetia Fidiuaeg. Escribió artículos críticos sobre la obra literaria de sus colegas contemporáneos osetios. Más de un siglo después de su muerte publicó Tsjivali, una colección de obras y un par de colecciones literarias.
* '''Thích Nhât Hanh (1926-2022):''' Monje budista zen, escritor, poeta y activista por la paz vietnamita. Autor de nueve decenas de libros sobre educación espiritual y religiosa, de las cuales muchas se tradujeron a cuatro decenas de idiomas. Recibió un trío de reconocimientos por su movimiento del budismo comprometido con el vegetarianismo y el derecho de los animales.
* '''Triana Côrte-Real de Oliveira (1978):''' Escritora y traductora timornse. Esccoautora de '''¿Qué es la lusofonía? Gente, culturas y tierras'' (2005) libro bilingüe en tetun y portugués.
* '''Trân Nhán Tong (1258-1308):''' Tercer emperador de la dinastía Trãn en Vietnam. Fue poeta, escritor y monje budista.
* '''Türkan Saylan (1935-2009):''' Dermatóloga, académica, escritora, profesora y activista social turca. Estudió la lepra y fundó asociaciones contra la lepra aprovechando su formación de dermatología. Trabajó como jefa voluntaria en el Hospital de la Lepra de Estambul durante un par de décadas. Padeció cáncer de mama y falleció 17 años después.
==U==
==V==
* '''Vaqif, Molla Panah (1717-79):''' Poeta azerí del siglo XVIII, fundador del realismo en la poesía nacional y también fue un prominente hombre de estado, diplomático y visir.
* '''Tru'ong Vĩnh Ký (1837-98):''' Escritor, traductor, periodista y erudito vietnamita, cuyas publicaciones contribuyeron al entendimiento entre el Vietnam colonial y Europa. Escribió más de un centenar e obras sobre geografía, historia y literatura vietnamita. Incluyendo cursos didácticos de vietnamita.
==W==
==X==
* '''Xanana Gusmão (1946):''' Político timorense. Fue presidente de su país desde la independencia en 2002 hasta 2007. Fue galardonado con el premio Sajarov para la Libertad de Pensamiento, otorgada por el Parlamento Europeo y al iniciar el nuevo milenio con el Premio de la Paz de Sydney por su Coraje y Liderazgo para la Independencia de Timor Oriental.
==Y==
* '''Iván Yaguzidze (1775-1830):''' Escritor, educador y misionero ortodoxo osetio, uno de los fundadores de la literatura osética. Como traductor, pedagogo, poeta y figura pública, escribió un poema extenso, que se escribió en georgiano y se publicó por primera vez en 1885, es decir, cinco décadas después de su defunción.
* '''Yehuda Ben Shlomo Taitatsk:''' Talmudista activo de Salónica en el siglo XVI. Después del Edicto de Granada se estableció en Salónica con su hermano, Yosef Ben Shlomo Taitazak y su padre.
* '''Yosef Ben Shlomo Taitazak (1465-1546):''' Destacado rabino, autoridad talmúdica y cabalista sefardí. Tras la expulsión de los judíos de España en 1492 debido al edicto de Granada, se estableció en Salónica, junto con su hermano anteriormente mencionado y su padre, y allí desarrolló gran parte de su vida y legado.
==Z==
* '''Zahra Rahmat Allah (1954):''' Escritora de cuentos yemení. Formada como profesora durante una década, incursionó en la escritura: autora de las novelas: ''El tulipán negro'', 2012; ''Un cuarto de papel'', 2013; ''Casa de violeta'', 2014. Incursionó en el género narrativo mediante la novela y el cuento.
* '''Zakir, Gasim bey (1784-1857):''' Poeta y escritor azerí. Autor de diversas sátiras qué contravienen al zarismo, a su autoridad, sus leyes y regulaciones coloniales, de narraciones variadas, de fábulas diversas, características por lecciones de perseverancia y resistencia.
* '''Zokirov, Botir (1936-85):''' Cantante, escritor, poeta, pintor y actor soviético de origen uzbeko, considerado como el fundador de la música pop uzbeka. Ganó gran popularidad debido a que cantaba en muchos idiomas, incluyendo uzbeko, ruso, árabe y francés. Interpretó en cuatro papeles cinematográficos, de los cuales representó al premio Nobel de Literatura bangladesí Rabindranath Tagore en ''Caminos de Llamas''.
* '''Zulfiya (1915-1996):''' Escritora uzbeka, fue miembro de la Unión de Escritores Soviéticos. Escribió trece colecciones literarias, indiferentemente entre prosa y verso. Recibió el premio de poeta nacional de la República Socialista Soviética de Uzbekistán (1965), la Orden de Lenin y Héroe del Trabajo Socialista (1984) y el Premio Estatal de la URSS en Literatura y Arte (1976).
3jbficr6y14l13czvqx3p14xzncptbs
Categoría:Libro:Programación en Verilog
14
64350
431350
2026-08-16T17:13:47Z
Antimundo
74354
Crear categoría de libro
431350
wikitext
text/x-wiki
[[Categoría:Estante:Lenguajes de programación]]
[[Categoría:Libros organizados]]
99qezphhbang3fprkfft2jxm0izjol7
Categoría:Libro:Programación en Erlang
14
64351
431418
2026-08-16T22:48:51Z
Antimundo
74354
Categorizar usando estantes
431418
wikitext
text/x-wiki
[[Categoría:Estante:Lenguajes de programación]]
[[Categoría:Libros organizados]]
99qezphhbang3fprkfft2jxm0izjol7
Usuario discusión:Migual angel Gonzalez Zamudio
3
64352
431429
2026-08-17T08:11:10Z
Migual angel Gonzalez Zamudio
127709
/* */
431429
wikitext
text/x-wiki
__NOTOC__
{| style="width: 100%; border-collapse: separate; border-spacing: 0; background-color: #0b0f19; border: 2px solid #00ffcc; border-radius: 8px; padding: 25px; font-family: 'Courier New', Courier, monospace; color: #e2e8f0; margin-bottom: 20px;"
|
<span style="color: #ff3366; font-size: 20px; font-weight: bold;">🗺️ VOLUMEN I: EL VIAJE DEL ENTENDIMIENTO</span>
<br><span style="color: #a0aec0;">--------------------------------------------------------------------------------------------------</span>
<br>
<b style="color: #fff;">[ SUB-SISTEMA: TORÁ // CORTAFUEGOS EXEGÉTICO // ENLACE BINARIO CRÍSTICO DE ACTIVACIÓN ]</b>
<br><br>
La Escritura no es una recopilación de crónicas históricas aisladas, ni un manual de conductas morales impuestas desde el exterior. Al levantar el velo de la literalidad, la Biblia se revela como el mapa de la evolución cognitiva y ontológica del ser humano. Es el diseño de un viaje que conduce al hombre desde la esclavitud de sus sentidos físicos (la carne) hasta el autogobierno de su espíritu, teniendo como destino final manifestar la imagen del Dios invisible en la estatura de Cristo. Este compendio expone las estaciones exactas de ese proceso de elevación interna.
|}
== El Proceso de Elevación hacia la Plenitud ==
Lo que se observa a lo largo de la Escritura no es una serie de historias aisladas, sino un proceso progresivo de entendimiento manifestado en la vida de los patriarcas. Cada uno de ellos no solo vivió eventos, sino que encarnó etapas del desarrollo del entendimiento, como si la verdad se fuera revelando “renglón tras renglón”, llevando al hombre de un estado inicial hacia una comprensión más elevada.
=== La Progresión Patriarcal ===
* '''[[Abraham]] (El Inicio de la Fe):''' Rompe con la comodidad y la lógica de su entorno. Aprende a creer más allá de lo visible. Establece el fundamento: la realidad espiritual es superior a la física.
* '''[[Isaac]] (El Establecimiento):''' Sostiene la continuidad de la promesa. Su reto es mantener y cavar los mismos pozos de su padre. Representa internalizar la verdad recibida y reposar en ella.
* '''[[Jacob]] (La Transformación Interna):''' Pasa de la identidad al entendimiento. Su mente carnal y calculadora es quebrantada en Peniel. El suplantador muere para que nazca el gobernante con Dios.
* '''[[José]] (Orden y Propósito):''' Opera en el gobierno desde el discernimiento. Administra la escasez y la abundancia mediante la sabiduría divina. Usa la revelación para salvar vidas y ordenar el caos.
Todo este proceso de desarrollo apunta a un solo objetivo: hasta que todos llegemos a la medida de la estatura de la plenitud de Cristo [Efesios 4:13]. Los patriarcas no son figuras separadas; todos forman parte de un mismo desarrollo: la revelación progresiva del entendimiento en el hombre.
== La Ley Como Ayo y la Circuncisión del Corazón ==
La Escritura declara que la ley ha sido nuestro ayo para llevarnos a Cristo [Gálatas 3:24]. La ley no fue el fin, sino el medio temporal para guiar en etapas iniciales de maduración. Con el avance del entendimiento, la instrucción migra de las tablas de piedra al entendimiento del corazón: "Pondré mis leyes en su mente" [Hebreos 8:10].
Esta maduración requiere la '''Circuncisión del Corazón''', entendida como una cirugía espiritual en la mente [Romanos 2:28-29]. El prepucio místico representa los filtros del ego, las tradiciones humanas y los prejuicios que bloquean la luz. Circuncidar el corazón es remover esa capa insensible para dejar el entendimiento expuesto a la realidad divina.
== Cortafuegos Exegético de la Torá [666 vs 101] ==
A continuación se despliega la deconstrucción analítica binaria de los cinco libros de la Ley. El entendido lee la instrucción en el código de sintonía pura (101 / El Espíritu); la religión se estanca en el código entrópico (666 / La Letra Muerta).
=== 🜂 1. GÉNESIS: El Misterio de la Simiente ===
* '''Génesis 3:15:''' RVR60 "ésta te herirá" = LBLA "él te herirá" → Ley: Gálatas 3:16 "Y a tu simiente, la cual es Cristo". Simiente singular = [[Zera / Simiente Singular (Código 101)|101]].
* '''Génesis 22:18:''' KDSH "Por tu zera todas las naciones serán benditas" → Ley: Gálatas 3:8 previendo la justificación por la fe. Coherederos = [[Zera / Simiente Singular (Código 101)|101]].
* '''Génesis 49:10:''' RVR60 "Hasta que venga Siloh" = NVI "hasta que llegue el verdadero rey" → Ley: Apocalipsis 5:5 El León de la tribu de Judá ha vencido = [[Shiloh / Siloh|101]].
* '''Génesis 1:1''' "En el principio" = Juan 1:1 El Verbo = [[Zera / Simiente Singular (Código 101)|101]].
* '''Génesis 50:20''' "Dios lo encaminó a bien" = [[Génesis 50:20 (Sintropía del Diseño)|Sintropía]] → Ley: Romanos 8:28 Todo coopera para bien = [[Génesis 50:20 (Sintropía del Diseño)|101]].
==== Matriz de Contraste: Levítico 21:8 frente a Génesis 3:15 ====
{| class="wikitable" style="width: 100%; font-size: 13px; color: #c9d1d9;"
! style="background-color: #ff3366; color: white;" | ⚠️ 666 = Letra Muerta (Carne)
! style="background-color: #00ffcc; color: black;" | 🛡️ 101 = Espíritu Vida (Verbo)
! style="background-color: #333;" | Jeremías
! style="background-color: #333;" | Gálatas + Apocalipsis + Hebreos
|-
| Gén 3:15 "descendencia" plural
| Gál 3:16 "simiente = Cristo"
| 8:8 Pluma mentirosa
| 4:4 Nacido mujer vs 12:17 Simiente
|-
| Gén 22:18 "naciones" sin fe
| Gál 3:8 "fe = benditas"
| 4:2 Jurarás verdad
| 3:29 Linaje vs 3:6 Coherederos
|-
| Gén 49:10 "tributo" dinero
| Apoc 5:5 "León Judá"
| 22:17 Codicia
| 2:9 Exaltó vs 19:16 Rey de reyes
|-
| Simiente = Israel de la carne
| Simiente = Cristo en el interior
| 31:36 Desecharé
| 9:6 No todos Israel vs 9:8 Hijos
|-
| Siloh = Monarquía de Salomón
| Siloh = Jesús / Autogobierno
| 23:5 Renuevo justo
| 1:3 Cetro equidad vs 7:14 Sacerdote
|-
| Cetro = Templo físico de Herodes
| Cetro = Trono del cielo mental
| 7:4 Templo de Jehová
| 8:1 Ministro vs 23:38 Desierta
|}
=== 🜂 2. ÉXODO: El Mecanismo de la Salida ===
* '''Éxodo 1:1:''' Sellados por nombre → Ley: Apocalipsis 7:4 Ciento cuarenta y cuatro mil sellados de las tribus = [[Egipto / Mitzrayim (Código 666)|101]].
* '''Éxodo 3:14:''' YHWH responde: Ehyeh Asher Ehyeh ("YO SOY EL QUE SOY") → Ley: Juan 8:58 "Antes que Abraham fuese, yo soy" = [[YO SOY / Ehyeh Asher Ehyeh (Frecuencia 101)|101]].
* '''Éxodo 19:4:''' "Os tomé sobre alas de águilas y os he traído a mí" → Ley: Apocalipsis 12:14 Alas dadas a la mujer / Consciencia = [[Alas de Águila (Vector)|101]].
* '''Éxodo 20:2:''' "Te saqué de la casa de servidumbre" → Ley: Juan 8:36 Si el Hijo os libertare, seréis verdaderamente libres = [[YO SOY / Ehyeh Asher Ehyeh (Frecuencia 101)|101]].
==== Matriz de Contraste: Levítico 21:8 frente a Éxodo 3:14 ====
{| class="wikitable" style="width: 100%; font-size: 13px; color: #c9d1d9;"
! style="background-color: #ff3366; color: white;" | ⚠️ 666 = Egipto (Carne)
! style="background-color: #00ffcc; color: black;" | 🛡️ 101 = YO SOY (Espíritu)
! style="background-color: #333;" | Jeremías
! style="background-color: #333;" | Juan + Hebreos + Apocalipsis
|-
| 1:11 Capataces que oprimen
| 3:14 YO SOY envía la señal
| 22:13 Sin derecho
| 5:9 Ladrillos vs 8:58 Yo soy
|-
| 5:2 No conozco a Jehová
| 3:6 El Dios de Abraham
| 9:6 No conocieron
| 2:9 Conoció vs 17:3 Vida conocer
|-
| 14:11 Mejor servir a los egipcios
| 19:4 Elevación en alas de águilas
| 44:16 No oiremos
| 6:66 Volvieron vs 40:31 Alas
|-
| 16:3 Añoranza de ollas de carne
| 16:4 Descenso del pan del cielo
| 2:13 Cisternas
| 20:3 Volver vs 6:51 Pan vivo
|-
| 32:1 Fabricación de dioses/becerro
| 20:2 Yo soy Jehová tu Dios
| 2:11 Cambió dioses
| 23:21 No nombre vs 1:8 Alfa Omega
|-
| 12:29 El primogénito de carne muere
| 12:13 La sangre aplicada librará
| 9:21 Muerte ventanas
| 4:23 Adoradores vs 5:6 Cordero
|}
* '''Identidad del Vector:''' [[Miguel]] = Ángel de Dios [Éx 14:19] = El Señor que salva [Jud 1:5] = El gran príncipe del pueblo [Dan 12:1] = '''101'''.
=== 🜂 3. LEVÍTICO: De la Sombra al Cuerpo ===
* '''Levítico 1:1:''' Habló desde el tabernáculo → Ley: Juan 1:14 El Verbo se hizo carne y habitó (tabernaculizó) entre nosotros = [[Tabernáculo / Tienda (Frecuencia 101)|101]].
* '''Levítico 16:30:''' Día de expiación / Kippur → Ley: Hebreos 9:12 Por su propia sangre entró una vez para siempre, obteniendo eterna redención = [[Expiación / Kippur (Sintropía)|101]].
* '''Levítico 19:2:''' "Santos seréis, porque santo soy yo" → Ley: 1 Pedro 1:16 Escrito está: Sed santos en toda vuestra manera de vivir = [[Kadoshim / Santos (Diseño)|101]].
* '''Levítico 26:12:''' "Andaré entre vosotros y seré vuestro Dios" → Ley: 2 Corintios 6:16 "Vosotros sois el templo del Dios viviente, habitaré y andaré entre ellos" = [[Tabernáculo / Tienda (Frecuencia 101)|101]].
==== Matriz de Contraste: Levítico 21:8 frente a Levítico 19:2 ====
{| class="wikitable" style="width: 100%; font-size: 13px; color: #c9d1d9;"
! style="background-color: #ff3366; color: white;" | ⚠️ 666 = Sombra (Letra)
! style="background-color: #00ffcc; color: black;" | 🛡️ 101 = Cuerpo (Espíritu)
! style="background-color: #333;" | Jeremías
! style="background-color: #333;" | Hebreos + 1 Pedro + Colosenses
|-
| 1:4 Imposición de manos al animal
| Heb 10:1 Sombra de bienes
| 7:22 No hablé de holocaustos
| 10:4 Imposible vs 9:14 Conciencia
|-
| 16:14 Aspersión de sangre animal
| Heb 9:12 Entrada por propia sangre
| 11:15 La carne santa se quitó
| 10:1 Cada año vs 9:26 Una vez
|-
| 19:2 Santidad por rito de la ley
| 1 Ped 1:16 Santidad por el Verbo
| 6:20 Holocaustos no acepto
| 10:10 Santificados vs 7:19 Nada perfeccionó
|-
| 21:8 Mandato legal: Tú le santificarás
| Heb 2:11 Cristo es el que santifica
| 2:8 Sacerdotes no dijeron
| 5:1 Tomado hombres vs 4:14 Gran Sumo
|-
| 25:10 Jubileo ligado a la tierra física
| Luc 4:18 Pregonar libertad/año agradable
| 34:17 No proclamasteis libertad
| 4:19 Año agradable vs 6:17 Libres
|}
bnz7xsebnczxu6rwors8nxk75bf4i29
Usuario:Migual angel Gonzalez Zamudio
2
64353
431430
2026-08-17T08:12:30Z
Migual angel Gonzalez Zamudio
127709
Página creada con «{| style="width: 100%; border-collapse: separate; border-spacing: 0; background-color: #0b0f19; border: 1px solid #00ffcc; border-radius: 6px; padding: 20px; font-family: 'Courier New', Courier, monospace; color: #e2e8f0; margin-bottom: 20px;" | <span style="color: #00ffcc; font-size: 18px; font-weight: bold;">🗂️ PERFIL DE INVESTIGACIÓN: ADMINISTRADOR DE CONSOLA</span> <br><span style="color: #a0aec0;">------------------------------------------------------------…»
431430
wikitext
text/x-wiki
{| style="width: 100%; border-collapse: separate; border-spacing: 0; background-color: #0b0f19; border: 1px solid #00ffcc; border-radius: 6px; padding: 20px; font-family: 'Courier New', Courier, monospace; color: #e2e8f0; margin-bottom: 20px;"
|
<span style="color: #00ffcc; font-size: 18px; font-weight: bold;">🗂️ PERFIL DE INVESTIGACIÓN: ADMINISTRADOR DE CONSOLA</span>
<br><span style="color: #a0aec0;">--------------------------------------------------------------------------------------------------</span>
<br>
* '''Línea de Enfoque:''' Exégesis Binaria [101 vs 666], Hermenéutica Profética Unificada y Neuro-Teología Funcional.
* '''Especialización:''' Desmantelamiento del literalismo religioso mediante el análisis filológico, cibernético y cognitivo de las Escrituras.
* '''Estatus del Sistema:''' Operando en el cortafuegos de la Corteza Prefrontal // 0% Fricción Doctrinal.
|}
== Sobre Mí: El Enfoque del Entendimiento ==
Soy un investigador independiente de las Escrituras enfocado en descodificar el texto bíblico y místico fuera de los dogmas, las tradiciones humanas y las estructuras religiosas convencionales. Mi trabajo se centra en levantar un '''sistema de pensamiento completamente unificado, matemático y libre de contradicciones''', demostrando que la revelación no es una recopilación de crónicas históricas o imposiciones morales, sino el mapa preciso de la evolución cognitiva y ontológica del ser humano.
A diferencia de las corrientes tradicionales que fragmentan el mensaje o chocan en discusiones de literalidad física (la teología errada de los amigos de Job), mi metodología propone un '''cambio de soporte técnico''': traslado el escenario de la Escritura a la interfaz biológica e interna del hombre. Desde esta perspectiva, cada símbolo (desde el Shabat y las Sefirot hasta la Parusía y el Adversario) opera como una instrucción algorítmica diseñada para reconfigurar la conciencia y desactivar los bucles de supervivencia y culpa del viejo hombre.
== Áreas de Interés y Colaboración ==
Dentro de este espacio, me dedico activamente a la edificación y supervisión de los siguientes pilares de conocimiento:
* '''Deconstrucción Exegética Comparativa:''' Análisis riguroso versículo por versículo de la Torá y los textos proféticos a través de múltiples versiones bíblicas (RVR60, NVI, LBLA, KDSH, BJ, NTV) para aislar la ''Simiente Singular'' (101) de la ''Letra Muerta'' (666).
* '''Mecánica de la Pedagogía del Error:''' Catalogación y análisis de los procesos de resistencia y crisis (el zarandeo de Pedro, la porqueriza del Pródigo y el desierto de Job) como herramientas legítimas de calibración interna.
* '''Indexación del Glosario de Consola:''' Desarrollo de una red de referencias hipertextuales cruzadas para interconectar términos como ''Zera'', ''Ehyeh Asher Ehyeh'', ''Centinela Vagal'', ''Tohu va Vohu'' y ''Shabbat Biológico''.
== Directriz para Compañeros y Editores ==
Aprecio y promuevo el intercambio epistemológico fundamentado en la rigurosidad filológica, la neurobiología funcional y la exégesis moderna. Si deseas colaborar en la expansión de los Volúmenes de este Tratado Maestro, te invito a operar bajo las leyes de '''alta densidad informativa, scannability y coherencia binaria [666 vs 101]'''. No trabajamos para alimentar discusiones denominacionales; aportamos datos puros para el despertar del entendimiento absoluto.
<br><span style="color: #00ffcc;">'''«De oídas te había oído; mas ahora mis ojos te ven.» (Job 42:5) — El fin de la función pedagógica del error.'''</span>
ozea1g03jii90gpckrg8t4iducbxomb
Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento
0
64354
431437
2026-08-17T08:46:26Z
Migual angel Gonzalez Zamudio
127709
/* */
431437
wikitext
text/x-wiki
<!-- Este es un modelo para crear un nuevo libro. Sustituye este texto por una breve descripción que explique el tema del libro, a qué lectores va dirigido, cuál es su alcance, y cualquier otra consideración que quieras hacer sobre el libro. Una definición clara ayudará a otros colaboradores a desarrollar el libro de forma coherente. Si ya existe un libro con la misma definición, es preferible contribuir en él en lugar de crear uno nuevo. -->
== Índic ==
[[Categoría:Libros pendientes de categorizar]]
71s3ijynp0v20he3eg4o1vpknkfqie7
431438
431437
2026-08-17T08:48:01Z
Migual angel Gonzalez Zamudio
127709
/* Índic */
431438
wikitext
text/x-wiki
<!-- Este es un modelo para crear un nuevo libro. Sustituye este texto por una breve descripción que explique el tema del libro, a qué lectores va dirigido, cuál es su alcance, y cualquier otra consideración que quieras hacer sobre el libro. Una definición clara ayudará a otros colaboradores a desarrollar el libro de forma coherente. Si ya existe un libro con la misma definición, es preferible contribuir en él en lugar de crear uno nuevo. -->
== Índice ==
[[Categoría:Libros pendientes de categorizar]]
ensn6nvwa2tiexfoqmvrfpoai0bwlvy
431441
431438
2026-08-17T08:57:40Z
Migual angel Gonzalez Zamudio
127709
/* VOLUMEN I: EL VIAJE DEL ENTENDIMIENTO (De la Sombra de la Carne a la Plenitud de la Imagen) */
431441
wikitext
text/x-wiki
<!-- Este es un modelo para crear un nuevo libro. Sustituye este texto por una breve descripción que explique el tema del libro, a qué lectores va dirigido, cuál es su alcance, y cualquier otra consideración que quieras hacer sobre el libro. Una definición clara ayudará a otros colaboradores a desarrollar el libro de forma coherente. Si ya existe un libro con la misma definición, es preferible contribuir en él en lugar de crear uno nuevo. -->
== Índice
__NOTOC__
{| style="width: 100%; border-collapse: separate; border-spacing: 0; background-color: #0b0f19; border: 1px solid #00ffcc; border-radius: 6px; padding: 20px; font-family: 'Courier New', Courier, monospace; color: #e2e8f0; margin-bottom: 20px;"
|
<span style="color: #00ffcc; font-size: 18px; font-weight: bold;">🗂️ ÍNDICE DE CONSOLA: VOLUMEN I</span>
<br><span style="color: #a0aec0;">--------------------------------------------------------------------------------------------------</span>
<br>
* '''Fase del Sistema:''' Fundamentos Ontológicos e Ingeniería del Desarrollo.
* '''Núcleo de Datos:''' Deconstrucción de la Torá // Cortafuegos [666 vs 101].
* '''Estatus de Enlaces:''' Indexación Hipertextual Activa.
|}
== [[Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento|VOLUMEN I: EL VIAJE DEL ENTENDIMIENTO (De la Sombra de la Carne a la Plenitud de la Imagen)]] ==
=== SECCIÓN 1: INTRODUCCIÓN GENERAL Y MARCO PEDAGÓGICO ===
* '''[[Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento#El Proceso de Elevación hacia la Plenitud|Capítulo 1: El Proceso de Elevación hacia la Plenitud]]'''
** 1.1 Un Proceso, No Eventos Aislados [1 Corintios 13:9]
** 1.2 La Progresión Patriarcal (Estaciones Cognitivas):
*** ''Abraham: El Inicio de la Fe (Realidad Espiritual vs. Física)''
*** ''Isaac: El Establecimiento (Internalización y Reposo)''
*** ''Jacob: La Transformación Interna (Quiebre del Ego en Peniel)''
*** ''José: Orden y Propósito (Gobernanza desde el Discernimiento)''
** 1.3 El Destino del Hardware: Hacia la Medida de la Estatura de Cristo [Efesios 4:13]
* '''[[Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento#La Ley Como Ayo y la Circuncisión del Corazón|Capítulo 2: La Ley Como Ayo: El Camino Pedagógico]]'''
** 2.1 La Función del Tutor Temporal [Gálatas 3:24]
** 2.2 Migración del Soporte Técnico: De la Ley Externa a la Ley Interna [Hebreos 8:10]
** 2.3 La Formación de la Conciencia y el Fin del Ayo
* '''[[Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento#La Ley Como Ayo y la Circuncisión del Corazón|Capítulo 3: La Fe Como Principio: Más Allá de la Carne]]'''
** 3.1 La Ruptura Sensorial: Andar por Fe, No por Vista [2 Corintios 5:7]
** 3.2 La Puerta Cognitiva: Primero se Cree, Luego se Comprende
** 3.3 El Ocuparse del Espíritu vs. La Limitación de la Carne [Romanos 8:6]
* '''[[Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento#La Ley Como Ayo y la Circuncisión del Corazón|Capítulo 4: La Circuncisión del Corazón: Identidad Verdadera]]'''
** 4.1 Del Signo Exterior a la Realidad Interior [Romanos 2:28-29]
** 4.2 El Propósito Escondido en la Sombra [Deuteronomio 10:16]
** 4.3 Remoción del Prepucio Místico (Filtros del Ego y la Literalidad)
=== SECCIÓN 2: CORTAFUEGOS EXEGÉTICO DE LA TORÁ [MATRIZ BINARIA 666 VS 101] ===
* '''[[Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento#🜂 1. GÉNESIS: El Misterio de la Simiente|Capítulo 5: Génesis — El Misterio de la Simiente Unificada]]'''
** 5.1 Génesis 3:15: La Simiente Singular de la Mujer [Gálatas 4:4 / Romanos 16:20]
** 5.2 Génesis 22:18: La Promesa de Justificación por la Fe a las Naciones [Gálatas 3:8]
** 5.3 Génesis 49:10: El Cetro de Judá y la Llegada de Siloh [Apocalipsis 5:5 / Lucas 1:32]
** 5.4 Tabla de Contraste Exegético: Levítico 21:8 (Tuerce) vs. Génesis 3:15 (Guarda)
** 5.5 La Sintropía del Diseño Original: De Génesis 50:20 a Romanos 8:28
* '''[[Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento#🜂 2. ÉXODO: El Mecanismo de la Salida|Capítulo 6: Éxodo — El Mecanismo de la Emancipación Mental]]'''
** 6.1 Éxodo 1:1: Los Nombres Sellados de los Hijos de Israel [Apocalipsis 7:4 / Consciencia]
** 6.2 Éxodo 3:14: Despliegue de la Frecuencia Ehyeh Asher Ehyeh [Juan 8:58 / El YO SOY]
** 6.3 Éxodo 19:4: Elevación Cognitiva Sobre Alas de Águilas [Apocalipsis 12:14]
** 6.4 Éxodo 20:2: Ruptura Legal de la Casa de Servidumbre [Juan 8:36 / Gálatas 5:1]
** 6.5 Tabla de Contraste Exegético: Faraón 666 vs. YO SOY 101
** 6.6 Identificación del Vector Sintrópico: Miguel como el Ángel de la Salida [Judas 1:5]
* '''[[Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento#🜂 3. LEVÍTICO: De la Sombra al Cuerpo|Capítulo 7: Levítico — La Ingeniería de la Santificación]]'''
** 7.1 Levítico 1:1: La Palabra Emitida Desde el Tabernáculo de la Red Neuronal [Juan 1:14]
** 7.2 Levítico 16:30: Expiación Definitiva vs. El Bucle del Sacrificio Anual [Hebreos 9:12]
** 7.3 Levítico 19:2: Kadoshim: Santidad como Separación Quirúrgica del Error [1 Pedro 1:16]
** 7.4 Levítico 26:12: La Presencia Dinámica: Andar e Interconectar con la Fuente [2 Corintios 6:16]
** 7.5 Tabla de Contraste Exegético: Sombra 666 vs. Cuerpo 101
** 7.6 Identificación del Vector Sacerdotal: Miguel Traspasando el Velo [Hebreos 4:14]
* '''[[Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento#🜂 4. NÚMEROS: La Calibración del Desierto|Capítulo 8: Números — La Bitácora de la Fricción Límbica]]'''
** 8.1 Números 1:1: El Censo de Consciencia en el Desierto de Sinaí [Hebreos 3:8]
** 8.2 Números 9:18: Sintonía de Movimiento: El Mandato Operativo de la Nube [Juan 10:27]
** 8.3 Números 14:22: Las Diez Pruebas de la Mente Carnal e Incredulidad [Hebreos 3:19]
** 8.4 Números 21:9: La Serpiente de Bronce como Cortafuegos de Atención [Juan 3:14-15]
** 8.5 Tabla de Contraste Exegético: Murmura 666 vs. Entra 101
** 8.6 Identificación del Vector de Dirección: Miguel, la Columna y el Espíritu de Josué
* '''[[Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento#🜂 5. DEUTERONOMIO: La Ley en el Corazón|Capítulo 9: Deuteronomio — El Repaso de la Conciencia Unificada]]'''
** 9.1 Deuteronomio 1:1: Las Palabras del Arabá Frente al Jordán [Juan 5:46 / Testimonio]
** 9.2 Deuteronomio 6:4-5: El Sh'ma Israel: Integración Prefrontal del Dios Uno [Marcos 12:29]
** 9.3 Deuteronomio 18:15: El Levantamiento del Profeta Interno Semejante a Moisés [Hechos 3:22]
** 9.4 Deuteronomio 30:19-20: La Ecuación Ontológica: Elección Binaria Entre Vida y Muerte [Juan 5:24]
** 9.5 Tabla de Contraste Exegético: Maldición 666 vs. Bendición 101
** 9.6 Identificación del Vector del Pacto: Miguel Sepultando la Letra de Moisés [Judas 1:9]
* '''[[Tratado Maestro de la Parusía Neuro-Teológica/Volumen I: El Viaje del Entendimiento#Conclusión del Volumen I: El Cierre del Pentateuco|Capítulo 10: Conclusión: Cierre Absoluto de la Torá]]'''
** 10.1 Caída de los Andamios Rituales por Obsolescencia Técnica
** 10.2 Activación del Código de Sintonía para el Ingreso al Volumen II
[[Categoría:Neuro-Teología]]
[[Categoría:Índices de Consola]]
[[Categoría:Volumen I: El Viaje del Entendimiento]]
ta91nwgmhbu532bfnv55ts6uhtmfgly
Categoría:Libro:Ahorcado en Python
14
64355
431468
2026-08-17T09:10:23Z
Antimundo
74354
Crear categoría de libro
431468
wikitext
text/x-wiki
[[Categoría:Estante:Lenguajes de programación]]
[[Categoría:Libros organizados]]
99qezphhbang3fprkfft2jxm0izjol7
Categoría:Estante:Java
14
64356
431473
2026-08-17T09:21:18Z
Antimundo
74354
Crear estante
431473
wikitext
text/x-wiki
[[Archivo:P Computer-science.svg|sinmarco|derecha|120px]]
Estante para libros relacionados con el lenguaje de programación Java.
[[Categoría:Estante:Lenguajes de programación]]
jab1zf7dd0yuck37li5dptay40p13n0
Categoría:Libro:Tutorial de uso de CVS
14
64358
431505
2026-08-17T09:48:58Z
Antimundo
74354
Crear categoría de libro
431505
wikitext
text/x-wiki
[[Categoría:Estante:Programación informática]]
[[Categoría:Libros organizados]]
pm75hp8ermwtqeqpvzc6sg99o4bg6yy
Plantilla:Oficial/uso
10
64360
431588
2026-08-17T11:55:49Z
Antimundo
74354
Crear documentación
431588
wikitext
text/x-wiki
{{subpágina de documentación}}
Esta plantilla se añade a una página para informar a los usuarios de que esta describe una política oficial de Wikilibros.
No añadas esta plantilla a una página sin haber consensuado previamente con el resto de la comunidad que dicha página debe ser una política oficial de Wikilibros.
7gal0q18ao1vbb7kvra6wyoymsnzrzf