Takže od začátku:
1) Matice MxN. Co je M a N? Pevně dané konstanty, nebo něco, co zadá uživatel? V prvním případě si můžeš matici deklarovat jako array[1..M,1..N] of nějaký číselný typ. Ve druhém ji buď deklaruješ větší a využiješ z ní jenom ten kousek o zadaných rozměrech, nebo ji definuješ jako jednorozměrné dynamické pole (array[něco..něco], ukazatel na to pole, Getmem a podobně, přístup přes index řádek*šířka+sloupec a bacha na to, jestli chceš indexovat od nuly nebo od jedničky; ale to píšu jen tak pro úplnost, není to úplně triviální a asi to tak dělat nebudeš).
2) Náhodná čísla. Random(x) ti dá náhodné číslo od 0 do x-1, takže na 1..99 se dostaneš jak? (nápověda: Random(něco)+něco)
Jednou na začátku programu je vhodné inicializovat generátor náhodných čísel příkazem Randomize;, jinak ti bude při každém spuštění chodit pořád stejná posloupnost čísel.
3) Procházení dvojrozměrného pole prvek po prvku:
for i:=1 to pocet_radku do
begin
...cokoli, co potrebujes udelat pred zacatkem radku...
for j:=1 to pocet_sloupcu do
begin
...neco udelej s prvkem na indexu [i,j]...
end;
...cokoli, co potrebujes udelat za koncem radku...
end;
Tak, jak je to napsané, je vnější cyklus pro i a vnitřní pro j, neboli pro každý řádek (i) se provede cyklus pro j od prvního do posledního sloupce (takže pole procházíš jakoby po řádcích zleva doprava a odshora dolů). Samozřejmě to není jediná možnost: můžeš pořadí prohodit a procházet pole po sloupcích, nebo některý z těch cyklů vynechat a projít jenom jeden řádek nebo jeden sloupec - záleží jenom na tom, co chceš s polem dělat.
4) V zadání vidím jenom to, že výsledek (součty) se má uložit do jednorozměrného pole, ale neříká se tam nic o tom, jestli je potřeba uložit celou matici. Možná si můžeš tu šaškárnu s dvojrozměrným polem ušetřit a všechny výsledky vyřídit v jednom kroku:
- Dvojitý cyklus, přesně jak jsem ho napsal.
- Před začátkem každého řádku si vynuluješ první proměnnou - mezisoučet. Dále pro každý prvek řádku:
-- Vygeneruješ si náhodné číslo a uložíš ho do druhé proměnné.
-- Vypíšeš ho na obrazovku (Write(...);).
-- Přičteš ho k mezisoučtu.
- Na konci řádku zalomíš řádek na obrazovce (Writeln;) a mezisoučet uložíš do toho jednorozměrného pole na index i.
Pak už je jedno, jestli ty součty vypíšeš až potom v dalším cyklu, nebo rovnou na konec každého řádku v tom cyklu, ve kterém je počítáš. Teoreticky by se vlastně úplně dalo obejít bez polí a vystačit si jenom s těmi dvěma proměnnými, ale zadání je zadání :-).