Instrukcja if - pytanie...

0

Witam :) mam szybkie i głupie pytanie:

Co zadziała szybciej ?

To:

begin
  if cos1 and cos2 then cosa;
  if cos3 and cos4 then cosb;
  if cos5 and cos6 then cosc;
  if cos7 and cos8 then cosd;
end;

Czy to:

begin
  if cos1 then 
    if cos2 then cosa;
  if cos3 then 
    if cos4 then cosb;
  if cos5 then 
    if cos6 then cosc;
  if cos7 then 
    if cos8 then cosd;
end;

P.S.: Są jakieś sposoby żeby case...of działało dla stringów ?

0

Co zadziała szybciej ?

W faq są 2 sposoby na pomiar czasu wykonania programu. Sprawdz sobie.

P.S.: Są jakieś sposoby żeby case...of działało dla stringów ?

  1. Przejdź na PowerBasic.

  2. Jeśli stringi sa maks czteroznakowe (albo pierwsze 4 znaki wystarcza), zrzutuj je na Integer (przez Move). Jesli zrzutujesz na Int64 bedziesz mial 8 znakow, ale nie pamietam, czy case dziala z Int64.

0

W/g mnie szybciej będzie działało pierwsze rozwiązanie, a do tego jest ładniejsze i czytelniejsze :)

0

Pierwsze bo mniej kodu ;-)

0

Ja myślę, że delphi zoptymalizuje oba kody tak, że będą działały z taką samą szybkością. Ale oczywiście pierwszy jest czytelniejszy.

0

Szybkosc 1 bedzie zalezala od opcji $BOOLEVAL i wartosci cos_nieparzyste. Jesli BOOLEVAL bedzie OFF (default) i cos_nieparzyste bedzie false, wtedy Delphi w ogole nie sprawdzi odpowiedniego cos_parzyste.

2 Bedzie pod tym wzgledem dzialac zawsze jak $BOOLEVAL OFF.

1 użytkowników online, w tym zalogowanych: 0, gości: 1