Witam! :)
Potrzebuję napisać na jutro program, z którym mam problem. Jeśli ktoś umie zrobić ten program, to proszę o podpowiedź, co mam źle w kodzie.
Polecenie zadania:
Dana jest liczba 'K' typu [1..16], oraz ciąg 'K' znaków z zakresu '0'..'1'. Napisz program, który wypisze wartość liczby powstałej w wyniku utworzenia ciągu znaków.
Chodzi o system szesnastkowy.
Np:
Znak '0' + znak '1' + znak '1' = 011
011 w szesnastkowym to będzie 2 do pierwszej + 2 do drugiej. (Tak zrozumiałem to zadanie).
Jest ktoś kto mi pomoże :)?
Kod mojego programu:
USES CRT;
VAR
znak:char;
liczba,wynik,ilosc,wynik2,j,i:byte;
BEGIN
clrscr;
wynik:=1;
writeln('Ile znakow bedziesz wprowadzal? Maxymalnie 16');
readln(ilosc);
for i:=1 to ilosc do
BEGIN
writeln('Podaj znak''0'' albo ''1'':');
readln(znak);
liczba:=liczba+znak;
END;
for i:=1 to ilosc do
BEGIN
IF liczba[i]=2 then
BEGIN
for j:=1 to i do
BEGIN
wynik:=wynik*2;
wynik2:=wynik2+wynik;
END;
END;
END;
writeln(wynik2);
readkey;
end.
Proszę o pilną odpowiedź :)