Buscar

AP Logica de Programacao e Algoritimos

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 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 seu RU da UNINTER como lados do triangulo, cada valor do seu RU será um dos valores X, Y ou Z. Por exemplo, se seu RU for 1234567, faça X = 5, Y = 6 e Z = 7.
RU: xxxxx
#include <stdio.h>
#include <stdlib.h>
int main()
{
	int x, y, z; /* Variáveis para receber os lados dos triangulos */
		printf("Informe o valor de x:\n"); /* Imprime na tela mensagem para que o usuário digite o valor da variável do lado x do triangulo*/
		scanf_s("%d", &x); /*Recebe o valor digitado pelo usuártio */
		printf("Informe o valor de y:\n"); /* Imprime na tela mensagem para que o usuário digite o valor da variável do lado y do triangulo */
		scanf_s("%d", &y); /*Recebe o valor digitado pelo usuário */
		printf("Informe o valor de z:\n"); /* Imprime na tela mensagem para que o usuário digite o valor da variável do lado y do triangulo*/
		scanf_s("%d", &z); //Recebe o valor digitado pelo usuário
		if ((x > 0) && (y > 0) && (z > 0)) /* Verificação se os números são maiores que 0 */
		{
			printf("Os valores formam um triangulo\n"); /* Imprime na tela a mensagem Os valores formam um triangulo */
		}
		if ((x == y) && (x == z)) /* Verificação se o triangulo é equilátero */
		{
			printf("Triangulo Equilatero\n\n");/* Imprime na tela mensagem informando que o triangulo é equilátero */
		}
		else
			if ((x != y) && (x != z)) /* Verificação se o triangulo é isóseles */
			{
				printf("Triangulo Isoseles\n"); /* Imprime na tela mensagem informando que o triangulo é isóseles */
			}
			else
				if ((x < y) && (y < z) && (z > x)) /* Verificação se o triangulo é escaleno */
				{
					printf("Triangulo Escaleno\n"); /* Imprime na tela mensagem informando que o triangulo é escaleno */
				}
				else
					if ((x <= 0) && (y <= 0) && (z <= 0)) /* Verificação se não forma triangulo */
					{
						printf("Os valores não formam o triangulo\n");/* Imprime na tela mensagem informando que não é possível formar o triangulo */
					}
		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 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 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.
RU: xxxxxxx
#include <stdio.h>
#include <stdlib.h>
int main()
{
	float salario = 0, calculo_IRPF = 0, resultado = 0, liquido = 0; /*Declaração das variáveis envolvidas*/
	
	printf("Sistema de Calculo de Salario\n\n"); /*Apresentação do algoritimo*/
	printf("Digite seu salario: ");
	scanf_s("%f", &salario); /*Armazenamento do salario informado*/
	
	/*Calculo do IRPF conforme faixa salarial*/
	
		if (calculo_IRPF >= 1903.08 && calculo_IRPF <= 2826.65)
		{
			resultado = calculo_IRPF * 0.075;
		}
		else
			if (calculo_IRPF >= 2826.65 && calculo_IRPF <= 3751.05)
			{
				resultado = calculo_IRPF * 0.15;
			}
			else
				if (calculo_IRPF >= 3751.05 && calculo_IRPF <= 4664.68)
				{
					resultado = calculo_IRPF * 0.275;
				}
	/*Calculo de Salario liquido*/
	liquido = salario - resultado;
	/*Apresentando o Salario e IRPF*/
	
	printf("O IRPF devido e de: %f\n\n", resultado);
	printf("O Salario liquido a ser recebido e de: %.2f\n\n", liquido);
	
	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. 
RU: xxxxxx
#include <stdio.h>
#include <stdlib.h>
int main()
{
	/*Declaração das variaveis*/
int principal[100];
	int numerospares[100];
	int numerosimpares[100];
	int i, i0 = 0, i1 = 0, i2 = 0;
	printf("Digite os numeros, um a um, quando desejar parar digite 0.\n");
	for (i = 0; i < 100; i++) /*Componentes para comparação dos dados apresentados*/
	{
		printf("\n Informe o %d numero, digite 0 para finalizar:", i + 1);
		scanf_s("%d", &principal[i]);
		if (principal[i]==0) /*Comando para encerramento do algoritimo*/
		{
			break;
		}
		else
		{ 
			i0++;
		}
		if ((principal[i] % 2) == 0) 
/*Verificação se os números são par ou impar*/
		{
			numerospares[i1] = principal[i];
			i1++;
		}
		else
		{
			numerosimpares[i2] = principal[i];
			i2++;
		}
	}
	/*Apresentacao dos resultados*/
	printf("\n\n RU xxxxxxx\n");
	printf("\n\n NUMEROS PARES \n\n");
	for (i = 0; i < i1; i++) 
	{
		printf("%d ", numerospares[i]);
	}
	printf("\n\n NUMEROS IMPARES: \n\n");
	for (i = 0; i < i2; i++)
	{
		printf("%d ", numerosimpares[i]);
	}
	printf("\n\n NUMEROS IMPARES * 16: \n\n");
	for (i = 0; i < i2; i++)
	{
		numerosimpares[i] = numerosimpares[i]*16;
		printf("%d ", numerosimpares[i]);
	}
	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 últimos dois números do seu RU da UNINTER; 
#include <stdio.h>
#include <stdlib.h>
int main()
{
	int matriz1[5][5], matriz2[5][5], matrizsoma[5][5], vetor[5];/*Declação das matrizes*/
	int dimensao;
	int i0, i1, v=0;
	do /* criação do laço de repeticao*/
	{
		system("cls");
		printf("Informe a dimensao para duas matrizes com tamanho maximo 5x5.\n"); /*Declação das dimensoes das matrizes*/
		printf("Informe a dimensao:");
		scanf_s("%d", &dimensao);/*Armazena as informacoesfornecidas pelo usuario*/
	} 
	while ((dimensao > 5) || (dimensao == 0)); /* Repeticao do bloco de comandos*/
	printf("\n Digite os valores para a primeira matriz [%dx%d]\n", dimensao, dimensao); /*coleta informacoes para a primeira matriz*/
	for (i0 = 0; i0 < dimensao; i0++)
	{
		for (i1 = 0; i1 < dimensao; i1++)
		{
			printf("[%d:%d]", i0, i1);
			scanf_s("%d", &matriz1[i0][i1]);
		}
	}
	printf("\n\n Digite os valores para a segunda matriz[%dx%d]\n", dimensao, dimensao); /*coleta informacoes para a segunda matriz*/
	for (i0 = 0; i0 < dimensao; i0++)
	{
		for (i1 = 0; i1 < dimensao; i1++)
		{
			printf("[%d:%d]", i0, i1);
			scanf_s("%d", &matriz2[i0][i1]);
		}
	}
	{
		printf("\n\n Valores da matriz 1 [%dx%d]", dimensao, dimensao); /* apresenta as informacoes da primeira matriz*/
		printf(" ");
		for (i1 = 0; i1 < dimensao; i1++)
		{
			printf("[%3d]", i1);
		}
		printf("\n\n");
		for (i0 = 0; i0 < dimensao; i0++)
		{
			printf("[%d]", i0);
			for (i1 = 0; i1 < dimensao; i1++)
			{
				printf(" %3d ", matriz1[i0][i1]);
			}
			printf("\n\n");
		}
		printf("Valores da matriz 2 [%dx%d]\n", dimensao, dimensao);/* apresenta as informacoes da segunda matriz*/
		printf(" ");
		for (i1 = 0; i1 < dimensao; i1++)
		{
			printf("[%3d]", i1);
		}
		printf("\n\n");
		for (i0 = 0; i0 < dimensao; i0++)
		{
			printf("[%d]", i0);
			for (i1 = 0; i1 < dimensao; i1++)
			{
				printf(" %3d ", matriz2[i0][i1]);
			}
			printf("\n\n");
		}
	}
	printf("\n Soma das matrizes\n"); /* apresenta o resultado do calculo das matrizes*/
	printf(" ");
	for (i1 = 0; i1 < dimensao; i1++)
	{
		printf("[%5d]", i1);
	}
	printf("\n");
	for (i0 = 0; i0 < dimensao; i0++)
	{
		printf("[%d]", i0);
		for (i1 = 0; i1 < dimensao; i1++)
		{
			matrizsoma[i0][i1] = matriz1[i0][i1] + matriz2[i0][i1];
			printf("%5d", matrizsoma[i0][i1] * 16);
			if (i0 == i1)
			{
				vetor[v] = matrizsoma[i0][i1] * 16;
				v++;
			}
		}
		printf("\n");
	}
	printf("\n Vetor da soma da diagonal *16:\n");/* apresenta o resultado da soma vetorial das matrizes*/
	for (i0 = 0; i0 < dimensao; i0++)
	{
		printf("\n[%d]=%d", i0, vetor[i0]);
	}
	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 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.
𝑁𝑜𝑡𝑎=(Σ𝐴𝑝𝑜𝑙𝑠:5)∗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

Continue navegando