Program ma wygladac tak: tablica musi byc o wymiarach (10 x 10), po uruchomieniu programu ma zostać wyświetlona tabliczka mnożenia.
uses crt;
type
tab2=array[1..10,1..10] of byte;
procedure info;
begin
clrscr;
writeln('Program generuje i wyswietla tabilce dwuwymiarowa.');
writeln;
end;
procedure generuj(var tab2x2:tab2);
var
i,j:byte;
begin
randomize;
for j:=1 to 10 do
begin
for i:=1 to 10 do
begin
tab2x2[i,j]:=random(10);
end;
end;
end;
procedure drukuj(tab2x2:tab2);
var
i,j:byte;
begin
for j:=1 to 10 do
begin
for i:=1 to 10 do
begin
write(tab2x2[i,j],' ');
end;
writeln;
end;
end;
var
tab2x2:tab2;
begin
info;
generuj(tab2x2);
drukuj(tab2x2);
readln;
end.
tu mam programik na generowanie losowej tablicy 10x10. teraz na podst tego jak zrobić żeby zrobił tabliczkę mnożenia do dziesięciu. proszę o pomoc bo w sumie nie wiem jak to zrobić a nie chodzi tu o użycie 100 zmiennych i wpisanie ręcznie bo to się mija z celem
uses crt;
var i,j:integer;
tab:array[1..10,1..10] of integer;
begin
clrscr;
for i:=1 to 10 do
begin
for j:=1 to 10 do
begin
tab[i,j]:=i*j;
write(tab[i,j]:4);
end;
writeln;
end;
readln;
end.
nie mam możliwości kompilacji programu więc mogą być jakieś błędy.
uses crt;
var
i,j:integer;
type
tab=array[1..10,1..10] of integer;
begin
for i:=1 to 10 do
begin
for j:=1 to 10 do
begin
tab[i,j]:=i*j;
write(tab[i,j]:3);
end;
writeln;
end;
readln;
end.
uporządkowałem troszkę ale nie trybi w tym miejscu
Bo „tab” to zmienna, a nie typ, jak zadeklarowano.
const
N = 10;
var
a: array[1..N, 1..N] of byte;
i, j: 1..N;
begin
for i := 1 to N do
begin
for j := 1 to N do
begin
a[i, j] := i * j;
write(a[i, j]:4);
end;
writeln;
end;
readln;
end.
Nikt Ci nie mówił o tym że użycie kolejnej pętli to zwiększenie ilości obliczeń przez co zwiększenie czasu działania programu? Ten program jest oczywiście banalny ale na takich programach można się nauczyć ograniczania ilości zbędnych iteracji. Miała być użyta tablica i została, po co kolejną pętle która zrobi to samo a tylko zwiększy ilość obliczeń.
Tu nie została użyta tablica, mam na myśli jako tablica. Tu został użyty element tablicy (owszem inny element na każdym kroku) jako zmienna tymczasowa na dodatek zupełnie zbędna w tym kontekście. Użycie dodatkowej pętli mniej spowalnia program niż użycie tablicy 10x10 jako jednej tymczasowej zmiennej double.
Oczywiście, absolutnie niema wpływu. Tylko mnożenie numeru wiersza przez ilość kolumn w tablice; dodanie do tego numeru kolumny; pomnożenie wyniku przez 8; dodanie adresu początku tablicy. To wszystko przy przypisaniu, a potem jeszcze raz przy pobieraniu wartości. Ale co to za wpływ, można tym wszystkim się nie przyjmować.
Hm. Najpierw przekonujesz nas, że można wypełnić tablicę wartościami, bez używania tablicy. Potem sugerujesz, że bardziej opłaca się rozbijać na dwie pętle (testowałeś?, bo to nawet na logikę jest nadkładaniem instrukcji).
To, że tablica leży w pamięci, nie ma znaczenia dla czasu wykonywania się, a odniosłem wrażenie, że porównałeś zajętość pamięci do czasu wykonywania się.
Jak na razie, to skaczesz od jednego tematu do drugiego, a nic konkretnego z tego nie wynika. Ani dla nas, ani dla autora tematu.