Ir ao conteúdo

Midori

Membro Pleno
  • Posts

    3.601
  • Cadastrado em

  • Última visita

Tudo que Midori postou

  1. @Guto Lima Com macro fica assim, Sub ContaGrupos() Dim Area As Range Dim Lin As Long Dim Col As Integer Dim Conta As Integer Dim ColGrp As Integer Set Area = [A2:AA15] For Lin = 1 To Area.Rows.Count ColGrp = Area.Columns.Count + 2 Conta = 0 For Col = 1 To Area.Columns.Count If Area(Lin, Col).Value <> "" Then Conta = Conta + 1 Else If Conta > 1 Then Cells(Area.Rows(Lin).Row, ColGrp) = Conta ColGrp = ColGrp + 1 End If Conta = 0 End If Next Col If Conta > 1 Then Cells(Area.Rows(Lin).Row, ColGrp) = Conta End If Next Lin End Sub
  2. @Guto Lima Com macro é mais simples, mas se quiser com fórmula cheguei nestes resultados com range auxiliar e fórmulas compatíveis com o Excel 365, =SE(EMPILHARH(SE(A2:AA2<>0;1;0);{0})=1;EMPILHARH({0};AC2:BC2)+1;0) =DIVIDIRTEXTO(UNIRTEXTO(",";VERDADEIRO; SE(SE(AC2#=0;DESLOC(AC2#;;-1);"") <=1;"";SE(AC2#=0;DESLOC(AC2#;;-1);"") ) );",")
  3. Isso pode ser feito com macro. As linhas serão copiadas para a o Agrupamento e a cada data acrescenta uma borda com a mescla na coluna A.
  4. @Luanfranca Se entendi o que quer fazer é mostrar a contagem crescente caso o valor inicial seja menor e descrescente se maior. Para isso não é necessário contador e nem a condicional SE. A estrutura Enquanto tem o teste condicional então é só colocar o critério, p.ex, Var Ni, Nf: Inteiro Inicio EscrevaL("Inicio: ") Leia (Ni) EscrevaL("Fim: ") Leia (Nf) Enquanto Ni < Nf Faca EscrevaL(Ni) Ni <- Ni + 1 FimEnquanto Enquanto Ni >= Nf Faca EscrevaL(Ni) Ni <- Ni - 1 FimEnquanto FimAlgoritmo
  5. @Eli Almeidaa Isso acontece ao executar o passo a passo (F8) e em seguida F9. Se rodar sempre com F9 isso não acontece.
  6. @Luanfranca O teste condicional deve ser com uma das variáveis declaradas em Var. Então faltou declarar (e atribuir) N ou testar a variável correta.
  7. Que erro acontece? Aqui funcionou corretamente.
  8. Não porque esse Portugol não é totalmente compatível com o VisualG. Portugol é uma família de linguagens e existe variações entre elas, uma delas é essa da declaração de vetores.
  9. @Eli Almeidaa No outro tópico no seu código das "reservaLugarCinema" tem lá a declaração correta do vetor. A única diferença é que em vez de colocar o número vai o nome da constante, p.ex, algoritmo "reservaLugarCinema" const MAX_ELEMENTOS = 10 Var lugares : vetor [1..MAX_ELEMENTOS] de caractere
  10. @Eli Almeidaa É possível sim. A sintaxe é a mesma da declaração de qualquer vetor. A diferença é que no lugar do número você vai colocar o nome da constante que nesse caso é MAX_ELEMENTOS. E para armazenar os valores no vetor não muda nada na forma que já deve conhecer.
  11. O controle List é apropriado para mostrar um conjunto de dados e nessa tela só tem um dado por controle. Essa quantidade parece desnecessária já que esses dados poderiam aparecer nos outros Text. Ou em apenas um List na forma de tabela com linhas e colunas.
  12. @Miguelriedel Isso pode ser feito com macro. Primeiro faz a ordenação e depois efetua a copia dos dados para a outra planilha.
  13. Uma forma que acho simples é com um único loop onde uma string temporária (vetor de char) armazena cada palavra e depois vai concatenando na nova frase. A string temporária vai facilitar a identificação da palavra aplicando um teste com strcmp. Ali na imagem do meu primeiro comentário, quando o loop chegar na posição 2 é porque uma palavra foi formada. A string temporária será EU e o teste pode ser assim, if(strcmp(temp, de) == 0){ strcpy(temp, para); } O retorno da função é diferente de zero já que EU é diferente de ALUNO. Porém quando chegar na posição 12 será ALUNO e portanto a função retornará zero e a palavra temporária poderá ser substituída por ESTUDANTE, O próximo passo é ir concatenando na nova frase, p.ex: strcat(nova, temp)
  14. Nas propriedades tem a opção para a dimensão, então é só ir lá e marcar.
  15. Assim o valor futuro é o produto das parcelas pelo período, e para chegar na taxa tem o cálculo dos juros compostos. Com essas variáveis este é o resultado, B4 = B3*B2 B5 = (B4/B1)^(1/B2)-1 B6 = (1+B5)^12-1
  16. @Netobarbuio Não chega no resultado porque está usando dois métodos. O valor futuro de 512 mil não considera amortizações. E se for isso mesmo que quer fazer a parcela é apenas a divisão desse valor pelo período. Para o cálculo de parcelas com PGTO tem as amortizações. Assim a parcela do empréstimo de 400 mil, período 200 e 0,12351% a.m será 2.258,40, como fez em F1, e não 2.560,00. E o valor total 451.681,62.
  17. No seu comentário já tem a fórmula da taxa, (B2/A2)^(1/C2)-1, e a parcela é a divisão do valor futuro pelo período.
  18. @mcoumiotis Isso pode ser feito com macro de forma a relacionar cada legenda com uma cor, p.ex, A identificação da cor coloquei na própria célula, mas pode ser a cor da fonte, referencia de outra célula, etc. E a atualização da cor via macro fica assim, Sub Grafico() Dim Grafico As ChartObject Dim Fatia As Point Dim Legenda As Range Dim Indice As Long Set Grafico = ThisWorkbook.ActiveSheet.ChartObjects("Chart 1") For Each Legenda In [A1:A3] Indice = Indice + 1 Set Fatia = Grafico.Chart.FullSeriesCollection(1).Points(Indice) Fatia.Format.Fill.ForeColor.RGB = Legenda.Interior.Color Next Legenda End Sub
  19. @mcoumiotis Assim é mais garantido, =MÁXIMO(SE(A:A="RESULTADO FINAL";LIN(A:A);0)) Com Corresp pode acontecer de retornar a linha errada.
  20. @mcoumiotis Tenta fazer o CORRESP sem o último argumento ou assim, =CORRESP(1;IF(A:A="RESULTADO FINAL";1;""))
  21. @Eli Almeidaa Acho melhor criar outro tópico caso tenha mais dúvidas sem relação com o assunto desse. Mas como o enunciado não pede para o usuário escolher a quantidade de produtos, entendo que você pode definir isso no seu programa. Se declarar o vetor de registros para 10 elementos, essa será a quantidade máxima de produtos.
  22. @Leonardo Augusto0761 Como dito no enunciado seu código tem que percorrer cada letra da string, assim poderám testar onde tem espaço e onde termina a frase. Para isso faça um loop onde o contador será o índice do vetor de char referente a posição da letra (0 = E, 1 = U..). A string original e a nova, como no exemplo, Para formar a nova frase declare outro vetor de char para ir acrescentando as palavras com as substituições. Você pode usar as funções de string.h para isso como strcpy, strcat, strlen para contar etc.
  23. Poderia sim. O primeiro código p.ex fica assim, Algoritmo "Media da Classe" Var Nota1: Real Nota2: Real Total: Real Media: Real Nome: Caractere Conta: Inteiro Aprov: Inteiro Inicio Para Conta <- 1 ate 6 faca Escreva("Nome ", Conta, ": ") Leia(Nome) Escreva(" Nota 1: ") Leia(Nota1) Escreva(" Nota 2: ") Leia(Nota2) Media <- (Nota1 + Nota2)/2 Se(Media > 7) então Aprov <- Aprov + 1 FimSe Total <- Total + Media FimPara Escreval("MEDIA DA CLASSE: ", Total/6) Escreval("APROVADOS: ", Aprov/6 * 100, "%") Escreval("REPROVADOS: ", (1 - Aprov/6) * 100, "%") Fimalgoritmo Tem mais operações e o resultado final é o mesmo. Esse é o ponto. No primeiro efetou a soma e depois dividiu por 8. Já o segundo soma as duas notas e divide por 2 para calcular a média, por isso depois tem a divisão por 4. Aqui no numerador é a soma de todas as notas e denominar é a quantidade de notas Nesta o numerador tem as frações do cálculo da média e o denominador com a quantidade de médias. Efetuando a operação de divisão de frações vai chegar na primeira expressão com o denominador 8.
  24. A finalidade dos dois é calcular a média aritmética das notas. E no primeiro além disso ele mostra o percentual de alunos aprovados e reprovados. Já o segundo mostra a quantidade de alunos acima da média e além disso ele usa vetor já que primeiro pede todos os dados e depois mostra uma lista de cada aluno. Primeiro ele vai acumular a soma das notas e depois dividir tudo por 12 já que essa é a quantidade de dados/notas. Lembre-se do calculo da média, um exemplo com 4 alunos, Aluno | Nota 1 | Nota 2 A | 5,3 | 6,5 B | 8,2 | 7,0 C | 4,5 | 5,0 D | 9,0 | 5,5 Calculando como no primeiro código, soma tudo e divide por 8. Logo, 5,3 + 6,5 + 8,2 + 7,0 + 4,5 + 5,0 + 9,0 + 5,5 = 51 51 / 8 = 6,38 A média da turma é 6,38 Há uma pequena diferença de método, mas basicamente é o mesmo cálculo. Pegando a tabela que mostrei acima fica assim, (5,3 + 6,5)/2 + (8,2 + 7,0)/2 + (4,5 + 5,0)/2 + (9,0 + 5,5)/2 = 25,5 25,5 / 4 = 6,38 A média da turma é 6,38. Mesmo resultado. Outra coisa que você pode observar é que se dividir essa expressão por 4 vai chegar no cálculo da média da divisão pela quantidade de dados, p.ex, [(5,3 + 6,5)/2 + (8,2 + 7,0)/2 + (4,5 + 5,0)/2 + (9,0 + 5,5)/2]/4 = 6,38 (5,3 + 6,5)/8 + (8,2 + 7,0)/8 + (4,5 + 5,0)/8 + (9,0 + 5,5)/8 = 6,38
  25. Você pode testar o retorno do código do erro e fazer algo assim, On Error Resume Next ... strIE = "'" & xmlNode.SelectSingleNode("IE").Text If Err.Number <> 0 Then MsgBox "Erro" End If Aí vai mostrar a mensagem no caso do erro.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!