Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Turbo pascal - początkujący

ireq92 20 Kwi 2009 21:25 864 5
  • #1 20 Kwi 2009 21:25
    ireq92
    Poziom 8  

    Code:
    uses crt;
    
    var
    liczba1,liczba2:longint;

    begin
    clrscr;
    writeln('Podaj pierwsza liczbe');
    read(liczba1);
    writeln('Teraz druga');
    read(liczba2);
    if liczba1+liczba2=100 then writeln('Suma rowna jest stu');
    if liczba1+liczba2<>100 then writeln('Suma nie jest rowna stu');
    readln;
    end.


    Niby chodzi, ale gdy wpisze pierwszą i drugą liczbe to później żaden komunikat nie wyskakuje tylko jest koniec. Gdzie jest błąd?

  • #2 20 Kwi 2009 21:30
    Lutek49
    Poziom 36  

    Po if zapis liczba1+liczba2 daj w nawiasach.

  • #3 21 Kwi 2009 00:29
    przemo_wielki
    Poziom 23  

    Lutek49 to jest poprawny zapis, przynajmniej kompilator nie zgłasza błędu. Zamiast read daj readln w każdym przypadku.

  • #4 21 Kwi 2009 12:21
    ireq92
    Poziom 8  

    Code:
    uses crt;
    
    var
    liczba1,liczba2:longint;

    begin
    clrscr;
    writeln('Podaj pierwsza liczbe');
    read(liczba1);
    writeln('Teraz druga');
    read(liczba2);
    if liczba1+liczba2=100 then writeln('Suma rowna jest stu'); readln;
    if liczba1+liczba2<>100 then writeln('Suma nie jest rowna stu'); readln;
    readln;
    end.


    Zrobiłem tak i chodzi :)

  • #5 21 Kwi 2009 20:54
    przemo_wielki
    Poziom 23  

    Zamiast za każdym razem dodawać readln zrób:

    Code:
    readln (liczba)
    ;)

  • #6 21 Kwi 2009 21:05
    wrych
    Poziom 20  

    Pisząc takie bzdury nigdy nie nauczyś się poprawnego programowania. Już w poprzednich postach ktoś sugerował Ci zastąpienie procedury "read" przez "readln":

    Code:
    uses crt; 
    
    var
    liczba1,liczba2:longint;

    begin
    clrscr;
    writeln('Podaj pierwsza liczbe');
    readln(liczba1); {!!! odczytanie liczby i wszystkich znaków do końca linii, w tym naciśnięcia Enter}
    writeln('Teraz druga');
    readln(liczba2); {{!!! odczytanie liczby i wszystkich znaków do końca linii, w tym naciśnięcia Enter}
    if liczba1+liczba2=100 then writeln('Suma rowna jest stu');
    if liczba1+liczba2<>100 then writeln('Suma nie jest rowna stu');
    readln; {teraz Czekamy na naciśnięcie Enter... a jeden z powyższych komunikatów jest widoczny na ekranie}
    end.

    Można też część końcową zrobić tak:
    Code:
    if liczba1+liczba2=100 then writeln('Suma rowna jest sto') else writeln('Suma nie jest rowna sto'); 
    
    repeat until KeyPressed; {czekamy na naciśnięcie dowolnego klawisza}

    Braku polskich liter i gramatyki się nie "czepiam", chociaż na komunikację programu z użytkownikiem w języku polskim również należałoby zwracać uwagę.
    Powodzenia w nauce programowania.

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME