Cześć. Mam drobne pytanko. Mam do szkoły napisać program w Pascalu, który sumuje liczby podane przez użytkownika. Polecenie zadania +/- brzmiało tak: "sumuj argumenty, które zostały podane przez użytkownika. Użytkownik podaje liczby". No dobra, napisałem program, który to robi, akurat dla 5 liczb. Użytkownik je wpisuje w konsolę a program to liczy i wyświetla. Problem mam w tym, że babka wspomniała coś, że będzie do tego potrzebny "usys sysutils" przed VAR oraz mam to zrobić za pomocą ParamCount .. ? Nie za bardzo rozumiem o co z tym chodzi. Program i tak działa i liczy to do czego służy ParaCount oraz Usys Sysutils ? Z góry dziękuję i pozdrawiam.
To Twój wątek? http://4programmers.net/Forum/Delphi_Pascal/277664-zadanie_i_niezrozumialy_komunikat?mode=download&id=13693
Chodzi o to, że będzie potrzebny moduł sysutils (zawiera między innymi funkcje do konwersji) oraz funkcja ParamCount, zwracająca ilość podanych parametrów.
Sprawa wygląda tak, że program może pobierać liczby od użytkownika podczas działania, albo otrzymywać te liczby w parametrach uruchomieniowych; Jeśli użytkownik ma wpisywać je podczas działania programu to potrzebujesz do tego użyć procedury Read lub Readln, dane pakować do zmiennych i z nich później korzystać;
Drugi przypadek jest inny i działa zupełnie inaczej; Użytkownik ma podać liczby zanim program zostanie uruchomiony, czyli w linii poleceń, podczas odpalania programu z konsoli; Do ich odczytu służą właśnie wspomniane parametry; Aby sprawdzić ile parametrów otrzymała odpalona aplikacja, należy skorzystać z funkcji ParamCount; Aby pobrać wartość danego parametru, należy użyć funkcji ParamStr, podając w nawiasach indeks; Parametry uruchomieniowe to zwykłe łańcuchy znaków, więc aby skorzystać z liczb w nich się znajdujących, należy te łańcuchy przekonwertować np. za pomocą funkcji StrToInt; Ta i inne funkcje konwersji danych znajdują się właśnie w module SysUtils, dlatego też musisz nazwę tego modułu dodać do listy Uses.
Tete napisał(a):
To Twój wątek? http://4programmers.net/Forum/Delphi_Pascal/277664-zadanie_i_niezrozumialy_komunikat?mode=download&id=13693
Chodzi o to, że będzie potrzebny moduł sysutils (zawiera między innymi funkcje do konwersji) oraz funkcja ParamCount, zwracająca ilość podanych parametrów.
Nie, to nie jest mój temat. Dzięki za odpowiedzi. Postaram się coś podziałać i może uda mi się to zrobić.
Poprzeglądałem trochę i poczytałem a temat właśnie możliwości ParamCout, ParamStr i StrToInt lecz nie mam pomysłu jak się zabrać za napisanie właśnie tego programu z ich wykorzystaniem. Napisałem na razie zwykły bez ich użycia i wygląda on tak:
program Program_1;
var
l1: integer;
l2: integer;
l3: integer;
l4: integer;
l5: integer;
suma: integer;
begin
Write('Podaj liczbe: ');
Readln(l1, l2, l3, l4, l5);
suma := l1+l2+l3+l4+l5;
Writeln('Suma liczb: ', suma);
Readln();
end.
begin
end.
Napisałem to oczywiście dla pięciu liczb podawanych przez użytkownika. Może mnie chociaż ktoś trochę nakierować / pokazać na jakimś nawet innym przykładzie jak powinienem się za to zabrać tym drugim sposobem? W ogóle to co wyżej napisałem będzie do tego potrzebne czy będzie to wyglądać całkowicie inaczej?
Z poważaniem,
zaq12wsxPASCAL
Użytkownik ma mieć możliwość podania dowolnej ilości liczb, czy ta ilość jest z góry określona? Poza tym określ w końcu, czy użytkownik ma podawać liczby podczas działania programu czy przekazywać je w parametrach z konsoli, bo nie wiem co odpowiedzieć.
Ilość jest z góry określona. Z tego co się orientuję to właśnie w parametrach bo trzeba do tego użyć ParamCount, Str oraz StrToInt.
Pozdrawiam.
Więc najpierw sprawdź, czy użytkownik faktycznie przekazał pięć liczb w parametrach:
if ParamCount() = 5 then
begin
// tutaj dalsze instrukcje
end
else
WriteLn('treść komunikatu o błędnej liczbie parametrów');
Rozumiem, że mogę wykorzystać do tego mój wcześniejszy kod oraz muszę zastosować Uses oraz SysUtils ?
Uses oznacza sekcję modułów zawierających elementy, które będzie wykorzystywać Twój kod; Jeśli więc chcesz użyć funkcji StrToInt to musisz dodać do listy Uses moduł SysUtils; Kod który podałem, niech będzie podstawą Twojego programu; Teraz w miejscu komentarza wstaw kod w pętli konwertujący łańcuchy z parametrów oraz dodający wyniki tej konwersji do zmiennej z wynikiem sumowania.
ParamCount - liczba parametrow
ParamStr - pobierasz parametry
Pobierajac liczbe jako parametr bedziesz musial ja zamienic z tekstu na liczbe wlasnie:
I pobierasz i dodajesz wszystko w petli:
na koncu wyswietlasz ladnie wynik za pomoc Write :)
Pokaz co udalo Ci sie napisac