Adăugați numere binare în forumul tehnic pascal

Da, nu este greu, te rog.

1. În programul principal:

n este numărul de cifre al numărului binar
i este variabila buclă
M este numărul în sine. Se generează prin metoda generării aleatoare a zerourilor și a celor de la cifra cea mai puțin semnificativă la (n-1) -a. Cel mai mare (n-a) bit este întotdeauna scris 1.






T - contor de cifre
M1 este rezultatul unei deplasări către stânga a tuturor cifrelor numărului M de unul și atribuirea la dreapta a zero. Într-o notație binară, aceasta corespunde multiplicării numărului M cu două. Pentru "utilizare internă" M1 = M * 10.

2. În funcția Bin2Dec (conversia unui număr binar în zecimal):

b, B1 este numărul binar convertit
Q este următoarea cifră semnificativă (0 sau 1), începând cu cifra de ordine scăzută
r - greutatea binară a cifrei următoare
D este un identificator suplimentar. A fost eliminat.

3. În funcție de adăugarea binară Sum2Bin:

b1, b2 (b1a, b2a) sunt numere binare pliabile
b3 - suma binară generată






r este greutatea zecimală a descărcării
c1, c2, c3 sunt cifre (0 sau 1) în următoarea cifră a numerelor și sumelor care urmează să fie adăugate.
d - numărul care urmează să fie transferat la următoarea cifră.

__________________
Cu Mozilla Firefox - direct la comunism!

Vladimir_S, Bună ziua! Am trecut de această sarcină ieri și mi sa spus să o fac mai simplu pentru ca eu să pot intra în orice număr binar și să fac totul cu ajutorul funcției și să nu traduc 3 în sistemul de numere zecimale. Am scris ceva (nu știu dacă e corect), dar nu pot să-mi dau seama cum să calculez numărul p. Știți cum să faceți asta? spune-mi te rog!

funcția um (const s: șir): longint;
var
i: întreg;
r: longint;
începe
r: = 0;
pentru i: = 1 până la lungime (s)
începe
dacă (s [i] = '1') sau (s [i] = '0') atunci
r = r * 2 + (ord (s [i]) - ord ('0'))
altceva începe
um: = -i;
ieșire;
se încheie;
se încheie;
um: = r
se încheie;

funcția umnogenie (dec: longint): șir;
începe
dacă dec = 0 atunci umnogenie: = ''
altfel
dacă este ciudat (dec) atunci
umnogenie: = umnogenie (dec div 2) + '1'
altfel
umnogenie: = umnogenie (dec div 2) + '0';
se încheie;

var
s: șir;
d1: longint;

Scrieți ('introduceți primul număr binar:'); ReadLn (e);
d1 = um (s);
WriteLn ("Produsul este egal", umnogenie (d1 * t));
readln
end.







Articole similare

Trimiteți-le prietenilor: