InicioHazlo Tu MismoConceptos básicos de la programación 2

Conceptos básicos de la programación 2

Hazlo Tu Mismo3/27/2012

Siguiendo mi post anterior:
En este post voy a explicar conceptos que quedaron sueltos y algunos ejemplos más. Entre las cosas que voy a explicar van a ser condicionales, iteradores, arrays (vectores), listas y mapas (diccionarios), vectores de clase. Para todo esto en algunos casos me remitiré a otros post anteriores míos así no soy reiterativo. Para algunos ejemplos voy a darlos en Java y otros en Python, más en C# me voy a remitir a lo ya escrito por mi.

Antes de comenzar, me gustaría contestar a alguien que me mandó un MP preguntando de donde sacaba tanto código y tantos ejemplos.
Le respondo esto: Todos los ejemplos los hago yo, sino miren la captura de mi barra de inicio:
Conceptos básicos de la programación 2

Arrays

Para empezar, para entender qué es un Array me remito a

Y el apéndice de esto para completar:

Respecto a los vectores de clase, hay que tener en cuenta lo siguiente:

<?
LaClase C 
= new LaClase(); //Si hago una instancia de una clase y ...
int[] = new int[]; // Si hago un vector de una manera muy parecida...

LaClase[] VC = new LaClase[5]//Del mismo modo puedo hacer un vector de una clase.
>


Pero ojo, los 5 espacios de vector van a ser con valores NULL al inicio, para que esto funcione, hay que hacer una instancia de cada uno en cada posición.
Tengan cuidado con esto, por que no se tienen que olvidar de hacerlo, es muy común que se olviden de esto y les dé el error 'NullPointerException'.
Para terminar de combinar las dos escrituras, tienen que hacer por cada espacio de vector esto:

<?
VC
[0] = new LaClase();
VC[1] = new LaClase();
VC[2] = new LaClase();
VC[3] = new LaClase();
VC[4] = new LaClase();
>[/
code}
[
font=Microsoft Sans Serif][size=8]
Respecto de las matriceshay una buena diferencia:
[/
size][/font]
[
code]<?
//Java
int[][] matriz = new int[3][3];
>

<?
//C#
int[,] matriz = new int[3,3];
>

<?
#Python
matriz = [[0,0,0],[0,0,0]]
>


Fíjense lo interesante de la diferencia, en Java = [][], en C# = [,] y en Python = [[],[]]
Por supuesto que en todos los casos se les puede agregar varias dimensiones a la matriz.

Condicionales e Iteradores

Los condicionales son una herramienta de todo lenguaje de programación, sirven principalmente para determinar casos en los que uno se encuentra en un camino u otro dependiendo el caso o la elección del caminante.
En todos los casos esa condicional viene de la mano con IF
Para lo que es condicionales e iteraciones en C#, me remitiré a
Sólo pondré los ejemplos de cómo serían las diferencias en Java y en Python

<?
//Java
public String respuesta(Integer num){
    
String resultado "";
    if(
num 5){
        
resultado "El valor es mayor que 5"
    }
    else if (
num == 0){
    
resultado "El valor es igual a 0";
    else{
        
resultado "El valor es menor a 5";
    }
    return 
resultado
}//fíjense que se escribe exactamente igual.
>

<?
#Python
class numeros:
    
resultado ""
    
def respuesta(selfnum):
        if 
num 5:
            
resultado 'El valor es mayor a 5' #Las comillas simples y dobles valen lo mismo en este lenguaje.
        
elif num == 0:
            
resultado 'El valor es igual a 0'
        
else:
            
resultado 'El valor es menor a 5'
        
return resultado
#Los encapsulamientos en Python se da por medio de las tabulaciones.
>



Respecto de los switch, en Java se escribe casi exactamente igual que en C#, hay algunas diferencias de uso, en Java JDK 1.6 NO SE PUEDEN HACER SWITCH CON STRINGS.
Respecto a Python, no vieron los diseñadores de este lenguaje muchos usos respecto de esto, por lo tanto lo descartaron y prefirieron usar los "elif"

El Foreach, me remito a tanto para C# y para Java, donde explico como funciona en los dos lenguajes.
Para Python es mas o menos así:

<?
#El vector se llama V y viene cargado con resultados.
for v in V:
    return 
v
>


Como verán, es una especie más de for, donde al iterar devuelve un valor único de un Array.
Respecto al while en Python como iterador

<?
1
while <= 11:
    print 
i,
    
1
>[code]
[
font=Microsoft Sans Serif][size=8
Por último para hoy:
[
b]Listas enlazadas y diccionarios[/b]
Las listas es algo muy parecido a un vectordonde en cada posición se puede guardar cualquier cosa y al mismo tiempo es como un vector dinámicoo sease puede modificar su tamañoen algunos casos ordenar mediante distintos factores (por orden alfabéticode mayor a menoretc), 
Para C# me remito a [url]http://www.taringa.net/posts/hazlo-tu-mismo/13250310/Programando-en-C_-21.html[/url]
En Java la diferencia con C# es la siguiente: 
 
[/size][/font]

[
code]<?
ArrayList<String= new ArrayList<String>();
>



Como se fijarán hay que poner el tipo de dato que vas a guardar, ya sea una clase, un String, un Integer o lo que sea.
Cuando devuelven un dato tienen que ponerle el tipo de dato que van a devolver junto con el ArrayList.

<?
public ArrayList<StringgetA(){
    return 
a;
}
>


Respecto de si quiero devolver o agregar un dato, por ejemplo recordemos que con C# era a[0] = "algo"; o
string b = a[0];
En Java se hace de la siguiente manera:

<?
a
.add("Hola mundo"); //Entre los paréntesis iría el tipo de dato que le quiero poner al arraylist,
//  pero si quiero hacer uno que contenga los objetos del tipo casa, va a recibir una instancia de casa dentro.
String b a.get(0); //Devuelve el valor de la posición 0, puede devolver el valor de cualquier posición.
>


Tengan cuidado con los valores de las posiciones del vector, o sea, no se pasen de los límites del vector, pasa mucho tanto en las listas ligadas (arrayList) como en los vectores comunes estos errores.
Supongamos que yo tengo un vector de tres espacios, a[0] = 1, a[1] = 2 y a[2] = 3.
En un for pido que me itere para devolverme los resultados de cada posición de vector.


<?
for(int i 04i++){
 return 
a[i];
}
>



El código de arriba va a dar error, el problema está que el iterador llega hasta 3 y en 3 el vector se va de los límites, por lo tanto les va a dar un error y el programa dejará de funcionar. Para esta clase de casos funcionan los foreach.
En Python los ArrayList no existen como tal, los vectores son profundamente dinámicos.
Cuando hablamos de los lenguajes de programación, hay que ver el paradigma actual "orientado a objetos", en python todo es un objeto, por lo tanto es absolutamente objetural. Para poder hacer Arrays deben ser si o si listas ligadas, por lo tanto la particularidad que tienen sus vectores no la tienen otros lenguajes.
Así que para agrandar un vector debemos hacer lo siguiente...

<?
= [1,2,3,4]
a.append(5)
print 
a
[1,2,3,4,5]
>



Tanto en C# como en Java, para borrar un dato de adentro de una posición de vector, lo que hay que hacer es borrar la referencia en memoria o convertirlo a NULL o 0 si es una variable numerica. En C# se agrega el método collect como lo dice en la siguiente referencia:

Si quisieramos hacerlo desde un ArrayList...


<?
MiLista
[0].collect();
MiLista[0].WaitForPendingFinalizers();
>[
code]

[
font=Microsoft Sans Serif][size=8]
En python hay otra forma:
[/
size][/font]

[
code]<?
del a[2]
#Esto nulifica la posición 3 y se extingue. Cuando le hacemos print veremos que solo existen 4 posiciones del vector.
print a
[1,2,4,5]
>[
code]
[
font=Microsoft Sans Serif][size=8]
Por último los diccionarios.
Los diccionarios o mapas (en javason una especie de Array que guardan por posición dos datosuna keyque es un identificadory un dato concreto.
En C# el diccionario funciona de la siguiente manera:
[/size][/font]
[
code]<?
    class 
Class1
    
{
        
Dictionary<stringstring= new Dictionary<stringstring>();
        public 
void generar(string clavestring dato)
        {
            
a.Add(clavedato);
        }
        public 
string devolver(string clave
        {
            return 
a[clave];
        }
        public 
void Borrar(string clave)
        {
            
a.Remove(clave);
        }
    }
>


Tiene otras muchas funciones más, pero se haría interminable el post.
En Java:

<?
import java
.util.ArrayList;
import java.util.HashMap;
import java.util.Map;


public class 
aa {

    public static 
void main(String[] args) {
        
Map<StringString= new HashMap<StringString>();
        
m.put("Hola""Mundo");
        
m.put("Chau""gente");
        
System.out.println(m.get("Hola"));
        
m.remove("Hola"); //Y deja de existir el dato "Mundo"
    
}

}
>


Ahora viene lo interesante, en python los diccionarios funcionan de una manera similar, pero al mismo tiempo son tremendamente diferentes a los que tiene java y C#.
Primero, si bien en los dos tenés que poner el tipo de dato que va a soportar como clave y como dato el diccionario, en el caso de python no necesitás semejante cosa, o sea, en la primer posición puede ser un dato del tipo string y en la siguiente posición un objeto del tipo Perro. El orden lo ponés vos y la dinámica del programa también.
Respecto a los datos, los diccionarios no necesitan un conjunto de datos estandar para manejarse, o sea que, si necesito que en la clave "Hola" haya un string que diga "chau" y en la segunda posición como clave "algo", puedo tener un objeto Perro, Persona, etc.

<?
= { }
a['hola'] = 1
a
[2] = 0.5
a
[3.4] = "chau mundo"
print a
[10.5'chau mundo']
>


Para finalizar, una última referencia, algoritmos de búsqueda:

Funcionan para todos los lenguajes, solo hay que saber interpretarlos.
Datos archivados del Taringa! original
42puntos
1,057visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

L
Lelale🇦🇷
Usuario
Puntos0
Posts52
Ver perfil →
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.