Baixe o app para aproveitar ainda mais
Prévia do material em texto
CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER ESCOLA SUPERIOR POLITÉCNICA BACHARELADO EM ENGENHARIA ELÉTRICA DISCIPLINA DE LÓGICA DE PROGRAMAÇÃO E ALGORITMOS ATIVIDADE PRÁTICA NOME ALUNO – RU: 2158256 PROF. VINICIUS POZZOBON BORIN CHAPECÓ – SC 2018 1 1 EXERCÍCIO Faça um algoritmo em linguagem C que recebe três valores X, Y e Z do usuário, e deter- mine se estes valores podem formar os lados de um triangulo (por exemplo, o valor zero não pode formar um triangulo). Em caso afirmativo, informar na tela se o triangulo é equilátero, isósceles ou escaleno. Imprima na tela um teste do seu programa utilizando os três últimos valores de sua matricula da UNINTER como lados do triangulo, cada valor da sua matrícula será um dos valores X, Y ou Z. Por exemplo, se sua matricula For 1234567, faça X = 5, Y = 6 e Z = 7. #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { /*------------------------------------------------------------------------------------ ------------------/ /LÓGICA DE PROGRAMAÇÃO E ALGORITMO / /Desenvolvido por : Paulo Hack / /Matricula: 2148256 / /Ano: 2018 / /------------------------------------------------------------------------------------- -----------------*/ system("title IDENTIFICANDO TRIANGULO EDITADO PELO UTILIZADOR");//Atribui o nome ao tela apresentada. system("color 17");//Define cor da tela e fonte. system("mode con:cols=80 lines=20");//Define tamanho da tela a ser exibida. float X = 0, Y = 0, Z = 0;//Definição das variáveis relacionadas ao exercício. char c;//Definição da variável relacionada a limpeza do buffer do teclado. printf("Teste de existencia e tipo de triangulo informado pelo utilizador!\n"); printf("Digite os valores para formar os tres lados do triangulo!\n\n"); printf("Entre com o valor do lado X do triangulo\nX="); scanf_s("%f", &X);//Lê a primeira entrada do teclado do utilizador. while ((c = getchar()) != '\n'&& c != EOF) {}//limpa do buffer do teclado. printf("Entre com o valor do lado Y do triangulo\nY="); scanf_s("%f", &Y);//Lê a segunda entrada do teclado do utilizador. while ((c = getchar()) != '\n'&& c != EOF) {}//limpa do buffer do teclado. printf("Entre com o valor do lado Z do triangulo\nZ="); scanf_s("%f", &Z);//Lê a terceira entrada do teclado do utilizador. while ((c = getchar()) != '\n'&& c != EOF) {}//limpa do buffer do teclado. //Deste ponto em diante o algorítimo faz os teste de comparação para identificar o tipo de triângulo será //formado pelo utilizador nas três entradas anteriores pelo teclado. if ((X == 0)||(Y == 0)||(Z == 0)) printf("Um dos valores digitados e inválido pra formar um triângulo."); else if (X == Y && Y == Z && Z == X)//Testa se os valores digitados formam um triângulo Equilatero. { printf("Os valores digitados formam um triangulo Equilatero\n\n");//Im- prime na tela a mensagem se os três valores forem iguais. } else if ((X == Y) || (Y == Z) || (Z == X))//Testa se os valores digitados formam um triângulo Isoceles. { printf("Os valores digitados formam um triangulo Isoceles\n\n");//Imprime na tela a mensagem se dois dos valores forem iguais. } else if ((X != Y) || (Y != Z) || (Z != X))//Testa se os valores digitados formam um triângulo Escaleno. { printf("Os valores digitados formam um triangulo Escaleno\n\n");//Imprime na tela a mensagem se os três valores forem desiguais. } system("pause");//pausa aplicação. return 0; } Imagem do algorítmico exercício 1 2 EXERCÍCIO A tabela abaixo foi retirada do site da Receita Federal, e traz as alíquotas do imposto de renda de pessoa física retido na fonte: Base de Cálculo (R$) Alíquota (%) Parcela a deduzir do IRPF (R$) Até 1903,98 - - De 1903,99 até 2826,65 7,5 142,80 De 2826,66 até 3751,05 15 354,80 De 3751,06 até 4664,68 22,5 636,13 Acima de 4664,68 27,5 869,36 A base de cálculo de imposto é dada pelo salário mensal, com certas deduções, como dependentes e contribuição previdenciária. Abstraindo estas deduções e outros detalhes, o im- posto devido é resumidamente calculado tomando como base de cálculo o salário mensal, ve- rificando a faixa na qual ele se encontra, aplicando a alíquota correspondente, e reduzindo o valor final da parcela a deduzir. Por exemplo, se a base de cálculo é um salário de R$10.000,00, a alíquota é de 27,5%, ou seja, R$2750,00. Deduzimos da alíquota o valor de R$869,36 e obtemos como resultado final R$1880,64 de imposto devido. Escreva um programa em linguagem C que receba como dado de entrada a base de cálculo mensal de um trabalhador (seu salário) e retorne o imposto de renda devido. Imprima na tela um exemplo contendo o salário do trabalhador, o imposto devido e o salário final já com este desconto. Para o exemplo, utilize a sua matricula da UNINTER pe- gando somente os 4 últimos dígitos dela e usando-os como salário. Por exemplo, se sua matri- cula for 1234567, o salário será R$ 4567. #include <stdio.h> #include <stdlib.h> #include <string.h> /*------------------------------------------------------------------------------------ ------------------/ /LÓGICA DE PROGRAMAÇÃO E ALGORITMO / /Desenvolvido por : Paulo Hack / /Matricula: 2148256 / /Ano: 2018 / /------------------------------------------------------------------------------------- -----------------*/ int main() { system("title CALCULADORA DE IMPOSTO DE RENDA");//Atribui o nome ao tela apre- sentada. system("color 17");//Define cor da tela e fonte. system("mode con:cols=80 lines=20");//Define tamanho da tela a ser exibida. float Salario = 0;//Variável que receberá o calor bruto do salário a ser calcu- lado. float Faixa1 = 1903.98, Faixa2 = 2826.65, Faixa3 = 3751.05, Faixa4 = 4664.68; float Alic0 = 0, Alic1 = 0.075, Alic2 = 0.15, Alic3 = 0.225, Alic4 = 0.275;//De- finição das variáveis relacionadas as alicotas das faixas do exercício. float Ded0 = 0, Ded1 = 142.8, Ded2 = 354.8, Ded3 = 636.13, Ded4 = 869.36;//Defi- nição das variáveis relacionadas as deduções das faixas do exercício. char c;//Definição da variável relacionada a limpeza do buffer do teclado. printf("Calculadora de Imposto de Renda\n"); printf("Digite o valor para o calculo dos valores, utilizando o ponto (.)para separacao dos centavos.\n\nR$"); scanf_s("%f", &Salario);//Lê a entrada do teclado do utilizador contendo o valor do salário a ser caculado. //while ((c = getchar()) != '\n'&& c != EOF) {} //Deste ponto em diante o algorítimo faz os cálculos para informar os valores solicitados. if (Salario <= Faixa1) { float ImpDev0 = Salario * Alic0, ImpTotal0 = ImpDev0 - Ded0, Total0 = Sa- lario - ImpTotal0; printf("O valor do salario bruto e R$ %0.2f\n\n", Salario);//Imprime na tela o valor do salário bruto. printf("O valor do imposto devidoe R$ %0.2f\n\n", ImpDev0);//Imprime na tela o valor do imposto devido. printf("O valor da deducao do imposto devido com a deducao e R$ %0.2f\n\n", ImpTotal0);//Imprime na tela o valor da dedução do imposto devido. printf("O valor do salario Liquido e R$ %0.2f\n\n", Total0);//Imprime na tela o valor do salário liquido. } else if ((Salario > Faixa1) && (Salario <= Faixa2)) { float ImpDev1 = Salario * Alic1, ImpTotal1 = ImpDev1 - Ded1, Total1 = Sa- lario - ImpTotal1; printf("O valor do salario bruto e R$ %0.2f\n\n", Salario);//Imprime na tela o valor do salário bruto. printf("O valor do imposto devido e R$ %0.2f\n\n", ImpDev1);//Imprime na tela o valor do imposto devido. printf("O valor da deducao do imposto devido com a deducao e R$ %0.2f\n\n", ImpTotal1);//Imprime na tela o valor da dedução do imposto devido. printf("O valor do salario Liquido e R$ %0.2f\n\n", Total1);//Imprime na tela o valor do salário liquido. } else if ((Salario > Faixa2) && (Salario <= Faixa3)) { float ImpDev2 = Salario * Alic2, ImpTotal2 = ImpDev2 - Ded2, Total2 = Sa- lario - ImpTotal2; printf("O valor do salario bruto e R$ %0.2f\n\n", Salario);//Imprime na tela o valor do salário bruto. printf("O valor do imposto devido e R$ %0.2f\n\n", ImpDev2);//Imprime na tela o valor do imposto devido. printf("O valor da deducao do imposto devido com a deducao e R$ %0.2f\n\n", ImpTotal2);//Imprime na tela o valor da dedução do imposto devido. printf("O valor do salario Liquido e R$ %0.2f\n\n", Total2);//Imprime na tela o valor do salário liquido. } else if ((Salario > Faixa3) && (Salario <= Faixa4)) { float ImpDev3 = Salario * Alic3, ImpTotal3 = ImpDev3 - Ded3, Total3 = Sa- lario - ImpTotal3; printf("O valor do salario bruto e R$ %0.2f\n\n", Salario);//Imprime na tela o valor do salário bruto. printf("O valor do imposto devido e R$ %0.2f\n\n", ImpDev3);//Imprime na tela o valor do imposto devido. printf("O valor da deducao do imposto devido com a deducao e R$ %0.2f\n\n", ImpTotal3);//Imprime na tela o valor da dedução do imposto devido. printf("O valor do salario Liquido e R$ %0.2f\n\n", Total3);//Imprime na tela o valor do salário liquido. } else if (Salario > Faixa4) { float ImpDev4 = Salario * Alic4, ImpTotal4 = ImpDev4 - Ded4, Total4 = Salario - ImpTotal4; printf("O valor do salario bruto e R$ %0.2f\n\n", Salario);//Imprime na tela o valor do salário bruto. printf("O valor do imposto devido e R$ %0.2f\n\n", ImpDev4);//Imprime na tela o valor do imposto devido. printf("O valor da deducao do imposto devido com a deducao e R$ %0.2f\n\n", ImpTotal4);//Imprime na tela o valor da dedução do imposto devido. printf("O valor do salario Liquido e R$ %0.2f\n\n", Total4);//Imprime na tela o valor do salário liquido. } system("pause"); return 0; } Imagem do algorítmico exercício 2 3 EXERCÍCIO Faça um algoritmo em linguagem C com as seguintes funcionalidades: • Leia um vetor de N posições. O valor máximo de N deverá ser no máximo 100. A leitura deverá ser feita manualmente pelo teclado; • Crie mais dois vetores. Armazene em um destes vetores todos os valores PARES digitados, e no outro, todos os valores ÍMPARES digitados; • Imprima na tela, de uma forma legível, o número do seu RU, o vetor dos pares e o vetor dos ímpares, este último deve ter multiplicado cada valor pelos dois úl- timos números da sua matrícula. Por exemplo: se sua matricula for 1234567, multiplique cada valor do vetor por 67. #include <stdio.h> #include <stdlib.h> #include <string.h> constexpr auto max = 100;; /*------------------------------------------------------------------------------------ ------------------/ /LÓGICA DE PROGRAMAÇÃO E ALGORITMO / /Desenvolvido por : Paulo Hack / /Matricula: 2148256 / /Ano: 2018 / /------------------------------------------------------------------------------------- -----------------*/ int main() { system("title VETOR_PAR_E_VETOR_IMPAR");//Atribui o nome ao tela apresentada. system("color 17");//Define cor da tela e fonte. system("mode con:cols=80 lines=35");//Define tamanho da tela a ser exibida. //Definições das variaveis utilizadas na aplicação. int i, vNum[max], vPar[max], vImpar[max], x = 0, y = 0, vOp=0; char c;//Definição da variável relacionada a limpeza do buffer do te- clado. printf("Digite o numero de valores inteiros a serem digitados:\n");//So- licita entrada de valor do tamanho do vetor ao utilizador. scanf_s("%d", &vOp);//Faz a leitura da entrada do teclado. while ((c = getchar()) != '\n'&& c != EOF) {} //limpa do buffer do te- clado. if ((vOp <= max)&&(vOp != 0)) {//testa se a entrada do operador e menor que o máximo e diferente de 0. printf("Digite os %d numeros para preencher o vetor infor- mado:\n", vOp);//Solicita entrada de valor ao utilizador.//Testa valor de entrada do utilizador se menor que valor máximo pré definido. for (i = 0; i < vOp; i++) //preenchimento do vetor scanf_s("%d", &vNum[i]);//Faz a leitura da entrada do teclado. while ((c = getchar()) != '\n'&& c != EOF) {} //limpa do buffer do teclado. printf("\nR.U. (2148256).\n");//Imprime o número do R.U. for (i = 0; i < vOp; i++) if (vNum[i] % 2 == 0)//verificação se o número é par// { vPar[x] = vNum[i];//Armazenamento dos numeros pares no vetor par// x++; //incremento do índice do vetor par// } else //se o numeto inteiro não é par, é ímpar!// { vImpar[y] = vNum[i];//Armazenamento dos nume- ros ímpares no vetor ímpar// y++; //incremento do índice do vetor ímpar// } printf("\n\nNumeros pares digitados\n\n"); //impressão do vetor par// for (i = 0; i < x; i++)//Imprime na tela o vetor dos valo- res pares. printf("|%d", vPar[i]); printf("|\n\nNumeros impares digitados, multiplicados pelos ultimos dois digitos do R.U.(56) \n\n");//impressão do vetor ímpar// for (i = 0; i < y; i++)//Imprime na tela o vetor dos valo- res impares. printf("|%d", vImpar[i] * 56); printf("|\n\n"); } else printf("O valor digitado está fora da faixa.");//Informa que o valor digitado está fora do solicitado. system("pause");//Pausa aplicação. return 0; } Imagem do algorítmico exercício 3 4 EXERCÍCIO Faça um algoritmo em linguagem C com as seguintes funcionalidades: • Receba duas matrizes como dados de entrada. A dimensão das matrizes deve ser de, no máximo 5x5. Ambas matrizes devem ter as mesmas dimensões; • O usuário deve digitar a dimensão das matrizes (máximo 5x5). Faça uma checa- gem usando um laço de repetição que só permita o programa avançar caso ele digite dimensões corretas de no máximo 5; • Escreva ambas matrizes na tela, de uma forma legível; • Escreva a matriz resultante da soma destas duas matrizes multiplicada pelos últi- mos dois números da sua matricula da UNINTER; • Escreva um vetor resultante da soma das diagonais principais das duas matrizes multiplicado pelos últimos dois números da sua matricula daUNINTER; #include <stdio.h> #include <stdlib.h> constexpr auto max = 5;//Estipula valor máximo para matriz. /*------------------------------------------------------------------------------------ ------------------/ /LÓGICA DE PROGRAMAÇÃO E ALGORITMO / /Desenvolvido por : Paulo Hack / /Matricula: 2148256 / /Ano: 2018 / /------------------------------------------------------------------------------------- -----------------*/ int main() { system("title MATRIZ");//Atribui o nome ao tela apresentada. system("color 17");//Define cor da tela e fonte. system("mode con:cols=120 lines=60");//Define tamanho da tela a ser exibida. //Definições das variaveis utilizadas na aplicação. int i, j, k, l; int a, b, c, d; float matriz1[max][max], matriz2[max][max], matrizSoma[max][max], diago- nais[]{0,0,0,0}; char C;//Definição da variável relacionada a limpeza do buffer do teclado. //Entrada de dados para formação da primeira matriz. printf("Digite os valores da primeira matriz lembre que ambas tem que ser de mesmo tamanho e ser menor que 5!.\n"); printf("Digite o valor de linhas.\n"); scanf_s("%d", &a); while ((C = getchar()) != '\n'&& C != EOF) {}; printf("Digite o valor de colunas.\n"); scanf_s("%d", &b); while ((C = getchar()) != '\n'&& C != EOF) {}; //Entrada de dados para formação da segunda matriz. printf("Digite os valores da segunda matriz!.\n"); printf("Digite o valor de linhas.\n"); scanf_s("%d", &c); while ((C = getchar()) != '\n'&& C != EOF) {}; printf("Digite o valor de colunas.\n"); scanf_s("%d", &d); while ((C = getchar()) != '\n'&& C != EOF) {}; if ((a < max) && (b < max) && (c < max) && (d < max)){//Teste de semelhança das matrizes. if ((a == c) && (b == d)) { printf("\nMuito bom, vamos agora preencer matriz 1.\n\n"); for (i = 0; i < a; i++)//Leitura da primeira matriz. { for (j = 0; j < b; j++) { scanf_s("%f", &matriz1[i][j]); } } printf("\n\nMuito bom, vamos agora preencer matriz 2.\n\n"); for (k = 0; k < c; k++)//Leitura da segunda matriz. { for (l = 0; l < d; l++) { scanf_s("%f", &matriz2[k][l]); } } printf("nossas matrizes digitadas foram\n"); printf("Matriz 1:");//mostra na tela a primeira matriz. for (i = 0; i < a; i++) { printf("\n["); for (j = 0; j < b; j++) { printf("%.2f]", matriz1[i][j]); } } printf("\nMatriz 2:");//mostra na tela a segunda matriz. for (i = 0; i < c; i++) { printf("\n["); for (j = 0; j < d; j++) { printf("%.2f]", matriz2[i][j]); } } printf("\n\n"); printf("\nMuito bom, vamos agora mostrar a matriz resultante da soma das duas matrizes.\n\n"); for (i = 0; i < a; i++)//Calculo da matriz resultante da soma das duas matrizes e multiplica pelos ultimos dois numeros do RU. { printf("\n["); for (j = 0; j < b; j++) { matrizSoma[i][j] = matriz1[i][j] + matriz2[i][j]; printf("%.2f]", matrizSoma[i][j] * 56); } } printf("\nMuito bom, vamos agora mostrar a soma das diagonais principais da matriz resultante das duas matrizes.\n"); if ((a == b) && (c == d))// teste de validade para gerar as diago- nais das matrizes. { for (i = 0; i < a; i++)//Calculo das diagonais da matriz multiplica pelos ultimos dois numeros do RU e dispoem em um vetor. { for (j = 0; j < b; j++) { if (i == j) { diagonais[0] = (diagonais[0] + ma- triz1[i][j])*56; diagonais[1] = (diagonais[1] + ma- triz2[i][j])*56; } if (i + j == b-1) { diagonais[2] = (diagonais[2] + ma- triz1[i][j])*56; diagonais[3] = (diagonais[3] + ma- triz2[i][j])*56; } } } printf("Os valores das diagonais principais das matrizes 1 e 2 são [%.2f],[%.2f],[%.2f],[%.2f]\n\n", diagonais[0], diagonais[1], diagonais[2], diagonais[3]); } else printf("Estas matrizes nao possuem diagonais principais e se- cundarias! pois não são quadradas."); } } else printf("Os valores digitados não formam duas matrizes de tamanhos iguais"); system("pause");//Pausa aplicação. return 0; } Imagem do algorítmico exercício 4 5 EXERCÍCIO Faça um algoritmo em linguagem C que contenha uma FUNÇÃO que: a. Recebe como parâmetro as notas de uma disciplina (APOLs, prova objetiva, prova discursiva e atividade prática), seguindo os critérios da UNINTER; b. Retorna como resposta da função: 1 se o aluno foi aprovado, 2 se está em exame, ou 0 se está reprovado. No programa principal, leia todas as notas do aluno nas provas e atividades (0 - 100) e passe-as como parâmetro para a função que você criou. Com o retorno que a função irá fornecer, imprima na tela as mensagens “APROVADO”, “REPROVADO” e “EM EXAME”. Para resolver este exercício, utilize a Equação abaixo que calcula o média de um aluno em uma disciplina da UNINTER. Para estar aprovado, o aluno precisa ter média 70 ou mais. Para estar em exame, precisa estar com média entre 30 e 69. Abaixo de 30 estará reprovado diretamente. (∑𝐴𝑝𝑜𝑙𝑠) ∗ 20 + 𝑃𝑂 ∗ 20 + 𝑃𝐷 ∗ 30 + 𝐴𝑃 ∗ 30 𝑁𝑜𝑡𝑎 = 100 Em que PO é a prova objetiva, PD prova discursiva e AP é atividade prática. ATENÇÃO, VOCÊ TAMBÉM DEVERÁ IMPRIMIR NA TELA A MÉDIA DO ALUNO #include <stdio.h> #include <stdlib.h> /*------------------------------------------------------------------------------------ ------------------/ /LÓGICA DE PROGRAMAÇÃO E ALGORITMO / /Desenvolvido por : Paulo Hack / /Matricula: 2148256 / /Ano: 2018 / /------------------------------------------------------------------------------------- -----------------*/ // Função de retorno da média do aluno. int notas(int apol1, int apol2, int apol3, int apol4, int apol5, int po, int pd, int atp) { int notaFinal = 0; int mediaApols = 0; mediaApols = (apol1 + apol2 + apol3 + apol4 + apol5) / 5; notaFinal = ((mediaApols * 20) + (po * 20) + (pd * 30) + (atp * 30)) / 100; return notaFinal; } // Função de retorno da faixa da média do aluno( {1} - Média >69, {2} - 70 > Média > 30, ou {0} - Média < 30). int aprovacao(int notaFinal) { int x = 0; if (notaFinal > 69) { x = 1; }; if ((notaFinal < 70) && (notaFinal >= 30)) { x = 2; }; if (notaFinal < 30) { x = 0; }; return x; } int main() { system("title Provas");//Atribui o nome ao tela apresentada. system("color 17");//Define cor da tela e fonte. system("mode con:cols=120 lines=60");//Define tamanho da tela a ser exibida. //Declaração das variáveis. int apol1 = 0, apol2 = 0, apol3 = 0, apol4 = 0, apol5 = 0, po = 0, pd = 0, atp = 0, apv = 0, nFinal = 0; char c; //Leitura das notas. printf("Digite o valor das notas do aluno.\n\n"); printf("Digite o valor da Apol 1.\n");scanf_s("%d", &apol1); while ((c = getchar()) != '\n'&& c != EOF) {} printf("Digite o valor da Apol 2.\n"); scanf_s("%d", &apol2); while ((c = getchar()) != '\n'&& c != EOF) {} printf("Digite o valor da Apol 3.\n"); scanf_s("%d", &apol3); while ((c = getchar()) != '\n'&& c != EOF) {} printf("Digite o valor da Apol 4.\n"); scanf_s("%d", &apol4); while ((c = getchar()) != '\n'&& c != EOF) {} printf("Digite o valor da Apol 5.\n"); scanf_s("%d", &apol5); while ((c = getchar()) != '\n'&& c != EOF) {} printf("Digite o valor da po.\n"); scanf_s("%d", &po); while ((c = getchar()) != '\n'&& c != EOF) {} printf("Digite o valor da pd.\n"); scanf_s("%d", &pd); while ((c = getchar()) != '\n'&& c != EOF) {} printf("Digite o valor da atp.\n"); scanf_s("%d", &atp); // Inicio teste da faixa de aplicação da média do aluno nFinal = notas(apol1, apol2, apol3, apol4, apol5, po, pd, atp); apv = aprovacao(nFinal); if (apv == 1) { printf("\n\nAluno aprovado media final (%d)\n\n", nFinal); printf("Continue assim, Parabens.\n\n", nFinal); } if (apv == 2) { printf("\n\nAluno em recuperacao media final (%d)\n\n", nFinal); printf("Precisa estudar um pouco mais!!\n\n", nFinal); } if (apv == 0) { printf("\n\nAluno reprovado media final (%d)", nFinal); printf("Fóco nos estudos e determinacao!!!\n\n", nFinal); } system("pause");//Pausa aplicação. return 0; } Imagem do algorítmico exercício 5
Compartilhar