
Problema con case y else
Publicado por titoclk (2 intervenciones) el 02/12/2013 16:38:30
Buenas tardes foreros, es un placer formar parte de este foro e intentaré aportar todo lo que pueda.
Me gustaría que alguien me ayudara porque por más horas que le echo no soluciono el fallo, llevo 5 meses programando y aprendiendo cosas día a día.
Tengo un problema con un procedure que estoy creando para manipular un array de registros y me da en el compilador un fallo que no se como resolver, la sintaxis es esta:
el fallo concretamente es: Fatal: syntax error, ";" expected but "ELSE" found
ojalá alguien me pudiera ayudar, gracias de antemano
PD: no me deja sangrar el código, pongo números para diferenciar los begin y end de cada cosa
Saludos
Me gustaría que alguien me ayudara porque por más horas que le echo no soluciono el fallo, llevo 5 meses programando y aprendiendo cosas día a día.
Tengo un problema con un procedure que estoy creando para manipular un array de registros y me da en el compilador un fallo que no se como resolver, la sintaxis es esta:
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
(* PROCED. MODIFICA UN PRODUCTO DE CESTA *)
Procedure modificar_producto(unacesta:cesta;nombre:string);
var
a,b,unisol:integer;
varchang,varnew,campo:string;
preuni:real;
begin (* 1 *)
unisol := 0;
preuni := 0;
(* pregunta al usuario nombre de prod. a modificar *)
write('Escriba el nombre del producto a MODIFICAR: ');
readln(nombre);
(* lo busque y si lo encuentra, le pregunte el campo a cambiar que valor nuevo quiere darle y realice actualizacion *)
for a:=1 to tammaxcesta do
begin (* 2 *)
if (nombre = unacesta[a].nombre) then
begin (* 3 *)
write('¿Que campo quieres cambiar?: ');
readln(varchang);
case (varchang) of
'nombre' : begin (* 4 *)
write('¿Por que valor lo cambiamos?: ');
readln(varnew);
unacesta[a].nombre := varnew;
end; (* 4 *)
'unidades_sol' : begin (* 5 *)
write('¿Por que valor lo cambiamos?: ');
readln(unisol);
unacesta[a].unidades_sol := unisol;
end; (* 5 *)
'precio_uni ' : begin (* 6 *)
write('¿Por que valor lo cambiamos?: ');
readln(preuni);
unacesta[a].precio_uni := preuni;
end (* 6 *)
else writeln('OPCION NO PERMITIDA');
end (* END DEL CASE *)
(* sino encuentra coincidencias muestra mensaje *)
else <---------------------------------------------------------------------------------------EL FALLO ME LO DA AQUI
writeln('PRODUCTO A MODIFICAR NO ENCONTRADO');
end; (* 3 *)
end; (* 2 *)
end; (* 1 *)
el fallo concretamente es: Fatal: syntax error, ";" expected but "ELSE" found
ojalá alguien me pudiera ayudar, gracias de antemano
PD: no me deja sangrar el código, pongo números para diferenciar los begin y end de cada cosa
Saludos
Valora esta pregunta


0