please help!! - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

please help!!

pixie123pixie123 Posts: 8Member
hello everyone! i wanted to know if enyone can help me with this: i am learning pascal basics in school so i have one little problem with this:

i want to make programm where the 'x' value type user, and then the sum is calculated, but i dont know how to make formula for this

(1/2)+(3/2^2)+(5/2^3)+...+((2x-1)/2^x)

so the formula is ((2x-1)/2^x); for example: user types that x is 3;
then the programm puts 3 in x place; then 2; and then 1 and then all this sum together like this example where x is 3
((6-1)/8) + ((4-1)/4) + ((2-1)/2) = ...

so i want to create summing like this, i think it is something related with cycles, but i dont know for sure, so if anyone can help me i'll be grateful :)

Comments

  • dragon6158dragon6158 Posts: 1Member
    What you are trying to do is called recurrsion where you loop calling the same function until the variable reaches a set point.
  • ActorActor Posts: 438Member
    It's called iteration, not recursion.

  • pixie123pixie123 Posts: 8Member
    ok, thanks, i wll try to find information about iteration, how to use it; but for now i have got this far:

    program number;
    var i,x,s:integer;
    begin
    writeln('type number');
    readln(x);
    s:=0;
    for i:=1 to x do
    s:=s+((2*i-1)/_____);

    writeln('sum:',s);
    readln;
    end.

    everything works luckily, but i dont know how to add 2^x where i have this underline, i even read that in pascal you cant do the multiplication involution, is that true?
  • ActorActor Posts: 438Member
    [blue]: ... i even read that in pascal you cant do the
    : multiplication involution, is that true?
    :[/blue]
    It's been a long time since I've heard the word involution. ;-)

    The answer is yes and no. You can do involution but Pascal does not provide an operation for it the way Fortran and Basic do. You have to write your own routine, like below.
    [code]
    program number ;

    [red]function power (x : real ; n : integer) : real ;
    {
    raise a real number to an integer power
    }
    var
    product : real ;
    i : integer ;
    begin
    product := 1.0 ;
    for i := 1 to n do
    product := x * product ;
    power := product
    end ;[/red]

    var
    i,x : integer ;
    s : real ;

    begin
    writeln('type number') ;
    readln(x) ;
    s := 0 ;
    for i := 1 to x do
    s := s + ((2*i-1) / [red]power(2,i))[/red] ;
    writeln ('sum:', s) ;
    readln
    end.[/code]
    BTW, you can't do this with integers. Try it. [b]s[/b] has to be real, otherwise the answer will always be zero. Do you know why?

  • pixie123pixie123 Posts: 8Member
    i think that because integers are 5, 6, 99... but real is 88,99; 0,000003; 1,5 ... and when i am going to divide numbers i wont get integer, so i need real numbers

    and big thanks to you :) :* :D
Sign In or Register to comment.