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.

[Turbo Pascal] Error 89: ")" expected

soulhudson 26 Sty 2010 21:30 3897 7
  • #1 26 Sty 2010 21:30
    soulhudson
    Poziom 12  

    Witam!
    Jestem początkujący w Turbo Pascalu i mam problem z kompilowaniem tego kodu:

    Code:
    USES CRT;
    

    VAR
    ilosc,dlugosc,cena:real;

    BEGIN
    writeln('Ilosc paczek - 20szt.');
    read(ilosc);
    writeln('Dlugosc');
    read(dlugosc);
    writeln('Przelicznik ceny - np. 2xdlugosc');
    read(cena);
    clrscr;
    write ('Cena to ' ((ilosc*20)*(dlugosc*cena))/100);
    readln;
    END.


    Aplikacja ma za zadanie obliczenie ceny paczki kwiatów w następujący sposób:
    pomnożenie (ilości przez 20) i (długości przez cenę), a następnie pomnożenie nawiasów przez siebie i całości podzielenia przez 100.
    Używam Turbo Pascal 7 i gdy chce to skompilować wyskakuje mi błąd:
    Error 89: ")" expected i dotyczy on tego miejsca:
    Code:
    write ('Cena to ' ((ilosc*20)*(dlugosc*cena))/100);


    Proszę o pomoc, z góry dziękuje

    Poprawiłem temat. - arnoldziq

    0 7
  • Pomocny post
    #3 27 Sty 2010 00:54
    arnoldziq
    Moderator Programowanie

    Kolega Dżyszla ma rację, spróbuj czegoś takiego :

    Code:
    write ('Cena to ', ((ilosc*20)*(dlugosc*cena))/100);

    0
  • #4 27 Sty 2010 12:12
    soulhudson
    Poziom 12  

    Już myślałem, że działa, ale jednak...
    Gdy już podam dane i wpisuje ostatnią, klikne ENTER, to program się wyłącza i nie wyslwietla wyniku!
    Użyłem komendy readln, jednak nic nie działa

    0
  • Pomocny post
    #5 27 Sty 2010 12:45
    arnoldziq
    Moderator Programowanie

    Program działa, natomiast popełniłeś kilka błędów.
    Ostatnia komenda readln działa bez zarzutu, ale czyta klawisz enter użyty do zatwierdzenia komendy read(cena);.
    Pozmieniałem read() na readln(), oraz dodałem formatowanie ostatecznego wyniku.

    Code:
    USES CRT;
    
    VAR
      ilosc,dlugosc,cena:real;
    BEGIN
      clrscr;
      writeln('Ilosc paczek - 20 szt.');
      readln(ilosc); {zmiana z read}
      writeln('Dlugosc');
      readln(dlugosc); {zmiana z read}
      writeln('Przelicznik ceny - np. 2xdlugosc');
      readln(cena); {zmiana z read}
      clrscr;
      write ('Cena to ', (((ilosc*20)*(dlugosc*cena))/100):10:2);
      readln; {pozostaje bez zmian}
    END.

    0
  • #6 30 Sty 2010 14:00
    edd123
    Poziom 10  

    Można też wynik zapisać do jakiejś zmiennej a potem ją wyświetlić. Ładniej by wyglądało i nikt juz by się raczej nie gubił.

    0
  • #7 01 Lut 2010 11:15
    arnoldziq
    Moderator Programowanie

    edd123 napisał:
    Można też wynik zapisać do jakiejś zmiennej a potem ją wyświetlić. Ładniej by wyglądało i nikt juz by się raczej nie gubił.

    Cytowana wypowiedź jest wieloznaczna i w tej formie nie wnosi niczego nowego do tematu.
    Czy byłby kolega łaskaw rozwinąć swoją wypowiedź ?
    Może jakiś przykładowy kod ?

    0
  • #8 01 Lut 2010 19:03
    edd123
    Poziom 10  

    Kod wyglądałby wtedy tak:

    Code:

    USES CRT;
    VAR
      ilosc,dlugosc,cena, wynik:real; //nowa zmienna: wynik
    BEGIN
      clrscr;
      writeln('Ilosc paczek - 20 szt.');
      readln(ilosc); {zmiana z read}
      writeln('Dlugosc');
      readln(dlugosc); {zmiana z read}
      writeln('Przelicznik ceny - np. 2xdlugosc');
      readln(cena); {zmiana z read}
      clrscr;
      wynik:=((ilosc*20)*(dlugosc*cena))/100
      write ('Cena to ', wynik:10:2);
      readln; {pozostaje bez zmian}
    END.


    Wydaje mi się że ten sposób jest lepszy, chociaż przecież każdy może robić wedle własnego uznania :D

    0
  Szukaj w 5mln produktów