Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Losowanie w pascalu - błąd w kodzie

19 Feb 2009 20:48 822 4

  • Level 18  
    Witam!
    Postanowiłem przypomnieć sobie Pascala i natrafiłem na problem z fragmentem kodu:

    uses dos,crt;

    var
    sentencja:array[0..96] of string=(
    'tekst',
    'tekst', {96 elementów...}
    {...});


    Begin
    randomize;
    sentencja:=random(96); {specjalnie pomijam dodanie 1 elementu ponieważ nie to jest problemem.}
    end;

    begin
    writeln(sentencja);
    end;

    Jako że, to jest część większego projektu zamieszczam tylko napisany na potrzeby wytłumaczenia problemu wycinek..

    Podczas kompilacji wyświetla mi się błąd.
    Incompatible types: got "Extended" expected "Array[0..96] of ShortString"

    Nie wiem co jest nie tak, bo nigdy losowania w pascalu nie robiłem. Proszę o pomoc.
    Wskazanie gdzie popełniam błąd albo napisanie w poprawny sposób tego kodu.
    [30.03.2021, darmowy webinar] Nowoczesna diagnostyka maszyn, monitorowanie i przewidywanie awarii. Zarejestruj się
  • Level 14  
    Nie wiem czy dobrze rozumuje, pascalem bawiłem sie ładnych pare lat temu, ale tak:

    Tu
    Code:
    sentencja:array[0..96] of string

    deklarujesz zmienna sentencja jako tablice stringow.

    A tu
    Code:
    sentencja:=random(96);

    próbujesz przypisać jej zmienną INTową. Jak dla mnie to tu leży przyczyna, ale jak powiedziałem z pascala nie wiele kojarzę i może jest to jakiś kruczek.

    Pozdrawiam!

  • Level 18  
    Zgadza się tylko wydawało mi się, że skoro elementy są ponumerowane do 96 to mogę to zrobić w ten sposób.

    Jeśli nie to jak przekonwertować typy? Albo jak wykonać losowanie zdań zapisanych w tabeli? Mnie się już pomysły skończyły. Siedzę 2 dni nad tym fragmentem programu. :D
  • Helpful post
    Level 14  
    Jeżeli chodziło o wypisanie losowego stringa z tablicy to spróbuj jakoś w ten deseń:
    Code:
    writeln(sentencje[random(96)]);

  • Level 18  
    Za to się koledze piwo należy! :)