Wątek przeniesiony 2015-10-12 14:37 z Delphi i Pascal przez olesio.

Komunikat błędu przy użyciu PramStr.

0

Niedawno rozpocząłem prace w pascalu na studiach. I mam taki problem iż mam stworzyć program który policzy pole koła,kwadratu,trapezu. Na razie mam coś takiego

program project1;
 
uses
  SysUtils;

var
  kwadrat:longint;
  poleKwadratu:real;

begin
 kwadrat:=paramstr(1); -> tutaj jest błąd
 poleKwadratu:= kwadrat * kwadrat;
 writeln ('Pole Kwadratu wynosi: ', poleKwadratu:0:1);
end.

Prosiłbym o pomoc.

Poprawione kolorowanie kodu oraz temat - olesio

1

@markon1995 kwadrat jest typu longint natomiast paramstr(1) zwraca Ci string. W Delphi trzeba zrobić konwersję np tak:

kwadrat := StrToIntDef(ParamStr(1),0); 

Poczytaj tutaj o tym:
Konwersja liczb na string i vice versa

1

@markon1995 - najpierw wypadałoby sprawdzić, czy program został uruchomiony z dodatkowymi parametrami, a także czy tych dodatkowych parametrów jest określona ilość; Do tego celu użyj funkcji ParamCount, która zwróci ilość dodatkowych parametrów; Do samej konwersji wartości parametrów uruchomieniowych polecam skorzystać z funkcji TryStrToInt, która nie rzuca wyjątków, więc będziesz mógł ładnie wszystko obsłużyć, a także wykryć sytuację, kiedy parametry mają nieprawidłowo zapisane liczby i np. wyświetlić stosowny komunikat.

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