{"id":621,"date":"2017-06-15T20:46:31","date_gmt":"2017-06-15T23:46:31","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/programacao\/?p=621"},"modified":"2021-06-18T15:07:02","modified_gmt":"2021-06-18T18:07:02","slug":"questoes-com-teste-de-mesa","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/programacao\/questoes-com-teste-de-mesa\/","title":{"rendered":"Quest\u00f5es com teste de mesa"},"content":{"rendered":"\n<p>Teste de mesa \u00e9 um recurso que objetiva avaliar o conhecimento t\u00e9cnico dos recursos da linguagem de programa\u00e7\u00e3o. \u00c9 mais f\u00e1cil fazer o teste de mesa do que elaborar o algoritmo, sendo a elabora\u00e7\u00e3o de uma solu\u00e7\u00e3o algor\u00edtmica algo que exige maior capacidade do programador. Mesmo assim, \u00e9 importante avaliar, ou pelo menor iniciar, com o entendimento de um c\u00f3digo e a verifica\u00e7\u00e3o do real entendimento atrav\u00e9s do teste de mesa, onde deve-se indicar qual ser\u00e1 a sa\u00edda do algoritmo para uma determinada entrada.<\/p>\n\n\n\n<p>A seguir, dois algoritmos em linguagem C s\u00e3o apresentados e solicitado o teste de mesa para os mesmos. N\u00e3o ser\u00e1 dito o que os algoritmos realizam, cabendo acompanhar cada passo do algoritmo para poder determinar a sa\u00edda. Uma das quest\u00f5es envolve vetores e a outra envolve ponteiros, sendo que ambas envolvem o conhecimento de fun\u00e7\u00e3o.<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><strong>Quest\u00e3o utilizando vetor<\/strong><\/p>\n\n\n\n<p>O algoritmo envolve a manipula\u00e7\u00e3o b\u00e1sica de um vetor. Ele avalia o real entendimento do uso da estrutura de repeti\u00e7\u00e3o for, bem como uma chamada simples de fun\u00e7\u00e3o envolvendo um vetor como argumento.<\/p>\n\n\n\n<p><strong>C\u00f3digo<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code lang:c decode:true\"><code lang=\"c\" class=\"language-c\">#include &lt;stdio.h&gt;\n\nvoid teste(int v[], int tam) {\n    int i;\n    for (i = 0; i &lt; tam; i++) {\n        v[i] = 0;\n    }\n}\n\nint main() {\n    int vet[6] = {-5, 3, 2, 9, 2, 2}, i, j = 4, valores = 0;\n\n    for (i = 0; i &lt; j; i++) {\n        if (vet[i] == 2) {\n            valores = valores + 2;\n        }\n    }\n    printf(\"%i %i \\n\", valores, i);\n\n    for (i = 0; i &lt; 6; i++) {\n        vet[i] = j;\n        j = j - 1;\n    }\n    for (i = 0; i &lt; 6; i++) {\n        printf(\"%i \", vet[i]);\n    }\n\n    printf(\"\\n\");\n    teste(vet, 3);\n    for (i = 0; i &lt; 6; i++) {\n        printf(\"%i \", vet[i]);\n    }\n\n    return 0;\n}\n<\/code><\/pre>\n\n\n\n<p><strong>Resultado esperado<\/strong><\/p>\n\n\n<input type='hidden' bg_collapse_expand='69df67e5f16ba1052202486' value='69df67e5f16ba1052202486'><input type='hidden' id='bg-show-more-text-69df67e5f16ba1052202486' value='Mostrar resposta'><input type='hidden' id='bg-show-less-text-69df67e5f16ba1052202486' value='Ocultar resposta'><button id='bg-showmore-action-69df67e5f16ba1052202486' class='bg-showmore-plg-button bg-blue-button bg-eye '   style=\" color:#FFFFFF;\">Mostrar resposta<\/button><div id='bg-showmore-hidden-69df67e5f16ba1052202486' >2 4<br \/>\n4 3 2 1 0 -1<br \/>\n0 0 0 1 0 -1<\/div>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p><strong>Quest\u00e3o utilizando ponteiros<\/strong><\/p>\n\n\n\n<p>O algoritmo envolve inicialmente o conhecimento b\u00e1sico de ponteiros, mas tamb\u00e9m sua utiliza\u00e7\u00e3o em fun\u00e7\u00f5es. Passagem por valor e refer\u00eancia s\u00e3o tratadas no algoritmo.<\/p>\n\n\n\n<p><strong>C\u00f3digo<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code lang:c decode:true\"><code lang=\"c\" class=\"language-c\">#include &lt;stdio.h&gt;\n\nfloat aula(int a, int b) {\n    return b \/ (a + 1);\n}\n\nint oitenta() {\n    int a, b, c;\n    a = 8456;\n    return (a * b) \/ (c * 2);\n}\n\nvoid troca(int tam, int *a) {\n    int b = tam + 2;\n    *a = b;\n    tam = *a;\n}\n\nint main() {\n    int tam = 0, *aux, b = 5;\n    float teste;\n    aux = &amp;b;\n    printf(\"%i \\n\", *aux);\n    troca(tam, &amp;b);\n    printf(\"%i %i\\n\", tam, b);\n    teste = aula(tam, *aux);\n    printf(\"%f\", teste);\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p><strong>Resultado esperado<\/strong><\/p>\n\n\n<input type='hidden' bg_collapse_expand='69df67e5f18084026532581' value='69df67e5f18084026532581'><input type='hidden' id='bg-show-more-text-69df67e5f18084026532581' value='Mostrar resposta'><input type='hidden' id='bg-show-less-text-69df67e5f18084026532581' value='Ocultar resposta'><button id='bg-showmore-action-69df67e5f18084026532581' class='bg-showmore-plg-button bg-blue-button bg-eye '   style=\" color:#FFFFFF;\">Mostrar resposta<\/button><div id='bg-showmore-hidden-69df67e5f18084026532581' >5<br \/>\n0 2<br \/>\n2.000000<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Teste de mesa \u00e9 um recurso que objetiva avaliar o conhecimento t\u00e9cnico dos recursos da linguagem de programa\u00e7\u00e3o. \u00c9 mais f\u00e1cil fazer o teste de mesa do que elaborar o algoritmo, sendo a elabora\u00e7\u00e3o de uma solu\u00e7\u00e3o algor\u00edtmica algo que exige maior capacidade do programador. Mesmo assim, \u00e9 importante avaliar, ou pelo menor iniciar, com [&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":[61,3],"tags":[12,39,40,14],"class_list":["post-621","post","type-post","status-publish","format-standard","hentry","category-avalie-seu-conhecimento","category-c","tag-funcao","tag-ponteiros","tag-teste-de-mesa","tag-vetor"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/621","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=621"}],"version-history":[{"count":6,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/621\/revisions"}],"predecessor-version":[{"id":1050,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/621\/revisions\/1050"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/media?parent=621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/categories?post=621"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/tags?post=621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}