{"id":431,"date":"2014-06-20T12:46:14","date_gmt":"2014-06-20T15:46:14","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/programacao\/?p=431"},"modified":"2021-06-18T15:50:51","modified_gmt":"2021-06-18T18:50:51","slug":"matriz-identidade-e-loteria-esportiva","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/programacao\/matriz-identidade-e-loteria-esportiva\/","title":{"rendered":"Identificar matriz identidade e comparador da loteria esportiva"},"content":{"rendered":"\n<p>S\u00e3o mostrados dois algoritmos, onde o primeiro tem o prop\u00f3sito de identificar se uma matriz \u00e9 uma matriz identidade e o segundo \u00e9&nbsp;um algoritmo que, dado o resultado da loteria esportiva, encontra uma cartela de aposta que tenha acertado todos os palpites.<\/p>\n\n\n\n<p>Os&nbsp;algoritmos s\u00e3o explicados em v\u00eddeo, onde tamb\u00e9m \u00e9 mostrado como utilizar o modo de depura\u00e7\u00e3o (<em>debug<\/em>) do CodeSkulptor (<a href=\"http:\/\/www.codeskulptor.org\/viz\/\" target=\"_blank\" rel=\"noopener\">http:\/\/www.codeskulptor.org\/viz\/<\/a>), um editor online de Python&nbsp;.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Matriz identidade<\/strong><\/p>\n\n\n\n<p>O objetivo desse algoritmo est\u00e1 em ter uma&nbsp;fun\u00e7\u00e3o que recebe uma matriz quadrada e retornar se a matriz \u00e9 uma matriz identidade (<a href=\"http:\/\/pt.wikipedia.org\/wiki\/Matriz_identidade\" target=\"_blank\" rel=\"noopener\">explica\u00e7\u00e3o do que \u00e9 uma matriz identidade se encontram aqui<\/a>).<\/p>\n\n\n\n<p><strong>Algoritmo<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code lang:python decode:true\"><code lang=\"python\" class=\"language-python\">def testaMatrizIdentidade(mat):\n    for i in range(len(mat)):\n        for j in range(len(mat)):\n            if (i == j and mat[i][j] &lt;&gt; 1):\n                return False\n            elif (i &lt;&gt; j and mat[i][j] &lt;&gt; 0):\n                return False\n    return True\n\nordem = input('Digite a ordem: ')\nmat = [0] * ordem\nfor i in range(ordem):\n    mat[i] = [0] * ordem\n\nfor i in range(ordem):\n    for j in range(ordem):\n        mat[i][j] = input('Digite um valor: ')\n\nfor i in range(ordem):\n    print mat[i][:]\n\nif testaMatrizIdentidade(mat) == False:\n    print 'A matriz nao e identidade'\nelse:\n    print 'A matriz e identidade'<\/code><\/pre>\n\n\n\n<p><strong>V\u00eddeo<\/strong><\/p>\n\n\n\n<p><iframe loading=\"lazy\" src=\"\/\/www.youtube.com\/embed\/swHFQ2yLQ44?rel=0\" allowfullscreen=\"allowfullscreen\" width=\"640\" height=\"480\" frameborder=\"0\"><\/iframe><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><strong>Loteria<\/strong><\/p>\n\n\n\n<p>O enunciado no v\u00eddeo est\u00e1 um pouco diferente, mas o seguido foi o descrito aqui.<\/p>\n\n\n\n<p>Escreva um programa em Python que leia um vetor de 13 elementos inteiros, que \u00e9 o gabarito de um teste da loteria esportiva, contendo os valores 1 (coluna 1), 2 (coluna 2) e 3 (coluna do meio). Leia, a seguir, para cada apostador, um vetor de respostas de 13 posi\u00e7\u00f5es. Verifique para cada apostador o n\u00fameros de acertos, comparando o vetor de gabarito com o vetor de respostas. Escreva o n\u00famero do apostador e o n\u00famero de acertos. Se o apostador tiver 13 acertos, mostrar a mensagem &#8220;ganhador&#8221;.<\/p>\n\n\n\n<p><strong>EXEMPLO<\/strong><\/p>\n\n\n\n<p><strong>Entrada<\/strong><br>Vetor de gabarito: | 1 | 2 | 1 | 3 | 1 | 1 | 1 | 3 | 2 | 2 | 2 | 1 | 1 |<\/p>\n\n\n\n<p>Apostador 1: | 1 | 2 | 1 | 3 | 1 | 1 | 1 | 3 | 2 | 2 | 2 | 2 | 2 |<br>Apostador 2: | 1 | 2 | 1 | 3 | 1 | 1 | 1 | 3 | 2 | 2 | 2 | 1 | 1 |<\/p>\n\n\n\n<p><strong>Sa\u00edda<\/strong><br>Apostador 1: 11 acertos<br>Apostador 2: 13 acertos &#8211; ganhador<\/p>\n\n\n\n<p><strong>Algoritmo<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code lang:python decode:true\"><code lang=\"python\" class=\"language-python\">import random\n\ndef geraCartao():\n    vet = [0]*13\n    for i in range(13):\n        vet[i] = random.randint(1,3)\n    return vet    \n\ndef resultadoJogos():\n    vet = [0]*13\n    for i in range(13):\n        vet[i] = input('Valor da rodada: ')\n        while vet[i] &lt; 1 or vet[i] &gt; 3:\n            vet[i] = input('Valor invalido. Digite outro: ')\n    return vet\n\ndef acertos(gab, aposta):\n    acertos = 0\n    for i in range(13):\n        if gab[i] == aposta[i]:\n            acertos += 1 #acertos = acertos + 1\n    return acertos\n\n##### Come\u00e7a o algoritmo principal #####\ngabarito = resultadoJogos()\nprint 'Gabarito: ', gabarito\n\napostadores = 0\nganhador = False\nwhile (ganhador == False):\n    aposta = geraCartao()\n    acertou = acertos(gabarito, aposta)\n    apostadores += 1\n    \n    if acertou == 13:\n        ganhador = True\n        print 'Apostador ',apostadores, ': ', acertou, ' acertos - ganhador'\n    else:\n        print 'Apostador ',apostadores, ': ', acertou, ' acertos'<\/code><\/pre>\n\n\n\n<p><strong>V\u00eddeos<\/strong><\/p>\n\n\n\n<p>O v\u00eddeo est\u00e1 divido em duas partes:&nbsp;na primeira parte \u00e9 explicado como resolver o problema, enquanto na segunda \u00e9 mostrado o uso do <em>debug<\/em> do CodeSkulptor em uma execu\u00e7\u00e3o passo-a-passo.<\/p>\n\n\n\n<p><iframe loading=\"lazy\" src=\"\/\/www.youtube.com\/embed\/EqXbl8WFRJQ?rel=0\" allowfullscreen=\"allowfullscreen\" width=\"640\" height=\"480\" frameborder=\"0\"><\/iframe><\/p>\n\n\n\n<p><iframe loading=\"lazy\" src=\"\/\/www.youtube.com\/embed\/r4oihGvV0IU?rel=0\" allowfullscreen=\"allowfullscreen\" width=\"640\" height=\"380\" frameborder=\"0\"><\/iframe><\/p>\n","protected":false},"excerpt":{"rendered":"<p>S\u00e3o mostrados dois algoritmos, onde o primeiro tem o prop\u00f3sito de identificar se uma matriz \u00e9 uma matriz identidade e o segundo \u00e9&nbsp;um algoritmo que, dado o resultado da loteria esportiva, encontra uma cartela de aposta que tenha acertado todos os palpites. Os&nbsp;algoritmos s\u00e3o explicados em v\u00eddeo, onde tamb\u00e9m \u00e9 mostrado como utilizar o modo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5,4],"tags":[6,15,12,13,14],"class_list":["post-431","post","type-post","status-publish","format-standard","hentry","category-python","category-videos","tag-desvio-condicional","tag-estrutura-condicional","tag-funcao","tag-matriz","tag-vetor"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/comments?post=431"}],"version-history":[{"count":6,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/431\/revisions"}],"predecessor-version":[{"id":1089,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/431\/revisions\/1089"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/media?parent=431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/categories?post=431"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/tags?post=431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}