hola nesesito hacer para la facultad un algoritmo que rellene un vector A de 40 elementos con numeros consecutivos a partir de un numero M ingresado por teclado y luego mostrar cada posicion del vector con su valor y me da un error en la compilacion pero no entiendo cual es. si alguien encuentra el error le agradeceria que me lo diga.
esto fue lo que hice.
Bien, no dices qué compilador estás usando, asumiré que es Turbo Pascal, entonces...
[pascal:6ja68gjt]
- program vector;
-
- uses wincrt; { <--- wincrt no existe en Turbo Pascal, has querido usar crt }
-
[/pascal:6ja68gjt]
[pascal:6ja68gjt]
- for i:= 2 to 40 do
- m:=m+1; { <--- este for solo ejecuta hasta acá }
- vector_a[i]:=m;
- end { <--- por lo tanto este end está de más }
-
[/pascal:6ja68gjt]
Has olvidado poner un begin inmediatamente después del for. Recuerda que si un ciclo for debe ejecutar más de una sentencia entonces todas las sentencias tienen que estar dentro de un bloque begin... end; así:
[pascal:6ja68gjt]
-
- for i:= 2 to 40 do
- begin
- m:=m+1;
- vector_a[i]:=m;
- end;
-
[/pascal:6ja68gjt]
También recuerda que las sentencias terminan con punto y coma.
[pascal:6ja68gjt]
- for i:=1 to 40 do {es en esta linea donde me da el error}
- writeln('la posicion es: ' i ' el valor es: ' vector[i] );
- end { <--- este end está de más }
-
[/pascal:6ja68gjt]
Tal como dije recién, si el for solo ejecutará una sentencia no es necesario encerrar esa sentencia con begin... end.
La regla es "para cada begin debe corresponderle un end" excepto en la sentencia case, que lleva end pero no begin.
Un saludo.