{"id":698,"date":"2017-06-09T09:36:32","date_gmt":"2017-06-09T12:36:32","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/programacao\/?p=698"},"modified":"2021-06-18T15:09:00","modified_gmt":"2021-06-18T18:09:00","slug":"exercicios-com-funcao-em-c","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/programacao\/exercicios-com-funcao-em-c\/","title":{"rendered":"Exerc\u00edcios com fun\u00e7\u00e3o em C"},"content":{"rendered":"\n<p>Disponibilizo 3 exerc\u00edcios com resolu\u00e7\u00e3o em linguagem C e em v\u00eddeo. As solu\u00e7\u00f5es envolvem a utiliza\u00e7\u00e3o de fun\u00e7\u00e3o, onde s\u00e3o explorados os conceitos de passagem por valor e refer\u00eancia, bem como a utiliza\u00e7\u00e3o de vetores e matrizes.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Escreva um programa em C que gere uma <strong>matriz B<\/strong> a partir de manipula\u00e7\u00f5es em uma <strong>matriz A<\/strong> de dimens\u00e3o 6&#215;6. Escreva uma fun\u00e7\u00e3o que receba por par\u00e2metro a <strong>matriz A<\/strong> e retorne a <strong>matriz B<\/strong>, onde cada linha <em>j<\/em> de <strong>B<\/strong> \u00e9 a linha <em>j<\/em> de <strong>A<\/strong> multiplicada pelo elemento da diagonal principal da linha <em>j<\/em>.<\/p>\n\n\n\n<p><strong>Exemplo:<\/strong><br>A=1&nbsp;&nbsp;&nbsp; 5<br>4 &nbsp;&nbsp; 8<\/p>\n\n\n\n<p>B=1&nbsp;&nbsp;&nbsp; 5<br>32 64<\/p>\n\n\n\n<p><strong>Solu\u00e7\u00e3o em C\/C++<\/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#include &lt;stdlib.h&gt;\n\nvoid imprimeMat(int tam, int m[tam][tam]) {\n    int i, j;\n    for (i = 0; i &lt; tam; i++) {\n        for (j = 0; j &lt; tam; j++) {\n            printf(\"%i \", m[i][j]);\n        }\n        printf(\"\\n\");\n    }\n}\n\nvoid calc(int tam, int ma[tam][tam], int mb[tam][tam]) {\n    int i, j;\n    for (i = 0; i &lt; tam; i++) {\n        for (j = 0; j &lt; tam; j++) {\n            mb[i][j] = ma[i][j] * ma[i][i];\n        }\n    }\n}\n\nint main()\n{\n    int A[3][3] = {2, 5, 4, 8, 5, 4, 0, 2, 5}, B[3][3];\n\n    imprimeMat(3, A);\n    calc(3, A, B);\n    printf(\"\\n\");\n    imprimeMat(3, B);\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p><strong>V\u00eddeo da solu\u00e7\u00e3o:<\/strong> <a href=\"https:\/\/youtu.be\/-sCpva0PS8g\" target=\"_blank\" rel=\"noopener\">https:\/\/youtu.be\/-sCpva0PS8g<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>Escreva uma fun\u00e7\u00e3o que, dado um n\u00famero real passado como par\u00e2metro, retorne a parte inteira e a parte fracion\u00e1ria desse n\u00famero por refer\u00eancia.<\/p>\n\n\n\n<p><strong>Solu\u00e7\u00e3o em C\/C++<\/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#include &lt;stdlib.h&gt;\n\nvoid separa(float num, int *x, float *y) {\n    *x = (int)num;\n    *y = num - *x;\n}\n\nint main()\n{\n    float num, frac;\n    int inteira;\n\n    scanf(\"%f\", &amp;num);\n\n    separa(num, &amp;inteira, &amp;frac);\n\n    printf(\"%f: %i e %f\", num, inteira, frac);\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p><strong>V\u00eddeo da solu\u00e7\u00e3o:<\/strong> <a href=\"https:\/\/youtu.be\/Qd3W7r18sPQ\" target=\"_blank\" rel=\"noopener\">https:\/\/youtu.be\/Qd3W7r18sPQ<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>Elabore uma fun\u00e7\u00e3o que receba tr\u00eas notas de um aluno como par\u00e2metro e uma letra. Se a letra for \u2018A\u2019, a fun\u00e7\u00e3o deve calcular a m\u00e9dia aritm\u00e9tica das notas do aluno; se a letra for \u2018P\u2019, dever\u00e1 calcular a m\u00e9dia ponderada, com pesos 5, 3 e 2. Retorne a m\u00e9dia calculada para o programa principal.<\/p>\n\n\n\n<p><strong>Solu\u00e7\u00e3o em C\/C++<\/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#include &lt;stdlib.h&gt;\n\nfloat media(float n1, float n2, float n3, char op) {\n    if (op == 'A') {\n        return (n1 + n2 + n3) \/ 3;\n    } else if (op == 'P') {\n        return (n1*5 + n2*3 + n3*2) \/ 10;\n    }\n}\n\nint main()\n{\n    float nota1, nota2, nota3, calc;\n    char op;\n\n    printf(\"Digite a op\u00e7\u00e3o [A ou P]: \");\n    scanf(\"%c\", &amp;op);\n    printf(\"Digite as notas: \\n\");\n    scanf(\"%f %f %f\", &amp;nota1, &amp;nota2, &amp;nota3);\n\n    calc = media(nota1, nota2, nota3, op);\n\n    printf(\"Media= %f\", calc);\n\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p><strong>V\u00eddeo da solu\u00e7\u00e3o:<\/strong> <a href=\"https:\/\/youtu.be\/AhkoXOPRh5c\" target=\"_blank\" rel=\"noopener\">https:\/\/youtu.be\/AhkoXOPRh5c<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>Elabore uma fun\u00e7\u00e3o que receba um vetor contendo <em>N<\/em> valores e retorne por refer\u00eancia o maior elemento do vetor e o n\u00famero de vezes que esse elemento ocorreu no vetor.<\/p>\n\n\n\n<p><strong>Solu\u00e7\u00e3o em C\/C++<\/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#include &lt;stdlib.h&gt;\n\nint maiorVet(int tam, int vet[tam]) {\n    int maior = vet[0], i;\n    for (i = 1; i &lt; tam; i++) {\n        if (vet[i] &gt; maior) {\n            maior = vet[i];\n        }\n    }\n    return maior;\n}\n\nint contaValorVet(int vet[], int teste, int tam) {\n    int cont=0, i;\n    for (i = 0; i &lt; tam; i++) {\n        if (vet[i] == teste) {\n            cont++;\n        }\n    }\n    return cont;\n}\n\nvoid maiorQtdVet(int vet[], int tam, int *maior, int *cont) {\n    *maior = maiorVet(tam, vet);\n    *cont  = contaValorVet(vet, *maior, tam);\n}\n\nvoid maiorContVet(int tam, int vet[tam], int *x, int *y) {\n    int i, cont;\n    *x = vet[0];\n    for (i = 1; i &lt; tam; i++) {\n        if (vet[i] &gt; *x) {\n            *x = vet[i];\n        }\n    }\n    *y = contaValorVet(vet, *x, tam);\n}\n\nint main()\n{\n    int vet[5] = {1, 2, 8, 0, 8}, maior, i, cont;\n\n    maiorQtdVet(vet, 5, &amp;maior, &amp;cont);\n    printf(\"Maior valor %i e aparece %i vezes\\n\", maior, cont);\n\n    maiorContVet(5, vet, &amp;maior, &amp;cont);\n    printf(\"Maior valor %i e aparece %i vezes\", maior, cont);\n\n    return 0;\n}\n<\/code><\/pre>\n\n\n\n<p><strong>V\u00eddeo da solu\u00e7\u00e3o:<\/strong> <a href=\"https:\/\/youtu.be\/pkJXwPvselI\" target=\"_blank\" rel=\"noopener\">https:\/\/youtu.be\/pkJXwPvselI<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Disponibilizo 3 exerc\u00edcios com resolu\u00e7\u00e3o em linguagem C e em v\u00eddeo. As solu\u00e7\u00f5es envolvem a utiliza\u00e7\u00e3o de fun\u00e7\u00e3o, onde s\u00e3o explorados os conceitos de passagem por valor e refer\u00eancia, bem como a utiliza\u00e7\u00e3o de vetores e matrizes.<\/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":[3,4],"tags":[44,36,12,37,13,8,14],"class_list":["post-698","post","type-post","status-publish","format-standard","hentry","category-c","category-videos","tag-estatistica","tag-for","tag-funcao","tag-if","tag-matriz","tag-modularizacao-funcoes","tag-vetor"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/698","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=698"}],"version-history":[{"count":6,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/698\/revisions"}],"predecessor-version":[{"id":1052,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/698\/revisions\/1052"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/media?parent=698"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/categories?post=698"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/tags?post=698"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}