PiR2
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Programação

2 participantes

Ir para baixo

Programação Empty Programação

Mensagem por okaykarol Qui 30 Abr 2015, 12:31

Você foi contratado para escrever um programa capaz de adivinhar um valor inteiro fornecido em um intervalo conhecido no menor número possível de tentativas. Para tal, escreva um programa que trate dos seguintes quesitos:

    1. leia dois números representando o menor e o maior valor desse limite. 
    2. verifique se os limites estão corretos: menor e maior valores nessa ordem e trate de correções necessárias.
    3. leia um valor fornecido limitado entre esses dois números mas que não corresponda a nenhum dos valores limites;
    4. verifique se o valor fornecido é realmente válido (ou seja, esteja contido no intervalo);

Calcule a metade do intervalo e compare com o valor que deve ser adivinhado. A seguir refaça os limites usando a metade calculada como novo limite e, sempre trabalhando com as metades dos novos intervalos, procure chegar ao valor fornecido.

Seu programa deverá imprimir os resultados dos cálculos de cada tentativa contendo o seu número e o valor calculado. Ao final do cálculo o programa deverá imprimir o intervalo fornecido, o valor a ser adivinhado e o valor calculado junto com o número de tentativas necessárias para chegar a ele.

Antes de começar a programar escreva um algoritmo que defina os passos necessários para obter os resultados necessários. Inclua o algoritmo na forma de comentários no início do seu programa. Não se esqueça de programar defensivamente, impedindo que o programa comece a execução com dados inadequados, evite divisões por zero e outras indefinições matemáticas.

Preciso de ajuda, é para entregar até terça:
Meu programa em fortran, até agora o que consegui fazer: (está em fortran mas pode ser por C e ++ também)
program adivinhado
      implicit none
      integer ::limiteinf !intervalo inferior onde tem inicio a interação
      integer ::limitesup !intervalo superior onde tem inicio a interação
      integer ::limiteinf_aux !intervalo inferior auxiliar de proteção
      integer ::limitesup_aux !intervalo superior auxiliar de proteção
      integer ::valor !valor a ser adivinhado
      integer ::resultado
      character(len=30) ::arquivo_entrada
       
      write(*,*)
      write(*,*) 'Objetivo do programa: Adivinhar um número inteiro com o menor numero de tentativas'
      write(*,*)
      write(*,*) 'Autor: Karoline Angelo'
      write(*,*) 'Matricula: 140148035'
      write(*,*) 'Data do programa: 22/04/2015'
      write(*,*) 'Ultima modificacao: 29/04/2015'
      write(*,*) 'Insira o titulo do arquivo de entrada'
       read*, arquivo_entrada
      
       open(unit=10, file=arquivo_entrada, status='old', iostat=estado)
      
      
       write(*,*) 'Adicione um limite inferior e um superior'
      
       
       read(*,*)  limiteinf, limitesup, valor
       
       read(10, *,iostat=estado) limiteinf, limitesup, valor
      
       if (limiteinf == limitesup) then
      
       print*, 'Tentativa'
       stop
      
       else if (limiteinf > limitesup) then
      
       print*, 'Tentativa'
      
       stop
      
       else if (limiteinf > limitesup -1) then
      
       print*, 'Tentativa' 
      
       else if (limiteinf > limitesup -2) then
      
      
       else if (limiteinf < limitesup) then
       print*, 'Tentativa'
      
       limiteinf_aux = limiteinf
       limitesup_aux = limitesup
    
      
       else 

       limiteinf_aux = limiteinf
       limitesup_aux = limitesup
       
       end if
       
       close(unit=10)
   
      
        !if(limiteinf_aux)
        !end if
      
       do 
      
        resultado=(limiteinf_aux + limitesup_aux)/2
        !nova variável defensiva=+1
        if(resultado > valor) then
        limitesup_aux= resultado
        print*, resultado
        
        !else(resultado < valor)
        
        print*, resultado
        
        end if
        
       end do
      
      
     
end program adivinhado

okaykarol
Iniciante

Mensagens : 1
Data de inscrição : 30/04/2015
Idade : 28
Localização : brasilia

Ir para o topo Ir para baixo

Programação Empty Re: Programação

Mensagem por Euclides Qui 30 Abr 2015, 15:35

Não temos uma seção para Programação. Matemática Financeira não é seção adequada para isso. Você deve procurar sites especializados.

____________________________________________
In memoriam - Euclides faleceu na madrugada do dia 3 de Abril de 2018.
assinatura 1
Lembre-se de que os vestibulares têm provas de Português também! Habitue-se a escrever corretamente em qualquer circunstância!

O Universo das coisas que eu não sei é incomensuravelmente maior do que o pacotinho de coisas que eu penso que sei.
Euclides
Euclides
Fundador
 Fundador

Mensagens : 32508
Data de inscrição : 07/07/2009
Idade : 74
Localização : São Paulo - SP

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos