Witam. Mam problem. Chcę zrobić program, który do tablicy 10-elementowej wpisuje liczby od 1 do 10.
program tablicajednowymiarowa;
uses crt;
var
k:integer;
A:ARRAY[1..10] of integer;
begin
clrscr;
for k:=1 to 10 do read(A[k]);
clrscr;
for k:=1 to 10 do write(A[k]);
readln;
end.
Myślałem, że pascal weźmie sobie po kolei liczby od 1 do 10 z k i je wypisze. No, ale nie działa dobrze program. Na stronie http://turbopascal.skryptoteka.pl/11.html znalazłem kod, gdzie trzeba wpisywać liczby, które potem zostaną wpisane do tablicy. ten kod wygląda tak:
program tablicajednowymiarowa;
uses crt;
var
k:integer;
A:ARRAY[1..10] of integer;
begin
clrscr;
writeln('Wprowad« kolejno liczby');
for k:=1 to 10 do read(A[k]);
clrscr;
for k:=10 downto 1 do write(A[k],',');
readln;
end.
Al, co dziwne, ten program też nie działa dobrze. Co tutaj trzeba poprawić? Czy jest możliwość, że bez ręcznego wprowadzania danych do programu program zapisze do tablicy kolejno liczby od 1 do 10?
program tablicajednowymiarowa;
uses crt;
var
k:integer;
A:ARRAY[1..10] of integer;
begin
clrscr;
for k:=1 to 10 do A[k] := k;
clrscr;
for k:=1 to 10 do write(A[k]);
readln;
end.
Instrukcja read() wczytuje wartość (liczbę), a jeśli chcesz by każde wczytanie potwierdzać ENTER’em, użyj instrukcji readln() - być może naciskałeś ENTER (zamiast robić przerwy - spacje - przy wpisywaniu kolejnych liczb) i stąd to wyjście z programu?
Kod grzelixa
for k:=1 to 10 do write(A[k]);
poprawiłbym na taki, co robi przerwy pomiędzy liczbami, bo się “zlewają”.