Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
10 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 10 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Últimos assuntos
Bloquear edição do ListBox

17/6/2010, 15:13 por Julio

Pessoal

Boa Tarde!

Tnho uma listbox apenas para exibir o resultado.
Preciso bloquear a listbox …

Comentários: 17

automação do mozilla e chrome

15/1/2017, 12:16 por Handerson Mildroz

Boa tarde a todos!

Sou iniciante no VFP. Preciso de ajuda, pois tenho um código que usa o …

Comentários: 0

COMO ESTÃO DESENVOLVENDO EM WEB?

22/8/2016, 10:48 por AJC

Pessoal, já lí sobre vários topicos aqui no forum sobre desenvolvimento web
mas ainda nada …

Comentários: 2

USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 0

dll pertocheck

15/12/2016, 12:45 por FERNANDOMATRELLA

Alguem teria ja desenvolvido a comunicação com essa dll estou tento muito trabalho aqui e nenhum …

Comentários: 1

Estatísticas
Temos 6987 usuários registrados
O último usuário registrado atende pelo nome de Alexsander Leal

Os nossos membros postaram um total de 3 mensagens em 1 assuntos

Desafio Pascal

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Astúcia Desafio de programação

Mensagem por Tales Ruan em 11/5/2009, 21:44

Vamos ver se os programadores daqui são bons:

O desafio consiste de fazer a subtração de dois valores quaisquer, A e B, sem utilizar o sinal de menos ( - ). Simples.

Faça um post neste tópico com a sua resposta. O primeiro que conseguir ganhará um picolé.

Depois de um certo tempo vou colocar a solução aqui, mas aí o premio não vai mais estar valendo. Boa sorte.

Tales Ruan
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Astúcia Re: Desafio Pascal

Mensagem por arimateia em 13/5/2009, 02:12

Bem, faz 6 anos que não programava em Pascal. Se entendi bem o programa tem que fazer subtrações sem utilizar o operador aritmético unário "-" .

Geralmente nos problemas encontrados em concursos de programação são fornecidos um lista com várias entradas e suas respectivas saídas para que possamos testar se realmente nossa solução satisfaz o problema.

Vou logo dizendo que esse programa não faz subtrações, mas sim calcula a diferença em módulo, ou seja, a distância, de dois números inteiros. O que num caso particular(a maior que b) é igual a diferença e caso contrário igual ao módulo da mesma.

Bem, desculpem pelo "rigor" matemático, mas meu professor de Matemática Discreta na UFRPE foi Wilson Rosa . Quem conhece a peça já entendeu...

Se não for isso aí, tô afim de saber a resposta. É usando alguma biblioteca padrão?

Ah, eu preferia um Coca... Razz



program subtrair;

function sub(a, b: integer) : integer;
var
i: integer;
maior: integer;
menor: integer;
aux: integer;
begin
//inialização das variáveis. chute de qual é o maior e o menor.
maior := a;
menor := b;

//se estiver errado, corrige o chute.
if a < b then
begin
maior := b;
menor := a;
end;

aux := menor;
i := 0;

//incrementa o menor valor até chegar no maior
while aux < maior do
begin
aux := aux + 1;
i := i + 1;//contador
end;

sub := i;

end;

Begin
WriteLn(sub(60,47)); //13
WriteLn(sub(-25,-5)); //20
End.

arimateia
Participa Pouco
Participa Pouco


Voltar ao Topo Ir em baixo

Astúcia Re: Desafio Pascal

Mensagem por Tales Ruan em 14/5/2009, 17:44

Hum... Concordo arimatéia, Acho que eu devia ter explicado melhor. A idéia era retornar a diferença, então, com A=4 e B=5 o programa retornaria -1.

Mas tudo bem, você pode se considerar o vencedor da primeira etapa. Smile Parabéns. Compre um picolé, me mande a nota fiscal, e depois eu faço um depósito do valor na sua conta bancária.


Bom, agora estou oficialmente reformulando o desafio porque antes estava muito fácil:

O desafio agora consiste de calcular a DIFERENÇA de dois valores REAIS quaisquer, A e B, sem utilizar o sinal de subtração.

Complicou um pouquinho, mas a solução é muito mais legal assim. Boa sorte para todos Smile

Tales Ruan
Participa Bastante
Participa Bastante


Voltar ao Topo Ir em baixo

Astúcia Desafio Pascal

Mensagem por zeroum em 25/2/2013, 15:17

Seguem as minhas soluções.

DESAFIO 1: Fazer a subtração de dois valores INTEIROS quaisquer, A e B, sem utilizar o sinal de menos ( - ).

No primeiro exercício coloquei para impressão sair com sinal (-) caso o segundo número informado fosse maior do que o primeiro, conforme informação posterior dada pelo autor. Mas é só a impressão. O algoritmo foi feito sem o sinal de subtração.

Testei os seguintes números e a princípio parece que está funcionando corretamente:

A=3; B=5; resultado= - 2
A=5; B=3; resultado= 2
A=3, B=3, resultado= 0

Código:

{Fazer a subtração de dois valores
INTEIROS quaisquer, A e B, sem utilizar o sinal de menos ( - ).}

program dimuir;

uses crt;

var
A,B,i,s,maior,menor:integer;

begin
clrscr;
writeln;writeln;

write('Digite o primeiro numero: ');
readln(A);
writeln;
write('Digite o segundo numero: ');
readln(B);

//descobrindo o maior e o menor número inteiro.
if A>B then
   begin
      maior:=A;
      menor:=B;
   end
else
   begin
   maior:=B;
   menor:=A;
   end;


//fazendo a contagem 1 a 1 do menor até o maior inteiro
s:=-1;
for i:=menor to maior do
   s:=s+1;

writeln;writeln;

//imprimindo o resultado
if A=B then
   begin
   textcolor(1);
      writeln('RESULTADO DA SUBTRAÇÃO:');
      writeln('A - B = ',s);
      textcolor(0);
   end
else
   if maior=B then
      begin
         textcolor(1);
         writeln('RESULTADO DA SUBTRAÇÃO:');
         writeln('A - B = ','-',s);
         textcolor(0);
      end
   else
      begin
         textcolor(1);
         writeln('RESULTADO DA SUBTRAÇÃO:');
         writeln('A - B = ',s);
         textcolor(0);
      end;

writeln;writeln;
writeln('/////////////////////////////////////////////////');
writeln('FIM DO PROGRAMA. DIGITE QUALQUER TECLA PARA SAIR.');
readkey;
end.


DESAFIO 2: Calcular a DIFERENÇA de dois valores REAIS quaisquer, A e B, sem utilizar o sinal de subtração.

Testei os seguintes números e, salve engano, parece que está funcionando direito:

A= 2,65; B=3,64; resultado= - 0,99
A=3,54; B= 1,65; resultado= 1,89
A=4,5; B=4,5; resultado= 0
A=1,25; B=3,654; resultado= - 2,404

Código:

{O desafio agora consiste em calcular a DIFERENÇA de dois
valores REAIS quaisquer, A e B, sem utilizar o sinal de subtração.}

program dimuir_numero_real;

uses crt;

var
A,B,maior,menor,total:real;
inteiro,y,x,q,z,soma,expmaior,expa,expb: real;

begin
clrscr;
writeln;writeln;

write('Digite o primeiro numero: ');
readln(A);
writeln;
write('Digite o segundo numero: ');
readln(B);
writeln;writeln;

//achando o multiplo de 10 que transforma A em inteiro.
expa:=1;
y:=frac(A);
x:=A;
soma:=0;
while y<>0 do
begin
   x:=x*10;
   y:=frac(x);
   soma:=soma+1;
   expa:=exp(soma*ln(10));
end;


//achando o multimplo de 10 que transforma B em inteiro.
q:=frac(B);
z:=B;
soma:=0;
while q<>0 do
begin
   z:=z*10;
   q:=frac(z);
   soma:=soma+1;
   expb:=exp(soma*ln(10));
end;


//descobrindo o maior multiplo de 10
if expa>expb then
      expmaior:=expa
else
   expmaior:=expb;



//transfomando A e B em numeros inteiros com o maior multiplo de 10
A:=A*expmaior;
B:=B*expmaior;


//descobrindo o maior e o menor número inteiro.
if A>B then
   begin
      maior:=A;
      menor:=B;
   end
else
   begin
   maior:=B;
   menor:=A;
   end;


//fazendo a contagem 1 a 1 do menor até o maior inteiro
inteiro:=0;
while menor<maior do
begin
   inteiro:=inteiro+1;
   menor:=menor+1;
end;


//subtração
total:=inteiro/expmaior;

//imprime o resultado em cor azul.
if A=B then
   begin
   textcolor(1);
      writeln('RESULTADO DA SUBTRAÇÃO:');
      writeln('A - B = ',total:10:7);
      textcolor(0);
   end
else
   if maior=B then
      begin
         textcolor(1);
         writeln('RESULTADO DA SUBTRAÇÃO:');
         writeln('A - B = ','-',total:10:7);
         textcolor(0);
      end
   else
      begin
         textcolor(1);
         writeln('RESULTADO DA SUBTRAÇÃO:');
         writeln('A - B = ',total:10:7);
         textcolor(0);
      end;

writeln;writeln;
writeln('/////////////////////////////////');
writeln('FIM DO PROGRAMA. DIGITE QUALQUER TECLA PARA SAIR.');
readkey;
end.


zeroum
Participa Pouco
Participa Pouco


Voltar ao Topo Ir em baixo

Astúcia Re: Desafio Pascal

Mensagem por zeroum em 25/2/2013, 15:45

DESAFIO 3: Elabore um algoritmo que seja capaz de ler números inteiros para uma matriz 3x3 e depois gire a matriz em 90° no sentido anti-horário, transformando linha em coluna (sentido anti-horário). O último elemento da linha será o primeiro da nova coluna.
A matriz original e o resultado devem ser impressos com cada linha contendo todos os seus elementos, como no exemplo ilustrativo abaixo:

1 2 3
4 5 6
7 8 9

Não imprima cada elemento em uma linha, por exemplo, como mostrado abaixo:
1
2
3
4
5
6
7
8
9


DESAFIO 4:
Com base no exercício anterior, elabore um algoritmo que seja capaz de ler números inteiros para uma matriz 3x3 e depois gire a matriz em 90° no sentido horário, transformando linha em coluna (sentido horário). O primeiro elemento da linha será o primeiro da nova coluna e o último elemento da linha será o último da coluna.
A matriz original e o resultado devem ser impressos com cada linha contendo todos os seus elementos, como neste exemplo ilustrativo:

1 2 3
4 5 6
7 8 9

Não imprima cada elemento em uma linha, por exemplo, como mostrado abaixo:
1
2
3
4
5
6
7
8
9

zeroum
Participa Pouco
Participa Pouco


Voltar ao Topo Ir em baixo

Astúcia Re: Desafio Pascal

Mensagem por Marcos Guedes em 25/2/2013, 17:10

Tales... como ficou esta solução?
Posta aí!
tongue

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
http://portal.programacaobrasil.com

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum