Pascal/Turbo Pascal - PROGRAMA DE Adivinanzas

 
Vista:

PROGRAMA DE Adivinanzas

Publicado por Walter (5 intervenciones) el 31/07/2012 22:00:28
hola gente pido ayuda urgente!! necesito hacer un programa de adivinanzas con arboles.. alguien me ayuda por favor???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

PROGRAMA DE Adivinanzas

Publicado por ramon (2158 intervenciones) el 31/07/2012 22:23:20
Puedes poner mas información de lo que es esa adivinanzas, porque al programa tienes que
entrarle datos sino mal.
Di deque tata ria el tema o los temas a , adivinar.
Lo de los arboles se supone arboles binarios.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROGRAMA DE Adivinanzas

Publicado por wal (5 intervenciones) el 31/07/2012 22:37:25
hola ramon ahí subí como intente hacer el programa, tengo que hacer un juego de adivinanzas que me pregunte pistas de si es animal o vegetal y me deje responder que lo que es.. bueno ahí esta como lo hice pero no lo puedo hacer correr y no funciona como debería le probé de todas formas. mil gracias

program arbol;

uses
crt, dos;

type
puntero=^Nodo;
Nodo=record
dato:string;
der:puntero;
izq:puntero;
end;
var
cabecera: puntero;
aux1,anterior, antecesor:puntero;
palabra:string;
pista:puntero;
resultado:puntero;

procedure crearNodo(texto:string,var nuevoNodo:puntero);
var
nodoNuevo:puntero;
begin
new (nodoNuevo);
if (aux1<>nil)
begin
nodoNuevo^.dato:=texto;
nodoNuevo^.der:=nil;
nodoNuevo^.izq=nil;
end;
nuevoNodo:=nodoNuevo;
end;

BEGIN
clrscr;
{los negativos bajan por la rama izquierda,
los positivos bajan por la derecha}
crearNodo('Animal o vegetal',aux1);
Writeln('Bienvenidos al programa de adivinazas, responda S o N');

while

cabecera:=aux1;
while (aux1<>nil)
begin
Writeln(aux1^.dato);
readln(palabra);
If (palabra='S')
begin
{se debe recorrer por la derecha}
antecesor:=anterior;
anterior:=aux1;
aux1:=aux1^.der;
end else
begin
{se toma por defecto N}
{sedebe recorrer por la izquierda}
antecesor:=anterior;
anterior:=aux1;
aux1:=aux1^.izq;
end;
end;
{tengo que saber si sali por SI o por NO}
if (palabra='S')
begin
{gane}
writeln('te gane');
end else
begin
{perdi-dame una pista-que era}
Writeln('dame una pista');
Readln(palabra);
crearNodo(palabra,pista);
Writeln('dame el resultado');
Readln(palabra);
crearNodo(palabra,resultado);
pista^.izq=anterior;
pista^.der:=resultado;
anteceor^.izq=pista;
end;
write('Quiere seguir jugando, responda S o N');
readln(
END.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROGRAMA DE Adivinanzas

Publicado por ramon (2158 intervenciones) el 31/07/2012 23:28:57
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
{Lo tienes corregido}
 
program arbol;
 
uses
crt, dos;
 
type
puntero=^Nodo;
Nodo=record
dato:string;
der:puntero;
izq:puntero;
end;
var
cabecera: puntero;
aux1,anterior, antecesor:puntero;
palabra:string;
pista:puntero;
resultado:puntero;
 
procedure crearNodo(texto:string;var nuevoNodo:puntero);
var
nodoNuevo:puntero;
begin
new (nodoNuevo);
if aux1<>nil then
begin
nodoNuevo^.dato:=texto;
nodoNuevo^.der:=nil;
nodoNuevo^.izq:=nil;
end;
nuevoNodo:=nodoNuevo;
end;
 
BEGIN
clrscr;
{los negativos bajan por la rama izquierda,
los positivos bajan por la derecha}
crearNodo('Animal o vegetal',aux1);
Writeln('Bienvenidos al programa de adivinazas, responda S o N');
cabecera:=aux1;
while aux1<>nil do
begin
Writeln(aux1^.dato);
readln(palabra);
If palabra='S' then
begin
{se debe recorrer por la derecha}
antecesor:=anterior;
anterior:=aux1;
aux1:=aux1^.der;
end
else
begin
{se toma por defecto N}
{sedebe recorrer por la izquierda}
antecesor:=anterior;
anterior:=aux1;
aux1:=aux1^.izq;
end;
end;
{tengo que saber si sali por SI o por NO}
if palabra='S' then
begin
{gane}
writeln('te gane');
end
else
begin
{perdi-dame una pista-que era}
Writeln('dame una pista');
Readln(palabra);
crearNodo(palabra,pista);
Writeln('dame el resultado');
Readln(palabra);
crearNodo(palabra,resultado);
pista^.izq:=anterior;
pista^.der:=resultado;
antecesor^.izq:=pista;
end;
write('Quiere seguir jugando, responda S o N');
readln;
END.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROGRAMA DE Adivinanzas

Publicado por wal (5 intervenciones) el 31/07/2012 23:38:46
muchas gracias!!! ahora lo hago correr
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROGRAMA DE Adivinanzas

Publicado por wal (5 intervenciones) el 01/08/2012 19:46:26
che no me funciona el ejercicio :( que puede ser? le miro y no le encuentro el error, osea al poner S para empezar a jugar y ya me dice te gane y sale
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROGRAMA DE Adivinanzas

Publicado por ramon (2158 intervenciones) el 01/08/2012 21:38:26
Mira el programa sigue la pauta que tu ledas y no tienes puesto ninguna repetición en el
que le haga seguir por ello se sale.
En esta sección debes de ponerlo.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
BEGIN
clrscr;
{los negativos bajan por la rama izquierda,
los positivos bajan por la derecha}
crearNodo('Animal o vegetal',aux1);
 
repeat  {Ejemplo}
 
Writeln('Bienvenidos al programa de adivinazas, responda S o N');
cabecera:=aux1;
while aux1<>nil do
begin
Writeln(aux1^.dato);
readln(palabra);
If palabra='S' then
begin
{se debe recorrer por la derecha}
antecesor:=anterior;
anterior:=aux1;
aux1:=aux1^.der;
end
else
begin
{se toma por defecto N}
{sedebe recorrer por la izquierda}
antecesor:=anterior;
anterior:=aux1;
aux1:=aux1^.izq;
end;
end;
{tengo que saber si sali por SI o por NO}
if palabra='S' then
begin
{gane}
writeln('te gane');
end
else
begin
{perdi-dame una pista-que era}
Writeln('dame una pista');
Readln(palabra);
crearNodo(palabra,pista);
Writeln('dame el resultado');
Readln(palabra);
crearNodo(palabra,resultado);
pista^.izq:=anterior;
pista^.der:=resultado;
antecesor^.izq:=pista;
end;
write('Quiere seguir jugando, responda S o N');
readln(res);
until (res = 'N') or (res = 'n');  {Del Ejemplo}
END.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROGRAMA DE Adivinanzas

Publicado por wal (5 intervenciones) el 01/08/2012 21:41:05
gracias es que tenia un mar de dudas ahora de apoco estoy entendiendo cada vez mejor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROGRAMA DE Adivinanzas

Publicado por ramon (2158 intervenciones) el 01/08/2012 21:58:43
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{A qui tienes puesto eso solo pon la variable sige como char}
 
BEGIN
clrscr;
{los negativos bajan por la rama izquierda,
los positivos bajan por la derecha}
crearNodo('Animal o vegetal',aux1);
Writeln('Bienvenidos al programa de adivinazas, responda S o N');
repeat
cabecera:=aux1;
while (aux1<>nil) do
begin
Writeln(aux1^.dato);
readln(palabra);
If  palabra='S' then
begin
{se debe recorrer por la derecha}
antecesor:=anterior;
anterior:=aux1;
aux1:=aux1^.der;
end else
begin
{se toma por defecto N}
{sedebe recorrer por la izquierda}
antecesor:=anterior;
anterior:=aux1;
aux1:=aux1^.izq;
end;
end;
{tengo que saber si sali por SI o por NO}
if (palabra='S') then
begin
{gane}
writeln('te gane');
end else
begin
{perdi-dame una pista-que era}
Writeln('dame una pista');
Readln(palabra);
crearNodo(palabra,pista);
Writeln('dame el resultado');
Readln(palabra);
crearNodo(palabra,resultado);
pista^.izq:=anterior;
pista^.der:=resultado;
antecesor^.izq:=pista;
end;
write('Quiere seguir jugando, responda S o N');
 repeat
 segi := readkey;
 until upcase(segi) in['N','S'];
 
 clrscr;
until (segi = 'n') or (segi = 'N');
END.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROGRAMA DE Adivinanzas

Publicado por Jorgue (1 intervención) el 13/11/2015 14:35:40
Tu codigo es una bosta, no sirve para nada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar

PROGRAMA DE Adivinanzas

Publicado por ramon (2158 intervenciones) el 13/11/2015 16:58:25
Disculpa pero el programa solo se arreglo para que funcionase sin errores,
Pero si tu lo realizas mejor adelante,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

PROGRAMA DE Adivinanzas

Publicado por xve (25 intervenciones) el 13/11/2015 18:25:22
Muéstranos como se hace Jorge!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar