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 FULANO DE TAL– RU: XX1638 PROF. VINICIUS POZZOBON BORIN, ME. CIDADE - UF. 2018 1 1 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 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. Matrícula: xx1638 // Questao01.cpp : Este arquivo contém a função 'main'. A execução do programa começa e termina ali. // #include "pch.h" #include <iostream> int main() { int iA, iB, iC, iX = 0; //Variaveis printf("# # Verifica modelo de triangulo # #\n\n"); printf("Digite um valor para a reta 'AB': "); scanf_s("%d", &iA); //Verifica se valor da reta AB é valido while (iA <= 0) //Caso seja menor ou igual a zero solicita um novo valor { printf("Valor para a reta 'AB' invalido, nao forma um triangulo!\n"); printf("Digite um novo valor para a reta 'AB': "); scanf_s("%d", &iA); } printf("Digite um valor para a reta 'AC': "); scanf_s("%d", &iB); //Verifica se valor da reta AC é valido while (iB <= 0) //Caso seja menor ou igual a zero solicita um novo valor { printf("Valor para a reta 'AC' invalido, nao forma um triangulo!\n"); printf("Digite um novo valor para a reta 'AC': "); scanf_s("%d", &iB); } printf("Digite um valor para a reta 'BC': "); scanf_s("%d", &iC); //Verifica se valor da reta BC é valido while (iC <= 0) //Caso seja menor ou igual a zero solicita um novo valor { printf("Valor para a reta 'BC' invalido, nao forma um triangulo!\n"); printf("Digite um novo valor para a reta 'BC': "); scanf_s("%d", &iC); } if ((iA == iB) and (iB == iC) and (iC == iA)) //Verifica se todos os lados são iguais { iX = 1; } else if ((iA == iB) or (iB == iC) or (iC == iA)) //Verifica se ao menos dois lados são iguais { iX = 2; } else if ((iA != iB) and (iB != iC) and (iC != iA)) //Verifica se todos os lados são diferentes { iX = 3; } printf("\n"); switch (iX) //Imprime resultado do modelo de triangulo { case 1: printf("Os valores informados formam um triangulo Equilatero \n\n"); break; case 2: printf("Os valores informados formam um triangulo Isosceles \n\n"); break; case 3: printf("Os valores informados formam um triangulo Escaleno \n\n"); break; } system("pause"); return 0; } Imagem do código funcionando no seu computador: Teste utilizando o valor de zero em um dos lados. 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: A base de cálculo de imposto é dada pelo salário mensal, com certas deduções, como dependentes e contribuição previdenciária. Abs- traindo estas deduções e outros detalhes, o imposto devido é resumidamente calculado tomando como base de cálculo o salário mensal, verifi- cando 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. // Questao02.cpp : Este arquivo contém a função 'main'. A execução do programa começa e termina ali. // #include "pch.h" #include <iostream> int main() { float fBase, fAliq, fParcela, fSalario, fImposto; //Variaveis printf("# # Calcula deducao IPRF # #\n\n"); //Titulo programa printf("Digite o valor do salario base do funcionario: "); scanf_s("%f", &fBase); //Valida faixa do salario para calculo do imposto if (fBase <= 1903.98) { fAliq = 0; fParcela = 0; } else if ((fBase >= 1903.99) and (fBase <= 2826.65)) {fAliq = 0.075; fParcela = 142.80; } else if ((fBase >= 2826.66) and (fBase <= 3751.05)) { fAliq = 0.15; fParcela = 354.80; } else if ((fBase >= 3751.06) and (fBase <= 4664.68)) { fAliq = 0.225; fParcela = 636.13; } else { fAliq = 0.275; fParcela = 869.36; } printf("\n"); fImposto =(fBase * fAliq) - fParcela; //Calcula valor imposto fSalario = fBase - fImposto; //Calcula salario final //Imprime valores calculados printf("Salario base.: %.2f\n", fBase); printf("Imp. retido..: %.2f\n", fImposto); printf("Salario final: %.2f\n", fSalario); system("pause"); return 0; } 3 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 da sua matrícula. Por exemplo: se sua matricula for 1234567, multiplique cada valor do vetor por 67. // Questao03.cpp : Este arquivo contém a função 'main'. A execução do programa começa e termina ali. // #include "pch.h" #include <iostream> int main() { int I, cPar = 0, cImpar = 0, iTam, iVetor[100], iPar[100], iImpar[100]; //Variaveis printf("# # Classifica numeros como Par ou Impar # #\n\n"); //Titulo programa printf("RU do aluno: 241638 \n\n"); printf("Informe o tamanho desejado para seu vetor: "); scanf_s("%d", &iTam); while (iTam > 100) //Verifica se superou 100 posições { printf("Atribua no maximo 100 posicoes ao seu vetor: "); scanf_s("%d", &iTam); } for (I = 0; I < iTam; I++) { if (iVetor[I] % 2 == 0) //Verifica numeros pares e preenche o vetor { iPar[cPar] = iVetor[I]; cPar = cPar + 1; } } for (I = 0; I < iTam; I++) { if (iVetor[I] % 2 != 0) //Verifica numeros impares e preenche o vetor { for ( iImpar[cImpar] = iVetor[I]; cImpar = cImpar + 1; } } printf("\nNumeros pares digitados: "); //Imprime os numeros pares for (I = 0; I < cPar; I++) { if (I > 0) {printf(", "); //Insere vircula para separação dos numeros } printf("%d", iPar[I]); } printf("\nNumeros impares digitados: "); //Imprime os numeros impares for (I = 0; I < cImpar; I++) { if (I > 0) { printf(", "); //Insere vircula para separação dos numeros } printf("%d", iImpar[I]); } printf("\nNumeros impares mutiplicados por 38 (ultimos digitos da RU): "); //Imprime os numeros impares mutiplicados pela RU for (I = 0; I < cImpar; I++) { if (I > 0) { printf(", "); //Insere vircula para separação dos numeros } printf("%d", iImpar[I] * 38); } printf("\n\n"); system("pause"); return 0; } Teste utilizado o valor máximo de posições: Teste utilizando 6 posições: 4 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 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; // Questao04.cpp : Este arquivo contém a função 'main'. A execução do programa começa e termina ali. // #include "pch.h" #include <iostream> int main() { int I, II, iSoma, iTam, iVetor[5], iMatrizA[5][5], iMatrizB[5][5], iMatrizS[5][5]; //Variaveis printf("# # Calculo com Matriz # #\n\n"); //Titulo programa printf("RU do aluno: 241638\n\n"); printf("Informe o tamanho desejado para as Matrizes 'A e B': "); scanf_s("%d", &iTam); while ((iTam < 2) or (iTam > 5)) //Verifica quantidade de posições { printf("Atribua no minimo 2 e maximo 5 posicoes para a Matrizes 'A e B': "); scanf_s("%d", &iTam); } for (I = 0; I < iTam; I++) //Atribui valor a cada linha/coluna da Matriz A { for (II = 0; II <iTam; II++) { printf("Informe um valor para a linha %d e coluna %d da Matriz 'A': ", I + 1, II + 1); scanf_s("%d", &iMatrizA[I][II]); } } printf("\n"); for (I = 0; I < iTam; I++) //Atribui valor a cada linha/coluna da Matriz B { for (II = 0; II < iTam; II++) { printf("Informe um valor para a linha %d e coluna %d da Matriz 'B': ", I + 1, II + 1); scanf_s("%d", &iMatrizB[I][II]); } } iSoma = 0; printf("\n[Matriz 'A']\n"); for (I = 0; I < iTam; I++) //Apresenta Matriz A { printf(" "); for (II = 0; II < iTam; II++) { printf(" %d ", iMatrizA[I][II]); if (I == II) { iSoma = iSoma + iMatrizA[I][II]; //Soma diagonal principal } } printf("\n"); } iVetor[0] = iSoma * 38; //Atribui valor ao vetor iSoma = 0; printf("\n[Matriz 'B']\n"); for (I = 0; I < iTam; I++) //Apresenta Matriz B { printf(" "); for (II = 0; II < iTam; II++) { printf(" %d ", iMatrizB[I][II]); if (I == II) { iSoma = iSoma + iMatrizB[I][II]; //Soma diagonal principal } } printf("\n"); } iVetor[1] = iSoma * 38; //Atribui valor ao vetor iSoma = 0; printf("\n[Matriz 'A + B']\n"); for (I = 0; I < iTam; I++) //Monta matriz de soma { printf(" "); for (II = 0; II < iTam; II++) { iMatrizS[I][II] = iMatrizA[I][II] + iMatrizB[I][II]; printf(" %d ", iMatrizS[I][II]); } printf("\n"); } printf("\n[Matriz 'A + B' x 38]\n"); for (I = 0; I < iTam; I++) //Monta matriz de soma multiplicada por 38 (ultimos digitos da RU) { printf(" "); for (II = 0; II < iTam; II++) { iMatrizS[I][II] = (iMatrizA[I][II] + iMatrizB[I][II]) * 38; printf(" %d ", iMatrizS[I][II]); } printf("\n"); } for (I = 0; I < 2; I++) //Imprime valores do vetor { switch (I) { case 0: printf("\nResultado da somatoria da diagonal principal x 38 da Matriz 'A': %d", iVetor[I]); break; case 1: printf("\nResultado da somatoria da diagonal principal x 38 da Matriz 'B': %d", iVetor[I]); break; } } printf("\n\n"); system("pause"); return 0; } Teste 01: Teste 02: 5 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á re- provado 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. // Questao05.cpp : Este arquivo contém a função 'main'. A execução do programa começa e termina ali. // #include "pch.h" #include "conio.h" #include <iostream> int media(float nNota01, float nNota02, float nNota03, float nNota04); int main() { //Variaveis int I, iResult; float nAPOLs = 0, nProva, nObjetiva, nDiscursiva, nPratica; printf("# # Calcula media aluno # #\n\n"); //Titulo programa printf(" [APOLs]\n"); for (I = 0; I < 4; I++) //Recebe as 4 notas da Apols { printf("Informe a nota 0%d: ", I + 1); scanf_s("%f", &nProva); nAPOLs = nAPOLs + nProva; } nAPOLs = nAPOLs / 4; //Calcula a media da Apols printf("\n"); printf("Informe a nota da prova objetiva: "); //Recebe nota prova objetiva scanf_s("%f", &nObjetiva); printf("Informe a nota da prova discursiva: "); //Recebe nota prova discursiva scanf_s("%f", &nDiscursiva); printf("Informe a nota da atividade pratica: "); //Recebe nota atividade pratica scanf_s("%f", &nPratica); iResult = media(nAPOLs, nObjetiva, nDiscursiva, nPratica); //Chama funcao que calcula a media switch (iResult) //Apresenta resultado do aluno { case 0: printf("\nAluno reprovado!\n\n"); break; case 1: printf("\nAluno aprovado!\n\n"); break; case 2: printf("\nAluno em exame!\n\n"); break; } return 0; } int media(float nNota01, float nNota02, float nNota03, float nNota04) { //Variaveis int iResult; float nMedia; nMedia = ((nNota01 * 20) + (nNota02 * 20) + (nNota03 * 30) + (nNota04 * 30)) / 100; //Calcula a media printf("\nMedia do aluno: %.2f\n", nMedia); //Imprime a media if (nMedia >= 70) { iResult = 1; //Se for maior ou igual a 70 retorna 1 - Aprovado } else if ((nMedia >= 30) and (nMedia <= 69)){ iResult = 2; //Se for entre 30 e 69 retorna 2 - Em exame } else if (nMedia < 30) { iResult = 0; //Se for menor que 30 retorna 0 - Reprovado } return iResult; } Teste 01: Teste 02: Teste 03:
Compartilhar