RoD Gualberto 0 Denunciar post Postado Maio 18, 2009 estou pricisando de uma ajuda... http://forum.imasters.com.br/public/style_emoticons/default/excl.gif estou pricisando de fazer um programa de conversão de números e soma de números binários. Mas só encontro blocos de códigos com a uses WinCrt. E no code gear rad studio 2007 ñ está funfando. Dá esse erro = [DCC Error] Unit1.pas(7): F1026 File not found: 'WinCrt.dcu'. alguem pode me ajudar ??? vai aí o código que estou tetando usar http://forum.imasters.com.br/public/style_emoticons/default/seta.gif interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,WinCrt, Buttons; type TForm1 = class(TForm) BitBtn1: TBitBtn; Edit1: TEdit; Edit2: TEdit; procedure BitBtn1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); Var bin1, resposta,bin2, result, result_final: string [20]; n1, n2, i,alg1, alg2, somabin, vai, vem, cont, erro: integer; Begin repeat clrscr; Writeln (' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); Writeln (' Programa para somar números Binários!!!!!'); Writeln (' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); writeln; result_final:=''; {zero esta variável, pois quando o loop é feito a resposta anterior fica armazenada e é repetida} result:= ''; Write (' Digite o 1º número: '); readln (n1); str (n1, bin1); for i:=1 to length(bin1) do {este for foi criador para tratar o erro quando o usuário digitar um número não binário} if ( bin1[i] <> '0' ) and ( bin1[i] <>'1') then begin clrscr; Writeln (' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); Writeln (' Programa para somar números Binários!!!!!'); Writeln (' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); writeln; writeln (' Lembrete: Números binários são compostos por zeros e uns!!!!'); write (' Redigite o número: '); readln(n1); str (n1, bin1); {transforma a variável numérica em uma string} end; write (' Digite o 2º Número:+ '); readln (n2); str (n2, bin2); for i:=1 to length(bin2) do {este for também foi criador para tratar o erro quando o usuário digitar um número não binário} if ( bin2[i] <> '0' ) and ( bin2[i] <>'1') then begin clrscr; Writeln (' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); Writeln (' Programa para somar números Binários!!!!!'); Writeln (' ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++'); writeln; writeln (' Digite o 1º número: ',n1); writeln (' Lembrete: Números binários são compostos por zeros e uns!!!!'); write (' Redigite o numero: '); readln(n2); str (n2, bin2); {transforma a variável numérica em uma string} end; if length(bin1) > length (bin2) then {outro problema que poderia ocorrer é um número digitado ser maior que o outro} repeat {portanto foi criado esse tratamento para colocar zeros quando não hover número} bin2:= '0' + bin2; {digitado pelo usuário do programa fazendo com que eles tenham o mesmo tamanho.} until length(bin1) = length (bin2) else if length(bin1) < length(bin2) then repeat bin1:= '0' + bin1; until length(bin1) = length(bin2); vem:=0; cont:= length(bin1); while cont >= 1 do begin val(bin1[cont], alg1, erro); {essa funcção (val) transforma uma string em um número inteiro, somente em inteiro} val(bin2[cont], alg2, erro); if (vem = 0) and (alg1 = 0) and (alg2 = 0) then {agora vem as condições que efetuam os testes das somas dos números} begin {se vai1,vem1, se é zero ou um, etc.} vai := 0; somabin := 0; end else if ((vem = 0) and (alg1 = 1) and (alg2 = 0)) or ((vem = 0) and (alg1 = 0) and (alg2 = 1)) then begin vai := 0; somabin := 1; end else if ((vem = 0) and (alg1 = 1) and (alg2 = 1)) then begin vai := 1; somabin := 0; end else if (vem = 1) and (alg1 = 0) and (alg2 = 0) then begin vai := 0; somabin := 1; end else if ((vem = 1) and (alg1 = 1) and (alg2 = 0)) or ((vem = 1) and (alg1 = 0) and (alg2 = 1)) then begin vai := 1; somabin := 0; end else if (vem = 1) and (alg1 = 1) and (alg2 = 1) then begin vai := 1; somabin := 1; end; str(somabin, result); {transforma o resulta em uma string para que possa ser invertido} result_final := result + result_final; {o número invertido é acumulado em result_final} vem := vai; cont:= cont - 1; {contador que para o estrutura de repetição} end; if vem = 1 then result_final := '1' + result_final; {trratamento de erro} writeln (' ---------------------------'); writeln (' O total da soma é: ', result_final); writeln; writeln (' +++++++++++++++++++++++++++++++++++++++++'); writeln (' Quando desejar sair aperte a tecla ESC.'); writeln (' +++++++++++++++++++++++++++++++++++++++++'); resposta:=readkey; until resposta = #27; {condição para sair do programa} End. Compartilhar este post Link para o post Compartilhar em outros sites
Diego Macêdo 6 Denunciar post Postado Junho 11, 2009 esse código você pegou pronto e jogou no programa ou vez desde ele todo desde o começo? Caso você tenha pego e jogado lá, possivelmente o seu programa não tem suporte ao wincrt, nesse caso tenta apagar ele do código e rodar o programa. Eu me lembro que esse wincrt é usado pelo "Pascalzin" e quando a pessoa tentava usar o mesmo código no programa lá do pascal (esqueci o nome) ele n rodava tbm. Qualquer coisa tenta aí. Abraços! ;) Compartilhar este post Link para o post Compartilhar em outros sites