procedure i read 2

0

Caly kod:

USES CRT;

VAR
user_s: string;
i, i2, i3, l1, l2, r, r1, r2, r3, user_l : integer;
la:  array[1..10000] OF integer;
ma: array[1..15] OF integer;
aa: array[1..15] OF integer;

BEGIN

la[1]:=1;
la[2]:=1;
ma[1]:=1;
ma[2]:=2;

for i:=1 to 15 do
begin

if i>2 then
begin

for i2:=1 to i do
begin
ma[i]:= ma[i-1]*2;
end;

end;

end;


for i:=1 to 10000 do
begin

if i>2 then
begin
 la[i]:= la[i-1] + la[i-2];
end;

end;
writeln('Podaj Liczbe:');

read(user_l);

clrscr;
write('Laduje ');
delay(200);
for i:=1 to 3 do
begin
 write('.');
 delay(200);
end;
delay(500);
clrscr;
writeln('Twoja liczba: ', user_l);
writeln('');
writeln(user_l, ' w ciagu Finobiachego to: ', la[user_l]);


r:=la[user_l];
for i:=1 to 15 do
begin
 i2:= 16-i;
 r3:= ma[i2];
 if i=1 then
 Begin
  r1:= r-r3;
   if r1>=0 then
   begin
    aa[i]:= 1;
    r2:= r1;
   end
   else
    if r1<0 then
    begin
     aa[i]:=0; r2:= r;
    end;
 End
  Else
  Begin
  r1:= r2 - r3;
   if r1>=0 then
   begin
    aa[i]:= 1;
    r2:= r1;
   end
   else
    if r1<0 then
    begin
    aa[i]:=0;
   end
  End;
end;

write('W systemi Binarnym wyglada ona tak: ');
for i:=1 to 15 do
begin
if i=1 then write('0');
write(aa[i]);
if i=3 then write(' ');
if i=7 then write(' ');
if i=11 then write(' ');
end;




for i:=1 to 5 do writeln('');
writeln('Wpisz "s" aby sprawdzic.');
read(user_s);

if user_s='s' then
begin

writeln('Twoja liczba w binarnym:');
for i:=1 to 15 do
begin
if i=1 then write('0');
write(aa[i]);
if i=3 then write(' ');
if i=7 then write(' ');
if i=11 then write(' ');
end;

for i:=5 to 10 do writeln('');
writeln('Sprawdz:');
for i:=1 to 15 do
begin
i2:= 16-i;
writeln(ma[i],' | ', aa[i2]);
if i=4 then writeln('') else begin if i=8 then writeln(''); if i=12 then writeln('') end;
if i=15 then writeln('32768 | 0');
end;

end;

delay(9999);
clrscr;
writeln('Author: interjaz');
writeln('From: Poland, Gorzow');
for i:=1 to 5 do writeln('');
delay(100);
writeln('Thank for using');
readln;

END.

to jest caly kod ;) All rights reserved.

jak widac dopiero zaczynam.
Mam maly problem z:

a)

...
writeln('Wpisz "s" aby sprawdzic.');
read(user_s); nie chce raedowac mi.. po prostu progrma po skomplikowanie jakby omijak ta linijke kodu

...

b)

oraz jak widac dwarazy pojawia sie

for i:=1 to 15 do
begin
if i=1 then write('0');
write(aa[i]);
if i=3 then write(' ');
if i=7 then write(' ');
if i=11 then write(' ');
end;

chcailbym aby to bylo procedura aby dwa razy nie musial wpisywac tego samego ;)

wiec zrobielem

procedure binary(i: integer; aa: array[1..15] of integer);
BEgin
for i:=1 to 15 do
begin
if i=1 then write('0');
write(aa[i]);
if i=3 then write(' ');
if i=7 then write(' ');
if i=11 then write(' ');
end;
ENd;

ale to nie dziala

prosze o pomoc dzieki z gory

0

nie rób read() tylko readln(). Nie wiem dlaczego, ale przy read() coś się wali zawsze :/

natomiast co do proceury to ten array[0..15] of integer musisz zadeklarować jako typ np.

type
TTablica = array[0..15] of integer;

i wtedy można go bezproblemowo stosować w typie danych przekazywanych do funkcji

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