
Conversion de decimal a binario en pascal.
Publicado por Ramiro (1 intervención) el 12/07/2019 22:28:01
Buenas tardes, realizando un practico para la facultad en el que se proponen varios puntos entre ellos conseguir generar un codigo de barras y un codigo QR, logicamente reemplazando por caracteres los bloques o barras, me encuentro con el problema de que debo convertir a binario los numeros del codigo de barras para cada producto. En este caso nos plantean que los primeros 3 digitos del numero seran el identificador de la empresa y que los proximos 4 a estos seran el precio del producto, con un valor maximo de 9999. Ahora bien, cual seria la mejor manera de transformar los numeros en decimal de un arreglo, pasandolos a binario y de esta manera poder reemplazar los 1 por barras y los 0 por espacios en blanco?
Dejo a continuacion lo que tenemos logrado del codigo hasta el momento, se agradeceria que unicamente se modificara la seccion que falta añadir en caso de hacer el arreglo por mi. Saludos y que tengan un muy buen dia.
Dejo a continuacion lo que tenemos logrado del codigo hasta el momento, se agradeceria que unicamente se modificara la seccion que falta añadir en caso de hacer el arreglo por mi. Saludos y que tengan un muy buen dia.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Procedure CB;
Begin
WriteLn('Ingrese el codigo de la empresa:');
Repeat
Readln (CodE);
Until (CodE >= 0) and (CodE <= 999);
WriteLn('Ingrese el importe del producto:');
Repeat
Readln (Imp);
until (Imp >=0) and (Imp <= 9999);
E1:= (CodE) Div 100;
E2:= (CodE)Div(10) - (CodE) Div 100 * 10 ;
E3:= (CodE) - (CodE div 100 * 100) - E2 * 10 ;
writeln (E1,' Primer digito empresa.');
writeln (E2,' Segundo digito empresa.');
writeln (E3, ' Tercer digito empresa.');
writeln(' ');
P1:= (Imp) Div 1000;
P2:= (Imp) Div(100) - (Imp) Div 1000 * 10 ;
P3:= ((Imp) - (Imp div 100 * 100)) Div 10 ;
P4:= ((Imp) - (Imp div 1000 * 1000)) - P2 *100 - P3*10 ;
writeln (P1,' Primer digito precio.');
writeln (P2,' Segundo digito precio.');
writeln (P3,' Tercer digito precio.');
writeln (P4,' Cuarto digito precio.');
Co[1]:=E1;
Co[2]:=E2;
Co[3]:=E3;
Co[4]:=P1;
Co[5]:=P2;
Co[6]:=P3;
Co[7]:=P4;
par:= Co[2]+Co[4]+Co[6];
impar:= Co[1]+Co[3]+Co[5]+Co[7];
writeln ('Par=', par,'Impar=',impar);
r:=Abs(par-impar) Div 10 ;
Co[8]:= r ;
writeln(' ');
Readkey();
End;
Valora esta pregunta


0