Znajdz element otoczenia Pascal

0

Witam

Miałem zadanie do zrobienia ale nie mam kompletnie pojęcia jak się do tego zabrać. Od razu piszę że nie jest mi potrzebne tylko suche rozwiązanie bo ono mi nic nie da. Chciałbym dowiedzieć się jak napisać ten program i co po kolei mam robić i mniej więcej jak to zrobic. Muszę nauczyć się mniej więcej tworzenia takich elementów.

Program:

Dana jest 2-wymiarowa tablica nieujemnych liczb całkowitych. Przez otoczenie elementu t[i,j] tej tablicy rozumiemy wszystkie elementy, które stykają się z tym elementem tzn. leżą w poprzedniej lub w następnej względem j kolumnie i tym samym wierszu albo poprzednim lub następnym względem i wierszu i tej samej kolumnie . Tak więc, w zależności od położenia elementy tablicy będą miały 2,3 albo 4-elementowe otoczenie.

Napisać program, który dla tablicy o maksymalnej liczbie 20 wierszy i 30 kolumnach znajdzie element(tzn. jego numer wiersza i kolumny) dla którego iloczyn elementów jego otoczenia jest maksymalny.

Preferowany będzie rozwiązanie z funkcją otoczenie(var t:tablica, const iel, jel:Integer):integer , która dla elementu tablicy t[iel,jel] obliczać będzie iloczyn elementów jego otoczenia.

Nie mam pojęcia jak się do tego zabrać więc proszę o wskazówki.

0

no ale czego nie wiesz? - wszystkiego? - to zacznij od jakiegoś kursu z podstawami. Wiesz co to jest tablica? - nie - kurs z podstawami. Wiesz co to jest funkcja? - nie - kurs z podstawami. Wiesz co to jest pętla? - nie - kurs z podstawami. Tutaj nie ma czego tłumaczyć - wszystko masz napisane w treści zadania. Narysuj sobie siatkę np. 10x10 na kartce w kratkę, ponumeruj wiersze i kolumny i zastanów się a) jak sprawdzić ilu elementowe otoczenie ma dana komórka. Jak to będziesz wiedział to podstawy pacala

0

Rozumiem co to jest pętla, co funkcja i rozumiem podstawy. Nie rozumiem jak mam to wszystko sklepać i napisać odpowiedni program.
Mógłbyś mi mniej więcej rozpisać co i jak mam po kolei robić ? Nie chcę programu tylko drogę jaką mam wykonać aby napisać program.

0

no ale ja naprawdę nie wiem co można tutaj więcej napisać poza tym co jest w zadaniu. Cały program to może ze 20-30 linijek kodu więc co tu jeszcze opisywać?
Już Ci napisałem - wymyśl najpierw jak sprawdzić ilu elementowe otoczenie ma dana komórka. Jak to będziesz wiedział to napisz funkcję, która zwróci iloczyn wartość wszystkich elementów otoczenia danej komórki. A jak nie potrafisz w pascalu to napisz go słownie i daj tutaj to albo ktoś Ci napisze, że dobrze i podpowie jak to na pascal przenieść albo pokaże gdzie masz błąd

0

Mam takie coś ale nie wiem czy dobrze zrobione, proszę o poprawę błędów i o wyjaśnienie niektórych kwestii bo wszystkiego sam nie pisałem.

program il_otoczenie ;

var
  t:array[1..20, 1..30] of Integer;
  lw,lk:Integer;
  wmax,kmax:Integer;

function otoczenie(var t:tablica;iel,jel:Integer):Integer
var
  o:Integer
begin
 o:=1

if iel>1 then
o:=o*t[iel-1,jel];
if iel<n then
o:=o*t[iel+1,jel];
if jel>1 then
o:=o*t[iel,jel-1];
if jel<n then
o:=o*t[iel,jel+1];

otoczenie:=o;
end;

max:=-1

for i:=1 to lw do
 for i:=1 to lk do

if otoczenie(t,i,j,lw,lk)>max then

begin
  wmax:=i;
  kmax:=j;
  max:=otoczenie(t,i,j,lw,lk);
end;
end.

0
  1. nigdzie nie ustawiasz wartości n, nawet nie masz go zadeklarowanego
  2. tablica nie jest kwadratowa więc zamiast sprawdzać < n musisz sprawdzać < zarówno dla wymiaru i jak i j

1 użytkowników online, w tym zalogowanych: 0, gości: 1