ZONA Programación - Foros DZ
Foros DZ
Bienvenido a Foros DZ.

Si es tu primera visita, quizás deberías visitar la Ayuda para aprender un poco sobre el uso de los foros. Es posible que tengas que registrarte antes de poder iniciar temas o dejar tu respuesta a los temas de otros usuarios: haz clic en el enlace 'registrarse' para crear tu cuenta. Para empezar a ver mensajes, selecciona el foro que quieres visitar de la lista de abajo.

Identificarse:

Avisos


Respuesta
hombre Antiguo 19-sep-2008
 
Avatar de "Zero"
NOVIEMBRE, mes la patria de mi alma, de mi corazón
ZONA Programación

Hola forodesolado sin moderador

Hace muuuuuuuuuuuuuuuuuuuuuuucho tiempo, cuando los CPU's trabajaban bien y todo era sin interrupciones, yo, en colaboración con la moderación, parcialmente, abrí este tema para que los que estában entrando en el mundo de la informática, aprendieran a programar.

Por muchos factores, como inactividad, fricción con ciertas almas, etc...al final, una de esas almas, cerro mi tema por que simplemente no le gustaba como lo explicaba. Punto. No vengo a tirarle pierdras a nadie, por que mi único interés, es resucitar esto(foro) y que otros aprendar de lo poco que yo sé, por que nadie sabe todo.

Entonces, como bien dice el título, aquí vamos a aprender a programar en diversos lenguajes. Como C++, JAVA y .NET principalmente que son los que me interesan.

La dinámica será así: yo expongo el marco teórico con prácticas y ser harán las asignación que se dejen. Insofactamente, se pueden exponer dudas, problemas, etc con respecto al tema. ¿OK? Todo claro.

A medida que vamos avanzando, se dejarán tareas para ver si entendieron el concepto.

Y bueno, empesamos.

Primero que nada, empesaremos por la teoría. NO nos podemos tirar al código, sin conocer la teoría que imbolucra el manejo eficiente de el.
¿Tamos?

Tema #1

Lógica y Algoritmo

Temario:

1. ¿Qué es un programa?
2. Procesadores del lenguaje.
3. Etapas en la solución de un problema por computadora.
4. Programación.


4.1 Algoritmo.
4.2 Prueba de escritorio.
4.3 Codificación.
4.4 Compilación y ejecución.
4.5 Tipos de error.
Desarrollo

1. ¿Qué es un programa?

Es una secuencia lógica de instrucciones, escritas en un lenguaje de programación, que determinan las operaciones que va a realizar la computadora.
• Secuencia lógica: se refiere al orden en que aparecen las instrucciones que van a ser ejecutadas por el compilador.
Existen dos formas de programa: lineal y no lineal.
• Lineal: se refiere en ejecutar las instrucciones, tal como están, sin ninguna bifurcación, decisión ni estructuras repetitivas.
• No lineal: se refiere en que no se van a seguir las instrucciones en ese orden si no que puede variar el orden lógico dependiendo de la lógica del programa.
Hay que agregar que existen dos tipos de programa: fuente y objeto:
• Fuente: es el que escribe el programador en un determinado lenguaje de programación.
• Objeto: es el programa que usa la computadora. Es la traducción del fuente a un lenguaje que la computadora entienda. Unos y ceros.
2. Procesadores del lenguaje.

Los procesadores del lenguaje son los programas que toman el programa fuente y lo transforman a lenguaje propio de la máquina.

Estos están divididos en dos categorías:



Compilador: es el programa suministrado por el fabricante del lenguaje. Este hace las siguientes funciones:
• Traduce las funciones del lenguaje fuente.
• Asigna espacios de memoria.
• Crea un informe de errores en el programa.
• Crea el programa objeto (solo si la fuente, está libre de errores).
• Suministra variables y otros datos.
• Compilación: es el proceso en donde se convierte el programa fuente a instrucciones en el lenguaje propio de la máquina.
Interprete: es un programa que va leyendo línea a línea el programa y lo va traduciendo y ejecutándolo. En este caso, no hay una traducción completa.

3. Etapas en la solución de un problema por computadora.

Al idear una solución para un problema determinado hay que tener que es una tarea que involucra arte y ciencia. Arte por que necesita ingenio, audacia, sutileza, etc. Ciencia por que lleva una metodología a seguir.

Definición del problema: aquí debemos plantearnos teóricamente cual es el problema. Debemos tener una visión clara de lo que tenemos y necesitamos para arrojar los resultados deseados. Tengo que pensar que datos de entrada necesito para poder llegar a lo que quiero. Dato de entrada se refiere al tipo de dato que necesito para solucionar el problema.

Análisis y diseño del programa: en este momento debemos tener una visión clara de que cosas debo realizar y en que orden debo ejecutarlas para arrojar el producto deseado. Cabe señalar que hay que prever todos los inconvenientes que se puedan dar en el programa.
Todo analiza programador debe preguntarse: ¿que es lo que tengo?, ¿Qué es lo que debo hacer?, ¿Qué debo producir?, ¿Cómo evito inconvenientes? Etc.

4. Programación.

Programación, lo defino como la forma de resolver un problema dado de la forma más eficiente posible. No es solo escribir un programa, si no; lograr encontrar la solución de problema.

Se usan diferentes técnicas como: algoritmos, diagramas de flujo de datos (DFD´S), prueba de escritorio, etc.

Algoritmo: es la técnica que nos ayuda a pensar en la posible solución del problema, en las posibles circunstancias que se den y que de una solución precisa, única y finita. El algoritmo es la herramienta que se utiliza para plasmar la secuencia lógica del programa. La forma en que se escribe el algoritmo se denomina pseudocódigo. Sus características es que debe ser, preciso, conciso, finito y definido.

Reglas para la confección de algoritmos:
1. Todas las instrucciones deben estar escritas en mayúscula cerrada.
2. Si existen varias instrucciones pueden separarlas por coma.
3. Todo algoritmo debe empezar con la palabra INICIO y terminar con FIN.
4. Para escribir instrucciones, ya sea de entrada, salida u otras, deben ser escritas en el formato dado.
5. Las constantes alfanuméricas, deben escribirse entre comillas.
6. Para llamar a una subrutina o procedimiento, se hará con la palabra EJECUTAR, seguida del nombre del procedimiento.
7. En un algoritmo es posible utilizar los operadores aritméticos (+,-,*,/,>,<,<>,=) como los lógico( AND, OR, NOT).
Prueba de escritorio: es hacer una prueba exhaustiva al programa, para verificar que produce los resultados deseados y que esté libre de errores.

Codificación: esto consiste en traducir cada línea del algoritmo, a un lenguaje de programación determinado.

Compilación: es transformar el programa fuente a un lenguaje que lo entienda la computadora. Aquí se crea el programa objeto.

Ejecución: consiste en que la computadora vaya ejecutando línea por línea el programa objeto (nuestro programa fuente compilado).

• Tipos de errores: son aquellos detectados en el momento que se compilan.



Estos son:
• Error de compilación: estos errores son los que se encuentran en la hora de la compilación. Se deben a un error o el incumplimiento de la sintaxis del lenguaje. Si existe un error de sintaxis, el compilador no reconoce la instrucción y por ende no creará el programa objeto ni aparecerá la instrucción.
• Errores ejecución: son aquellos errores en donde a la hora de ejecutar no puede. Conoce la instrucción, pero no la puede realizar. Ejemplo: la división entre cero, la raíz de un número negativo, etc.
• Errores de lógica: son los errores más difíciles de detectar ya que no muestra errores de compilación no ejecución. Se debe al mal platemiento y resolución del problema.
¿Me expliqué todo? ¿No hay dudas? Pregunten si tienen dudas...





Bueno, espero que los interesados les halla gustado y que pregunten si miedo que para eso estoy. Espero también la participación y el apoyo de los que desean aprender programación.
Además, espero el apoyo de personas que sepan y que quieran también enseñar. Por que la idea es formar una comunidad de programados. ¿sí?

Agradecimientos a Leo.

¡Que comience el código!













"_Z_"
__________________
PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANA



VIVA MI PATRIA CARAJO!


Última edición por "Zero"; 28-sep-2008 a las 02:14.
"Zero" no ha iniciado sesión   Responder Citando
Antiguo 19-sep-2008
 
Avatar de Jadefox
Trancision
pero si vas a dar un curso enfocate a un solo lenguaje o si quieres empezar desde lo mas bajo q es binario y ensamblador wen tema
__________________
Para que existe quien te cuide
Solo se convierte en la carcel de tu libertad
Esta siendo la pugna de tus penas
Sólo me recuerda que esta vida es una sentencia perpetua.


Soul heroes


Urban Rivals

¿si me quiere chupar la bruja por que no quiere lamerme el hada?
Total apoyo al
movimiento anti-emo si de verdad emo quieres morir, moriras.
Jadefox no ha iniciado sesión   Responder Citando
hombre Antiguo 19-sep-2008
Status not available
Me alegro Zero que vuelvas a abrir la Zona de Programación, va a estar en importantes donde merece estar, y donde estuvo tu antigüo tema.

Saludos, espero que tenga mucho exito esta zona =)
__________________

Leo no ha iniciado sesión   Responder Citando
hombre Antiguo 19-sep-2008
 
Avatar de misai
Sin estado

ya tenia un tema de esto pero aver si a qui aparece alguien qu eme aliviane el problema

He estado buscando algun algoritmo que me ayude a programar la propiedad distributiva si ya saben esa donde

(a+b)*c=a*c+b*c con todo y parentesis y subparentesis.........

osea ( ( a + b ) * C * D + ( E+F+J ) )

introducire la exprecion ...

ejemplo:
(A+B)*C*D*E


da como salida
A*C*D*E + B*C*D*E

ejemplo:
(A+B)*(D+E)

da como salida

A*D + B*D + E*A + E*B


...etc.... etc..... etc


realmente ya me rompi el coco pero no encuentro como resolver mi dilema si saben de alguno realmente pasenmelo para que ya empiece a programar...plz...mientras mas pronto mejor (no me importa en que lenguaje lo tengan o mejor si es solo el algoritmo o almenos denme ideas ).....
por aqui hay muchos que se dicen programadores aver si me hechan una ayuda estare muy agradecido....

pero les ruego que sea uno que funcione bien y no a medias por que de esos ya me salieron muchos.......

no se tarden....
misai no ha iniciado sesión   Responder Citando
hombre Antiguo 19-sep-2008
 
Avatar de 狼Thewolf
Alcanza tus sueños.
Me parece perfecto sera como un curso de programacion.
__________________



-Te quiero…
-Yo te amo... ¿Ves la diferencia?
¿Eres de Coahuila? Entonces da click
狼Thewolf no ha iniciado sesión   Responder Citando
hombre Antiguo 20-sep-2008
 
Avatar de "Zero"
NOVIEMBRE, mes la patria de mi alma, de mi corazón
Hola!!

Gracias por sus comentarios. Ahora, por favor no hagan flood con esos post hiper cortos.

Bien, vengo a exponer un cd que creo que lo más seguro es que lo usemos más adelante.

Yo había dicho que uno de los lenguajes a aprender serán C++, pues, tengo un disco donde se habla de C++. Se llama: C++ para principiantes.




Sería bueno que se lo descargaran para cuando espesemos a trabajar en C++.

Código:
http://www.gigasize.com/get.php?d=n0gph1pq6zb 
http://www.gigasize.com/get.php?d=mcd754c7p0b
http://www.gigasize.com/get.php?d=jqk0vqs2v1d
http://www.gigasize.com/get.php?d=m7lj4ld8v4c
Contraseña:
me la piden por MP jejeje


Bueno, hasta la próxima. Pronto pondré el siguiente capítulo.

Saellvertu!!!












"_Z_"

__________________
PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANA



VIVA MI PATRIA CARAJO!


Última edición por "Zero"; 28-sep-2008 a las 02:13.
"Zero" no ha iniciado sesión   Responder Citando
hombre Antiguo 20-sep-2008
Sonríe, yo existo 8D ...
Holas.

Solo para indicar que el .NET no es un lenguaje de programación en si como indicas en el primer post ... Es una suite completa de lenguajes de programación que incluye C#.NET, C++.NET, JScript.NET, J#.NET y Visual Basic.NET y que permite el facil manejo y creación de aplicacion web asp, servicios web XML, aplicaciones de escritorio y aplicaciones para móviles.

Su núcleo está en el .NET Framework la cuál contiene muchas liberias y funcionalidades para el facil manejo de éstos lenguajes.

Bueno yo tambien estoy aquí para ayudar y aprender ... Cuenten conmigo

Saludos
__________________


... "Vivir no es sólo existir, sino existir y crear, saber gozar y sufrir y
no dormir sin soñar. Descansar, es empezar a morir" ...

вяα∂ ωαя∂єη™ no ha iniciado sesión   Responder Citando
hombre Antiguo 21-sep-2008
 
Avatar de "Zero"
NOVIEMBRE, mes la patria de mi alma, de mi corazón
Escrito por Brad-Warden
Solo para indicar que el .NET no es un lenguaje de programación en si como indicas en el primer post ... Es una suite completa de lenguajes de programación que incluye
Te estás refiriendo a Visual Studio

Pues sí, es Visual Studio el paquete completo, pero .NET si es una herramienta de desarrollo. Pero dime, es o no es. Yo la concidero un lenguaje, ya que viene del Basic: un lenguaje de prog. Al menos que esté totalmente erroneo.

La idea es aprender.












"_Z_"
__________________
PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANA



VIVA MI PATRIA CARAJO!

"Zero" no ha iniciado sesión   Responder Citando
hombre Antiguo 22-sep-2008
 
Avatar de Wiz
-.-!
.Net es una plataforma de desarrollo,es una aplicación de tecnologías de framework para el desarrollo de aplicaciones.no es un lenguaje, puestoq ue VB es el lenguaje, lo que dio resultado VB.net ese si sería el lenguaje de soporte....bueno algo así



PD: Porque no creamos un tema y pedimos un mode que tenga tiempo para la zona ? que de vdd los temas de abajo me parecen un despelote XD
BUeno salu2
__________________


... you Just don 't ... understand --- >>Visita mi BLog: Oráculo de Wiz
"Dormir bajo el sol de media noche con la sensación eterna de un despertar, cuando la vida toque el cielo e ilumine mi rostro. Y el éxtasis de vivir el sabor de los sueños comienza"


Wiz no ha iniciado sesión   Responder Citando
hombre Antiguo 22-sep-2008
 
Avatar de "Zero"
NOVIEMBRE, mes la patria de mi alma, de mi corazón
Escrito por Wiz
PD: Porque no creamos un tema y pedimos un mode que tenga tiempo para la zona ? que de vdd los temas de abajo me parecen un despelote XD
Gracias compadre. Si se entiende y no estaba tan perdido.

Pero comentando sobre eso, de verdad que miro eso "y se me revuelve la mirada" ¬¬

Brad se tiene que sentir como mal por el poco de desorden que hay En fin, de verdad que se necesita un mod, y hasta el sol de hoy, seguimos esperando el nombramiento de uno.

Leo, si lees esto, por favor tu que eres un moderador global, mandale un aviso a la administración que se han tardado demaciado y han quedado muy mal. Después no se quejen si les empiezan a criticar

¿Hasta cuando tenemos que esperar?













"_Z_"
__________________
PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANA



VIVA MI PATRIA CARAJO!

"Zero" no ha iniciado sesión   Responder Citando
Hay 1 mensajes borrados. Ver los mensajes borrados.
hombre Antiguo 24-sep-2008
 
Avatar de "Zero"
NOVIEMBRE, mes la patria de mi alma, de mi corazón
Ya andamos mal.

Les voy a pedir a todo el que entra, que NO pida progrmas. Además de que tiene que hacerlo usted, esto no es lugar para eso. Aquí se viene a estudiar y a preguntar, comentar y debatir del tema en cuestión. Encima y no tiene naaaaada que ver con el tópico actual. NOOOO pedir programas. ¿Quiere pedir un código fuente? Vaya y pídalo afuera...


Ni siquiera la primera ves NADIE pidió ningún programa, para que...


Gracias...













"_Z_"
__________________
PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANA



VIVA MI PATRIA CARAJO!

"Zero" no ha iniciado sesión   Responder Citando
hombre Antiguo 24-sep-2008
 
Avatar de talon
Sin estado
.Net es una plataforma de desarrollo,es una aplicación de tecnologías de framework para el desarrollo de aplicaciones.no es un lenguaje, puestoq ue VB es el lenguaje, lo que dio resultado VB.net ese si sería el lenguaje de soporte....bueno algo así
Dividamos .NET es una plataforma de desarrollo , pero en terminos concretos es un CLR y un CLS (bueno las partes mas importantes)

CLR Common Lenguage Runtime, significa que es una maquina virtual y al ser un CPU virtual requiere de su propio lenguaje (IL Lenguaje intermedio), por lo tanto cualquier lenguaje que se quiera comunicar con .NET tiene que generar IL, por esta razon es que hay bastantes otros lenguajes que pueden ocupar la plataforma .NET , por que generan lenguaje intermedio en lugar de codigo maquina (byte code).

CLS Common Lybrary System (no recuerdo bien el acronimo), pero se refiere al conjunto de librerias en comun pueden ser ocupadas por cualquier lenguaje compatible con .NET

Un framework es todo un conjunto de librerias, rutinas, clases, arquitecturas y demas que sirven como base para el desarrollo de un programa, un ejemplo muy comun es el desarrollo de juegos, donde se habla mucho de motores graficos, un motor grafico es un framework osease un conjunto de clases reutilizables que se usan como base para la realizacion de un software. En terminos concretos un framework funciona en un programa como un motor funciona en un automovil.

No confundas VB , VB.NET Visual Basic 6.0 e inferiores solo es un simple traductor a C, por lo tanto VB ni siquiera esta al nivel de un compilador , en cambio VB.NET tiene mas funcionalidad , portabilidad y diversidad para poder referirse como un lenguaje...

Y Visual Studio es un IDE, no es un lenguaje, no es .NET , no es un framework , toda la funcionalidad de visual studio la tiene el SDK del framework, por lo tanto es prescindible, porfavor no confundan ya que hasta los autores de libros cometen este pecado mortal, sino chequen cualquier libro de Ceballos (Visual C# jajajajaja....)
__________________
Regresa con tu escudo en la mano o debajo de el !!!!!!!(Madre espartana despidiendose de su hijo)
talon no ha iniciado sesión   Responder Citando
hombre Antiguo 25-sep-2008
 
Avatar de Sir. Dark Solink
Sin estado
buenos dias tardes o noches

primero que nada dire que raresa por fin resucitaron este tema que tantas veces se derrumbo (espero por dios que no caiga otra vez)

segundo zero si no te molesta me gustaria integrarme a esta actividad tanto como para aprender como para ayudar a quien lo nesecite

tercero talon es acrostico no acronimo

bien misai estoy pensando en como transforma el algoritmo de la distributiva pero se ve complicado pues esa parte de la matematica me es algo confusa (si apesto en calculo y algebra y aun nadie entiende por que estudio informatica)

bien no tengo mucho que decir en realidad asi que hare un poco de flood presumiendo

se dice que mi codigo de arboles es uno de los mas simples y eficases que se a visto hasta ahora en internet pero yo pienso que este tiene defectos pero es algo que hire prefeccionando

sin mas que decir

Adrian "Sir. Dark Solink" DS
__________________
Sir. Dark Solink no ha iniciado sesión   Responder Citando
hombre Antiguo 26-sep-2008
 
Avatar de talon
Sin estado
pues... Dark Solink si nos dices en que programas y nos muestras tu coidgo talvez te podamos ayudar... y regularmente las soluciones recursivas son las mejores.... jejejejejeje
__________________
Regresa con tu escudo en la mano o debajo de el !!!!!!!(Madre espartana despidiendose de su hijo)
talon no ha iniciado sesión   Responder Citando
hombre Antiguo 27-sep-2008
 
Avatar de Sir. Dark Solink
Sin estado
talon es el codigo de un arbol avl de por si tiene que ser recorsivo si no no seria arbol, aunque claro tanmbien se puede hacer con ciclos pero es enfermiso ya lo intente

aqui te dejo el codigo de avl para que lo observes aunque lo tube que reconstruir por que originalmente lo creo por separado y luego lo modifique para uno de mis proyectos de mi universidad bien sin mas preambulos

Código:
 // AVL.cpp: Reconstrucion del codigo original AVL.
// por Adrian "Sir. Dark Solink" DS
//
//

#include "stdafx.h"
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;

struct nodo{
	int bal;//balance
	int num;//numero
	nodo*izq;//apuntador izquier
	nodo*der;
};
nodo*HEAD;// apuntador del tipo nodo
nodo*crear(int b)/*crea un nodo*/{
	nodo*p=new nodo;
	p->bal=0;
	p->num=b;
	p->izq=NULL;
	p->der=NULL;
	return p;
}
int altura(nodo*p)/*utilisado para calcular el balance del nodo calculando la altura del mismo*/{
	if(p){
		if((!p->izq)&&(!p->der))
			return 0;
		int a=altura(p->izq);
		int b=altura(p->der);
		if(a>b)
			return a+1;
		else
			return b+1;
	}
	return 0;
}
int bal(nodo*p)/*calcula el balance de cada nodo para notificar al programa si debe hacer las rotaciones*/{
	int a=0; int b=0; int c=0;
	if(p->izq)
		a=altura(p->izq)+1;
	if(p->der)
		b=altura(p->der)+1;
	c=b-a;
	return c;
}
nodo*rotII(nodo*p)/*realiza la rotacion izquierda-izquierda*/{
	nodo*aux=p->izq;
	p->izq=aux->der;
	aux->der=p;
	p=aux;
	p->bal=bal(p);
	p->izq->bal=bal(p->izq);
	p->der->bal=bal(p->der);
	return p;
}
nodo*rotID(nodo*p)/*realiza la rotacion izquierda derecha*/{
	nodo*aux=p->izq;
	nodo*aux2=aux->der;
	p->izq=aux2->der;
	aux->der=aux2->izq;
	aux2->izq=aux;
	aux2->der=p;
	p=aux2;
	p->bal=bal(p);
	p->izq->bal=bal(p->izq);
	p->der->bal=bal(p->der);
	return p;
}
nodo*rotDD(nodo*p)/*realiza la rotacion derecha-derecha*/{
	nodo*aux=p->der;
	p->der=aux->izq;
	aux->izq=p;
	p=aux;
	p->bal=bal(p);
	p->izq->bal=bal(p->izq);
	p->der->bal=bal(p->der);
	return p;
}
nodo*rotDI(nodo*p)/*realiza la rotacion derecha-izquierda*/{
	nodo*aux=p->der;
	nodo*aux2=aux->izq;
	p->der=aux2->izq;
	aux->izq=aux2->der;
	aux2->der=aux;
	aux2->izq=p;
	p=aux2;
	p->bal=bal(p);
	p->izq->bal=bal(p->izq);
	p->der->bal=bal(p->der);
	return p;
}
void rot(nodo*p,nodo*j)/*invoca las rotaciones segun sea el caso de los balanceos de los nodos involucrados*/{
	if (p->bal==-2)
		if((p->izq->bal==-1)||(p->izq->bal==0))
			if(p==HEAD)
				HEAD=rotII(p);
			else
				if(p==j->izq)
					j->izq=rotII(p);
				else
					j->der=rotII(p);
		else
			if(p==HEAD)
				HEAD=rotID(p);
			else
				if(p==j->izq)
					j->izq=rotID(p);
				else
					j->der=rotID(p);
	else
		if(p->bal==2)
			if((p->der->bal==1)||(p->der->bal==0))
				if(p==HEAD)
					HEAD=rotDD(p);
				else
					if(p==j->izq)
						j->izq=rotDD(p);
					else
						j->der=rotDD(p);
			else
				if(p==HEAD)
					HEAD=rotDI(p);
				else
					if(p==j->izq)
						j->izq=rotDI(p);
					else
						j->der=rotDI(p);
}
void arbavl(int b,nodo*p,nodo*t,nodo*j,int c)/*inserta el numero en el arbol en donde corresponde*/{
	if((p)&&(p->num==b))
		c=1;
	if(HEAD==NULL)
		HEAD=crear(b);
	else
		if(!p)
			if(b<t->num)
				t->izq=crear(b);
			else
				t->der=crear(b);
		else{
			if(b<p->num){
				j=t;
				t=p;
				arbavl(b,p->izq,t,j,c);
			}
			else{
				j=t;
				t=p;
				arbavl(b,p->der,t,j,c);
			}
			if(c==1)
				if(p==HEAD)
					cout<<"ese numero es repetido"<<endl;
			if(c!=1){
				p->bal=bal(p);
				rot(p,j);
			}
	}
}
void inorden(nodo*p)/*imprime el arbol en inorden*/{
	if(p){
		inorden(p->izq);
		cout<<p->num<<endl;
		inorden(p->der);
	}
}
void preorden(nodo*p) /*imprime el arbol en preorden*/{
	if(p){
		cout<<p->num<<endl;
		preorden(p->izq);
		preorden(p->der);
	}
}
void postorden(nodo*p)/*imprime el arbol en postorden*/{
	if(p){
		postorden(p->izq);
		postorden(p->der);
		cout<<p->num<<endl;
	}
}
void main(){
	while(1==1){
		system("CLS");
		int a;
		cout<<"bienvenidos ya que has agregado el primer numero escoge de las siguiente opicones"<<endl;
		cout<<"1) Agregar un numero al arbol"<<endl;
		cout<<"2) imprimir en preorden"<<endl;
		cout<<"3) imprimir en inorden"<<endl;
		cout<<"4) imprimir en postorden"<<endl;
		cout<<"5) salir"<<endl;
		cin>>a;
		switch (a){
			case 1:{
				system("CLS");
				int b; int c=0;
				cout<<"cual es el numero que quieres agregar"<<endl;
				cin>>b;
				nodo*p=HEAD;
				nodo*t=NULL;
				nodo*j=NULL;
				arbavl(b,p,t,j,c);
					}break;
			case 2:{
				system("CLS");
				cout<<"preorden"<<endl;
				preorden(HEAD);
				   }break;
			case 3:{
				system("CLS");
				cout<<"inorden"<<endl;
				inorden(HEAD);
				   }break;
			case 4:{
				system("CLS");
				cout<<"postorden"<<endl;
				postorden(HEAD);
				 }break;
		}
		if(a==5)
			break;
	}
}
cualquier duda o observacion del codigo por favor comentenla y si esto esta prohibido eliminen mi post y por favor ponga el mensaje de prohibido y entendere lo que paso

sin ams uqe decir

Adrian "Sir. Dark Solink" DS
__________________
Sir. Dark Solink no ha iniciado sesión   Responder Citando
hombre Antiguo 28-sep-2008
 
Avatar de "Zero"
NOVIEMBRE, mes la patria de mi alma, de mi corazón
Epa Adrian!

Pensaba que no hibas a llegar. Pues sí, como no, no hay problema. No concidero malo, que comentes sobre árboles AVL, ABC, B+, etc...generales pero siempre pongamos atención a el tema actual.

Todos somos agentes fiscalizadores sobre el conocimiento que se imparte aquí.

Pronto traeré el próximo capítulo para ir metiéndole a la salsa del código aajajajajaja

Gracias por su apoyo.
Saellvertu!!












"_Z_"
__________________
PUENTE DEL MUNDO, CORAZÓN DEL UNIVERSO: PANA



VIVA MI PATRIA CARAJO!

"Zero" no ha iniciado sesión   Responder Citando
hombre Antiguo 28-sep-2008
 
Avatar de talon
Sin estado
porfavor no cometan el error que cometen muchos, eneseñar "GUIAS DE DISEÑO" y "NOTACION" antes que programar, dado que las guias de diseño son a la programacion , como la ortografia es a la escritura, son fundamentales. sobre todo si piensas hacer tu codigo reutilizable. Para el caso de C se ocupa la notacion hungara, en serio he visto muchos codigos, pero el ver uno que no esta correctamente escrito es una pesadilla. ya que tienes que deducir lo que el programador quiere hacer.
__________________
Regresa con tu escudo en la mano o debajo de el !!!!!!!(Madre espartana despidiendose de su hijo)
talon no ha iniciado sesión   Responder Citando
hombre Antiguo 28-sep-2008
 
Avatar de Sir. Dark Solink
Sin estado
concuerdo contigo talon pero mi manera de programar sigue el orden de que la funcion principal es la ultima y las funcione que invoca van arriba como sucede en pascall que debes mantener ese orden asi me mantengo yo

sobre los comentarios los hago asi para recordar siempre qeu fue lo que e hecho son simples y si ves el codigo trabajo cada funcion con la menor cantidad de lineas posible

zero te propongo algo a medida que vas avansando en los temas yo hire haciendo programas en pseudo-codigo y c++ para uqe los q esten aprendiendo vean en codigo lo que estas haciendo (tambien comentare los programas pero si debes hacer una correcion en los comentarios me lo dices y lo hago, otra cosa yo trabajo con visual studio c++ 2008 express edition, c++ mi vicio)

sin mas que decir

Adrian "Sir. Dark Solink" DS
__________________
Sir. Dark Solink no ha iniciado sesión   Responder Citando
hombre Antiguo 28-sep-2008
I, a whore for the cold world
@Talon : Te aviso que hoy en día la notación húngara está mal vista xP

Dew~
vertex@Symphony no ha iniciado sesión   Responder Citando
hombre Antiguo 02-oct-2008
 
Avatar de talon
Sin estado
sip... la notacion hungara esta mal vista pero es la que se ocupa en C++ , sino checa cualquier codigo standar , y notacion no solo es ponerle nombres a las variables, son una serie de reglas a seguir para escribir programas.
asi como en java se ocupa la notacion de camel, y en .NET la de pascal.

y esta mal vista por algunos porque resulta un poco dificil entender a los nombres por ejemplo:

//notacion hungara
DataTable dttblClients;
//notacion de pascal
DataTable dataTableClients;

y como observacion en web todavia se ocupa la este remanente de quitar las vocales para nombrar controles comunes, como los controles de formulario

textBoxUserName -> txtBxUserName
labelResults -> lblResults

Una pregunta Dark Solink ocupas C++ o Managed C++ , y como regularmente los programadores C++ apuestan por la velocidad pues evitan el C administrado. Y por ultimo porque no haces tu codigo en una clase en lugar de ocupar funciones las agrupas en un solo objeto que posea toda la funcionalidad
__________________
Regresa con tu escudo en la mano o debajo de el !!!!!!!(Madre espartana despidiendose de su hijo)
talon no ha iniciado sesión   Responder Citando

Respuesta



« Tema Anterior | Próximo Tema »

(0 miembros y 1 visitantes)
 
Herramientas

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Desactivado
Pingbacks are Desactivado
Refbacks are Desactivado


Desarrollado por: vBulletin® Versión 3.8.1
Derechos de Autor ©2000 - 2009, Jelsoft Enterprises Ltd.

La franja horaria es GMT -6. Ahora son las 02:44.
Página generada en 0,32999 segundos, con 10 consultas