Dentro del "case" puedes colocar varias sentencias para cada opción.
Algunas modificaciones:
- Puedes declarar la variable "tipo" como "char"
[li]Y que lo lea no con "read" sino con "upcase(readkey)"[/li]
write('Introduzca el tipo de llamada. [N]acional, [P]rovincial, [L]ocal: ');
tipo:=upcase(readkey);
[li]Dentro del "case...of"[/li]
CASE tipo OF
"N": begin
duracionN:=duracionN+duracion;
N:=N+1
end;
"P": begin
duracionP:=duracionP+duracion;
P:=P+1
end;
"L": begin
duracionL:=duracionL+duracion;
L:=L+1
end
else
write('Opcion no permitida.');
END;
[li]Antes de pasar a las líneas siguientes, debes considerar una cosa: Si se ingresa una opción no permitida, la durac_total no debe modificarse. Entonces ¿Qué hacemos con el tiempo ya ingresado? ¿Lo obviamos y que se vuelva a ingresar otro tiempo y tipo de llamada? o ¿Aceptamos el tiempo y pedimos solamente que especifique nuevamente el tipo de llamada? [/li]
[li]Como ves son dos opciones... ¿Qué decides?, de acuerdo a lo que respondas (o propongas) podemos seguir modificando el programa[/li]
[li]Por otro lado, la duracion total (durac_total) y la cantidad total de llamadas (numero) sería mejor colocarlos fuera del while.[/li]
durac_total := duracionN + duracionP + duracionL;
numero := N + P + L;
[/list]
Saludos.