PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Estou tendo dificuldade em ALGORITMOS #514197

19/03/2015

0

Olá boa tarde,
Preciso muito de ajuda, estou com um trabalho para entregar, mas não sei como escrever.. :/

1. São dados N azulejos de dimensões 10cm x 10cm. Com eles, você deve montar um
conjunto de quadrados (com espessura de um azulejo) de modo a utilizar TODOS os azulejos
dados. Inicialmente você deve montar o maior quadrado possível com os azulejos dados;
então, com os azulejos que sobraram, você deve montar o maior quadrado possível, e assim
sucessivamente. Por exemplo, se forem dados 31 azulejos, o conjunto montado terá quatro
quadrados,

Faça um algoritmo que calcule o número de quadrados do conjunto montado para
um determinado número de azulejos que seja informado. Saia do algoritmo quando
informado o número zero (0)



2. Epaminondas resolve contar usando a mão esquerda da seguinte maneira: Ela
começa com 1 no dedão, 2 no dedo indicador, 3 no médio, 4 no anelar, 5 no mínimo e depois
inverteu a ordem, contando 6 no anelar, 7 no médio, 8 no indicador, 9 no dedão, 10
novamente no dedo indicador e assim por diante. Em qual dedo a pessoa parou se contou
até:

(a) 222
(b) 534
(c) 1001

Faça um algoritmo que leia o número a ser contado e indique em qual dedo do
Epaminondas parou?

Desde já agradeço! ;)
Tatiele

Tatiele

Responder

Posts

19/03/2015

Gleyton Menezes

É para fazer com alguma linguagem?
Responder

Gostei + 0

22/03/2015

Tatiele

Não,
Somente em algoritmos...
Estou testando algumas ideias no Visualg
Responder

Gostei + 0

22/03/2015

Gleyton Menezes

Já fiz alguns mas não com esse grau de dificuldade.
Responder

Gostei + 0

22/03/2015

Tatiele

e olha que faz um mês que iniciei o curso, sem conhecimento nenhum... O professor pegou pesado, mas estou perto da resposta certa...
Obrigada :)
Responder

Gostei + 0

22/03/2015

Gleyton Menezes

Se possivel, pode postar o que você fez? e quando terminar tambem?
Responder

Gostei + 0

23/03/2015

Tatiele

eu ainda não consegui terminar, o loop não está dando certo e por esse motivo alguns números dão errado, tipo 24, 347, 1200. Acredito que esses números estão dando errado, por terem que fazer o laço de repetição, que não está funcionando....

O melhor que cheguei até agora! Coloquei alguns comentários para explicar a minha lógica... Qualquer dúvida me pergunta, e qualquer modificação que achar necessária pode me dizer...



algoritmo "Calculo de Quadrados"
// Função : Contar quantos quadrados consigo montar com número de azulejos
// Autor : Tatiele Nascimento
// Data : 22/03/2015
// Seção de Declarações


var

raiz, Raiz2:real
n,calc1, calc2, calc3, Aux, Aux2, quadrados, quadrados1: inteiro
inicio
escreva ("Digite o número de azulejos:")
leia (n)
se (n=0) entao
escreval ("Digite outro número inteiro e maior que zero")
senao
se (n<=3) entao
quadrados1 <- n
Escreval ("O número de quadrados é: ", quadrados1) //Ex: o número digitado foi 9
senao
se (n>3) entao

ENQUANTO (n >3) FACA
raiz <- n^(1/2) + 0,0012566 // raiz quadrada de 9 é exata (3)
// por isso que coloquei (+ 0,0012566)
calc1 <- int(raiz) * int(raiz) // aqui só preciso pegar o inteiro das raizes
Aux <- n - Calc1 // 9-9 = 0
quadrados <- 1
se Aux <=3 entao
quadrados <- quadrados + Aux // aqui é para casos que sobra 1,2,3
senao
quadrados <- quadrados + 1
fimse
se (Aux>3) entao
Aux2 <- Aux
Raiz2 <- Aux2^(1/2) + 0,0012566 //se Aux que deu 0, for maior que 3, preciso repetir o esquema de cima
calc2 <- int(Raiz2) * int(Raiz2) //
calc3 <- Aux - calc2 //
se calc3 <=3 entao
quadrados <- quadrados + calc3 // se for menor que 3. não preciso repetir tudo de novo
// pois 3 azulejos não formam um quadrado maior, entao fica como tres quadrados
FIMSE
FIMSE
n<- calc3 // aqui n vai receber o valor de calc3, para continuar ou não o laço

FIMENQUANTO
escreval("o número de quadrados é!", quadrados)


fimse
fimse
fimse




fimalgoritmo
Responder

Gostei + 0

23/03/2015

Marcos P

Tatiele,

Vou lhe dar uma ajuda nesse primeiro, ok ?!?

Assumindo, conforme o enunciado, que quando temos 31 azulejos conseguimos fazer 4 quadrados, temos :

saldo | 31 
      |   x
saldo |    30
      |      xx
      |      xx
saldo |        26
      |          xxx
      |          xxx
      |          xxx
saldo |             17
      |               xxxx
      |               xxxx 
      |               xxxx
      |               xxxx
saldo |                   1


Observe que o menor quadrado é formado por apenas um azulejo...

Se a lógica é essa, a base do seu algoritmo deve ser :

entra @qtde_azulejos
@saldo_azulejo = @qtde_azulejos
@quadrados = 0

enquanto @saldo_azulejo >= (@quadrados * @quadrados )
  @quadrados = @quadrados + 1
  @saldo_azulejo = @saldo_azulejo - (@quadrados * @quadrados )
fimenquanto

O total de quadrados é igual a : @quadrados
O salado de azulejos é igual a : @saldo_azulejo


Só ajuste esse pseudo-código a sintaxe que você precisa.

Ok ?!?
Responder

Gostei + 0

23/03/2015

Tatiele

Consegui fazer os dois exercícios... Muito Obrigada :)

aqui está minha solução do segundo exercício, está em algoritmos.



Programa Dedos
var
n, cont: inteiro
INICIO
Escreva ("Digite um número ")
Leia (n)
cont <- 1
Repita
SE (cont=n) ENTAO
Escreval (n, " está no dedo polegar")
FIMSE
cont<-cont+1

SE (n=cont) ENTAO
Escreva (n, " está no dedo indicador")
FIMSE
cont<-cont+1

SE (n=cont) ENTAO
Escreva (n, " está no dedo médio")
FIMSE
cont<-cont+1

SE (n=cont) ENTAO
Escreva (n, " está no dedo anelar")
FIMSE
cont<-cont+1

SE (n=cont) ENTAO
Escreva (n, " está no dedo mínimo")
FIMSE
cont<-cont+1



SE (n=cont) ENTAO
Escreva (n, " está no dedo anelar")
FIMSE
cont<-cont+1

SE (n=cont) ENTAO
Escreva (n, " está no dedo médio")
FIMSE
cont<-cont+1

SE (n=cont) ENTAO
Escreva (n, " está no dedo indicador")
FIMSE
cont<-cont+1

ATE (cont>n)
FIMREPITA


FIMALGORITMO
Responder

Gostei + 0

23/03/2015

Gleyton Menezes

Obrigado Tatiele, boa lembrança desse código.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar