Prévia do material em texto
EXERCÍCIO 1 : Faça um algoritmo em linguagem C que recebe três valores X, Y e Z do usuário, e determine se estes valo- res 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 seu RU da UNINTER como lados do triangulo, cada valor da sua matrícula será um dos valores X, Y ou Z. Por exemplo, se sua matri- cula For 1234567, faça X = 5, Y = 6 e Z = 7. RESPOSTA EXERCÍCIO 1: #include <stdio.h> #include <stdlib.h> int main() { //Variável de entrada para fazer os cálculos. int X, Y, Z; printf("*-* Meu RU: 1234567 *-*\n\n"); //Antepenúltimo valor de entrada. printf("Digite o lado X do Triangulo:"); scanf_s("%d", &X); //Penúltimo valor de entrada. printf("Digite o lado Y do Triangulo:"); scanf_s("%d", &Y); //Último valor de entrada. printf("Digite o lado Z do Triangulo:"); scanf_s("%d", &Z); //Verifica se é possível formar um triângulo com os valores recebidos. if (X < Y + Z && Y < X + Z && Z < X + Y) { printf("\nEssas medidas pertencem a um Triangulo"); //Triângulo Equilátero: Todos os lados iguais. if (X == Y && Y == Z && X == Z) printf(" Equilatero!\n\n"); //Triângulo Escaleno: Todos os lados diferentes. if (X != Y && X != Z && Y != Z) printf(" Escaleno!\n\n"); //Triângulo Isósceles: Apenas dois lados iguais if (X == Y && X != Z || X == Z && X != Y || Y == Z && Y != X) printf(" Isosceles:\n\n"); } //Se não for possível formar um triângulo. else printf("\nEssas medidas nao pertencem a um Triangulo.\n\n"); system("pause"); return 0; } EXERCÍCIO 2 : 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 con- tribuiçã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 o seu RU da UNINTER pegando somente os 4 últimos dígitos dela e usando- os como salário. Por exemplo, se seu RU for 1234567, o salário será R$ 4567. RESPOSTA EXERCÍCIO 2: #include <stdio.h> #include <stdlib.h> int main() { //A variável deve ser float pois as resposta pode ser com vírgula. float base_in, base_out, imp_dev; printf("*-* Meu RU: 1234567 *-*\n\n"); printf("\nDigite o valor do Salario sem desconto: R$ "); scanf_s("%f", &base_in); //Se o salário for até esse valor fica isento de impostos. if (base_in <= 1903.98) { imp_dev = 0; } //Salário entre esses valores, a alíquota é de 7,5% e o valor a deduzir será de 142,80. if (base_in >= 1903.99 && base_in <= 2826.65) { imp_dev = (base_in * 0.075) - 142.80; } //Salário entre esses valores, a alíquota é de 15% e o valor a deduzir será de 354,80. if (base_in >= 2826.66 && base_in <= 3751.05) { imp_dev = (base_in * 0.15) - 354.80; } //Salário entre esses valores, a alíquota é de 22,5% e o valor a deduzir será de 636,13. if (base_in >= 3751.06 && base_in <= 4664.68) { imp_dev = (base_in * 0.225) - 636.13; } //Salário entre esses valores, a alíquota é de 27,5% e o valor a deduzir será de 869,36. if (base_in >= 4664.69) { imp_dev = (base_in * 0.275) - 869.36; } //Cálculo do salário líquido if (base_out = base_in - imp_dev) printf("\nO valor do Imposto de Renda devido eh de: R$ %.2f\n", imp_dev); printf("\nSalario sem desconto: R$ %.2f\n", base_in); printf("Imposto Devido: R$ %.2f\n", imp_dev); printf("Salario com deconto: R$ %.2f\n\n", base_out); system("PAUSE"); return 0; } EXERCÍCIO 3 : 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 do seu RU. Por exemplo: se seu RU for 1234567, multiplique cada valor do vetor por 67. RESPOSTA EXERCÍCIO 3: #include<stdio.h> #include<stdlib.h> //Define o tamanho do índice. #define tam 10 int main() { //Vetores e variáveis de entrada. int vetN[tam], par[tam], impar[tam]; int i, contepar = 0, conteimpar = 0; printf("*-* Meu RU: 1234567 *-*\n\n"); printf("Digite 10 valores:\n"); //Preenche o vetor com os valores digitados. for (i = 0; i < tam; i++) { scanf_s("%d", &vetN[i]); } for (i = 0; i < tam; i++) { //Verifica se o número é par. if (vetN[i] % 2 == 0) { //Armazena os números pares no vetor par. par[contepar++] = vetN[i]; } //Se o número não for par, é ímpar! else { //Armazena os números ímpares no vetor impar. impar[conteimpar++] = vetN[i]; } } printf("\nRU: 1234567\n"); //Imprime os valores do vetor par na tela. printf("\nNumeros pares: "); for (i = 0; i < contepar; i++) { printf("%d ", par[i]); } //Imprime os valores do vetor impar na tela. printf("\nNumeros impares: "); for (contepar = 0; contepar < conteimpar; contepar++) { printf("%d ", impar[contepar]); } //Multiplica os números ímpares pelos números finais do meu RU. printf("\n\nA multipicacao de cada numero impar por 67 eh: "); for (contepar = 0; contepar < conteimpar; contepar++) { printf("%d ", impar[contepar] * 67); } printf("\n\n"); system("pause"); return 0; } EXERCÍCIO 4 : 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 do seu RU da UNINTER; • Escreva um vetor resultante da soma das diagonais principais das duas matrizes multiplicado pelos últimosdois números do seu RU da UNINTER; RESPOSTA EXERCÍCIO 4: #include <stdio.h> #include <stdlib.h> //Define o tamanho do índice. #define linha 3 #define coluna 3 int main() { //Matrizes, vetores e variáveis de entrada. int matA[linha][coluna], matB[linha][coluna], soma_matriz[linha][coluna], vetor_diag[linha]; int l = 0, c = 0; printf("*-* Meu RU: 1234567 *-*\n\n"); //O programa só irá avançar se for digitada as dimensões correta (3x3). do { printf("Digite as dimensoes da MATRIZ A (3x3).\n\n"); printf("Linhas: "); scanf_s("%d", &l); printf("Colunas: "); scanf_s("%d", &c); } while ((l > linha) || (l < linha) || (c > coluna) || (c < coluna)); printf("\n"); //O programa só irá avançar se for digitada as dimensões correta (3x3). do { printf("Digite as dimensoes da MATRIZ B (3x3).\n\n"); printf("Linhas: "); scanf_s("%d", &l); printf("Colunas: "); scanf_s("%d", &c); } while ((l > linha) || (l < linha) || (c > coluna) || (c < coluna)); printf("\n"); printf("Digite os valores da MATRIZ A.\n\n"); //Preenche a mariz A com os valores digitados. for (l = 0; l < linha; l++) { for (c = 0; c < coluna; c++) { printf("Valor %d,%d da MATRIZ A: ", l, c); scanf_s("%d", &matA[l][c]); } } printf("\n"); printf("Digite os valores da MATRIZ B.\n\n"); //Preenche a mariz B com os valores digitados. for (l = 0; l < linha; l++) { for (c = 0; c < coluna; c++) { printf("Valor %d,%d da MATRIZ B: ", l, c); scanf_s("%d", &matB[l][c]); } } printf("\n"); printf("MATRIZ A.\n\n"); //Imprime a MATRIZ A na tela. for (l = 0; l < linha; l++) { for (c = 0; c < coluna; c++) { printf("%d\t", matA[l][c]); } printf("\n"); } printf("\n"); printf("MATRIZ B.\n\n"); //Imprime a MATRIZ B na tela. for (l = 0; l < linha; l++) { for (c = 0; c < coluna; c++) { printf("%d\t", matB[l][c]); } printf("\n"); } printf("\n"); printf("Somas das Matrizes A e B multiplicadas pelos numeros finais do RU 1234567.\n\n"); //Soma as matrizes e multiplica pelos números finais do RU do aluno. for (l = 0; l < linha; l++) { for (c = 0; c < coluna; c++) { soma_matriz[l][c] = matA[l][c] + matB[l][c]; printf("%d\t", soma_matriz[l][c] * 67); } printf("\n"); } printf("\n"); printf("Somas das Diagonais A e B multiplicadas pelos numeros finais do RU 1234567.\n\n"); //Soma as diagonais e multiplica pelos números finais do RU do aluno. for (l = 0; l < linha; l++) { for (c = 0; c < coluna; c++) { if (l == c && l == c) { if (vetor_diag[l] = matA[l][c] + matB[l][c]) { printf("%d\t", vetor_diag[l] * 67); } } } } printf("\n\n"); system("pause"); return 0; } 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 mensa- gens “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. Nota = (∑ 𝐴𝑝o𝑙s / 5) ∗ 20 + A𝑃 ∗ 20 + P𝐷 ∗ 30 + PO ∗ 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. RESPOSTA EXERCÍCIO 5: #include <stdio.h> #include <stdlib.h> //A função notas recebe os valores e retorna um float. float notas(float A_01, float A_02, float A_03, float A_04, float A_05, float P, float O, float D) { float media; media = (((A_01 + A_02 + A_03 + A_04 + A_05) / 5 * 20) + (P * 20) + (O * 30) + (D * 30)) / 100; printf("\nA media do Aluno foi: %.2f\n\n", media); //Retornando o valor para a função principal (main). if (media >= 30 && media <= 69) { return 2; } else if (media < 30) { return 0; } else { return 1; } } //função principal (main). int main() { //Variável de entrada para fazer os cálculos. int Apol_01, Apol_02, Apol_03, Apol_04, Apol_05, AP, PO, PD, media_aluno; printf("*-* Meu RU: 1234567 *-*\n\n"); //Valores de entrada a ser digitados. printf("Digite a nota da Apol 01: "); scanf_s("%d", &Apol_01); printf("Digite a nota da Apol 02: "); scanf_s("%d", &Apol_02); printf("Digite a nota da Apol 03: "); scanf_s("%d", &Apol_03); printf("Digite a nota da Apol 04: "); scanf_s("%d", &Apol_04); printf("Digite a nota da Apol 05: "); scanf_s("%d", &Apol_05); printf("Digite a nota da Atividade Pratica: "); scanf_s("%d", &AP); printf("Digite a nota da Prova Objetiva: "); scanf_s("%d", &PO); printf("Digite a nota da Prova Discursiva: "); scanf_s("%d", &PD); //Chama a função e recebe o retorno. media_aluno = notas(Apol_01, Apol_02, Apol_03, Apol_04, Apol_05, AP, PO, PD); switch (media_aluno) { case 0: printf("Aluno REPROVADO!\n\n"); break; case 1: printf("Aluno APROVADO!\n\n"); break; case 2: printf("Aluno em EXAME!\n\n"); break; default: break; } system("pause"); return 0; }