ce tip de variabila trebuie pusa


  1. #1
    0-day Member digor reprezinta o cantitate neglijabila
    Data de inscriere
    23-10-2010
    Sex
    M
    Mesaje
    2
    Putere Reputatie
    0
    Reputatie
    10
    Puncte CF
    0.0

    Question ce tip de variabila trebuie pusa

    Salut!
    am o problema in pascal si nu o pot rezolva...
    produsul numerelor pare din intervalul [a,b]
    daca introduc intervalul [-10,10], el afiseaza rezultatul, iar daca pun o suma mai mare, cum ar fi [-20,20] atunci rezultatul este 0...
    iar pentru [-40,40] programul da eroare {Error 207: Invalid floating point operation}
    ce tip de variabila sa-i dau variabilei pr pentru a afisa nr?
    Cod:
    program prob16;
    var
    x,d,a,b:integer;
    pr:comp;
    begin
    write('a= ');read(a);
    write('b= ');read(b);
    pr:=1;
    for x:=a to b do
    begin
    if x<>0 then
    begin
    if x mod 2 = 0 then pr:= pr * x;
    end;
    end;
    writeln ('Produsul numerelor pare este: ',pr);
    end.
    Va va rog sa ma ajutati si pe mine...

  2. #2
    Member danielb_24's Avatar danielb_24 este pe calea cea buna
    Data de inscriere
    16-11-2008
    Locaţie
    Craiova
    Varsta
    41
    Sex
    M
    Mesaje
    149
    Mesaje bazar
    42
    Putere Reputatie
    32
    Reputatie
    40
    Puncte CF
    4.0
    Integer -32,768 --- 32,767
    LongInt -2,147,483,648 --- 2,147,487,647
    ShortInt -128 --- 128
    Real 2.9 x 10 E-39 --- 1.7 x 10 E+38

    longint - cred ca ar fii ok
    Vrei mai putine reclame? Inregistreaza-te sau logheaza-te

  3. #3
    0-day Member digor reprezinta o cantitate neglijabila
    Data de inscriere
    23-10-2010
    Sex
    M
    Mesaje
    2
    Putere Reputatie
    0
    Reputatie
    10
    Puncte CF
    0.0
    Citat Mesaj iniţiat de danielb_24 Vezi mesajele
    Integer -32,768 --- 32,767
    LongInt -2,147,483,648 --- 2,147,487,647
    ShortInt -128 --- 128
    Real 2.9 x 10 E-39 --- 1.7 x 10 E+38

    longint - cred ca ar fii ok
    nu vrea sa se copileze nici cu real, nici cu logint
    Programmul da erori. Doar la inmultirea numerelor pare de la -40 pina la 40 da nu rezultat foarte mare
    Daca pun intervalul -30 si 30 merge dar cu cel mentionat mai sus da eroare
    Runtime error 205 at 0000:00DA

  4. #4
    Newcomer nicolae_cata reprezinta o cantitate neglijabila
    Data de inscriere
    18-09-2006
    Varsta
    44
    Sex
    M
    Mesaje
    27
    Mesaje bazar
    18
    Putere Reputatie
    36
    Reputatie
    10
    Puncte CF
    20.0
    {uses crt; }
    var a,b,i,j:integer;
    pr:array[1..20] of integer;
    p,t: integer;
    cpn, sgn : integer;

    begin
    {clrscr;}
    write('a= ');readln(a);
    write('b= ');readln(b);

    cpn := 0;
    if a<0 then for i:= a to -1 do
    if i mod 2 = 0 then cpn:= cpn + 1;

    if cpn mod 2 = 0 then sgn:= 0
    else sgn:= 1;

    for i:= 1 to 19 do
    pr[i] := 0;
    pr[20] := 1;

    p:=1;
    t:=0;
    if a mod 2 = 0 then i:=a
    else i:=a + 1;

    repeat
    if i <> 0 then
    for j:= 20 downto 1 do
    begin
    p:= pr[j] * abs(i) + t;
    if p > 9 then begin
    t := p div 10;
    pr[j] := p mod 10;
    end
    else begin
    pr[j] := p;
    t :=0;
    end;
    end;
    i := i + 2;
    until i>b;

    if sgn = 1 then write('-');
    for i:= 1 to 20 do
    write(pr[i]);
    readln;
    end.

    Programul mai trebuie lucrat, mai trebuie sa pui conditii a<b, sa scoti zerourile de la inceput la afisare etc
    Vrei mai putine reclame? Inregistreaza-te sau logheaza-te

Tags for this Thread

Google+

Cautati logo-ul CraiovaForum?

Iata cateva variante: