Ir ao conteúdo
  • Cadastre-se

Ana Waldila

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Olá pessoal! Estou com uma dúvida que não me deixa descansar tem dias já.... Tentarei ser clara. Vamos lá: Estou desenvolvendo um software de cálculo de engenharia. Neste software, ele é composto por 2 grandes blocos de For, cada um fazendo suas devidas verificações e seus devidos cálculos. O primeiro For é usado até que se esgotem as suas condições, dai a leitura do programa sai desse for e entra no segundo For. O primeiro For se chama "Estádio 2" e o segundo For se chama "Estádio 3". Até ai ok. De forma geral, os cálculos são iterativos, onde as variáveis vão sendo atualizadas a cada passada de For. Em cada passada, as 8 colunas do DataGrid vão sendo preenchidas. A última coluna, "Deflexão" é uma coluna cuja qual é calculada (ou deveria ser calculada) da seguinte maneira: O programa tem que fazer a leitura de CADA célula da coluna "Momento", obedecendo a umas determinadas condições de IF's. Quando as condições são aceitas, o programa pega os valores das colunas "Linha Neutra" e "Deformação Compressão Concreto" para realizar os devidos cálculos (reparem que o valor da célula da coluna "Momento" é apenas um parâmetro de verificação. Sim, só este pode ser o parâmetro, conforme os cálculos que eu fiz em papel.) Eu tive que explicar isso tudo, em linhas muito gerais, para poder chegar no ponto aonde eu quero: o FOR do "Estádio 3" não está conseguindo realizar a leitura dos valores da coluna momento do "ESTÁDIO 2". Ou seja, O FOR "Estádio 3", para averiguar as condições dos valores de "Momento", precisa acessar o FOR "Estádio 2", e ele não o enxerga, tanto que o resultado sai Not a Number. Ele só está enxergando o FOR dele mesmo, "Estádio 3". Já tentei fazer um FOR em separado para realizar os cálculos da última coluna, mas isso não resolve. Para vocês terem ideia do que ocorre, anexei uma figura do resultado. Aqui está uma pequena PARTE do código, de como está atualmente a leitura das linhas do DataGrid: For Each linha As DataGridViewRow In frm_Resultado.DataGrid_Resultado_Estadio2.Rows 'percorre cada linha For Each celula As DataGridViewCell In frm_Resultado.DataGrid_Resultado_Estadio2.Rows(linha.Index).Cells 'percorre cada celula da linha If frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(6).Value.ToString() <= 1.01 * 3 * momento_variavel_estadio3 / 4 Then 'verifica a condição do valor do momento na coluna momento If frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(6).Value.ToString() >= 0.99 * (3 * momento_variavel_estadio3 / 4) Then ecm_resultado_parte1_estadio3 = frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(3).Value.ToString() LN_resultado_parte1_estadio3 = frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(2).Value.ToString() End If End If If frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(6).Value.ToString() <= 1.01 * (momento_variavel_estadio3 / 2) Then If frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(6).Value.ToString() >= 0.99 * (momento_variavel_estadio3 / 2) Then ecm_resultado_parte2_estadio3 = frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(3).Value.ToString() LN_resultado_parte2_estadio3 = frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(2).Value.ToString() End If End If If frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(6).Value.ToString() <= 1.01 * (momento_variavel_estadio3 / 4) Then If frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(6).Value.ToString() >= 0.99 * (momento_variavel_estadio3 / 4) Then ecm_resultado_parte3_estadio3 = frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(3).Value.ToString() LN_resultado_parte3_estadio3 = frm_Resultado.DataGrid_Resultado_Estadio2.CurrentRow.Cells(2).Value.ToString() End If End If Next celula deflexao_estadio3 = ((comprimento_vao ^ 2) / 48) * ((ecm_resultado_parte3_estadio3 / LN_resultado_parte3_estadio3) + _ (ecm_resultado_parte2_estadio3 / LN_resultado_parte2_estadio3) + (3 * ecm_resultado_parte1_estadio3 / LN_resultado_parte1_estadio3) + _ (ecm_variavel_estadio3 / LN_estadio3)) Next linha My.Forms.frm_Resultado.DataGrid_Resultado_Estadio2.Rows.Add(j, "Regime Nao Linear (Estadio 3) - 4", _ Format(LN_estadio3, "####.00000"), _ Format(ecm_variavel_estadio3, "####.0000000000"), _ Format(es1_variavel_estadio3, "####.0000000000"), _ Format(es2_variavel_estadio3, "####.0000000000"), _ Format(momento_variavel_estadio3, "####.00000"), _ Format(deflexao_estadio3, "##.0000000000")) Peço desculpas se eu não consegui ser clara o suficiente. De qualquer maneira agradeço a atenção de todos! Obrigada!

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!