Pascal/Turbo Pascal - Porque no me resta ni me divide

 
Vista:

Porque no me resta ni me divide

Publicado por Nelson (3 intervenciones) el 06/08/2010 03:43:02
El pregrama es este:

USES CRT;
VAR
A,B,C,D,E,F,G,H:LONGINT;
A2,B2,C2,D2,E2,F2,G2,H2:CHAR;
R:REAL;

BEGIN
CLRSCR;
FOR A:=1 TO 4 DO
BEGIN

CASE A OF
1: BEGIN R:=1+2; A2:='+'; END;
2: BEGIN R:=1-2; A2:='-'; END;
3: BEGIN R:=1*2; A2:='*'; END;
4: BEGIN R:=1/2; A2:='/'; END;
END;
WRITELN(R:1:5);
writeln('');

FOR B:=1 TO 4 DO
BEGIN

CASE B OF
1: BEGIN R:=R+3; A2:='+'; END;
2: BEGIN R:=R-3; A2:='-'; END;
3: BEGIN R:=R*3; A2:='*'; END;
4: BEGIN R:=R/3; A2:='/'; END;
END;
WRITELN(R:1:5);

END;
END;
READKEY;
END.

Lo que me aparece es esto:

3.00000-------(aqui voy a poner porque)=1+2

6.00000-------el resultado de 1+2 (3) +3=6
3.00000-------pero aqui ME DEJA EL NUMERO IGUAL y se repite en lo demas
9.00000-------(1+2)*3
3.00000-------ME LO DEJA IGUAL

-1.00000------=1-2

2.00000------
-1.00000------ME LO DEJA IGUAL
-3.00000------
-1.00000------ME LO DEJA IGUAL

Y ASI LO MIS CON EL 1*2 Y EL1/2
ME SUMA Y MULTIPLICA, PERO NO ME RESTA NI DIVIDE

CUAL ES EL ERROR
O COMO PODRIA HACERLO BIEN.
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

RE:Porque no me resta ni me divide

Publicado por NELSON (3 intervenciones) el 06/08/2010 03:52:16
PDT:

puse tantas variables sin querer porque el programa era mas largo

y se supone que con las variables a2, b2,c3........podia saber la respuesta a este problema.

Usando los numeros del 1 al 9 sin alterar su orden y usando las 4 operaciones basicas

Cuantos y cuales dan como resultado 100?
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

RE:Porque no me resta ni me divide

Publicado por martin (74 intervenciones) el 06/08/2010 12:29:42
Hola Nelson:
Me guataría ayudarte, pero no entiendo bien lo que quieres.
Es cierto que sobran muchas variables declaradas, pero no hacen mal.
Para conocer cada resultado de 'R' deberás insertar su salida (writeln) después de cada operación de asignacion dentro del 'CASE':


PROGRAM Averigua_error;
USES CRT;
VAR
A,B,C,D,E,F,G,H:LONGINT;
A2,B2,C2,D2,E2,F2,G2,H2:CHAR;
R:REAL;

BEGIN
CLRSCR;
FOR A:=1 TO 4 DO

CASE A OF
1: BEGIN R:=1+2; A2:='+'; writeln('R = ',R:1:2)END;
2: BEGIN R:=1-2; A2:='-'; writeln('R = ',R:1:2)END;
3: BEGIN R:=1*2; A2:='*'; writeln('R = ',R:1:2)END;
4: BEGIN R:=1/2; A2:='/'; writeln('R = ',R:1:2)END;
END;
writeln;
writeln;

FOR B:=1 TO 4 DO

CASE B OF {En esta parte 'R' arrastra su valor anterior}
1: BEGIN R:=R+3; A2:='+'; writeln('R = ',R:1:2)END;
2: BEGIN R:=R-3; A2:='-'; writeln('R = ',R:1:2)END;
3: BEGIN R:=R*3; A2:='*'; writeln('R = ',R:1:2)END;
4: BEGIN R:=R/3; A2:='/'; writeln('R = ',R:1:2)END;
END

END.

Desconozco el sentido de 'A2' pero puedes agregarlo dentro de cada salida (writeln).
Un saludo y espero te solucione el problema.
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

RE:Porque no me resta ni me divide

Publicado por NELSON (3 intervenciones) el 06/08/2010 20:40:31
HICE LO QUE ME DIJISTE PERO SIGUE SIN RESTAR Y SIN DIVIDIR.

LO QUE QUERIA SABER CON A2,B2,C2,D2,E2,F2,G2,H2
ES LAS OPERACIONES QUE DEBO REALIZAR PARA QUE ME DE 100
Y CUANTOS POSIBLES SON.


USES CRT;
VAR
A,B,C,D,E,F,G,H:LONGINT;
A2,B2,C2,D2,E2,F2,G2,H2:CHAR;
R:REAL;
BEGIN
CLRSCR;
FOR A:=1 TO 4 DO
BEGIN
CASE A OF
1: BEGIN R:=1+2; A2:='+';WRITELN(R:1:5); END;
2: BEGIN R:=1-2; A2:='-';WRITELN(R:1:5); END;
3: BEGIN R:=1*2; A2:='*';WRITELN(R:1:5); END;
4: BEGIN R:=1/2; A2:='/';WRITELN(R:1:5); END;
END;


FOR B:=1 TO 4 DO
BEGIN
CASE B OF
1: BEGIN R:=R+3; B2:='+';WRITELN(R:1:5); END;
2: BEGIN R:=R-3; B2:='-';WRITELN(R:1:5); END;
3: BEGIN R:=R*3; B2:='*';WRITELN(R:1:5); END;
4: BEGIN R:=R/3; B2:='/';WRITELN(R:1:5); END;
END;

............................................................
(SIGUE REMPLAZANDO B POR LAS LETRAS SIGUIENTES)
(SIGUE HASTA H)
(Y 3 LO INTERCAMBIO POR LOS NUMERO SIGUIENTES)
(SIGUE HASTA 9)
...........................................................
...........................................................

IF(R=100)THEN
BEGIN
WRITELN(A2,B2,C2,D2,E2,F2,G2,H2);
END;

END;
END;
READKEY;
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