Sim, Pascal! Há gente que se questiona: Ainda dão isso?
Pois é, esta linguagem do século passado e ultrapassada a nível de "novidades" ainda é utilizada no ensino para apresentar programação aos novos alunos e ambientá-los com bases de programação.
Eu, felizmente (ou infelizmente?) estou a dar Pascal em Bases de Programação e acho-o simples e bom para aprender a programar.
Este foi um trabalho de casa que foi pedido, mas penso que era para utilizar operações com strings, só que faço as coisas sempre por outro método e utilizei foi o método tradicional de converter de binário para decimal: 010 = 0 * 2 ^ 0 + 1 * 2 ^ 1 + 0 * 2 ^ 2 = 2
O código é estranho, até usei uns ifs que não sei porquê, mas resolveram os problemas que tinha (caso o ultimo numero fosse 0 acrescentava um valor: 010 ficava 3, 0100 ficava 5, mas já 011 ficava 3 e 0101 ficava 5):
Program bin_dec; function expoente(x,y:longint):longint; var z,n:longint; begin n := x; for z := 2 to y do n := n * x; expoente := n; end; var num, aux, multi, digito, valor, soma:longint; exp:integer; begin write('Num (bin): '); readln(num); multi := 10; aux := num; exp := 0; soma := 0; while (aux <> 0) do begin digito := aux mod 10; aux := aux div 10; multi := multi * 10; if (exp = 0) and (digito = 1) then begin soma := 1; exp := 1; end else begin valor := expoente(2,exp); exp := exp + 1; soma := soma + digito * valor; end; end; writeln(num,'(bin) = ',soma,'(dec)'); readln; end. |
4 comentários:
Tu realmente....
excelente... :D
Muito útil!
retyrytryeryt
nao me ajudou
Enviar um comentário