Program sumujący liczby podane przez użytkownika

0

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.

1

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.

1

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.

0
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ć.

@Edit:

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

1

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ć.

0

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.

1

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');
0

Rozumiem, że mogę wykorzystać do tego mój wcześniejszy kod oraz muszę zastosować Uses oraz SysUtils ?

0

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.

0

ParamCount - liczba parametrow

ParamStr - pobierasz parametry

Pobierajac liczbe jako parametr bedziesz musial ja zamienic z tekstu na liczbe wlasnie:

StrToInt

I pobierasz i dodajesz wszystko w petli:

For

na koncu wyswietlasz ladnie wynik za pomoc Write :)

Pokaz co udalo Ci sie napisac

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