Ir para conteúdo
Fórum Script Brasil

Galbieth

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Tudo que Galbieth postou

  1. Eu fiz um, segue abaixo. Creio que seja isso que você necessite. Apenas lembrando que esse algoritmo que eu fiz também dá pra fazer com função/procedimento, usando o valor do salário como uma variável "de verdade", onde o próprio cliente consegue inserir o salário base e, a partir dele, o programa realiza as contas. Acho que você consegue fazer isso se der uma pesquisada em função e procedimento. Usando procedimento/função o código fica MUUUUITO mais legível e "bonitinho"... talvez fique como desafio? EDIT: esqueci de adicionar o REPITA ... ATE resposta = "n". Sem isso, o algortimo não fica recursivo e você só consegue calcular um salário por execução de programa. algoritmo "semnome" var meta, atingimento, porcentagem, acrescimoSalario, salario: real resposta: inteiro continuar: caractere inicio escreva ("Qual a meta da empresa?") leia(meta) escreva ("Qual foi o atingimento da empresa? ") leia(atingimento) porcentagem <- ((atingimento*100)/meta) se (porcentagem >= 100) então escreva ("A meta da empresa foi batida em", porcentagem, "%.") acrescimoSalario <- porcentagem/100 senao escreva ("A meta não foi batida. O atingimento total foi de", porcentagem, "%.") fimse escreval() escreval() escreval ("Escolha um cargo para calcular o salário: ") escreval ("[1] - Assistente") escreval ("[2] - Técnico") escreval ("[3] - Analista") escreval ("[4] - Especialista") leia (resposta) escolha(resposta) caso 1 escreval ("O salário base para esse cargo é de R$1600,00") se (porcentagem <=100) então escreva ("O funcionário irá receber o salário base.") senao salario <- 1600*acrescimoSalario escreval ("O novo salário será de R$", salario) escreval ("O acréscimo de salário foi de", acrescimoSalario) escreval() escreval ("Deseja calcular outro salário? (S/N)") leia(continuar) limpatela() fimse caso 2 escreval ("O salário base para esse cargo é de R$2800,00") se (porcentagem <=100) então escreva ("O funcionário irá receber o salário base.") senao salario <- 2800*acrescimoSalario escreval ("O novo salário será de R$", salario) escreval ("O acréscimo de salário foi de", acrescimoSalario) escreval() escreval ("Deseja calcular outro salário? (S/N)") leia(continuar) limpatela() fimse caso 3 escreval ("O salário base para esse cargo é de R$3500,00") se (porcentagem <=100) então escreva ("O funcionário irá receber o salário base.") senao salario <- 3500*acrescimoSalario escreval ("O novo salário será de R$", salario) escreval ("O acréscimo de salário foi de", acrescimoSalario) escreval() escreval ("Deseja calcular outro salário? (S/N)") leia(continuar) limpatela() fimse caso 4 escreval ("O salário base para esse cargo é de R$4000,00") se (porcentagem <=100) então escreva ("O funcionário irá receber o salário base.") senao salario <- 4000*acrescimoSalario escreval ("O novo salário será de R$", salario) escreval ("O acréscimo de salário foi de", acrescimoSalario) escreval() escreval ("Deseja calcular outro salário? (S/N)") leia(continuar) limpatela() fimse fimalgoritmo
  2. Pessoa, como vão? Seguinte, estou fazendo um curso de lógica on-line e um dos exercícios é criar um jogo da velha usando portugol. Apos poucos estou avançando, porém estou em uma situação que não sei como posso resolver. Eu preciso mostrar o campo do jogo (uma matriz 3x3) realizando uma referência para as casas, que vai de 1 até 9 (exemplo abaixo). Para isso, criei uma matriz do tipo INTEIRO para armazenar os valores e mostrar na tela, até aí tudo bem. 1 | 2 | 3 O problema vem, justamente, quando acontece a primeira jogada do jogador. Na primeira jogada, ele precisa indicar ao programa uma casa (de 1 até 9 - referência na matriz) e, após isso, o programa irá atualizar o valor daquela casa para "X" e não mais o valor de referência. Por exemplo, se o jogador digitar "1" na primeira resposta o número "1" precisará ser trocado para "X", ficando dessa forma: X | 2 | 3 Mas... se a minha matriz é de inteiro, como eu consigo fazer com que um valor do tipo string seja alocado na posição indicada pelo jogador? • Eu tentei alterar a matriz do tipo inteiro para caractere, porém ao fazer isso o mesmo problema acontece: uma variável do tipo caractere não pode receber um valor do tipo inteiro alocado (pensei isso porque se você digitar um número entre aspas ele não é um inteiro ou real, mas vira uma string). Além disso, se mudar a matriz para caractere só consegui pensar em uma forma burra de popular ela com números, que seria, literalmente, escrever cada número para cada posição (por exemplo, matriz[1,1] <- 1; matriz[1,2] <- 2, etc) mas achei isso surreal. Com certeza deve existir uma outra forma de resolver isso, mas infelizmente não sei. Infelizmente parei aqui e não sei como avançar, gostaria de contar com a ajuda de vocês para resolver essa questão algoritmo "Jogo da Velha" var matriz: vetor [1..3, 1..3] de inteiro l, c, cM, numeroJogadas, simbolo, resposta: inteiro acabarJogo: logico procedimento simboloJogada () inicio se simbolo = 1 então escreva ("Qual casa quer jogar [X]?") leia (resposta) simbolo <- simbolo - 1 numeroJogadas <- numeroJogadas + 1 senao escreva ("Qual casa quer jogar [A]?") leia (resposta) simbolo <- simbolo + 1 numeroJogadas <- numeroJogadas + 1 fimse acabarJogo <- numeroJogadas = 9 se acabarJogo então escreva ("9 jogadas foram feitas.") fimse fimprocedimento procedimento teste () inicio escreva ("esse é um teste. numero de jgoadas: ", numeroJogadas) fimprocedimento inicio cM <- 1 simbolo <- 1 // populando a matriz de 1 ate 9 para l <- 1 ate 3 faca para c <- 1 ate 3 faca matriz[l,c] <- cM cM <- cM + 1 fimpara escreval() fimpara // exibindo a matriz populada na tela para l <- 1 ate 3 faca para c <- 1 ate 3 faca se c <= 2 então escreva (matriz[l,c]: 3, "|") senao escreva (matriz[l,3]: 3, "|") fimse fimpara escreval () fimpara // repete a entrada de valores ate acabarJogo ser verdadeiro, ou seja // quando o numero de jogadas for igual a 9 OU // vitória por linha ou colunha (necessario desenvolver) repita simboloJogada() atualizaMatriz() //aqui que estou com problemas ate acabarJogo fimalgoritmo
  3. Não é por causa da acentuação?
×
×
  • Criar Novo...