logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak sprawdzić parzystość wskaźników w macierzy i losować współczynniki?

czesiek1212 05 Sty 2012 08:38 1251 9
REKLAMA
  • #1 10350662
    czesiek1212
    Poziom 10  
    Posty: 10
    Witam mam mały problem w moim programie nie wiem jak sprawdzić który wskaźnik jest parzysty a który nie parzysty w macierzy i podstawić za nie inne liczby.Próbowałem na wiele sposobów ale nie chce działać. A jeszcze jedno współczynniki powinny być losowane do macierzy ale nie działa mi to.Jeśli ktoś potrafi pomóc to będę wdzięczny nie ukrywam że dopiero zaczynam zabawę z programowaniem na procedurach. Poniżej zamieszczam moje zadanie jak i program.
    Zad.
    Zdefiniuj A,B,C macierze o wymiarach nx=10 i mx=10(max dopuszczalne)
    Współczynnik macierzy A,B-losowe (0...10), faktyczny wymiar macierzy "m" , "n" z klawiatury. Program ma obliczać C=A+B. Następnie ma sprawdzać, który współczynnik C jest parzysty, a który nieparzysty.
    - za parzyste ma być wstawiane "2"
    - za nieparzysty ma być wstawiane "1".
    A oto co do tej pory wykombinowałem :
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Proszę nie używać, w tytule postów, słów : "problem", "kłopot", "pomocy" itd. ani ich wariacji. Proszę to poprawić.-arnoldziq
  • REKLAMA
  • Pomocny post
    #2 10351299
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 300
    1. Program, nie może się nazywać tak samo, jak jedna z procedur :
    Kod: text
    Zaloguj się, aby zobaczyć kod
    Bo otrzymasz błąd powtórzenia identyfikatora.

    2. Skoro dane w macierzy mają być losowe od 0 do 10, to po co czytasz je z klawiatury ?
    Kod: text
    Zaloguj się, aby zobaczyć kod

    3. Typ danych...
    Kod: text
    Zaloguj się, aby zobaczyć kod
    Tu sprawa jest ciekawa i trzeba by to skonfrontować z jakimś matematykiem, ale... nie jestem przekonany, czy liczby typu rzeczywistego (real) mogę być normalnie rozpatrywane na płaszczyźnie parzyste-nieparzyste...
    Operatory Pascal-a, na 100% rozpatrują tylko dodatnie i ujemne liczby całkowite (integer). Jeżeli mam rację, i liczby parzyste i nieparzyste można rozróżnić tylko na zbiorze liczb całkowitych, to wypełnienie twoich macierzy liczbami typu real, także nie ma sensu.

    4. Sprawdzanie parzystości.
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Niby wszystko dobrze, ale skąd program ma wiedzieć, jaka jest wartość tego 's' ? W dodatku typu real -> pkt. 3
  • #3 10351347
    czesiek1212
    Poziom 10  
    Posty: 10
    ok dzięki sam nie wiem dlaczego losowałem i wczytywałem z klawiatury może dlatego że akurat ten fragment przekształciłem z mojego poprzedniego programu ale teraz działa a dalej nie mam pojęcia jak zrobić t z tymi liczbami parzystymi jeśli ma ktoś jakiś pomysł będe wdzięczny. To twoim zdaniem arnoldziq powinienem zmienic typ ? Jeśli tak to najlepiej na jaki?
  • REKLAMA
  • Pomocny post
    #4 10351367
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 300
    czesiek1212 napisał:
    To twoim zdaniem arnoldziq powinienem zmienic typ danych?

    Operator MOD, nie będzie działał z liczbami typu real....
    Przeczytaj dokładnie mój poprzedni post... zwłaszcza punkt 4.
  • REKLAMA
  • #5 10352412
    czesiek1212
    Poziom 10  
    Posty: 10
    Zamieszczam poprawiony program ale nadal mam problem z tą parzystością i nieparzystością jeśli może ktoś pomóc będę wdzięczny.

    A oto program poprawiony:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #6 10352447
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 300
    Zmień swoją procedurę sprawdzanie_parzystosci, na taką :
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #7 10352453
    krru
    Poziom 33  
    Posty: 1819
    Pomógł: 230
    Ocena: 214
    Ja chciałbym przypomnieć, że w Pascalu istnieje funkcja odd().
  • #8 10352526
    czesiek1212
    Poziom 10  
    Posty: 10
    niestety arnoldziq ten kod nie działa wyskakuje błąd a co do tej funkcji odd() może trochę jaśniej bo nie wiem o co chodzi? jak wspomniałem dopiero od niedawna ucze się delfi. Dziękuję za każdą pomoc.
  • REKLAMA
  • Pomocny post
    #9 10352585
    arnoldziq
    VIP Zasłużony dla elektroda
    Posty: 5376
    Pomógł: 789
    Ocena: 300
    Dziwne to wszystko, bo mi działa bez problemu.
    Po pewnych drobnych modyfikacjach... :P

    Jak sprawdzić parzystość wskaźników w macierzy i losować współczynniki?

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #10 10352616
    czesiek1212
    Poziom 10  
    Posty: 10
    dzięki działa teraz sobie to przestudiuje i zobacze gdzie robiłem błędy. Wielkie dzięki za pomoc.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik ma problem z programowaniem w Pascalu, polegający na sprawdzeniu parzystości elementów w macierzy oraz losowaniu współczynników. W odpowiedziach zasugerowano, aby zmienić typ danych z 'real' na 'integer', ponieważ operatory parzystości (mod) działają tylko na liczbach całkowitych. Użytkownik poprawił swój kod, ale nadal miał trudności z implementacją sprawdzania parzystości. Ostatecznie, po modyfikacjach, udało mu się uzyskać działający program, który wstawia '2' dla liczb parzystych i '1' dla nieparzystych.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA