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 DA COMPUTAÇÃO DISCIPLINA DE LÓGICA DE PROGRAMAÇÃO E ALGORITMOS ATIVIDADE PRÁTICA SIDNEI MARQUES DE OLIVEIRA – RU: 2417162 Vinicius Pozzobon Borin ribeirão das neves – minas gerais 2018 EXERCÍCIO 1 ENUNCIADO: Faça um algoritmo em linguagem C que recebe três valores X, Y e Z do usuário, e determine 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. Solução do aluno: #include <stdio.h> #include <stdlib.h> int main() { int x = 0, y = 0, z = 0;// VARIÁVEIS DE ENTRADA int matricula;// VARÁVEL DE ENTRADA printf("Digite sua matricula:");// CAPTURAR DADOS scanf_s("%d", &matricula);// GUARDAR DADOS printf("\n");//IMPRIME ESPAÇO QUEBRA LINHA printf("Digite Antepenultimo valor da matricula:");//CAPTURAR DADOS scanf_s("%d", &x);//GUARDAR DADOS printf("\n");//IMPRIME ESPAÇO QUEBRA LINHA printf("Digite o Penultimo valor da matricula:");//CAPTURAR DADOS scanf_s("%d", &y);//GUARDAR DADOS printf("\n");//IMPRIME ESPAÇO QUEBRA LINHA printf("Digite o Ultimo valor da matricula:");//CAPTURAR DADOS scanf_s("%d", &z);//GUARDAR DADOS if (x == 0 || y == 0 || z == 0)//COMPARAR VALORES { printf("\nValor inválido, Digite um valor maior que zero\n"); //IMPRIMIR NA TELA } else { if (x == y && x == z && y == z)//COMPARAR VALORES { printf("\nTriangulo Equilátero, pois possui todos os lados iguais\n"); //IMPRIMIR NA TELA } else if (x == y && x != z && y != z)//COMPARAR VALORES { printf("\nTriangulo Isosceles, pois possui dois lados iguais\n"); //IMPRIMIR NA TELA } else if (x != y && x != z && y != z)//COMPARAR VALORES { printf("\nTriangulo Escaleno, pois possui todos lados diferentes\n"); //IMPRIMIR NA TELA } } printf("\n");//IMPRIME ESPAÇO QUEBRA LINHA system("pause"); return(0); } Imagem do código funcionando no seu computador: EXERCÍCIO 2 ENUNCIADO: 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 imposto devido é resumidamente calculado tomando como base de cálculo o salário mensal, verificando 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 pegando somente os 4 últimos dígitos dela e usando-os como salário. Por exemplo, se sua matricula for 1234567, o salário será R$ 4567. Solução do aluno: #include <stdio.h> #include <stdlib.h> int main() { float salario, x, y, z, w; //Declarar variáveis printf("Digite seu salario\n"); //Entrada de dados scanf_s("%f", &salario); //Guardar dados if (salario <= 1903.98) //se comparar salario { printf("Isento\n"); //Resultado da comparação } else //se não { if (salario >= 1903.99 && salario <= 2826.65) //Comparar salario { (x = salario * 0.075 - 142.80); //Realizar calculo printf("Salario do trabalhador e:%.2f\n\n", salario); //Exibir salario printf("Imposto devido e:%.2f\n\n", x); //Exibir valor do imposto devido printf("salario liquido e:%.2f\n\n", salario - x); //Exibir valor do salario ja descontado o imposto devido } else if (salario >= 2826.66 && salario <= 3751.05) //se comparar salario { (y = salario * 0.15 - 354.80); //Realizar calculo printf("Salario do trabalhador e:%.2f\n\n", salario); //Exibir salario printf("Imposto devido e:%.2f\n\n", y); //Exibir valor do imposto devido printf("salario liquido e:%.2f\n\n", salario - y); //Exibir valor do salario ja descontado o imposto devido } else if (salario >= 3751.06 && salario >= 4664.68) //se comparar salario { (z = salario * 0.225 - 636.13); //Realizar calculo printf("Salario do trabalhador e:%.2f\n\n", salario); //Exibir salario printf("Imposto devido e:%.2f\n\n", z); //Exibir valor do imposto devido printf("salario liquido e:%.2f\n\n", salario - z); //Exibir valor do salario ja descontado o imposto devido } else if (4664.68 >= 0) //se comparar salario { (w = salario * 0.275 - 869.36); //Realizar calculo printf("Salario do trabalhador e:%.2f\n\n", salario); //Exibir salario printf("Imposto devido e:%.2f\n\n", w); //Exibir valor do imposto devido printf("salario liquido e:%.2f\n\n", salario - w); //Exibir valor do salario ja descontado o imposto devido } } system("pause"); return(0); } Imagem do código funcionando no seu computador: EXERCÍCIO 3 ENUNCIADO: 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 últimos números da sua matrícula. Por exemplo: se sua matricula for 1234567, multiplique cada valor do vetor por 67. Solução do aluno: #include <stdio.h> #include <stdlib.h> int main() { int vetN[100] = { 0 }, vetpar[] = { 0 }, vetimpar[] = { 0 }, RU = 62, num = 1, a = 0, i = 0, par = 0, impar = 0; while (num > 0)//TESTA CONDIÇÃO { printf("Digite um numero maior que zero e menor que 100: ", a++);//SOLICITA ENTRADA DE DADOS scanf_s("%d", &num);//LE OS DADOS E GUARDA NA VARIÁVEL if (num > 0)//TESTA CONDIÇÃO { vetN[i] = num;//RECEBE VALOR DA VARIAVEL i++;//INCREMENTA VARIAVEL } } for (i = 0; i < a; i++)//REALIZA VAREDURA DO VETOR N { if (vetN[i] % 2 == 0)//FAZ TESTE DE CONDIÇÃO { vetpar[par] = vetN[i]; //ATRIBUI UM VALOR A OUTRO VETOR par++;//INCREMENTA VARIAVEL } else //SEGUNDA CONDIÇÃO { vetimpar[impar] = vetN[i];//ATRIBUI UM VALOR A OUTRO VETOR impar++;//INCREMENTA A VARIAVEL } } printf("\n\n");//INSERE ESPAÇO QUEBRA LINHA 2 VEZES printf("Matricula:2417162");//IMPRIME MATRICULA printf("\n\n");//INSERE ESPAÇO QUEBRA LINHA 2 VEZES printf("Pares sao:");//IMPRIME PARES for (i = 0; i < par; i++)//VARRE O VETOR PAR { printf("%d ", vetpar[i]);//IMPRIME VETOR PAR } printf("\n\n");//INSERE ESPAÇO QUEBRA LINHA 2 VEZES printf("Impares sao:");//IMPRIME VETOR IMPAR for (i = 0; i < impar; i++)//VARRE O VETOR IMPAR { vetimpar[i] = RU * vetimpar[i];//MULTIPLICA VETOR IMPAR POR VARIAVEL RU printf("%d ", vetimpar[i]);//IMPRIME VETOR IMPAR COM RESULTADODOS VALORES MULTIPLICADOS } printf("\n\n");//INSERE ESPAÇO QUEBRA LINHA 2 VEZES system("pause"); return 0; } Imagem do código funcionando no seu computador: EXERCÍCIO 4 ENUNCIADO: 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 checagem 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 últimos 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 da UNINTER; Solução do aluno: #include <stdio.h> #include <stdlib.h> int main() { int mat1[5][5] = { 0 }, linha, coluna, mat2[5][5], num;//VARIAVEIS DECLARADAS int soma[5][5], resultado[5][5], RU=62;//VARIAVEIS DECLARADAS int a = 0, b = 0, vet[5] = { 0 };//VARIAVEIS DECLARADAS printf("Digite um valor entre zero e cinco para dimensao da matriz:");//ENTRADA DE DADOS scanf_s("%d", &num);//LEITURA DE DADOS E ATRIBUIÇÃO A VARIAVEL while ((num <= 0) || (num >= 5))//TESTE DE CONDIÇÃO { printf("Valor digitado nao valido\n");//CONDIÇÃO FALÇA printf("Digite um valor entre zero e cinco para dimensao da matriz:");//NOVA ENTRADA DE DADOS scanf_s("%d", &num);//LEITURA DE DADOS E ATRIBUIÇÃO A VARIAVEL } printf("\nMatricula:2417162\n");//IMPRIME MATRICULA printf("\n");//QUEBRA LINHA for (linha = 0; linha < num; linha++)//REALIZA VARREDURA NA LINHA for (coluna = 0; coluna < num; coluna++)//REALIZA VARREDURA NA COLUNA { printf("Digite um numero do elemento[%d][%d]: ", linha, coluna);//ENTRADA DE DADOS scanf_s("%d", &mat1[linha][coluna]);//LEITURA E ATRIBUIÇÃO A LINHA E COLUNA DA MATRIZ } printf("\nMatriz1 eh:\n");//IMPRIME MATRIZ printf("\n");//QUEBRA LINHA for (linha = 0; linha < num; linha++)//REALIZA VARREDURA NA LINHA { for (coluna = 0; coluna < num; coluna++)//REALIZA VARREDURA NA COLUNA printf("%d ", mat1[linha][coluna]);//IMPRIME MATRIZ printf("\n");//QUEBRA LINHA } printf("\n");//QUEBRA LINHA for (linha = 0; linha < num; linha++)//REALIZA VARREDURA NA LINHA for (coluna = 0; coluna < num; coluna++)//REALIZA VARREDURA NA COLUNA { printf("Digite um numero do elemento[%d][%d]: ", linha, coluna);//ENTRADA DE DADOS PARA MATRIZ scanf_s("%d", &mat2[linha][coluna]);//LEITURA E ATRIBUIÇÃO DE DADOS A MATRIZ } printf("\nMatriz2 eh:\n");//IMPRIME MATRIZ printf("\n");//QUEBRA LINHA for (linha = 0; linha < num; linha++)//REALIZA VARREDURA NA LINHA { for (coluna = 0; coluna < num; coluna++)//REALIZA VARREDURA NA COLUNA printf("%d ", mat2[linha][coluna]);//IMPRIME MATRIZ printf("\n");//QUEBRA LINHA } for (linha = 0; linha < num; linha++)//REALIZA VARREDURA NA LINHA { for (coluna = 0; coluna < num; coluna++)//REALIZA VARREDURA NA COLUNA soma[linha][coluna] = mat1[linha][coluna] + mat2[linha][coluna];//ATRIBUI VALOR A UMA MATRIZ DEPOIS DO CALCULO } for (linha = 0; linha < num; linha++)//REALIZA VARREDURA NA LINHA { for (coluna = 0; coluna < num; coluna++)//REALIZA VARREDURA NA COLUNA resultado[linha][coluna] = soma[linha][coluna] * RU;//REALIZA CALCULO } printf("\nResultado soma das Matrizes multiplicado pelos dois ultimos numeros da matricula eh:\n");//IMPRIME MATRIZ printf("\n");//QUEBRA LINHA for (linha = 0; linha < num; linha++)//REALIZA VARREDURA NA LINHA { for (coluna = 0; coluna < num; coluna++)//REALIZA VARREDURA NA COLUNA printf("%d ", resultado[linha][coluna]);//IMPRIME MATRIZ printf("\n");//QUEBRA LINHA } for (linha = 0; linha < num; linha++)//REALIZA VARREDURA NA LINHA { for (coluna = 0; coluna < num; coluna++)//REALIZA VARREDURA NA COLUNA if (linha == coluna)//CONDIÇÃO { a += mat1[linha][coluna];//ATRIBUI VALOR A VARIAVEL } } for (linha = 0; linha < num; linha++)//REALIZA VARREDURA NA LINHA { for (coluna = 0; coluna < num; coluna++)//REALIZA VARREDURA NA COLUNA if (linha == coluna)//CONDIÇÃO { b += mat2[linha][coluna];//ATRIBUI VALOR A VARIAVEL } } printf("\nResultado soma das diagonais das Matrizes multiplicado pelos dois ultimos numeros da matricula eh:\n");//IMPRIME MATRIZ printf("\n");//QUEBRA LINHA for (int i = 0; i < 5; i++)//REALIZA VARREDURA NO VETOR { vet[5] = (a + b)*RU;//REALIZA CALCULO DE VARIAVEIS } printf("%d", vet[5]);//IMPRIME VETOR printf("\n");//QUEBRA LINHA printf("\n");//QUEBRA LINHA system("pause");//FIM return 0; } Imagem do código funcionando no seu computador: Exercício 5: 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 Solução do aluno: #include <stdio.h> #include <stdlib.h> float calcnota(float ap1, float ap2, float ap3, float ap4, float ap5, float atp, float po, float pd, float mediaap);//PROTOTIPO DA FUNÇÃO int main()//FUNÇÃO PRINCIPAL { float ap1, ap2, ap3, ap4, ap5, atp, po, pd, operacao, media = 0;//DECLARAÇÃO DE VARIAVEIS int c;//DECLARAÇÃO DE VARIAVEL printf("Digite nota Apol1:");//IMPRIME MENSSAGEM PARA O USUARIO scanf_s("%f", &ap1);//LER VALOR DIGITADO E ATRIBUI A VARIAVEL while ((c = getchar()) != '\n' && c != EOF) {}//LIMPA BUFER DE TECLADO printf("\n");//QUEBRA LINHA UMA VEZ printf("Digite nota Apol2:");//IMPRIME MENSSAGEM PARA O USUARIO scanf_s("%f", &ap2);//LER VALOR DIGITADO E ATRIBUI A VARIAVEL while ((c = getchar()) != '\n' && c != EOF) {}//LIMPA BUFER DE TECLADO printf("\n");//QUEBRA LINHA UMA VEZ printf("Digite nota Apol3:");//IMPRIME MENSSAGEM PARA O USUARIO scanf_s("%f", &ap3);//LER VALOR DIGITADO E ATRIBUI A VARIAVEL while ((c = getchar()) != '\n' && c != EOF) {}//LIMPA BUFER DE TECLADO printf("\n");//QUEBRA LINHA UMA VEZ printf("Digite nota Apol4:");//IMPRIME MENSSAGEM PARA O USUARIO scanf_s("%f", &ap4);//LER VALOR DIGITADO E ATRIBUI A VARIAVEL while ((c = getchar()) != '\n' && c != EOF) {}//LIMPA BUFER DE TECLADO printf("\n");//QUEBRA LINHA UMA VEZ printf("Digite nota Apol5:");//IMPRIME MENSSAGEM PARA O USUARIO scanf_s("%f", &ap5);//LER VALOR DIGITADO E ATRIBUI A VARIAVEL while ((c = getchar()) != '\n' && c != EOF) {}//LIMPA BUFER DE TECLADO printf("\n");//QUEBRA LINHA UMA VEZ printf("Digite nota Atividade Pratica:");//IMPRIME MENSSAGEM PARA O USUARIO scanf_s("%f", &atp);//LER VALOR DIGITADO E ATRIBUI A VARIAVEL while ((c = getchar()) != '\n' && c != EOF) {}//LIMPA BUFER DE TECLADO printf("\n");//QUEBRA LINHA UMA VEZ printf("Digite nota Prova Objetiva:");//IMPRIME MENSSAGEM PARA O USUARIOscanf_s("%f", &po);//LER VALOR DIGITADO E ATRIBUI A VARIAVEL while ((c = getchar()) != '\n' && c != EOF) {}//LIMPA BUFER DE TECLADO printf("\n");//QUEBRA LINHA UMA VEZ printf("Digite nota Prova Discurssiva:");//IMPRIME MENSSAGEM PARA O USUARIO scanf_s("%f", &pd);//LER VALOR DIGITADO E ATRIBUI A VARIAVEL while ((c = getchar()) != '\n' && c != EOF) {}//LIMPA BUFER DE TECLADO printf("\n");//QUEBRA LINHA UMA VEZ operacao = calcnota(ap1, ap2, ap3, ap4, ap5, atp, po, pd, media);//CHAMA FUNÇÃO if (operacao == 1)//COMPARA VALOR DA FUNÇÃO { printf("\n!!!!Aprovado!!!!\n");//IMPRIME MENSSAGEM PARA O USUARIO } else//COMPARA VALOR DA FUNÇÃO { if (operacao == 2)//COMPARA VALOR DA FUNÇÃO { printf("\n!!!!Em Exame!!!!\n");//IMPRIME MENSSAGEM PARA O USUARIO } else//COMPARA VALOR DA FUNÇÃO { if (operacao == 0)//COMPARA VALOR DA FUNÇÃO { printf("\n!!!!Reprovado voce eh um BOSTA!!!!\n");//IMPRIME MENSSAGEM PARA O USUARIO } } } printf("\n");//QUEBRA LINHA UMA VEZ system("pause");//FIM ALGORITIMO return 0; } float calcnota(float ap1, float ap2, float ap3, float ap4, float ap5, float atp, float po, float pd, float mediaap)//DECLARAÇÃO DE VARIAVEIS DA FUNÇÃO { float somap, result, situa = 0;//DECLARAÇÃO DE VARIAVEIS LOCAIS somap = (ap1 + ap2 + ap3 + ap4 + ap5) * 20;//REALIZAR CALCULO result = (somap + (po * 20) + (pd * 30) + (atp * 20));//REALIZAR CALCULO mediaap = (result / 100);//REALIZAR CALCULO if (mediaap >= 70)//COMPARAR VALORES { situa = 1;//ATRIBUI VALOR A VARIAVEL } else//COMPARAR VALORES { if ((mediaap >= 30) && (mediaap <= 69))//COMPARAR VALORES { situa = 2;//ATRIBUI VALOR A VARIAVEL } else//COMPARAR VALORES { situa = 0;//ATRIBUI VALOR A VARIAVEL } } printf("\nMedia eh:%.1f\n", mediaap);//IMPRIME MENSSAGEM PARA O USUARIO return situa;//RETORNA VALOR ATRIBUIDO A VARIAVEL DURANTE OS CALCULOS } Imagem do código funcionando no seu computador:
Compartilhar