e

el_worminator

Usuario (Estados Unidos)

Primer post: 8 ago 2010
11
Posts
212
Puntos totales
5
Comentarios
Los secretos y mensajes de toy story 3
Los secretos y mensajes de toy story 3
InfoporAnónimo8/8/2010

Los secretos y mensajes de toy story 3 Las películas de pixar son famosas por siempre tener mensajes o secretos en cada una de sus escenas. Acontinuación, les traremos algunos secretos encontrados en la nueva película de Toy Story 3. Safari en Toy Story 3 Durante una de las escenas de Toy Story 3, Woody utiliza una computadora para buscar una dirección de casa y se alcanza a ver que el sistema operativo que utiliza es Mac y como navegador utiliza el famoso Safari de Apple. Aquí lo podrán ver con más detalle. Cars también presente en Toy Story 3 En otra de las escenas, se muestra la guardería, en dónde hay muchísimos juguetes, sin ven con detenimiento en la parte de atras, se vé un pequeño carrito rojo, éste es uno de los carros de la película Cars, también un éxito por parte de Pixar. Aquí mas a detalle: Recuerdan a Sid el niño que torturaba a los juguetes? en “Toy Story” pues si tambien estubo de regreso en Toy Story 3…. pero como el recogedor de basura muy loco escuchando música y bailando, es tambien quien los ayuda a regresar a su casa. Lotso ya había hecho una aparición antes en una pelicula de Pixar, podemos ver a Lotso en un rincón del cuarto en “Up” en el momento justo cuando volabán en su casa con muchos globos ahí aparece lotso unos pequeños segundos.

0
0
Mensajes subliminales de los teletubis
Mensajes subliminales de los teletubis
InfoporAnónimo8/21/2010

LOS TELETUBBIES: TEORIA DE LA CONSPIRACIÓN Los Teletubbies, a simple vista un estúpido programa infantil, pero tras su inocente apariencia se esconde algo serio y oscuro. Nuestro equipo de investigadores lleva estudiando este fenómeno desde hace tiempo y ha llegado a conclusiones escalofriantes. ¿Una nueva conspiración alienígena? ¿El instrumento de una secta apocalíptica? Aquí tenéis la verdad. DEL TUBO CATÓDICO A TU CEREBRO. Los Teletubbies es el único programa infantil que no tiene un fin educativo. Esta falta de mensaje o moraleja podría ser algo que agradecerles, pero este punto positivo deja de serlo cuando nos damos cuenta de que el programa tampoco divierte ni entretiene. Los guiones brillan por su ausencia y los argumentos son del tipo: "Un día en el país de los Teletubbies apareció un muro" o "Un día en el país de los Teletubbies era la hora de las Tubbinatillas". Ambos ejemplos (reales) demuestran que aquí no interesa contar historias ni, por supuesto, chistes. Los personajes no tienen una personalidad definida y actúan como autómatas bajo las órdenes del narrador. Tal vez el ejemplo de comportamiento que promueven y al que estaremos sometidos en poco tiempo. ¿Serán los seguidores de la serie, los próximos Teletubbies que servirán a un futuro Narrador-Tirano-Dictador? Pronto lo veremos. Los nombres de los personajes no pueden ser más absurdos: Tinky Winky, Dipsy, Laa-Laa, Po y Nu (la aspiradora que emite sonidos obscenos). Estos nombres no quieren decir absolutamente nada, y unido al poco sentido que tiene todo lo demás, dejan un vacío perfecto para introducir sus mensajes subliminales que van directos al subconsciente del niño. REPETICIÓN E HIPNOSIS. La forma de dominar la mente del espectador es mediante la hipnosis. El niño recibe dosis de ultraviolencia psicologica. La estructura del programa es repetitiva y eso es quedarse muy, muy corto. El narrador dice una frase, un Teletubbie la repite y obedece, esto a su vez se repite cuatro veces (los Teletubbies son 4) y de vez en cuando, un Teletubbie dice: ¿Cómo? Para que tengan que repetirle la frase. En la despedida, el narrador despide a los personajes de uno en uno. Cuando ha terminado, ¡¡vuelven a salir y los despide de uno en uno otra vez!! Uno de los mejores ejemplos de hipnosis colectiva se pudo ver en un episodio en el que comían sus Tubbinatillas: Narrador: - Tinky Winky comió sus tubbinatillas muuyy leentameente. Tinky Winky: - Tinky Winky come sus tubbinatillas muuyy leentameente.- A continuación absorbe de una pajita súper larga enroscada al recipiente de las tubbinatillas, hace un ruido asqueroso y eso sí, lo hace muy lentamente.- Esto se va repitiendo con cada uno de los personajes, el mismo diálogo y cada vez más lento. Cuando llega el turno de Laa-Laa es aterrador: Narrador: - Laa-Laa (silencio) comió sus tubbinatillas (silencio) muuuyyyy leeentaameeentee. - Laa-Laa repite la frase de forma aún más lenta y se gira hacia su comida como un robot y tan lentamente que resulta totalmente siniestro. La expresión y, en especial los ojos de los personajes, son también escalofriantes. Los que vieron la escena aún tienen pesadillas. EL VIDEO DE LA MUERTE. Es el momento culminante del programa, cuando la sutileza y el disimulo dan paso al terrorismo psicológico puro y duro. De repente aparece un remolino que suelta una especie de polvos (algún tipo de droga alucinógena). Como consecuencia a los Teletubbies les sale una pantalla de TV en la tripa y ponen un vídeo. El vídeo es igual de surrealista que todo lo demás y puede tratar sobre niños que recogen hierba, niños que recogen piedras (normalmente recogen cosas) o que observan a un pájaro. Todo en ambientes campestres. Por supuesto, el vídeo no enseña nada ni tiene mensaje, ni es divertido, pero ahí no está lo fuerte. El vídeo dura un huevo y cuando por fin termina, aparecen de nuevo los Teletubbies y dicen: ¡¡Otra vez, otra vez!! y ponen el mismo vídeo otra vez desde el principio (!) (Los últimos estudios desvelan que en la repetición del vídeo hay un pequeño cambio imperceptible para el espectador medio como por ejemplo, que un niño diga una palabra más. Éste cambio no da más información ni afecta en nada al resto. Es simplemente un misterio más). AMBIGÜEDAD SEXUAL. Está claro que uno de los objetivos del programa es crear confusión en el espectador para así introducir más fácilmente sus mensajes subliminales. Esto también afecta a la inclinación sexual de los personajes. Un telepredicador americano se quejó de que Tinky Winky era gay por el hecho de ser morado y tener un triángulo en la cabeza. Pues bien, si este razonamiento os parece extraño, la reacción del programa no se queda atrás. En primer lugar a Tinky Winky le cambian la voz y le ponen un vozarrón de macho que da todo la hombria comparado con las vocecillas de sus compañeros, pero en otros programas Tinky Winky luce un flamante tutú, y su objeto favorito es un bolso de vieja. Por último, en un programa ya más avanzado nos sorprenden con la siguiente escena: El tema del programa era "Los Teletubbies soplan por un matasuegras", pues bien, uno sopla tan fuerte que no para de alargarse y llega donde está Tinky Winky agachado. ¿A que no sabéis dónde le meten con el matasuegras? Sí amigos, la imagen del fálico matasuegras introducido en el recto de Tinky Winky, y éste moviendo el culo y riéndose era enfermiza y altamente pornografica, sin duda. Ver video acá. UN FUTURO ATERRADOR. Como se veía venir, los Teletubbies se han convertido misteriosamente en un fenómeno social. A nadie le llama la atención sus obscenos movimientos de barriga, los conejos vivos que pululan por los escenarios y que parece que los van a pisar, ni el sol con cara de niño poseído que grita de forma extraña. ¿Dónde están ahora los padres que censuraron Pokemon o Dragon Ball? Menudos ignorantes. Ellos no saben qué dicen o qué hacen esos personajes tan graciosos (segun ellos) que aparecen en las camisetas, mochilas y demás merchandising que compran a sus hijitos. Y la realidad es que ni dicen ni hacen nada, toda esa atracción está en sus pequeñas y torturadas mentes, y ya no hay marcha atrás. Nos espera una futura generación de asesinos en serie-nazis-sodomitas-adoradores de Satán. Y sus padres no podrán hacer nada porque ya será tarde. ¿Quién es la mano negra que dirige toda esta operación para dominar el mundo? ¿Quién se esconde bajo esos trajes y oculta sus verdaderos nombres? ¿Por qué el director de los videos se hace llamar Peter Tubbie? Quisieras que tu hermanito (a) se volviera satanico-nazi????

0
0
A
Algunos secretos del Twitter
InfoporAnónimo8/8/2010

Es fácil sentirse al margen de la revolución Twitter. Con seguridad habrá oído mencionar la red Twitter en las noticias, en los eventos deportivos, e incluso en la información económica. Y quizás habrá tratado también de entrar en Twitter y ver qué hay allí, sólo para acabar frustrado. Si bien la casilla de búsqueda en la página principal de Twitter sugiere una simplicidad como la de Google, en realidad el hallar determinadas personas o temas puede resultar infructuoso. Hoy explicamos cómo romper la barrera hacia Twitter y cómo usar la herramienta para seguir las cosas de que habla la gente en esta red social, una de las más populares junto a Facebook o Tuenti. Subscribirse Lo primero que se necesita es abrir una cuenta en Twitter, de modo que vaya al sitio (http://twitter.com) y suscríbase, sin olvidarse de especificar qué idioma prefiere, en la parte inferior de la página. Pero no tema: se le pedirá muy poca información y tampoco precisa comenzar a “twitear” de inmediato. Twitter le pide una dirección de email, pero puede usted dar algunas de sus direcciones “de reserva” si teme ser acosado con spam o correo basura. Tampoco olvide desactivar la casilla “I want the inside scoop” (Deseo recibir exclusivas y novedades por correo electrónico) en la parte inferior de la pantalla de subscripción, si no desea recibir mensajes del sitio. Acabado esto, puede ya comenzar. Gente Supongamos que ha oído decir que el actor X tiene un “feed” en Twitter y quiere seguirlo. Así, entre en Twitter, escriba el nombre del actor y recibirá millones de “tweets”, ninguno de los cuales parece haber sido escrito por el actor que usted busca. El problema con el seguimiento de personas en Twitter es que su nombre de usuario raramente corresponde a su verdadero nombre. Por ello, tendrá que usar herramientas especiales para buscar partes de Twitter -específicamente, perfiles de usuario- que no son parte de la búsqueda habitual de Twitter. Comience con el enlace Find People (Buscar gente), situado en la casilla de enlaces en la parte superior derecha de su cuenta Twitter. “Buscar gente” busca en la información (perfiles) que los usuarios han suministrado - cosa que puede ser mucho o muy poco. Lamentablemente, “Buscar gente” encuentra a demasiada gente. Busque usted “Britney Spears”, por ejemplo, y recibirá una larga lista de usuarios de Twitter que han mencionado a la actriz en su perfil. Una buena solución es Tweepz (http://www.tweepz.com), un buscador de gente en Twitter que le da más información sobre las cuentas Twitter entregadas para un término determinado, incluyendo el número de fans, ubicación, dirección Web, número de actualizaciones y última actividad. De esta manera, si busca Britney Spears, por ejemplo, tenga la seguridad de que el usuario de Twitter con el nombre de “britneyspears”, con más de 4 millones de seguidores, es precisamente el que está buscando. Tópicos Cuando en Twitter se quiere facilitar el seguimiento de los mensajes sobre un tópico determinado, se pone la palabra clave precedida por el signo número (#). Esta combinación es lo que se conoce en Twitter como “hashtag”. Son éstos un mecanismo para agrupar temas, indispensables para hallar todos los “tweets” sobre un tema en particular. Por ejemplo, quienes tenían información sobre los recientes terremotos en Haití o Chile solían usar los hashtags #Chile, #Haiti o #earthquake (#terremoto) en sus mensajes. Y quienes buscaban mensajes sobre esos temas podían guiarse con esos hashtags. Los “hashtags” no distinguen mayúsculas y minúsculas, de modo que una búsqueda #Chile o #chile dará el mismo resultado. Y quien quiera puede crear un nuevo “hashtag” simplemente poniendo el signo número antes de una palabra clave, sin espacio de por medio. Grupos que asisten a una conferencia o conversan sobre un tema cualquiera pueden determinar de antemano que todo mensaje de Twitter sobre ese asunto contenga un “hashtag” en particular. De esta forma, para los participantes resulta más fácil seguir todos los mensajes relativos a ese evento. Dos buenas herramientas para buscar “hashtags” en Twitter son Búsqueda Avanzada de Twitter (http://search.twitter.com/advanced) o Hashtags.org (http://hashtags.org). Si usa usted la primera, deberá escribir el término de búsqueda en la casilla titulada “This hashtag”. O bien puede optar por la simplicidad de Hashtags.org. Esta herramienta presenta también una lista siempre actualizada de los hashtags más buscados, en caso de que usted quiera ver lo que otros prefieren. Buscarlo todo Si comienza usted a usar Twitter regularmente -para hallar personas, tópicos, las últimas noticias o para enviar sus propios tweets- verá que le resultará más cómodo adoptar alguna de las herramientas ofrecidas por terceros fabricantes. Estas aplicaciones le permitirán leer, buscar y organizar la información de Twitter mejor que la interfaz Twitter. La mejor es TweetDeck (www.tweetdeck.com), una herramienta gratuita que pone ante sus ojos todo lo que usted quiere hacer en Twitter. Entre muchas otras cosas, esta aplicación facilita la búsqueda de personas, reenviar mensajes, enviar mensajes directos y ver perfiles. Seesmic (http://seesmic.com), por su parte, ofrece tanta funcionalidad como TweetDeck pero tiene la ventaja de trabajar desde su navegador, de modo que no hay nada que instalar. Simplemente entre en el sitio Seesmic, escriba los datos de su cuenta Twitter y, tras una rápida verificación, Twitter lo regresa a Seesmic, donde puede organizar la información de la misma forma que con TweetDeck. Finalmente, si quiere operar Twitter desde su smartphone, tiene a disposición decenas de aplicaciones para las principales marcas, incluyendo a iPhone y BlackBerry. Seesmic ofrece una para Android y Blackberry, mientras TweetDeck tiene una para el iPhone. Comenten por favor

0
0
Los secretos de- Apolo 11
Los secretos de- Apolo 11
InfoporAnónimo8/8/2010

Este es uno de los secretos que oculta la NASA.Neil Amstrong el primer hombre en poner un pie en la luna tuvo contacto seres vivos posiblemente provenientes de la misma luna.Les aseguro que en cada palabra de Amstrong y Houston el centro de control se les van a poner los pelos de punta.Seran verdad las palabras de Neil Amstrong el conocido astronauta de Apolo 11,o tendremos q seguir escuchando las mentiras de la NASA,tal vez nunca podamos conocer la verdad sobre este misterio... link: http://www.youtube.com/watch?v=u6kvRirYjQ0

0
0
I
Imagenes Graciosas 2
HumorporAnónimo11/21/2010

Sin descripción

0
0
M
Minecraft Guia
InfoporAnónimo3/1/2012

Como instalar mods en 1.1 link: http://www.youtube.com/watch?v=oktPvrWsMwA&list=UU-fdLzvrO0-hnNF6JAT4Rdw&index=5&feature=plcp Como instalar skins minecraft ( todas las versiones) link: http://www.youtube.com/watch?v=zIhwG8TE4Ts&list=UU-fdLzvrO0-hnNF6JAT4Rdw&index=8&feature=plcp Como meter los mapas en minecraft: link: http://www.youtube.com/watch?v=ZbmCPCW66q8&list=UU-fdLzvrO0-hnNF6JAT4Rdw&index=10&feature=plcp Pasen por mi canal

0
0
Aprender a Programar y no Morir en el intento 4
Aprender a Programar y no Morir en el intento 4
Hazlo Tu MismoporAnónimo11/24/2011

1.- Iteraciones condicionales múltiples y uso de más de una condición.En la edición anterior de esta saga, comenzamos a ver lo que son las iteraciones condicionales y como aplicarlas cuando dentro de un programa necesitamos tomar un camino u otro, en su mayoría mutuamente excluyente, a partir de una condición dada. La simpleza de su utilización pudimos apreciarla a través de los ejercicios resueltos.Pero la programación, como la vida, siempre se complica, y eso es lo que haremos ahora.En los ejercicios anteriores hicimos uso de condiciones excluyentes para las iteraciones, o sea, algo como “Si se da esta condición, haga esto, si no, haga esto otro”, lo cual es bastante sencillo de entender y aplicar. Sin embargo, cuando estemos realizando programas a más alto nivel comunmente nos encontraremos con situaciones donde debamos evaluar multiples iteraciones, como por ejemplo “Si se da esta condición, haga esto, si no se da, pero se da esta otra, haga esto y si no se da ninguna de las 2, haga esto otro”. Con palabras es algo complicado, pero viendo según sentencias, sería algo así:dijo:Si (condición) sentencia 1; Si no Si(condición) sentencia 2; Si no sentencia 3;Ahora, tal como mencionamos en el tutorial anterior, dentro de un Si, pueden ir una infinidad de Si y Si no, lo mismo dentro de un Si no. Sin embargo, lo único que debemos recordar es que siempre un Si no debe ir precedido de un Si.Teniendo eso claro, ¿Qué pasa ahora si dentro de nuestro Si debemos evaluar más de una condición o bien una de 2 posibles?.Ahí es donde empezamos a utilizar el concepto de más de una condición. Dentro de un Si, podemos evaluar el número de condiciones que nosotros queramos, utilizando los operadores && para “y”, y || para “ó”. Por ejemplo, si dentro de un Si necesitaramos evaluar la condición de que una persona tuviese más de 18 años y su nombre fuera Juan, utilizaríamos algo como esto:dijo:Si (edad > 18 && nombre==”Juan”) sentencia 1; Si no sentencia 2;Por otro lado, si quisieramos evaluar alguna de las 2 condiciones como ciertas, bien que su edad sea mayor a 18, o su nombre fuese Juan, haríamos algo como esto:dijo:Si (edad > 18 || nombre==”Juan”) sentencia 1; Si no sentencia 2;De esta forma, mediante esos operadores, podemos evaluar una serie de condiciones, tanto excluyentes, como adherentes. Esta evaluación puede mezclarse con iteraciones múltiples, según lo necesitemos.2.- Switch: Otra iteración condicional.A pesar de que el Si y Si no (if y else en los lenguajes reales) es la iteración condicional más utilizada, existe una bastante útil al momento de evaluar distintos escenarios dentro de un programa, la cual es el famoso Switch, el cual evalúa el valor de una variable y a partir de ese valor presenta distintas sentencias a partir de posibles casos que se puedan dar.Su funcionamiento es bastante parecido a la iteración anterior, pero en este caso lo que basicamente se hace es:dijo: Evaluación de la variable: Si la variable es ‘x’: Sentencia 1; Salir; Si la variable es ‘y’: Sentencia 2; Salir; Si la variable es ‘z’: Sentencia 3; Salir;Dentro de una iteración condicional Switch, podemos presentar todos los escenarios que deseemos. Lo único a tener en consideración es que debemos conocer todos los posibles valores que pueda tomar la variable para así plantear sus posibles desenlaces.Además incluimos una nueva sentencia: Salir. Esta es utilizada debido a que por defecto, una iteración condicional de tipo Switch recorre siempre todos los posibles escenarios (a pesar de que no ejecuta las sentencias correspondientes a escenarios donde el valor no corresponde), por lo que al agregar Salir, ejecutará las sentencias correspondientes y luego saldrá de la iteración, ahorrando tiempo de ejecución.Adicionalmente es bueno añadir un escenario de tipo defecto (default en los lenguajes reales de programación), al cual se ingresará si el valor ingresado en la variable no corresponde a ninguno de los escenarios posibles planteados. Esto quedará mucho más claro más adelante cuandoLas iteraciones condicionales de tipo Switch son especialmente ideales al momento de plantear menús dentro de un programa, ya que el usuario ingresará una opción y conoceremos todos los posibles valores para plantear sus sentencias.Existen una gran cantidad de casos donde podemos utilizar Si y Si no, o Switch, eso dependerá del gusto de cada uno. Sin embargo en algunos casos no podremos utilizar Switch, ya que la evaluación de valor se debe hacer con comparaciones exactas (Si el valor es igual a 1 por ejemplo) y no comparaciones mediante operadores (Si el valor es mayor a cierto valor).Veamos ahora un ejemplo para que todo esto quede más claro. Utilizaremos un Switch (llamándolo evaluar) para determinar opciones de un menú. (comentarios en negrita, cursiva y entre /* y */dijo: Inicio /* Damos inicio al programa */ Numero opción; Letra nombre; /* Declaramos una variable de tipo número y de nombre opción la cual utilizaremos para que el usuario ingrese la opción del menú a la cual quiere ingresar, y también una variable de tipo letra y de nombre ‘nombre’ la cual usaremos dentro de las opciones del menú como ya veremos. */ Principal( ) { /* Definimos la función “Principal” que es donde irá el cuerpo del programa, además abrimos parentesis de llaves para incluir dentro todo lo concerniente a esta función. Ya adentraremos el tema de las funciones. */ mostrar(“Seleccione una opción: n”); mostrar(“1.- Ingresar usuario n”); mostrar(“2.- Borrar usuario n”); mostrar(“3.- Listar usuarios n”); /* Mediante la sentencia mostrar, desplegamos un mensaje en pantalla para que el usuario sepa que debe ingresar su opción y luego vamos mostrando las opciones con la misma opción. Utilizamos “n” para indicarle al programa que haga un salto de línea */ leer(%numero, opcion); /* Mediante la sentencia leer, recabamos el dato que quiere ingresar el usuario. A leer le damos como parámetro primero el tipo de valor que queremos recolectar, o sea número con un % antes para acostumbrarnos al formato de lenguajes reales y luego le damos la variable donde almacenaremos el valor, o sea, opcion */ evaluar(opcion) { /* Llamamos a la iteración evaluar y le damos como parámetro el dato en el cual nos basaremos, o sea, opcion, luego abrimos llaves para dar inicio al contenido de la iteración */ caso ‘1′: mostrar(“Ingrese el nombre del usuario: “); leer(%letra,nombre); ……. salir; /* Definimos el caso ‘1′, que es decirle al programa “en caso de que la evaluación nos diga que la opción seleccionada fue 1, haga esto” y luego definimos las sentencias a ejecutar, finalizando con salir, tal como lo explicamos anteriormente. /* caso ‘2′: mostrar(“Ingrese el nombre del usuario a borrar: “); leer(%letra,nombre); …… salir; /* Luego definimos el caso 2, tal como el anterior */ caso ‘3′: mostrar(“Los usuarios son: “); ……. salir; /* A continuación el caso 3 */ caso ‘defecto’: mostrar(“Seleccionó una opción no válida”); salir; /* Y finalmente el caso ‘defecto’ en caso de que haya seleccionado una opción no definida para el menú. Luego de esta última definición, cerramos el paréntesis de llave correspondiente a la iteración evaluar y el paréntesis correspondiente a la función principal, y finalizamos el programa mediante Fin. */ } } FinComo podemos ver, hemos utilizado el nuevo tipo de iteración y definido todos sus posibles escenarios. Tal como indicamos anteriormente, en las iteraciones de este tipo solo podemos evaluar valores fijos y no hacer comparaciones mediante operadores. Esto nos dará la pauta sobre que tipo de iteración utilizar para cada caso.Hora de pasar al último punto del tutorial de hoy:3.- Ciclos o BúclesUn aspecto importantísimo de la programación, es el uso de ciclos o búcles, los cuales son utilizados en el 99,9% de los programas de alto nivel, ya veremos porque.Hasta este momento, hemos desarrollado una serie de programas donde damos inicio, ejecutamos algunas sentencias de forma ordenada, secuencial y estructurada y los finalizamos. Con los conocimientos que poseemos hasta este punto, si quisieramos ejecutar una operación un determinado número de veces, tendríamos que definir una línea para cada vez que queramos ejecutar la operación, lo cual si el número de repeticiones es largo, se convertiría en una operación tediosa y tendríamos un programa con un gran número de líneas.Para economizar este proceso y hacer todo mucho más sencillo es que aparecen los ciclos, los cuales nos permiten ejecutar una sentencia un número de veces que nosotros determinemos a partir de una condición dada.Existen 3 ciclos comunes que se utilizan, cada uno de ellos con características especiales e ideales para cierto tipo de usos: Mientras (o while en los lenguajes reales): Se ejecuta si es que la condición dada se cumpla y correrá tantas veces según se respete esa condición. Haga Mientras (o do-while en los lenguajes reales): Se ejecuta tantas veces según se respete la condición dada. A diferencia del Mientras, este ciclo se ejecuta al menos una vez. Para (o for en los lenguajes reales): Se ejecuta si es que la condición dada se cumple inicialmente y mientras se siga cumpliendo. A diferencia de los 2 anteriores, en sus parámetros definimos todas las condiciones necesarias.Las diferencias quedarán claras en los ejemplos que daremos más adelante. Tal como en el caso de las iteraciones condicionales, existen situaciones ideales para el uso de cada uno de ellos. Sin embargo, hay una serie de casos donde podemos usar cualquiera de ellos de forma eficiente.Ahora, cuando usamos un ciclo, debemos definir ciertas cosas, como: Una variable a utilizar en la condición que definirá la duración del ciclo, la cual puede ser definida por nosotros o por un dato leído desde teclado. Un valor inicial para esa variable, una vez más, definido por nosotros o por el usuario. Una condición para evaluar esa variable y que definirá la duración de la ejecución del ciclo. Una instancia de cambio de la variable. Esta instancia, debe ir modificando el valor de la variable para que en algún momento cumpla la condición que define la duración del ciclo, de lo contrario, el ciclo se ejecutará infinitamente.La diferencia entre cada tipo de ciclo se ve principalmente en la forma en que definimos y utilizamos las cosas de la lista anterior.Veamos unos ejemplos para que esto quede más claro:Haremos un programa donde enumeremos del 1 al 100, utilizando los 3 tipos de ciclos descritos con anterioridad. (comentarios en negrita, cursiva y entre /* y */ )dijo: Inicio /* Damos inicio al programa */ Numero num=1; /* Declaramos una variable de tipo Numero y nombre num, y le damos el valor inicial 1, que es desde donde partiremos a enumerar */ Principal( ) { /* Definimos la función “Principal” que es donde irá el cuerpo del programa y abrimos llaves. Ya adentraremos el tema de las funciones */ mientras(num<=100) { mostrar(%numero, num); num++; } /* Definimos un ciclo de tipo mientras y le decimos que la condición es que se ejecute mientras num sea menor o igual a 100, dentro de el mediante la sentencia mostrar desplegamos el valor actual de la variable y luego con el operador de incremento lo aumentamos en uno y se vuelve a ejecutar. De esta forma la primera vez que entre mostrará 1 y luego irá aumentando y mostrando hasta que llegue a 100 */ haga { mostrar(%numero, num); num++; }mientras(num<=100); /* Ahora hacemos la misma operación pero usando un ciclo de tipo haga-mientras. Definimos las mismas operaciones pero a diferencia del caso anterior, ahora declaramos la condición al final. Como requisito de este tipo de ciclos, el mientras del final debe ir con un punto y coma al final. Recordemos que este ciclo se ejecutará al menos una vez */ para(num=1;num<=100;num++) { mostrar(%numero, num); } /* Y finalmente hacemos el mismo proceso con un ciclo de tipo ‘para’. La diferencia con los 2 anteriores es que ahora dentro de sus parametros establecemos toda las condiciones para la ejecución de este ciclo. Partiendo por un valor inicial para num, en este caso 1, la condición de duración que es mientras sea menor o igual a 100 y el incremento para que se cumpla esta condición. Dentro del ciclo solo ponemos la sentencia mostrar porque ya hemos definido lo demás */ } FinComo podemos ver, hemos declarado la misma operación mediante 3 ciclos distintos. Cada uno de ellos desplegará el mismo resultado, los números de 1 a 100, pero la forma en que definimos estos ciclos es diferente. Con más práctica podremos ir viendo que tipo de ciclo es adecuado para que situación. Idealmente a la sentencia mostrar en los 3 casos podríamos haberle añadido un salto de línea, porque como esta declarado mostrará los números uno al lado del otro. Como es un ejemplo no es necesario que lo definamos.Es bueno añadir que dentro de un ciclo, cualquiera de ellos, podemos definir todas las operaciones que estimemos conveniente, incluidas iteraciones condicionales y todo lo que hemos visto hasta ahora como muestra de datos, lectura de datos de teclado, etc.Además es bueno también recordar que todo ciclo debe tener un fin, por eso debemos ser cuidadosos al momento de definir las condiciones de duración, ya que un ciclo que corrá eternamente matará nuestro programa.Tal como debemos definir cuidadosamente el fin, un punto a considerar es que un ciclo no necesariamente debe siempre ejecutarse, es por eso que definimos la condición de inicio y duración. Por ejemplo, podemos condicionar el inicio de un ciclo a que cierta variable porte cierto valor y en caso de que no lo tenga, el ciclo nunca se ejecute.El trabajo con los ciclos puede presentar cierta complejidad en sus inicios, pero a medida que vayamos avanzando se irá simplificando.Un Enlace a las Otras Partes:Parte 1: Parte 2: Parte 3: Muchas Gracias Por Leer!

11
13
Aprender a Programar y no Morir en el intento 4
Aprender a Programar y no Morir en el intento 4
Hazlo Tu MismoporAnónimoFecha desconocida

1.- Iteraciones condicionales múltiples y uso de más de una condición.En la edición anterior de esta saga, comenzamos a ver lo que son las iteraciones condicionales y como aplicarlas cuando dentro de un programa necesitamos tomar un camino u otro, en su mayoría mutuamente excluyente, a partir de una condición dada. La simpleza de su utilización pudimos apreciarla a través de los ejercicios resueltos.Pero la programación, como la vida, siempre se complica, y eso es lo que haremos ahora.En los ejercicios anteriores hicimos uso de condiciones excluyentes para las iteraciones, o sea, algo como “Si se da esta condición, haga esto, si no, haga esto otro”, lo cual es bastante sencillo de entender y aplicar. Sin embargo, cuando estemos realizando programas a más alto nivel comunmente nos encontraremos con situaciones donde debamos evaluar multiples iteraciones, como por ejemplo “Si se da esta condición, haga esto, si no se da, pero se da esta otra, haga esto y si no se da ninguna de las 2, haga esto otro”. Con palabras es algo complicado, pero viendo según sentencias, sería algo así:dijo:Si (condición) sentencia 1; Si no Si(condición) sentencia 2; Si no sentencia 3;Ahora, tal como mencionamos en el tutorial anterior, dentro de un Si, pueden ir una infinidad de Si y Si no, lo mismo dentro de un Si no. Sin embargo, lo único que debemos recordar es que siempre un Si no debe ir precedido de un Si.Teniendo eso claro, ¿Qué pasa ahora si dentro de nuestro Si debemos evaluar más de una condición o bien una de 2 posibles?.Ahí es donde empezamos a utilizar el concepto de más de una condición. Dentro de un Si, podemos evaluar el número de condiciones que nosotros queramos, utilizando los operadores && para “y”, y || para “ó”. Por ejemplo, si dentro de un Si necesitaramos evaluar la condición de que una persona tuviese más de 18 años y su nombre fuera Juan, utilizaríamos algo como esto:dijo:Si (edad > 18 && nombre==”Juan”) sentencia 1; Si no sentencia 2;Por otro lado, si quisieramos evaluar alguna de las 2 condiciones como ciertas, bien que su edad sea mayor a 18, o su nombre fuese Juan, haríamos algo como esto:dijo:Si (edad > 18 || nombre==”Juan”) sentencia 1; Si no sentencia 2;De esta forma, mediante esos operadores, podemos evaluar una serie de condiciones, tanto excluyentes, como adherentes. Esta evaluación puede mezclarse con iteraciones múltiples, según lo necesitemos.2.- Switch: Otra iteración condicional.A pesar de que el Si y Si no (if y else en los lenguajes reales) es la iteración condicional más utilizada, existe una bastante útil al momento de evaluar distintos escenarios dentro de un programa, la cual es el famoso Switch, el cual evalúa el valor de una variable y a partir de ese valor presenta distintas sentencias a partir de posibles casos que se puedan dar.Su funcionamiento es bastante parecido a la iteración anterior, pero en este caso lo que basicamente se hace es:dijo: Evaluación de la variable: Si la variable es ‘x’: Sentencia 1; Salir; Si la variable es ‘y’: Sentencia 2; Salir; Si la variable es ‘z’: Sentencia 3; Salir;Dentro de una iteración condicional Switch, podemos presentar todos los escenarios que deseemos. Lo único a tener en consideración es que debemos conocer todos los posibles valores que pueda tomar la variable para así plantear sus posibles desenlaces.Además incluimos una nueva sentencia: Salir. Esta es utilizada debido a que por defecto, una iteración condicional de tipo Switch recorre siempre todos los posibles escenarios (a pesar de que no ejecuta las sentencias correspondientes a escenarios donde el valor no corresponde), por lo que al agregar Salir, ejecutará las sentencias correspondientes y luego saldrá de la iteración, ahorrando tiempo de ejecución.Adicionalmente es bueno añadir un escenario de tipo defecto (default en los lenguajes reales de programación), al cual se ingresará si el valor ingresado en la variable no corresponde a ninguno de los escenarios posibles planteados. Esto quedará mucho más claro más adelante cuandoLas iteraciones condicionales de tipo Switch son especialmente ideales al momento de plantear menús dentro de un programa, ya que el usuario ingresará una opción y conoceremos todos los posibles valores para plantear sus sentencias.Existen una gran cantidad de casos donde podemos utilizar Si y Si no, o Switch, eso dependerá del gusto de cada uno. Sin embargo en algunos casos no podremos utilizar Switch, ya que la evaluación de valor se debe hacer con comparaciones exactas (Si el valor es igual a 1 por ejemplo) y no comparaciones mediante operadores (Si el valor es mayor a cierto valor).Veamos ahora un ejemplo para que todo esto quede más claro. Utilizaremos un Switch (llamándolo evaluar) para determinar opciones de un menú. (comentarios en negrita, cursiva y entre /* y */dijo: Inicio /* Damos inicio al programa */ Numero opción; Letra nombre; /* Declaramos una variable de tipo número y de nombre opción la cual utilizaremos para que el usuario ingrese la opción del menú a la cual quiere ingresar, y también una variable de tipo letra y de nombre ‘nombre’ la cual usaremos dentro de las opciones del menú como ya veremos. */ Principal( ) { /* Definimos la función “Principal” que es donde irá el cuerpo del programa, además abrimos parentesis de llaves para incluir dentro todo lo concerniente a esta función. Ya adentraremos el tema de las funciones. */ mostrar(“Seleccione una opción: n”); mostrar(“1.- Ingresar usuario n”); mostrar(“2.- Borrar usuario n”); mostrar(“3.- Listar usuarios n”); /* Mediante la sentencia mostrar, desplegamos un mensaje en pantalla para que el usuario sepa que debe ingresar su opción y luego vamos mostrando las opciones con la misma opción. Utilizamos “n” para indicarle al programa que haga un salto de línea */ leer(%numero, opcion); /* Mediante la sentencia leer, recabamos el dato que quiere ingresar el usuario. A leer le damos como parámetro primero el tipo de valor que queremos recolectar, o sea número con un % antes para acostumbrarnos al formato de lenguajes reales y luego le damos la variable donde almacenaremos el valor, o sea, opcion */ evaluar(opcion) { /* Llamamos a la iteración evaluar y le damos como parámetro el dato en el cual nos basaremos, o sea, opcion, luego abrimos llaves para dar inicio al contenido de la iteración */ caso ‘1′: mostrar(“Ingrese el nombre del usuario: “); leer(%letra,nombre); ……. salir; /* Definimos el caso ‘1′, que es decirle al programa “en caso de que la evaluación nos diga que la opción seleccionada fue 1, haga esto” y luego definimos las sentencias a ejecutar, finalizando con salir, tal como lo explicamos anteriormente. /* caso ‘2′: mostrar(“Ingrese el nombre del usuario a borrar: “); leer(%letra,nombre); …… salir; /* Luego definimos el caso 2, tal como el anterior */ caso ‘3′: mostrar(“Los usuarios son: “); ……. salir; /* A continuación el caso 3 */ caso ‘defecto’: mostrar(“Seleccionó una opción no válida”); salir; /* Y finalmente el caso ‘defecto’ en caso de que haya seleccionado una opción no definida para el menú. Luego de esta última definición, cerramos el paréntesis de llave correspondiente a la iteración evaluar y el paréntesis correspondiente a la función principal, y finalizamos el programa mediante Fin. */ } } FinComo podemos ver, hemos utilizado el nuevo tipo de iteración y definido todos sus posibles escenarios. Tal como indicamos anteriormente, en las iteraciones de este tipo solo podemos evaluar valores fijos y no hacer comparaciones mediante operadores. Esto nos dará la pauta sobre que tipo de iteración utilizar para cada caso.Hora de pasar al último punto del tutorial de hoy:3.- Ciclos o BúclesUn aspecto importantísimo de la programación, es el uso de ciclos o búcles, los cuales son utilizados en el 99,9% de los programas de alto nivel, ya veremos porque.Hasta este momento, hemos desarrollado una serie de programas donde damos inicio, ejecutamos algunas sentencias de forma ordenada, secuencial y estructurada y los finalizamos. Con los conocimientos que poseemos hasta este punto, si quisieramos ejecutar una operación un determinado número de veces, tendríamos que definir una línea para cada vez que queramos ejecutar la operación, lo cual si el número de repeticiones es largo, se convertiría en una operación tediosa y tendríamos un programa con un gran número de líneas.Para economizar este proceso y hacer todo mucho más sencillo es que aparecen los ciclos, los cuales nos permiten ejecutar una sentencia un número de veces que nosotros determinemos a partir de una condición dada.Existen 3 ciclos comunes que se utilizan, cada uno de ellos con características especiales e ideales para cierto tipo de usos: Mientras (o while en los lenguajes reales): Se ejecuta si es que la condición dada se cumpla y correrá tantas veces según se respete esa condición. Haga Mientras (o do-while en los lenguajes reales): Se ejecuta tantas veces según se respete la condición dada. A diferencia del Mientras, este ciclo se ejecuta al menos una vez. Para (o for en los lenguajes reales): Se ejecuta si es que la condición dada se cumple inicialmente y mientras se siga cumpliendo. A diferencia de los 2 anteriores, en sus parámetros definimos todas las condiciones necesarias.Las diferencias quedarán claras en los ejemplos que daremos más adelante. Tal como en el caso de las iteraciones condicionales, existen situaciones ideales para el uso de cada uno de ellos. Sin embargo, hay una serie de casos donde podemos usar cualquiera de ellos de forma eficiente.Ahora, cuando usamos un ciclo, debemos definir ciertas cosas, como: Una variable a utilizar en la condición que definirá la duración del ciclo, la cual puede ser definida por nosotros o por un dato leído desde teclado. Un valor inicial para esa variable, una vez más, definido por nosotros o por el usuario. Una condición para evaluar esa variable y que definirá la duración de la ejecución del ciclo. Una instancia de cambio de la variable. Esta instancia, debe ir modificando el valor de la variable para que en algún momento cumpla la condición que define la duración del ciclo, de lo contrario, el ciclo se ejecutará infinitamente.La diferencia entre cada tipo de ciclo se ve principalmente en la forma en que definimos y utilizamos las cosas de la lista anterior.Veamos unos ejemplos para que esto quede más claro:Haremos un programa donde enumeremos del 1 al 100, utilizando los 3 tipos de ciclos descritos con anterioridad. (comentarios en negrita, cursiva y entre /* y */ )dijo: Inicio /* Damos inicio al programa */ Numero num=1; /* Declaramos una variable de tipo Numero y nombre num, y le damos el valor inicial 1, que es desde donde partiremos a enumerar */ Principal( ) { /* Definimos la función “Principal” que es donde irá el cuerpo del programa y abrimos llaves. Ya adentraremos el tema de las funciones */ mientras(num<=100) { mostrar(%numero, num); num++; } /* Definimos un ciclo de tipo mientras y le decimos que la condición es que se ejecute mientras num sea menor o igual a 100, dentro de el mediante la sentencia mostrar desplegamos el valor actual de la variable y luego con el operador de incremento lo aumentamos en uno y se vuelve a ejecutar. De esta forma la primera vez que entre mostrará 1 y luego irá aumentando y mostrando hasta que llegue a 100 */ haga { mostrar(%numero, num); num++; }mientras(num<=100); /* Ahora hacemos la misma operación pero usando un ciclo de tipo haga-mientras. Definimos las mismas operaciones pero a diferencia del caso anterior, ahora declaramos la condición al final. Como requisito de este tipo de ciclos, el mientras del final debe ir con un punto y coma al final. Recordemos que este ciclo se ejecutará al menos una vez */ para(num=1;num<=100;num++) { mostrar(%numero, num); } /* Y finalmente hacemos el mismo proceso con un ciclo de tipo ‘para’. La diferencia con los 2 anteriores es que ahora dentro de sus parametros establecemos toda las condiciones para la ejecución de este ciclo. Partiendo por un valor inicial para num, en este caso 1, la condición de duración que es mientras sea menor o igual a 100 y el incremento para que se cumpla esta condición. Dentro del ciclo solo ponemos la sentencia mostrar porque ya hemos definido lo demás */ } FinComo podemos ver, hemos declarado la misma operación mediante 3 ciclos distintos. Cada uno de ellos desplegará el mismo resultado, los números de 1 a 100, pero la forma en que definimos estos ciclos es diferente. Con más práctica podremos ir viendo que tipo de ciclo es adecuado para que situación. Idealmente a la sentencia mostrar en los 3 casos podríamos haberle añadido un salto de línea, porque como esta declarado mostrará los números uno al lado del otro. Como es un ejemplo no es necesario que lo definamos.Es bueno añadir que dentro de un ciclo, cualquiera de ellos, podemos definir todas las operaciones que estimemos conveniente, incluidas iteraciones condicionales y todo lo que hemos visto hasta ahora como muestra de datos, lectura de datos de teclado, etc.Además es bueno también recordar que todo ciclo debe tener un fin, por eso debemos ser cuidadosos al momento de definir las condiciones de duración, ya que un ciclo que corrá eternamente matará nuestro programa.Tal como debemos definir cuidadosamente el fin, un punto a considerar es que un ciclo no necesariamente debe siempre ejecutarse, es por eso que definimos la condición de inicio y duración. Por ejemplo, podemos condicionar el inicio de un ciclo a que cierta variable porte cierto valor y en caso de que no lo tenga, el ciclo nunca se ejecute.El trabajo con los ciclos puede presentar cierta complejidad en sus inicios, pero a medida que vayamos avanzando se irá simplificando.Un Enlace a las Otras Partes:Parte 1: Parte 2: Parte 3: Muchas Gracias Por Leer!

16
10
A
Aprender a Programar y no Morir en el Intento Parte 5
Hazlo Tu MismoporAnónimo11/27/2011

Cómo aprender a programar y no morir en el intento – Parte 5Como es habitual, veamos lo que cubriremos en esta ocasión:Contenidos1.- Introducción a los arrays2.- Vectores3.- MatricesAsí que con todo especificado, vamos, a seguir aprendiendo:Introducción a los arraysHasta ahora, todos los datos con los que hemos trabajado los hemos almacenado en variables, las cuales entre sus características podemos indicar que son capaces de almacenar un valor “simple”, o sea un número (de uno o más dígitos) o un carácter (o cadena de ellos) o un valor booleano. De cualquier forma siempre almacenan solamente un y nada más que un valor a la vez.Pero, ¿qué pasa si es que necesitamos almacenar más de un valor?. Podríamos usar más variables, sin embargo, cuando los valores necesarios de almacenar son 10 o más, disponer de tantas variables, y más importante aún, recordar sus nombres y manipularlas, puede ser bastante engorroso.Para esto es que en la programación disponemos de los arrays o arreglos, los cuales son variables que nos permiten almacenar más de un valor del mismo tipo y manipularlos, todo dentro de la misma variable.Comunmente en los lenguajes de programación, los arreglos solo pueden contener múltiples valores del mismo tipo y hasta una longitud finita indicada al momento de su declaración. Sin embargo, en algunos lenguajes especificos, existen tipos de arrays que no se apegan a estas reglas (ya sea almacenando valores de distinto tipo o siendo dinámicos, o sea, creciendo a medida que decidimos almacenar un nuevo valor en ellos).Los arreglos pueden ser unidimensionales o bidimensionales. Los primeros en la programación son conocidos como vectores, y los segundos como matrices.Independiente de su dimensionalidad, los arrays deben cumplir con ciertas características, algunas similares a las variables que hemos visto hasta ahora y otras no tanto.1.- Nombre: Todo array debe tener un nombre, el cual debe cumplir con las mismas características de los nombres de variable, o sea, debe ser único, no debe ser una palabra reservada del lenguaje, ni empezar con números, guiones o underscores (pueden llevar alguno de los 3 últimos entremedio).2.- Tipo: Todo array debe tener un tipo, que corresponde al tipo de valores que se podrán almacenar en el. Pueden ser los mismos tipos que para las variables vistas hasta ahora.3.- Posición: Aquí entra la diferencia. Para facilitar la visualización, imaginémonos que una variable común y corriente es una cajón en el que guardamos algo. Ahora, cuando pensamos en un array, pensemos que es una cajonera, con un número de cajones, dentro de los cuales se pueden almacenar varias cosas. Cada uno de estos cajones corresponde a una “posición del array”. Cada posición es como si fuera una variable dentro del array y almacena un valor. Después cuando queramos rescatar ese valor, se accede a la posición necesaria.Veremos algunos esquemas ahora que especificaremos los tipos de arrays.VectoresLos vectores en la programación, son arrays unidimensionales en los cuales se pueden almacenar múltiples valores (finitos) y que cuentan con las características anteriormente definidas.Para declarar un vector, en pseudocódigo, lo hacemos de la siguiente forma: dijo: Numero vector[5]; Tipo nombre;El largo indicara cuantas posiciones tendrá el vector, y por ende, cuantos datos se podrán almacenar.Antes de seguir, debemos hacer una salvedad. En el mundo de la computación, siempre se empieza a contar desde el cero y no el uno. Eso debemos tener en cuenta cuando queramos acceder a una posición, ya que estaremos accediendo al número correspondiente a si empezáramos a contar desde el cero. Por ejemplo, con ese vector que recién declaramos, tendríamos algo como esto: 0 1 2 3 4Si nos fijamos, a pesar de ser un vector de largo 5, sus posiciones van desde el 0 a la 4, siendo estas a las que debemos acceder si queremos recuperar la información almacenada ahí.Para almacenar valores en un vector los asignamos de la misma forma que a una variable común y corriente, a diferencia de que ahora debemos indicar el indice correspondiente a la posición donde almacenaremos el valor, por ejemplo, si queremos almacenar el valor 2 en la tercera posición de un vector de 5 posiciones:dijo:Vector[2]=2;Y si queremos leer el valor de un vector, lo hacemos de la misma forma. Por ejemplo, si queremos comprobar un valor en un Si:dijo:Si(vector[2]==2)Tanto para ingresar datos, como para leerlos, una operación común es recorrerlos mediante ciclos, ya sea con un ciclo de tipo Mientras o uno de tipo Para. Al hacer esto, declaramos una variable para utilizar como indice, la cual se irá moviendo a lo largo del vector. Por ejemplo, si quisieramos llenar un vector con números iguales a su indice, haríamos algo como esto, asumiendo que el vector es de largo 5: dijo: i=0; mientras(i<5) { vector=i; i++; }Si en vez de ingresar datos, quisiéramos leerlos, lo hacemos de la misma forma.Para resumir, veamos un ejemplo. En este caso lo que haremos será declarar un vector, decirle al usuario que llene los valores para sus posiciones y luego las mostraremos por pantalla. Iniciodijo: Damos inicio al programa Numero vector[5]; Numero i=0; Declaramos el vector y la variable que utilizaremos como índice para recorrerlo. principal() mientras(i<5) { Mediante un ciclo mientras, le mostramos un mensaje al usuario para que ingrese el valor correspondiente a la posición del vector y luego leemos el dato. mostrar(“Ingrese el valor %numero del vector”, i); leer(vector, &numero); i++; i=0; } mostrar(“Los valores ingresados fueron: “); Mostramos el mensaje avisando que desplegaremos los valores. mientras(i<5) { Dentro de un ciclo mientras, mostramos todos los valores almacenados en el vector. mostrar(“%numero”, vector); i++; } FinTrabajar con vectores lleva un poco de costumbre, pero con práctica nos veremos utilizándolos más y más a menudo y viendo como nos facilitan todo.MatricesAl igual que los vectores, las matrices son arrays. Sin embargo, a diferencia de ellos, son bidimensionales, o sea operan en 2 dimensiones, a las cuales nos referiremos como filas y columnas, como si fueran una especie de tabla.Algo así:Para declarar una matriz se hace igual que un vector, pero ahora en vez de indicar el largo, debemos indicar el número de filas y el número de columnas. Como ejemplo:dijo:Numero matriz[4][4];Esa es una matriz cuadrada, de 4 filas y 4 columnas. No es necesario que siempre tengan el mismo número de filas y de columnas. Al igual que en el álgebra, pueden variar.Para el proceso de ingreso de datos en una posición de la matriz, debemos indicar su posición relativa con respecto a filas y columnas. Por ejemplo, si quisieramos almacenar el valor 8 en la segunda fila y primera columna, diríamos algo como esto:dijo:matriz[1][0]=8;Al igual que en los vectores, cuando queremos ingresar o leer múltiples datos, hacemos uso de ciclos. La diferencia ahora es que para las matrices debemos utilizar 2 ciclos, uno que recorra las filas y otro las columnas. Sería ejemplificado algo así, con una matriz de 4 x 4 y llenando todas sus posiciones con un 8: dijo: i=0; j=0; mientras(i<4) { mientras (j<4) { Matriz=8; j++: } i++; }Para recorrer sería el mismo proceso, pero en vez de ingresar datos, los leemos.Veamos ahora un ejemplo, donde primero declararemos una matriz, luego le diremos a un usuario que ingrese valores y finalmente los mostraremos: dijo: Inicio Damos inicio al programa. Numero matriz[4][4]; Numero i=0; Numero j=0; Declaramos la matriz y las variables que utilizaremos para recorrerlas. Principal() mientras(i<4) { mientras(j<4) { Dentro de los 2 ciclos necesarios para recorrer filas y columnas en la matriz, mostramos un mensaje para que ingresen un valor a esa posición y luego lo leemos. mostrar(“Ingrese el valor correspondiente a la fila %numero y la columna %numero”,i,j); leer(%numero, &matriz); j++; } i++; } i=0; j=0; mostrar(“Los valores ingresados son: “); Avisaremos que mostraremos los valores mientras(i<4) { mientras(j<4) { Mostramos los valores recorriendo la matriz con los 2 ciclos necesarios. mostrar(“%numero”,matriz); j++; } i++; } FinComo podemos apreciar, es un proceso bastante sencillo. La mayor complejidad se presente en poder entender el tema de los índices, pero una vez que lo logramos, todo se vuelve muy simple.Con este ultimo tema estamos llegando al final de esta edición, en la cual hemos cubierto el tema de los arrays por completo, desde sus declaraciones hasta usos variados.

20
3
Aprender a Programar y no Morir en el intento 4
Aprender a Programar y no Morir en el intento 4
Hazlo Tu MismoporAnónimo11/27/2011

1.- Iteraciones condicionales múltiples y uso de más de una condición.En la edición anterior de esta saga, comenzamos a ver lo que son las iteraciones condicionales y como aplicarlas cuando dentro de un programa necesitamos tomar un camino u otro, en su mayoría mutuamente excluyente, a partir de una condición dada. La simpleza de su utilización pudimos apreciarla a través de los ejercicios resueltos.Pero la programación, como la vida, siempre se complica, y eso es lo que haremos ahora.En los ejercicios anteriores hicimos uso de condiciones excluyentes para las iteraciones, o sea, algo como “Si se da esta condición, haga esto, si no, haga esto otro”, lo cual es bastante sencillo de entender y aplicar. Sin embargo, cuando estemos realizando programas a más alto nivel comunmente nos encontraremos con situaciones donde debamos evaluar multiples iteraciones, como por ejemplo “Si se da esta condición, haga esto, si no se da, pero se da esta otra, haga esto y si no se da ninguna de las 2, haga esto otro”. Con palabras es algo complicado, pero viendo según sentencias, sería algo así:dijo:Si (condición) sentencia 1; Si no Si(condición) sentencia 2; Si no sentencia 3;Ahora, tal como mencionamos en el tutorial anterior, dentro de un Si, pueden ir una infinidad de Si y Si no, lo mismo dentro de un Si no. Sin embargo, lo único que debemos recordar es que siempre un Si no debe ir precedido de un Si.Teniendo eso claro, ¿Qué pasa ahora si dentro de nuestro Si debemos evaluar más de una condición o bien una de 2 posibles?.Ahí es donde empezamos a utilizar el concepto de más de una condición. Dentro de un Si, podemos evaluar el número de condiciones que nosotros queramos, utilizando los operadores && para “y”, y || para “ó”. Por ejemplo, si dentro de un Si necesitaramos evaluar la condición de que una persona tuviese más de 18 años y su nombre fuera Juan, utilizaríamos algo como esto:dijo:Si (edad > 18 && nombre==”Juan”) sentencia 1; Si no sentencia 2;Por otro lado, si quisieramos evaluar alguna de las 2 condiciones como ciertas, bien que su edad sea mayor a 18, o su nombre fuese Juan, haríamos algo como esto:dijo:Si (edad > 18 || nombre==”Juan”) sentencia 1; Si no sentencia 2;De esta forma, mediante esos operadores, podemos evaluar una serie de condiciones, tanto excluyentes, como adherentes. Esta evaluación puede mezclarse con iteraciones múltiples, según lo necesitemos.2.- Switch: Otra iteración condicional.A pesar de que el Si y Si no (if y else en los lenguajes reales) es la iteración condicional más utilizada, existe una bastante útil al momento de evaluar distintos escenarios dentro de un programa, la cual es el famoso Switch, el cual evalúa el valor de una variable y a partir de ese valor presenta distintas sentencias a partir de posibles casos que se puedan dar.Su funcionamiento es bastante parecido a la iteración anterior, pero en este caso lo que basicamente se hace es:dijo: Evaluación de la variable: Si la variable es ‘x’: Sentencia 1; Salir; Si la variable es ‘y’: Sentencia 2; Salir; Si la variable es ‘z’: Sentencia 3; Salir;Dentro de una iteración condicional Switch, podemos presentar todos los escenarios que deseemos. Lo único a tener en consideración es que debemos conocer todos los posibles valores que pueda tomar la variable para así plantear sus posibles desenlaces.Además incluimos una nueva sentencia: Salir. Esta es utilizada debido a que por defecto, una iteración condicional de tipo Switch recorre siempre todos los posibles escenarios (a pesar de que no ejecuta las sentencias correspondientes a escenarios donde el valor no corresponde), por lo que al agregar Salir, ejecutará las sentencias correspondientes y luego saldrá de la iteración, ahorrando tiempo de ejecución.Adicionalmente es bueno añadir un escenario de tipo defecto (default en los lenguajes reales de programación), al cual se ingresará si el valor ingresado en la variable no corresponde a ninguno de los escenarios posibles planteados. Esto quedará mucho más claro más adelante cuandoLas iteraciones condicionales de tipo Switch son especialmente ideales al momento de plantear menús dentro de un programa, ya que el usuario ingresará una opción y conoceremos todos los posibles valores para plantear sus sentencias.Existen una gran cantidad de casos donde podemos utilizar Si y Si no, o Switch, eso dependerá del gusto de cada uno. Sin embargo en algunos casos no podremos utilizar Switch, ya que la evaluación de valor se debe hacer con comparaciones exactas (Si el valor es igual a 1 por ejemplo) y no comparaciones mediante operadores (Si el valor es mayor a cierto valor).Veamos ahora un ejemplo para que todo esto quede más claro. Utilizaremos un Switch (llamándolo evaluar) para determinar opciones de un menú. (comentarios en negrita, cursiva y entre /* y */dijo: Inicio /* Damos inicio al programa */ Numero opción; Letra nombre; /* Declaramos una variable de tipo número y de nombre opción la cual utilizaremos para que el usuario ingrese la opción del menú a la cual quiere ingresar, y también una variable de tipo letra y de nombre ‘nombre’ la cual usaremos dentro de las opciones del menú como ya veremos. */ Principal( ) { /* Definimos la función “Principal” que es donde irá el cuerpo del programa, además abrimos parentesis de llaves para incluir dentro todo lo concerniente a esta función. Ya adentraremos el tema de las funciones. */ mostrar(“Seleccione una opción: n”); mostrar(“1.- Ingresar usuario n”); mostrar(“2.- Borrar usuario n”); mostrar(“3.- Listar usuarios n”); /* Mediante la sentencia mostrar, desplegamos un mensaje en pantalla para que el usuario sepa que debe ingresar su opción y luego vamos mostrando las opciones con la misma opción. Utilizamos “n” para indicarle al programa que haga un salto de línea */ leer(%numero, opcion); /* Mediante la sentencia leer, recabamos el dato que quiere ingresar el usuario. A leer le damos como parámetro primero el tipo de valor que queremos recolectar, o sea número con un % antes para acostumbrarnos al formato de lenguajes reales y luego le damos la variable donde almacenaremos el valor, o sea, opcion */ evaluar(opcion) { /* Llamamos a la iteración evaluar y le damos como parámetro el dato en el cual nos basaremos, o sea, opcion, luego abrimos llaves para dar inicio al contenido de la iteración */ caso ‘1′: mostrar(“Ingrese el nombre del usuario: “); leer(%letra,nombre); ……. salir; /* Definimos el caso ‘1′, que es decirle al programa “en caso de que la evaluación nos diga que la opción seleccionada fue 1, haga esto” y luego definimos las sentencias a ejecutar, finalizando con salir, tal como lo explicamos anteriormente. /* caso ‘2′: mostrar(“Ingrese el nombre del usuario a borrar: “); leer(%letra,nombre); …… salir; /* Luego definimos el caso 2, tal como el anterior */ caso ‘3′: mostrar(“Los usuarios son: “); ……. salir; /* A continuación el caso 3 */ caso ‘defecto’: mostrar(“Seleccionó una opción no válida”); salir; /* Y finalmente el caso ‘defecto’ en caso de que haya seleccionado una opción no definida para el menú. Luego de esta última definición, cerramos el paréntesis de llave correspondiente a la iteración evaluar y el paréntesis correspondiente a la función principal, y finalizamos el programa mediante Fin. */ } } FinComo podemos ver, hemos utilizado el nuevo tipo de iteración y definido todos sus posibles escenarios. Tal como indicamos anteriormente, en las iteraciones de este tipo solo podemos evaluar valores fijos y no hacer comparaciones mediante operadores. Esto nos dará la pauta sobre que tipo de iteración utilizar para cada caso.Hora de pasar al último punto del tutorial de hoy:3.- Ciclos o BúclesUn aspecto importantísimo de la programación, es el uso de ciclos o búcles, los cuales son utilizados en el 99,9% de los programas de alto nivel, ya veremos porque.Hasta este momento, hemos desarrollado una serie de programas donde damos inicio, ejecutamos algunas sentencias de forma ordenada, secuencial y estructurada y los finalizamos. Con los conocimientos que poseemos hasta este punto, si quisieramos ejecutar una operación un determinado número de veces, tendríamos que definir una línea para cada vez que queramos ejecutar la operación, lo cual si el número de repeticiones es largo, se convertiría en una operación tediosa y tendríamos un programa con un gran número de líneas.Para economizar este proceso y hacer todo mucho más sencillo es que aparecen los ciclos, los cuales nos permiten ejecutar una sentencia un número de veces que nosotros determinemos a partir de una condición dada.Existen 3 ciclos comunes que se utilizan, cada uno de ellos con características especiales e ideales para cierto tipo de usos: Mientras (o while en los lenguajes reales): Se ejecuta si es que la condición dada se cumpla y correrá tantas veces según se respete esa condición. Haga Mientras (o do-while en los lenguajes reales): Se ejecuta tantas veces según se respete la condición dada. A diferencia del Mientras, este ciclo se ejecuta al menos una vez. Para (o for en los lenguajes reales): Se ejecuta si es que la condición dada se cumple inicialmente y mientras se siga cumpliendo. A diferencia de los 2 anteriores, en sus parámetros definimos todas las condiciones necesarias.Las diferencias quedarán claras en los ejemplos que daremos más adelante. Tal como en el caso de las iteraciones condicionales, existen situaciones ideales para el uso de cada uno de ellos. Sin embargo, hay una serie de casos donde podemos usar cualquiera de ellos de forma eficiente.Ahora, cuando usamos un ciclo, debemos definir ciertas cosas, como: Una variable a utilizar en la condición que definirá la duración del ciclo, la cual puede ser definida por nosotros o por un dato leído desde teclado. Un valor inicial para esa variable, una vez más, definido por nosotros o por el usuario. Una condición para evaluar esa variable y que definirá la duración de la ejecución del ciclo. Una instancia de cambio de la variable. Esta instancia, debe ir modificando el valor de la variable para que en algún momento cumpla la condición que define la duración del ciclo, de lo contrario, el ciclo se ejecutará infinitamente.La diferencia entre cada tipo de ciclo se ve principalmente en la forma en que definimos y utilizamos las cosas de la lista anterior.Veamos unos ejemplos para que esto quede más claro:Haremos un programa donde enumeremos del 1 al 100, utilizando los 3 tipos de ciclos descritos con anterioridad. (comentarios en negrita, cursiva y entre /* y */ )dijo: Inicio /* Damos inicio al programa */ Numero num=1; /* Declaramos una variable de tipo Numero y nombre num, y le damos el valor inicial 1, que es desde donde partiremos a enumerar */ Principal( ) { /* Definimos la función “Principal” que es donde irá el cuerpo del programa y abrimos llaves. Ya adentraremos el tema de las funciones */ mientras(num<=100) { mostrar(%numero, num); num++; } /* Definimos un ciclo de tipo mientras y le decimos que la condición es que se ejecute mientras num sea menor o igual a 100, dentro de el mediante la sentencia mostrar desplegamos el valor actual de la variable y luego con el operador de incremento lo aumentamos en uno y se vuelve a ejecutar. De esta forma la primera vez que entre mostrará 1 y luego irá aumentando y mostrando hasta que llegue a 100 */ haga { mostrar(%numero, num); num++; }mientras(num<=100); /* Ahora hacemos la misma operación pero usando un ciclo de tipo haga-mientras. Definimos las mismas operaciones pero a diferencia del caso anterior, ahora declaramos la condición al final. Como requisito de este tipo de ciclos, el mientras del final debe ir con un punto y coma al final. Recordemos que este ciclo se ejecutará al menos una vez */ para(num=1;num<=100;num++) { mostrar(%numero, num); } /* Y finalmente hacemos el mismo proceso con un ciclo de tipo ‘para’. La diferencia con los 2 anteriores es que ahora dentro de sus parametros establecemos toda las condiciones para la ejecución de este ciclo. Partiendo por un valor inicial para num, en este caso 1, la condición de duración que es mientras sea menor o igual a 100 y el incremento para que se cumpla esta condición. Dentro del ciclo solo ponemos la sentencia mostrar porque ya hemos definido lo demás */ } FinComo podemos ver, hemos declarado la misma operación mediante 3 ciclos distintos. Cada uno de ellos desplegará el mismo resultado, los números de 1 a 100, pero la forma en que definimos estos ciclos es diferente. Con más práctica podremos ir viendo que tipo de ciclo es adecuado para que situación. Idealmente a la sentencia mostrar en los 3 casos podríamos haberle añadido un salto de línea, porque como esta declarado mostrará los números uno al lado del otro. Como es un ejemplo no es necesario que lo definamos.Es bueno añadir que dentro de un ciclo, cualquiera de ellos, podemos definir todas las operaciones que estimemos conveniente, incluidas iteraciones condicionales y todo lo que hemos visto hasta ahora como muestra de datos, lectura de datos de teclado, etc.Además es bueno también recordar que todo ciclo debe tener un fin, por eso debemos ser cuidadosos al momento de definir las condiciones de duración, ya que un ciclo que corrá eternamente matará nuestro programa.Tal como debemos definir cuidadosamente el fin, un punto a considerar es que un ciclo no necesariamente debe siempre ejecutarse, es por eso que definimos la condición de inicio y duración. Por ejemplo, podemos condicionar el inicio de un ciclo a que cierta variable porte cierto valor y en caso de que no lo tenga, el ciclo nunca se ejecute.El trabajo con los ciclos puede presentar cierta complejidad en sus inicios, pero a medida que vayamos avanzando se irá simplificando.Un Enlace a las Otras Partes:Parte 1: http://www.taringa.net/posts/hazlo-tu-mismo/11764271/Aprender-a-Programar-y-no-morir-en-el-Intento.htmlParte 2: http://www.taringa.net/posts/hazlo-tu-mismo/11806616/Como-Aprender-a-programar-y-no-morir-en-el-intento-parte-2.htmlParte 3: http://www.taringa.net/posts/hazlo-tu-mismo/13253905/Aprender-A-Programar-y-No-Morir-en-el-Intento-3.htmlMuchas Gracias Por Leer!

5
0
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.