Fórum de Matemática
DÚVIDAS? Nós respondemos!

Um Fórum em Português dedicado à Matemática
Data/Hora: 29 abr 2024, 02:47

Os Horários são TMG [ DST ]




Fazer Nova Pergunta Responder a este Tópico  [ 3 mensagens ] 
Autor Mensagem
MensagemEnviado: 13 fev 2013, 13:37 
Offline

Registado: 13 fev 2013, 13:26
Mensagens: 1
Localização: portugal
Agradeceu: 0 vez(es)
Foi agradecido: 0 vez(es)
Boas

Estou a estudar programação informática e até esta altura nunca fui um grande matemático. Tenho contudo lutado por suprimir essa lacuna. Tenho descoberto que a matemática é por si só uma filosofia.

Estou neste momento com uma dúvida na realização de um exercício de programação e tenho esperança de conseguir alguma ajuda convosco.

Citar:
66) Faca um programa que leia 2 numeros inteiros da entrada e mostre o resto da divisao inteira do primeiro pelo segundo, utilizando o metodo de subtrações sucessivas. Exemplo:
Valores lidos: 15 4
Saída do programa: 3
Dica: 15 % 4 = 15 - 4 - 4 - 4 = 3


Que fórmula devo adotar para atingir o módulo de dois números?
Tentei o seguinte: c = ab(-b) ou seja, o numero que possui "b" é o numero de ciclos que vai subtrair a "a".

Mas não dá correto... qual será a fórmula para isto?


Topo
 Perfil  
 
MensagemEnviado: 13 fev 2013, 18:05 
Offline

Registado: 14 dez 2011, 15:59
Mensagens: 897
Localização: Portugal
Agradeceu: 20 vezes
Foi agradecido: 373 vezes
Se percebi bem o problema, uma solução possível é, para o casos de inteiros positivos, considerar o seguinte "programa":

Input: \(a,b\)

Fixar \(x:=a\),

Se \(x\geq b\) fazer \(x:=x-b\) (repetir o passo)
Se \(x<b\) output: \(\mbox{resto da divis\tilde{a}o de $a$ por $b$}\) é \(x\).

Isto é mais ou menos o programa, como escrevê-lo corretamente numa linguagem de programação não sei.


Topo
 Perfil  
 
MensagemEnviado: 14 fev 2013, 01:19 
Offline

Registado: 10 nov 2012, 00:19
Mensagens: 1432
Localização: Mogi das Cruzes - SP - Brasil
Agradeceu: 47 vezes
Foi agradecido: 452 vezes
Olá, boa noite.

Uma implementação para a especificação do Rui Carpentier, em linguagem Ruby, é:

Código:
loop do
  print "Informe o valor 'a' (0 para encerrar): "
  a = gets.to_i
  break if a == 0
  print "Informe o valor 'b': "
  b = gets.to_i
   
  resto = a - b   
  while resto >= b
    resto = resto - b
  end

  puts "O resto de #{a} dividido por #{b} eh igual a #{resto}."

  puts   
end
 
puts "Game over!"

_________________
Fraol
Você também pode contribuir, se souber alguma questão responda ou participe da discussão. Divulgue nosso forum.


Topo
 Perfil  
 
Mostrar mensagens anteriores:  Ordenar por  
Fazer Nova Pergunta Responder a este Tópico  [ 3 mensagens ] 

Os Horários são TMG [ DST ]


Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 8 visitantes


Criar perguntas: Proibído
Responder a perguntas: Proibído
Editar Mensagens: Proibído
Apagar Mensagens: Proibído
Enviar anexos: Proibído

Pesquisar por:
Ir para: