Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wpisywanie wartości do tabeli w delphi 7

maciekm7 27 Lis 2011 22:06 2085 12
  • #1 27 Lis 2011 22:06
    maciekm7
    Poziom 9  

    Witam
    Potrzebuje napisać program w delphi w trybie konsolowym który zastępował by elementy tablicy od 1 do n (liczby całkowite, n podawane z klawiatury) średnią arytmetyczna sąsiednich wyrazów. Oto kod który udało mi sie napisać:

    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    Prosze o pomoc w dokończeniu programu. Mile widziane wszelkie uwagi.

    0 12
  • #2 28 Lis 2011 07:10
    Dżyszla
    Poziom 42  

    Masz średnią arytmetyczną wyrazów sąsiednich, a nie indeksów. Rozróżnij, czym jest indeks, a czym wartość tablicy pod indeksu.

    Ponadto zastanów się, co z wyrazami na skraju tablicy?

    A poza tym zadanie wymaga sprecyzowania, czym jest sąsiedni element. Czy tylko po krzyżu, czy może cały kwadrat 8 elementów?

    Dodano po 42 [sekundy]:

    BTW - jeśli tworzysz tablicę dynamiczną, to zwalniaj ją na końcu!

    0
  • #3 29 Lis 2011 07:44
    maciekm7
    Poziom 9  

    witam
    Chodzi o całą tabele.
    Lewym sąsiadem pierwszego jest ostatni wyraz tabeli, a prawym sąsiadem ostatniego jest pierwszy wyraz tabeli.

    0
  • #4 29 Lis 2011 17:31
    Dżyszla
    Poziom 42  

    Mam rozumieć, że tabela jest "zawinięta" jak w grze "asteroids", gdzie przejście przez górę powoduje znalezienie się na dole, a przez lewą - po prawej? Bo trochę nie rozumiem jak sąsiadem pierwszego moze być ostatni... Na pewno tabela ma być dwuwymiarowa?

    Ponadto napisałem Ci, co robisz źle. Możesz się ustosunkować do tego, bo w zasadzie to poprzedni post w ogóle nie zawiera pytania żadnego, ani nie wnosi nic, do czego można by się odnieść więcej, niż napisałem wcześniej.

    0
  • #5 02 Gru 2011 22:53
    maciekm7
    Poziom 9  

    Witam ponownie
    Lewostronnym sąsiadem wyrazu o współrzednej [1,1] jest wyraz o współrzędnej [n,n] natomiast prawostronnym sąsiadem wyrazu o współrzednej [n,n] jest ten o współrzędnej [1,1].
    Starałem się poprawić program i wyszło mi z tych prób coś takiego:

    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    Niestety pojawia mi się błąd o treści: [Error]tablica.dpr(16):Incompatible types: 'Integer' and 'Extended' Co moge zrobić aby pozbyć sie błędu i skończyć program.

    0
  • #7 03 Gru 2011 23:33
    maciekm7
    Poziom 9  

    Program zaczął działać lecz nie wyświetla tablicy oraz na koniec jego działania wyskakuje błąd o treści: Runtime error 203 at 00403C7C O co chodzi tym razem??
    Oto aktualny kod

    Kod: delphi
    Zaloguj się, aby zobaczyć kod


    Dodano po 1 [godziny] 17 [minuty]:

    po konsultacji z kolegą pojawiły sie zmiany w programie
    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    Niestety błąd nie zniknął. Doczytałem że błąd związany jest z brakiem pamięci. jak można go zniwelować?

    0
  • #8 04 Gru 2011 10:11
    Dżyszla
    Poziom 42  

    203 = Heap overflow error
    Błąd może się pojawiać na skutek tego, co napisałem w ostatniej linijce pierwszego postu. To nie jest brak pamięci, tylko przekroczenie rozmiaru sterty.

    Masz taki bałagan z wcięciami i sekcjami begin-end, że kod jest nie do zanalizowania.

    0
  • #9 04 Gru 2011 20:37
    maciekm7
    Poziom 9  

    Poprawiłem program tzn. po redukowałem endy i beginy. A jak zwolnić tabele na końcu programu?? Poniżej załączam poprawiony kod.

    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    0
  • #11 04 Gru 2011 22:49
    maciekm7
    Poziom 9  

    a w którym miejscu te polecenie wstwić?

    0
  • #13 27 Gru 2011 21:51
    maciekm7
    Poziom 9  

    Witam
    Okazało się że program ma wyświetlać tabele jednowymiarową. Poprawiłem trochę kod i upiększyłem go lecz niestety program nie wyświetla tabeli. Zamiast niej pojawia się 0. O co chodzi tym razem. Prosze o pomoc w rozwiązaniu problemu. Oto kod:

    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    0