Ir para conteúdo
Entre para seguir isso  
elton123

duvida for e comparação

Recommended Posts

elton123    0
elton123

bom eu fiço esse código

que tiver com pressa pode ver resumindo

 

 

 

resultados = {
    {1,2,3},
    {7,8,1}
}

a = {
    {},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},
    {},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},}
    
    conferir = {
        {1,2,3,7},
        {8,9,20}
    }
    for i = 1,#resultados do
        for x = 1,#resultados[i] do
            for pp = 1, #conferir do
                for ww = 1,#conferir[pp] do
                    if resultados[i][x] == conferir[pp][ww] then
                        resultados[i][x] = conferir[pp][ww]
                    end
                end
            end
        end
    end
    
    --print (#conferir[1])

 

 

eu quero que ele funcione assim

que tabela de resultados verifique a tabela de conferir

e esse numero for iguais jogue para tabela a

 

mais problema ta que eu quero

que quando digita print (#conferir[1])

me retornasse verificação de cada linha da tabela não todas junto

 

resultados = {
{1,2,3},
{7,8,1}
}

 

conferir = {
{1,2,3,7},
{8,9,20}
}

 

tabela a tem que fica assim

no 1 retorna 123 os 3 o 7 ta na linha de baixo do resultado

 

print (#conferir[1]) aqui tem que retorna 3

print (#conferir[2]) aqui retorna 1 da linha de baixo

 

 

 

resumindo

quero que funcione assim for verifique resultados e conferir cada linha individualmente 

linha por linha não tudo junto eu acho que isso pode ajudar vocês entender melhor

 

t1 = {

linha 1 {1,2,3},

linha 2 {9,2,5}

}

t2 = {

linha 1{0,2,3},

linha 2 {9,1,10}

}

t1 na linha 1 tem o 2 e 3 da linha 1 do t2 

t1 na linha 2 tem o só 2 da linha 1 do t2 e assim adiante com linha 2 do t2

Editado por elton123

Compartilhar este post


Link para o post
Compartilhar em outros sites
Elwyn    106
Elwyn

Então seria assim:

 

Resultados = { {1, 2, 3}, {4, 5, 6}}

Conferir = {{1, 3, 20}, {5, 90, 10}}

 

Depois de tudo, você teria uma tabela

 

Conferidos = {{1, 3}, {5}}

 

Seria isso?

 

Ai Conferidos[1] seria {1, 3} e [2] seria {5}?

 

Se for o que eu disse:

 

 

local result = {
    {1, 2, 3},
    {4, 5, 6}
}

local check = {
    {1, 3, 10},
    {4, 5, 90}
}

local checked = {}

local pos = 1

for _, linha_result in pairs(result) do
    local linha_check = check[pos]

    for _, v1 in pairs(linha_result) do
        for index = 1, #linha_check do
            if v1 == linha_check[index] then
                if not checked[pos] then
                    checked[pos] = {}
                end

                table.insert(checked[pos], v1)
            end
        end
    end
    pos = pos + 1
end

local output = nil

for _, v in pairs(checked) do
    for _, vp in pairs(v) do
        output = output and output .. " " .. vp or vp
    end
    print(output)
    output = nil
end

 

Output:

 


$ lua test.lua
1 3
4 5

Compartilhar este post


Link para o post
Compartilhar em outros sites
elton123    0
elton123

quase isso

só se eu modificar tabela o numero 10 passa despercebido

local result = {
    {1, 3, 25},
    {4, 5, 10}
}
 
local check = {
    {1, 3, 10},
    {4, 5, 25}
}

test.lua
1 3
4 5

só viu

1 e 3 de cima

4 e 5

 

queria ficasse assim

test.lua
1 3
10
4 5

10 ficasse em baixo do 1 e 3 não juntos 1,3,10

ate pq 10 ta na linha 2 do result e na linha 1 do check não esta juntos

  :)

mesma coisa acontece com 25

no final tinha que ficar assim

 

1 3

10
4 5
25
Editado por elton123

Compartilhar este post


Link para o post
Compartilhar em outros sites
Elwyn    106
Elwyn

Ele lê linha por linha. Por exemplo, ele compara a linha 1 dos resultados com a linha 1 dos que ele deve checar. Como o script deveria se comportar no caso que você descreveu?

Compartilhar este post


Link para o post
Compartilhar em outros sites
elton123    0
elton123

bom linha 1 dos resultados com a linha 1 checar

dps linha 1 dos resultados com linha 2 do checar

dps linha 2 resultados com a linha 1 checar

dps linha 2 resultados com a linha 2 checar assim por diante... 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Elwyn    106
Elwyn

E a tabela dos checados, ela vai estar organizada baseado em que? Em que linha o valor estava na tabela resultado ou na tabela checar?

 

Nesse outro script a tabela checked é organizada de acordo com a tabela result:

local result = {
    {1, 2, 3},
    {4, 5, 6}
}

local check = {
    {1, 5, 10},
    {4, 3, 9}
}

local checked = {}

local line = 1

for _, linha_result in pairs(result) do
    for _, linha_check in pairs(check) do
        for _, v_result in pairs(linha_result) do
            for _, v_check in pairs(linha_check) do
                if v_result == v_check then
                    checked[line] = not checked[line] and {} or checked[line]

                    table.insert(checked[line], v_result)
                end
            end
        end
    end
    line = line + 1
end

local output = nil

for _, v in pairs(checked) do
    for _, vp in pairs(v) do
        output = output and output .. " " .. vp or vp
    end
    print(output)
    output = nil
end

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×