Buscar

ATIVIDADE PRÁTICA Logica de Programação e algoritmos 2018

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 20 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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:

Continue navegando