|
Sugestões de código gerado pelo site Openai.com / Chatgpt |
Débuté par Boller, 25 jan. 2023 02:20 - 15 réponses |
| |
| | | |
|
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 02:20 |
Gere uma procedure para calcular a baskara
Claro, Adriano. Aqui está uma procedure para calcular as raízes de uma equação de segundo grau (ou "baskara"), dada as entradas a, b e c.
Copy code Procedure Baskara(a, b, c) // Declaração de variáveis para armazenar as raízes Real x1, x2 // Cálculo do delta Real delta = b*b - 4*a*c // Verifica se delta é positivo If delta >= 0 Then // Cálculo das raízes x1 = (-b + Sqrt(delta)) / (2*a) x2 = (-b - Sqrt(delta)) / (2*a) // Exibe as raízes no trace Trace("x1 = " + x1) Trace("x2 = " + x2) Else // Exibe mensagem de erro Trace("Não existem raízes reais para essa equação.") End End Aqui está uma explicação detalhada do código:
A procedure recebe três parâmetros: a, b e c. Esses parâmetros representam os coeficientes da equação de segundo grau. Declarei duas variáveis reais para armazenar as raízes, x1 e x2. Calculei o delta, que é a parte dentro do sinal de raiz quadrada (√) na fórmula da baskara. Verifiquei se o delta é positivo ou não. Se for positivo, significa que existem raízes reais para a equação. Se não, significa que não há raízes reais e exibe uma mensagem de erro. Se o delta for positivo, calculei as raízes usando a fórmula da baskara e exibi-las no trace. Essa procedure é uma forma simples e eficiente para calcular as raízes de uma equação de segundo grau. No entanto, há outras maneiras de se fazer isso, como usando a biblioteca math do Python. Em caso de dúvida, pergunte.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 02:22 |
Crie uma função que calcule a função de uma parábola no plano cartesiano
Claro, Adriano! Aqui está uma função para calcular a função de uma parábola no plano cartesiano:
Copy code Function Parabola(a, b, c, x) // Declarando a variável y como real Real y // Cálculo do valor de y y := a*x*x + b*x + c // Retornando o valor de y Result y End A função tem como entrada os coeficientes a, b e c da equação da parábola e o valor de x para o qual deseja-se calcular o valor de y. Ela calcula y usando a fórmula y = ax^2 + bx + c e retorna esse valor.
Desta forma você pode usar a função Parabola para calcular o valor de y para diferentes valores de x e plotar a parábola no plano cartesiano.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 02:25 |
Crie uma procedure que ache s distância entre dois pontos
Claro, Adriano! Aqui está uma procedure para calcular a distância entre dois pontos:
Copy code Procedure Distancia(x1, y1, x2, y2) // Declarando a variável distância como real Real distancia // Cálculo da distância entre os pontos distancia := Sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)) // Exibição da distância Info("A distância entre os pontos é: " + distancia) End A procedure tem como entrada as coordenadas dos dois pontos
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 02:29 |
Crie uma procedure que faça a mesma função do soma do Excel com WLanguage
Claro, Adriano! Aqui está uma procedure para fazer a soma de uma faixa de células como a função SOMA do Excel:
Copy code Procedure Soma(inicioLinha, inicioColuna, fimLinha, fimColuna) // Declarando a variável soma como real e inicializando com zero Real soma := 0 // Laço para percorrer as células da faixa For iLinha from inicioLinha to fimLinha For iColuna from inicioColuna to fimColuna // Adicionando o valor da célula atual à variável soma soma += CellValue(iLinha, iColuna) End End // Exibição da soma Info("A soma da faixa de células é: " + soma) End A procedure tem como entrada as coordenadas iniciais e finais da faixa de células que deseja-se somar, representadas pelas variáveis inicioLinha, inicioColuna, fimLinha e fimColuna. Utiliza dois laços "For" para percorrer essa faixa de células e somar os valores de cada célula. Por fim, exibe a soma total.
Note que a procedure utiliza uma função CellValue(iLinha, iColuna) para acessar o valor de cada célula, essa função pode variar dependendo da sua implementação na sua aplicação.
adrianoboller@gmail.com Agora do somase
Claro, Adriano. Aqui está uma outra forma de fazer a soma de uma faixa de células, similar à função SOMASE do Excel:
Copy code Procedure Somase(inicioLinha, inicioColuna, fimLinha, fimColuna, condicao) // Declarando a variável soma como real e inicializando com zero Real soma := 0 // Laço para percorrer as células da faixa For iLinha from inicioLinha to fimLinha For iColuna from inicioColuna to fimColuna // Adicionando o valor da célula atual à variável soma se atender a condição If Eval(condicao) Then soma += CellValue(iLinha, iColuna) End End End // Exibição da soma Info("A soma da faixa de células com a condição é: " + soma) End A procedure tem como entrada as coordenadas iniciais e finais da faixa de células que deseja-se somar, representadas pelas variáveis inicioLinha, inicioColuna, fimLinha e fimColuna. Além disso, tem uma variável condicao que é uma string contendo uma expressão lógica para a condição a ser avaliada. Utiliza dois laços "For" para percorrer essa faixa de células e somar os valores de cada célula que atendem a condição passada. Por fim, exibe a soma total.
Note que a procedure utiliza uma função CellValue(iLinha, iColuna) para acessar o valor de cada célula, essa função pode variar dependendo da sua implementação na sua aplicação e também utiliza a função Eval(condicao) para avaliar a condição passada.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 02:33 |
Agora faça uma procedure WLanguage que tenha a mesma finalidade do ProcV do Excel
Claro, Adriano. O ProcV do Excel é uma função que permite realizar uma análise de dados com base em uma coluna específica e contar o número de ocorrências de cada valor diferente nessa coluna. Aqui está uma procedure em WLanguage para fazer algo semelhante:
Copy code Procedure ProcV(coluna) // Cria um array para armazenar os valores diferentes da coluna String[] valores // Cria um array para armazenar a contagem de ocorrências de cada valor Integer[] contagem // Variável para armazenar o número de linhas na tabela Integer numLinhas := NumberOfRows() // Laço para percorrer as linhas da tabela For iLinha from 1 to numLinhas // Variável para armazenar o valor atual da célula String valor := CellValue(iLinha, coluna) // Variável para armazenar a posição do valor no array valores Integer posicao := ArraySearch(valores, valor) // Se o valor não estiver no array valores, adiciona-o e inicia a contagem em 1 If posicao = -1 Then ArrayAdd(valores, valor) ArrayAdd(contagem, 1) // Se o valor já estiver no array valores, incrementa a contagem Else contagem[posicao]++ End End // Laço para exibir os resultados For iValor from 1 to ArraySize(valores) Info(valores[iValor] + ": " + contagem[iValor]) End End A procedure tem como entrada a coluna que deseja-se analisar. Utiliza dois laços "For" para percorrer as linhas da tabela e contar o número de ocorrências de cada valor diferente na coluna especificada. Utiliza duas arrays, um para armazenar os valores diferentes e outro para armazenar a contagem de ocorrências. Por fim, exibe os resultados.
Note que a procedure utiliza a função CellValue(iLinha, coluna) para acessar o valor de cada célula, essa função pode variar dependendo da sua implementação na sua aplicação e a função NumberOfRows() para retornar o número de linhas presentes na tabela.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 02:41 |
Agora crie uma procedure que faça o procH
Claro, Adriano. O ProcH do Excel é uma função que permite realizar uma análise de dados com base em uma linha específica e contar o número de ocorrências de cada valor diferente nessa linha. Aqui está uma procedure em WLanguage para fazer algo semelhante:
Copy code Procedure ProcH(linha) // Cria um array para armazenar os valores diferentes da linha String[] valores // Cria um array para armazenar a contagem de ocorrências de cada valor Integer[] contagem // Variável para armazenar o número de colunas na tabela Integer numColunas := NumberOfColumns() // Laço para percorrer as colunas da tabela For iColuna from 1 to numColunas // Variável para armazenar o valor atual da célula String valor := CellValue(linha, iColuna) // Variável para armazenar a posição do valor no array valores Integer posicao := ArraySearch(valores, valor) // Se o valor não estiver no array valores, adiciona-o e inicia a contagem em 1 If posicao = -1 Then ArrayAdd(valores, valor) ArrayAdd(contagem, 1) // Se o valor já estiver no array valores, incrementa a contagem Else contagem[posicao]++ End End // Laço para exibir os resultados For iValor from 1 to ArraySize(valores) Info(valores[iValor] + ": " + contagem[iValor]) End End A procedure tem como entrada a linha que deseja-se analisar
adrianoboller@gmail.com Pode melhorar o código, lembre que em WLanguage vem primeiro o nome da variável depois IS e depois o tipo
Claro, Adriano. Aqui está a mesma procedure, mas com as variáveis declaradas com o nome primeiro, seguido de "IS" e depois o tipo:
Copy code Procedure ProcH(linha IS Integer) String[] valores Integer[] contagem Integer numColunas IS NumberOfColumns() For iColuna IS Integer from 1 to numColunas String valor IS CellValue(linha, iColuna) Integer posicao IS ArraySearch(valores, valor) If posicao = -1 Then ArrayAdd(valores, valor) ArrayAdd(contagem, 1) Else contagem[posicao]++ End End For iValor IS Integer from 1 to ArraySize(valores) Info(valores[iValor] + ": " + contagem[iValor]) End End A lógica da procedure é a mesma, mas agora as variáveis estão declaradas com o nome primeiro, seguido de "IS" e depois o tipo. Isso é uma boa prática para tornar o código mais claro e fácil de entender
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 02:47 |
Agora cite as 20 funções do Excel mais usadas e coloque um descritivo em uma tabela
Claro, Adriano. Aqui está uma tabela com as 20 funções do Excel mais usadas e um breve descritivo de cada uma:
Função Descrição SOMA Adiciona os números de uma lista de argumentos MÉDIA Calcula a média aritmética de uma lista de argumentos CONT.SE Conta o número de células que atendem a um determinado critério SOMASE Soma os valores de uma lista de argumentos, com base em um critério específico PROCV Procura valores únicos em uma coluna de dados e conta o número de ocorrências de cada um PROCV Procura valores únicos em uma linha de dados e conta o número de ocorrências de cada um CONCATENAR Concatena texto de uma ou mais células em uma única célula SE Especifica uma condição lógica e retorna um resultado se a condição for verdadeira ou outro resultado se a condição for falsa CONT.NUM Conta o número de células que contêm números SOMAPRODUTO Multiplica os valores de duas ou mais listas de argumentos e retorna a soma dos resultados MAIOR Retorna o maior valor de uma lista de argumentos MENOR Retorna o menor valor de uma lista de argumentos CONTA Conta o número de células que contêm dados em uma lista de argumentos SOMASE Soma os valores de uma lista de argumentos, com base em uma condição específica PROCV Procura valores únicos em uma linha de dados e conta o número de ocorrências de c
adrianoboller@gmail.com Continue
Função Descrição PROCV Procura valores únicos em uma coluna de dados e conta o número de ocorrências de cada um MÁXIMO Retorna o maior valor de uma lista de argumentos MÍNIMO Retorna o menor valor de uma lista de argumentos CONT.VAZIO Conta o número de células vazias em uma lista de argumentos COUNTIF Conta o número de células que atendem a um determinado critério SUMIF Soma os valores de uma lista de argumentos, com base em um critério específico IF Especifica uma condição lógica e retorna um resultado se a condição for verdadeira ou outro resultado se a condição for falsa IFERROR Retorna um valor se uma fórmula não gerar um erro, ou outro valor se a fórmula gerar um erro VLOOKUP Procura um valor em uma tabela e retorna um valor de uma coluna correspondente HLOOKUP Procura um valor em uma tabela e retorna um valor de uma linha correspondente PMT Calcula o pagamento de uma prestação fixa FV Calcula o valor futuro de uma série de pagamentos PV Calcula o valor presente de uma série de pagamentos Essas são as 20 funções do Excel mais usadas e um breve descritivo de cada uma. Elas cobrem uma variedade de tarefas comuns, como somar, média, contagem, procura, lógica, financeira, etc. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 02:49 |
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 02:57 |
Agora faça uma procedure usando o cont.se
Copy code Procedure ContSe(colunaCriterio IS Integer, valorCriterio IS String, colunaContar IS Integer) // Variável para armazenar a contagem Integer contagem IS 0 // Variável para armazenar o número de linhas na tabela Integer numLinhas IS NumberOfLines() // Laço para percorrer as linhas da tabela For iLinha IS Integer from 1 to numLinhas // Se o valor na coluna de critério é igual ao valor do critério, incrementa a contagem If CellValue(iLinha, colunaCriterio) = valorCriterio Then contagem += CellValue(iLinha, colunaContar) End End // Exibe o resultado Info(contagem) End A procedure tem como entrada a colunaCriterio onde está o critério, o valorCriterio, e colunaContar onde deseja-se contar. A procedure percorre todas as linhas e verifica se o valor na coluna de critério é igual ao val
adrianoboller@gmail.com Continue
or do critério, se for incrementa a contagem da colunaContar. E por fim, exibe a contagem resultante. É uma boa prática passar os valores como parâmetros para a procedure para que ela possa ser reutilizada para diferentes critérios e colunas de contagem. Lembre-se que essa é uma implementação básica e pode ser melhorada para tratar casos específicos, como critérios de data, números, etc. E também é importante lembrar de tratar erros, como caso a colunaCriterio ou colunaContar não exista na tabela.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 03:04 |
Agora é a vez do cont.num
Claro, Adriano. Aqui está uma procedure em WLanguage que usa a função CONT.NUM, que conta o número de células que contêm números:
Copy code Procedure ContNum(coluna IS Integer) // Variável para armazenar a contagem Integer contagem IS 0 // Variável para armazenar o número de linhas na tabela Integer numLinhas IS NumberOfLines() // Laço para percorrer as linhas da tabela For iLinha IS Integer from 1 to numLinhas // Se o valor na coluna é numérico, incrementa a contagem If IsNumeric(CellValue(iLinha, coluna)) Then contagem++ End End // Exibe o resultado Info(contagem) End A procedure tem como entrada a coluna onde deseja-se contar os números. A procedure percorre todas as linhas e verifica se o valor na coluna é numérico, se for incrementa a contagem. E por fim, exibe a contagem resultante. Essa procedure é simples e eficiente para contar números, lembre-se de tratar erros, como caso a coluna não exista na tabela.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 03:12 |
Vamos fazer uma procedure WLanguage Que recebe 2 matriz e calcula a soma delas
Claro, Adriano. Aqui está um exemplo de uma procedure em WLanguage que recebe 2 matrizes e calcula a soma delas:
Copy code PROCEDURE SomaMatrizes(matriz1, matriz2) // Cria uma variável para armazenar a matriz resultante matriz_resultante // Inicializa a matriz resultante com o mesmo tamanho da matriz1 matriz_resultante = MatInitialize(matriz1) // Obtém o número de linhas e colunas das matrizes linhas = MatNumRow(matriz1) colunas = MatNumCol(matriz1) // Utiliza um loop para percorrer as linhas e colunas das matrizes FOR i = 1 TO linhas FOR j = 1 TO colunas // Soma os valores de matriz1[i][j] e matriz2[i][j] e atribui o resultado à matriz_resultante[i][j] matriz_resultante[i][j] = matriz1[i][j] + matriz2[i][j] END END // Retorna a matriz resultante RESULT matriz_resultante END Este exemplo cria uma procedure chamada "SomaMatrizes" que recebe 2 matrizes como parâmetros. Ele inicializa a matriz resultante com o mesmo tamanho da matriz1 e utiliza um loop para percorrer as linhas e colunas das matrizes, somando os valores de matriz1[i][j] e matriz2[i][j] e atribuindo o resultado à matriz_resultante[i][j]. Ao final, a matriz resultante é retornada.
Para chamar essa procedure, você deve passar duas matrizes como argumentos, por exemplo:
Copy code matriz1 = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] matriz2 = [ [9, 8, 7], [6, 5, 4], [3, 2, 1] ] matriz_resultante = SomaMatrizes(matriz1, matriz2) A matriz_resultante será [ [10, 10, 10], [10, 10, 10], [10, 10, 10] ]
Espero ter ajudado. Se tiver alguma dúvida, estou à disposição.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 03:15 |
Quais são as operações matemáticas com matrizes
Existem várias operações matemáticas que podem ser realizadas com matrizes em WLanguage. Algumas das operações mais comuns incluem:
Adição de matrizes: Essa operação consiste em somar elemento a elemento as matrizes. Subtração de matrizes: Essa operação consiste em subtrair elemento a elemento as matrizes. Multiplicação de matrizes: Essa operação consiste em multiplicar elemento a elemento as matrizes. Divisão de matrizes: Essa operação consiste em dividir elemento a elemento as matrizes. Transposição de matrizes: Essa operação consiste em trocar as linhas por colunas da matriz. Potenciação de matrizes: Essa operação consiste em elevar a matriz a um determinado expoente. Inversão de matrizes: Essa operação consiste em calcular a matriz inversa de uma matriz. Determinante de matrizes: Essa operação consiste em calcular o determinante de uma matriz. Produto Escalar: Essa operação consiste em multiplicar um escalar por todos os elementos da matriz. Produto Vetorial: Essa operação consiste em calcular o produto vetorial entre duas matrizes Cada uma dessas operações tem sua própria sintaxe e regras específicas para ser aplicada. Em geral, é necessário garantir que as matrizes tenham as mesmas dimensões antes de realizar qualquer operação matemática.
Existem funções prontas na linguagem WLanguage para realizar essas operações, por exemplo para adição de matrizes existe a função MatAdd, para subtração de matrizes existe a função MatSub, entre outras.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 03:19 |
Gere uma procedure para a subtração de matrizes com WLanguage
Claro, Adriano. Aqui está um exemplo de uma procedure em WLanguage que recebe 2 matrizes como parâmetros e calcula a subtração delas:
Copy code PROCEDURE SubtracaoMatrizes(matriz1, matriz2) // Cria uma variável para armazenar a matriz resultante matriz_resultante // Inicializa a matriz resultante com o mesmo tamanho da matriz1 matriz_resultante = MatInitialize(matriz1) // Obtém o número de linhas e colunas das matrizes linhas = MatNumRow(matriz1) colunas = MatNumCol(matriz1) // Utiliza um loop para percorrer as linhas e colunas das matrizes FOR i = 1 TO linhas FOR j = 1 TO colunas // subtrai os valores de matriz1[i][j] e matriz2[i][j] e atribui o resultado à matriz_resultante[i][j] matriz_resultante[i][j] = matriz1[i][j] - matriz2[i][j] END END // Retorna a matriz resultante RESULT matriz_resultante END Este exemplo cria uma procedure chamada "SubtracaoMatrizes" que recebe 2 matrizes como parâmetros. Ele inicializa a matriz resultante com o mesmo tamanho da matriz1 e utiliza um loop para percorrer as linhas e colunas das matrizes, subtraindo os valores de matriz1[i][j] e matriz2[i][j] e atribuindo o resultado à matriz_resultante[i][j]. Ao final, a matriz resultante é retornada.
Para chamar essa procedure, você deve passar duas matrizes como argumentos, por exemplo:
Copy code matriz1 = [ [10, 10, 10], [10, 10, 10], [10, 10, 10] ] matriz2 = [ [9, 8, 7], [6, 5, 4], [3, 2, 1] ] matriz_resultante = SubtracaoMatrizes(matriz1, matriz2) A matriz_resultante será [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]
É importante que as matrizes tenham as mesmas dimensões para que essa procedure funcione corretamente. Espero ter ajudado. Se tiver alguma dúvida, estou à disposição.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 03:25 |
Gere agora a multiplicação de duas matrizes
Claro, Adriano. Aqui está um exemplo de uma procedure em WLanguage que recebe 2 matrizes como parâmetros e calcula a multiplicação delas:
Copy code PROCEDURE MultiplicacaoMatrizes(matriz1, matriz2) // Cria uma variável para armazenar a matriz resultante matriz_resultante // Inicializa a matriz resultante com o mesmo tamanho da matriz1 matriz_resultante = MatInitialize(matriz1) // Obtém o número de linhas e colunas das matrizes linhas1 = MatNumRow(matriz1) colunas1 = MatNumCol(matriz1) linhas2 = MatNumRow(matriz2) colunas2 = MatNumCol(matriz2) // Verifica se as matrizes podem ser multiplicadas IF (colunas1 = linhas2) THEN // Utiliza um loop para percorrer as linhas e colunas das matrizes FOR i = 1 TO linhas1 FOR j = 1 TO colunas2 matriz_resultante[i][j] = 0 FOR k = 1 TO colunas1 matriz_resultante[i][j] = matriz_resultante[i][j] + matriz1[i][k] * matriz2[k][j] END END END ELSE Error("As matrizes não podem ser multiplicadas pois a quantidade de colunas da matriz1 é diferente da quantidade de linhas da matriz2.") END // Retorna a matriz resultante RESULT matriz_resultante END Este exemplo cria uma procedure chamada "MultiplicacaoMatrizes" que recebe 2 matrizes como parâmetros. Ele inicializa a matriz resultante com o mesmo tamanho da matriz1 e verifica se as matrizes podem ser multiplicadas, para isso é verificado se a quantidade de colunas da matriz1 é igual a quantidade de linhas da matriz2. Caso isso não ocorra uma mensagem de erro será apresentada. Depois é utilizado um loop para percorrer as linhas e colunas das matrizes, multiplicando-as. Ao final, a matriz resultante é retornada.
Para chamar essa procedure, você deve passar duas matrizes como argumentos, por exemplo:
Copy code matriz1 = [ [1, 2, 3], [4, 5, 6] ] matriz2 = [ [9, 8], [6, 5], [3, 2] ] matriz_resultante = MultiplicacaoMatrizes(matriz1, matriz2) A matriz_resultant será [ [30, 24], [84, 69] ]
É importante que a quantidade de colunas da matriz1 se ja igual a quantidade de linhas da matriz2 para que essa procedure funcione corretamente. Caso contrário, uma mensagem de erro será apresentada.
É importante notar que essa implementação faz uso de aninhamento de loops para multiplicar elemento por elemento das matrizes, é importante lembrar que existe outra forma de fazer esse cálculo usando a função MatMul da linguagem WLanguage.
Exemplo:
Copy code matriz_resultante = MatMul(matriz1, matriz2) Espero ter ajudado. Se tiver alguma dúvida, estou à disposição.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 03:29 |
Em matemática, não existe a operação de divisão entre matrizes, a única maneira de se dividir matrizes é através da multiplicação pela inversa de uma delas.
Uma maneira de fazer isso é utilizando a função MatInv() para calcular a inversa de uma das matrizes e então multiplicando a matriz desejada com a inversa.
Entretanto, é importante lembrar que a inversa só pode ser calculada para matrizes quadradas e inversíveis.
Exemplo:
Copy code matriz1 = [ [1, 2], [3, 4] ] matriz2 = MatInv(matriz1) matriz_resultante = MatMul(matriz1, matriz2) A matriz_resultante será a matriz identidade, que é o resultado esperado quando se divide uma matriz por sua inversa.
Cabe ressaltar que essa operação só é possível para matrizes quadradas e inversíveis, é importante verificar se as matrizes são quadradas e inversíveis antes de realizar a operação.
Espero ter esclarecido sua dúvida. Se precisar de mais alguma coisa, estou à disposição.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 651 messages Popularité : +175 (223 votes) |
|
Posté le 25 janvier 2023 - 03:34 |
E a transposição de 2 matrizes
A transposição de uma matriz é uma operação matemática que consiste em trocar as linhas por colunas. Em outras palavras, uma matriz A transposta é representada por A^T, onde A^T[i][j] = A[j][i].
Em WLanguage é possível fazer a transposição de uma matriz utilizando a função MatTranspose()
Exemplo:
Copy code matriz1 = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] matriz_transposta = MatTranspose(matriz1) A matriz_transposta será [ [1, 4, 7], [2, 5, 8], [3, 6, 9] ]
Não é possível fazer a transposição de duas matrizes ao mesmo tempo, é preciso transpor cada uma delas individualmente.
Espero ter ajudado. Se tiver alguma dúvida, estou à disposição.
adrianoboller@gmail.com Consegue fazer uma procedure que faça a transposição de 2 matrizes sem usar a função WLanguage
Claro, Adriano. Aqui está uma procedure em WLanguage que recebe 2 matrizes como parâmetros e calcula a transposição delas sem usar a função MatTranspose():
Copy code PROCEDURE TransposicaoMatrizes(matriz1, matriz2) // Cria as variáveis para armazenar as matrizes transpostas matriz_transposta1 matriz_transposta2 // Obtém o número de linhas e colunas das matrizes linhas1 = MatNumRow(matriz1) colunas1 = MatNumCol(matriz1) linhas2 = MatNumRow(matriz2) colunas2 = MatNumCol(matriz2) // Inicializa as matrizes transpostas com o número de linhas e colunas invertidos matriz_transposta1 = MatInitialize(linhas1, colunas1) matriz_transposta2 = MatInitialize(linhas2, colunas2) // Utiliza um loop para percorrer as linhas e colunas das matrizes FOR i = 1 TO linhas1 FOR j = 1 TO colunas1 matriz_transposta1[j][i] = matriz1[i][j] END END FOR i = 1 TO linhas2 FOR j = 1 TO colunas2 matriz_transposta2[j][i] = matriz2[i][j] END END // Retorna as matrizes transpostas RESULT matriz_transposta1, matriz_transposta2 END Este exemplo cria uma procedure chamada "TransposicaoMatrizes" que recebe 2 matrizes como parâmetros. Ele inicializa as matrizes transpostas com o número de linhas e colunas invertidos e utiliza dois loops para percorrer as linhas e colunas das matrizes, trocando as posições das linhas e colunas, fazendo a transposição.
Para chamar essa procedure, você deve passar duas matrizes como argumentos, por exemplo:
Copy code matriz1 = [ [1, 2, 3], [4, 5, 6] ] matriz2 = [ [7, 8], [9, 10] ] matriz_transposta1, matriz_transposta2 = TransposicaoMatrizes(matriz1, matriz2) A matriz_transposta1 será [ [1, 4], [2, 5], [3, 6] ] e a matriz_transposta2 será [ [7, 9], [8, 10] ]
Espero ter ajudado e qualquer coisa estou a disposição.
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | | | |
| | |
|