Avatar uživatele
pavlik906

Programování v PASCAL

Může mi prosím nekdo poradit jak naprogramovavat kvadratickou rovnici v jazyku PASCAL, v programu LAZARUS? alepson zacatek vubec netuším jak mám začít. DEKUJI

Zajímavá 0 před 4421 dny Sledovat Nahlásit



Odpovědi
Avatar uživatele
Alesh

Lazarus mi nic neříká, ale v Pascalu jsem kdysi něco málo programoval. Možná bych se rozpomněl. A ty jinak programovat umíš nebo v čem je problém? S algoritmem?
V kostce:

  1. deklarace proměnných a, b, c, D. (a, b, c – koeficienty ax2 + bx + c = 0, D – diskriminant)
  2. načtení vstupů a, b, c
  3. výpočet diskriminantu
  4. tisk výsledků v závislosti na hodnotě diskriminantu.

Žádná velká věda.

0 Nominace Nahlásit


Avatar uživatele
jpau

Narychlo spíchnuté, jde to zkompilovat a něco to počítá ale je to bez záruk 🙂

procedure TForm1.Button1Clic­k(Sender: TObject);
var
a, b, c, D, x1, x2: real; // Integer není proto, že mohou být i čísla, která jsou desteinná
begin
a := 1;
b := 2;
c := 19;

D := ((bb)-(4a*c));

if D >= 0 then begin // Pokud je D menší než nula, nemá rovnice řešení v R
if D = 0 then begin // Pokud je D = 0, pak má rovnice pouze jeden kořen
x1 := (((-1)(b))/(2a));
Label1.Caption := FloatToStr(x1);
end
else begin // Kdykoli jindy má dva kořeny
x1 := ((((-1)(b)) + sqr(D))/(2*a));
Label1.Caption := FloatToStr(x1);
x2 := ((((-1)
(b)) – sqr(D))/(2*a));
Label2.Caption := FloatToStr(x2);
end;
end;
end;

Očekávám že princip je jasný, volám to při eventu Click na Buttonu1, pro výstup používám dva Labely, vstupy jsou zadané staticky, šel by použít i nějaký edit. V tom případě by to bylo
a := StrToFloat(Edit1­.Text);
atp…

Kdyby jsi měl nějaký defekt tak napiš ocko, slyšel jsem, že ostatním ráda pomáhá s úkoly 😉 .

0 Nominace Nahlásit


Diskuze k otázce

U otázky nebylo diskutováno.

Nový příspěvek