Skip to content

Instantly share code, notes, and snippets.

@alienbogart
Created April 12, 2019 09:41
Show Gist options
  • Select an option

  • Save alienbogart/7b67b074eb289a9f2fe6ab24f7180525 to your computer and use it in GitHub Desktop.

Select an option

Save alienbogart/7b67b074eb289a9f2fe6ab24f7180525 to your computer and use it in GitHub Desktop.

Listas de Algoritmos - Aulas 6

Lista 7

Questão 1

Faça um programa que peça para o usuário pensar em número de 1 a 4 e depois pergunte se o número é maior que 2 (S-Sim ou N-Não), e caso seja maior que 2, pergunte se ele é maior que 3, ou caso não seja maior que 2, pergunte se é maior que 1. Ao final o programa deve mostrar o número que o usuário pensou.

#include <stdio.h>
#include <stdlib.h>

int main()
{

	char resposta, resposta2;

	printf("Pense em um numero de 1 a 4\n");
	printf("\n");
	printf("O numero pensado foi maior que 2? <S-SIM/N-NAO>:\n");
	scanf("%c", &resposta);

	if(resposta=='S')
	{
		printf("O numero pensado foi maior que 3? <S/N>:\n");
		fflush(stdin);
		scanf("%c", &resposta2);
		if(resposta2=='S')
		{
			printf("O numero pensado foi 4 <S/N>:\n");
		}else if(resposta2=='N'){
			printf("O numero pensado foi 3 <S/N>:\n");
		}else{
			printf("Caracter incorreto. Informe 'S' ou 'N'\n");
		}

	}else if(resposta=='N'){
		printf("O numero pensado foi maior que 1? <S/N>:\n");
		fflush(stdin);
		scanf("%c", &resposta2);
		if(resposta2=='S')
		{
			printf("O numero pensado foi 2 <S/N>:\n");
		}else if(resposta2=='N'){
			printf("O numero pensado foi 1 <S/N>:\n");
		}else{
			printf("Caracter incorreto. Informe 'S' ou 'N'\n");
		}

	}else{
		printf("Caracter incorreto. Informe 'S' ou 'N'\n");
	}

	return 0;
}

Questão 2

Para ser apta a doar sangue a pessoa deve ter entre 18 e 65 anos e pesar no mínimo 50kg. Escreva um programa que leia a idade e o peso de uma pessoa e apresente na tela uma mensagem informando se ela pode ser doadora ou não.

#include <stdio.h>
#include <stdlib.h>

int main()
{
	int idade;
	float peso;

	printf("Informe idade:  ");
	scanf("%d", &idade);

	if(idade>=18 && idade<=65)
	{
		printf("\nInforme peso:  ");
		scanf("%f", &peso);

		if(peso>=50)
			printf("\nEsta pessoa pode doar sangue");
		else
			printf("\nEsta pessoa nao pode doar sangue");

	}else{
		printf("\nEsta pessoa nao pode doar sangue");
	}

	return 0;
}

Questão 3

Uma determinada companhia aérea só contrata aeromoças que preencham os seguintes requisitos:

  • Ter idade igual ou superior a 24 anos.
  • Ter altura igual ou superior a 1.70 m.
  • Falar com fluência 2 ou mais idiomas.

Escreva um programa que leia a idade, a altura e a quantidade de idiomas falados com fluência de uma candidata e imprima uma mensagem informando se essa candidata atende ou não aos requisitos da companhia aérea.

#include<stdio.h>
#include<stdlib.h>

int main()
{
	int idade, idiomas;
	float altura;

	printf("Informe idade:  ");
	scanf("%d", &idade);

	if(idade>=24)
	{
		printf("\nInforme altura:  ");
		scanf("%f", &altura);

		if(altura>=1.70){

			printf("\nInforme quantidade de idiomas falados com fluencia:  ");
			scanf("%d", &idiomas);

			if(idiomas>=2)
				printf("\n Atende os requisitos da companhia para o cargo de aeromoca\n");

		}else{
			printf("\n Nao atende os requistos da companhia para o cargo de aeromoca\n");
		}

	}else{
		printf("\n Nao atende os requistos da companhia para o cargo de aeromoca\n");
	}

	return 0;
}

Questão 4

Infrações de trânsito e acidentes em geral estão muitas vezes relacionados com excesso de velocidade. Pensando nisso a secretaria do DETRAN reajustou o valor das multas e encomendou a você um programa que calcule os novos valores, válidos para as rodovias federais.

Se a velocidade do veículo for até a velocidade permitida, o condutor não paga multa; caso ela exceda em até 20% a velocidade permitida, o valor da multa é de R$ 250; e caso o excesso seja superior à 20% a multa é de R$750. Escreva um programa que leia do teclado a velocidade máxima permitida e a velocidade na qual o veículo trafegava, apresentando na tela o valor da multa a ser pago.

#include<stdio.h>
#include<stdlib.h>

int main()
{
	float velocidade, velocidademax;

	printf("\nInforme velocidade do veiculo:  ");
	scanf("%f", &velocidade);
	printf("\nInforme velocidade maxima permitida:  ");
	scanf("%f", &velocidademax);

	if(velocidade<=velocidademax)
	{
		printf("\n Condutor nao paga multa");

	}else{
		velocidademax=1.2*velocidademax;
		if(velocidade>velocidademax)
		{
			printf("\n Condutor paga multa de 750 reais");
		}else{
			printf("\n Condutor paga multa de 250 reais");
		}
	}

	return 0;

}

Questão 5

Ajude um proprietário de cachorro a calcular quantos dias um pacote de ração pode durar. Escreva um programa que leia o peso do cachorro em quilos e o peso da embalagem de ração em quilos, e calcule e imprima a quantidade de dias que o pacote de ração irá durar. A tabela abaixo indica a porção diária de acordo com a faixa de peso do cachorro: Peso do cachorro em Kg Porções diárias

Peso (kg)Porção (g)
até 560
06 a 1095
11 a 15135
16 a 20170
mais de 21215
#include<stdio.h>
#include<stdlib.h>

int main()
{
	int dias;
	float pesocao, pesoracao;

	printf("\nInforme peso do cachorro em quilos:  ");
	scanf("%f", &pesocao);
	printf("\nInforme peso da racao em quilos:  ");
	scanf("%f", &pesoracao);

	if(pesocao<=5)
	{
		if(pesocao>0){
			dias=(pesoracao*1000)/60;
			printf("\n O pacote de racao ira durar %d dias", dias);
		}

	}else if(pesocao<11)
	{
		if(pesocao>5){
			dias=(pesoracao*1000)/95;
			printf("\n O pacote de racao ira durar %d dias", dias);
		}

	}else if(pesocao<16)
	{
		if(pesocao>=11){
			dias=(pesoracao*1000)/135;
			printf("\n O pacote de racao ira durar %d dias", dias);
		}

	}else if(pesocao<=21)
	{
		if(pesocao>=16){
			dias=(pesoracao*1000)/170;
			printf("\n O pacote de racao ira durar %d dias", dias);
		}

	}else if(pesocao>21)
	{
		dias=(pesoracao*1000)/215;
		printf("\n O pacote de racao ira durar %d dias", dias);

	}else{
		printf("\n Valor de peso do cachorro invalido");
	}


	return 0;

}

Questão 6

Escreva um programa que calcula um reajuste salarial, de acordo com as regras a seguir:

  • se o salário for menor que R$ 500,00 então o reajuste é de 15%
  • se o salário estiver entre R$ 500,00 e R$ 1.000,00 então o reajuste é de 8%
  • se o salário for superior R$ 1.000,00 então o reajuste é de 3%
#include<stdio.h>
#include<stdlib.h>

int main()
{
	float salario;

	printf("\nInforme salario:  ");
	scanf("%f", &salario);

	if(salario<500)
	{
		if(salario > 0){
			printf(" O salario atulaizado sera : %.2f \n Reajuste de: %.2f \n", 1.15*salario, 0.15*salario);
		}

	}else if(salario<=1000)
	{
		if(salario>=500)
			printf(" O salario atulaizado sera : %.2f \n Reajuste de: %.2f \n", 1.08*salario, 0.08*salario);

	}else if(salario>1000)
	{
		printf(" O salario atulaizado sera : %.2f \n Reajuste de: %.2f \n", 1.03*salario, 0.03*salario);

	}else{

		printf("Valor informado invalido");

	}

	return 0;

}

Questão 7

Faça um programa onde o usuário informe 2 valores e a operação que deseja realizar. As seguintes operações podem ser realizadas:

  • soma
  • subtração
  • multiplicação
  • divisão
#include<stdio.h>
#include<stdlib.h>

int main()
{
	int idade;

	printf("\nInforme idade:  ");
	scanf("%d", &idade);

	if(idade<8)
	{
		if(idade>=5)
			printf("\n Categoria: Infantil A \n");

	}else if(idade<11)
	{
		if(idade>=8)
			printf("\n Categoria: Infantil B \n");

	}else if(idade<14)
	{
		if(idade>=11)
			printf("\n Categoria: Juvenil A \n");

	}else if(idade<18)
	{
		if(idade>=14)
			printf("\n Categoria: Juvenil B \n");

	}else if(idade>=18){
		printf("\n Categoria: Adulto \n");
	}else{
		printf("\n Nao possui categoria \n");
	}

	return 0;
}

Questão 8

Faça um programa que leia o peso e a altura do usuário e informe se o mesmo está obeso.

Lembre que para saber se uma pessoa está obesa deve-se utilizar a formula: IMC = peso/altura2. Caso o resultado do IMC seja maior que 30 o usuário está obeso.

#include<stdio.h>
#include<stdlib.h>

int main()
{
	double peso, altura, imc;

	printf("Informe peso:  ");
	scanf("%lf", &peso);
	printf("\nInforme altura:  ");
	scanf("%lf", &altura);

	imc=peso/(altura*altura);

	if(imc <= 18.49){

		if(imc >= 17)
			printf("\nEsta abaixo do peso!\n");

	}else if(imc <= 24.99){

		if(imc >= 18.5)
			printf("\nEsta com peso normal!\n");

	}else if(imc <= 29.99){

		if(imc >= 25)
			printf("\nEsta acima do peso!\n");

	}else if(imc <= 34.99){

		if(imc >= 30)
			printf("\nEsta Obeso! Pare de comer serenata e vá fazer Exercícios! \n");

	}else{

		printf("\nValores Inválidos!\n");
	}

	return 0;
}

Lista 8

Questão 1

O restaurante Dendê & Vatapá, está contratando um programador em C para desenvolver um programa que calcule o troco que deve ser entregue ao cliente. Você foi o selecionado para resolver esse desafio.

Construa um programa que apresente o menu a seguir:

  1. Ler os valores de vf e vt ( vf = Fornecido e vt =Total da Conta), ambos inteiros
  2. Obter troco
  3. Mostrar cédulas do troco
  4. Sair do programa
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main(){
	setlocale(LC_ALL, "Portuguese");

	int op = 0, vf = 0, vt = 0, troco = 0;
	int mod100, mod50, mod20, mod10, mod5, mod2, mod1;
	int div100, div50, div20, div10, div5, div2, div1;

	do{
		printf("|----------------------------|\n");
		printf("|1. Ler o VF e VT            |\n");
		printf("|2. Obter o troco            |\n");
		printf("|3. Mostrar cédulas de troco |\n");
		printf("|4. Sair do programa         |\n");
		printf("|----------------------------|\n");
		printf("|Digite a opção desejada: ");
		scanf("%d", &op);
		system("cls");

		switch(op){
		case 1:
			printf("Digite o Valor fornecido e o Valor total:\n");
			scanf("%d %d", &vf, &vt);
			system("cls");
			break;

		case 2:
			troco = vf - vt;
			printf("Troco = %d\n", troco);
			system("pause");
			system("cls");
			break;

		case 3:
			printf("troco = %d\n", troco);
			printf("-------------------------\n");
			mod100 = troco%100;
			div100 = troco/100;

			mod50 = mod100%50;
			div50 = mod100/50;

			mod20 = mod50%20;
			div20 = mod50/20;

			mod10 = mod20%10;
			div10 = mod20/10;

			mod5 =  mod10%5;
			div5 = mod10/5;

			mod2 = mod5%2;
			div2 = mod5/2;

			mod1 = mod2%1;
			div1 = mod2/1;

			printf("%d NOTAS DE 100 R$\n%d NOTAS DE 50 R$\n%d NOTAS DE 20 R$\n%d NOTAS DE 10 R$\n%d NOTAS DE 5 R$\n%d NOTAS DE 2 R$\n%d NOTAS DE 1 R$\n", div100, div50, div20, div10, div5, div2, div1);
			system("pause");
			system("cls");
			break;
		}
	}while(op != 4);
	/* Linux */
	getchar();
	/* Windows */
	/* system ("Pause"); */
}

Questão 2

Desenvolva uma calculadora em C. Para utilizá-la, o usuário deve inicialmente digitar o tipo de operação que será realizada e em seguida os dois números inteiros. Para esse desafio, você deve utilizar a estrutura de seleção em C, conhecida como SWITCH – CASE.

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main(){
	setlocale(LC_ALL, "Portuguese");
	float num1 =0 , num2 = 0;
	int escolha;
	printf("Calculadora em C\n");
	printf("Informe a operação desejada:");

	printf("\n1. Soma\n2. Subtração\n3. Multiplicação\n4. Divisão\n");
	scanf("%i", &escolha);

	printf("\n\nInforme os números:");

	printf("\nNúmero 1:");
	scanf("%f", &num1);

	printf("\nNúmero 2:");
	scanf("%f", &num2);

	system("clear");
	/* system("cls"); */
	switch (escolha){
	case 1:
		printf("Soma = %f\n", num1 + num2);
		break;

	case 2:
		printf("Subtração = %f\n", num1 - num2);
		break;

	case 3:
		printf("Multiplicação = %f\n", num1 * num2);
		break;

	case 4:
		printf("Divisão = %.2f\n", num1 / num2);
		break;
	}
	/* Linux */
	getchar();
	/* Windows */
	/* system ("Pause"); */
}

Questão 3

A UNIFACS está desenvolvendo um sistema de votação eletrônica para presidentes e representantes do DAA. Neste ano tivemos a candidatura de quatro chapas: (21) UNIVERSIDADE PARA TODOS, (15) IGUALDADE, (36) TRANSFORMAÇÃO e (50) EVOLUÇÃO. Crie um algoritmo que receba o número da chapa escolhida pelo aluno e imprima na tela a chapa escolhida. Para esse algoritmo utilize a estrutura de SWITCH – CASE.

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main(){
	setlocale(LC_ALL, "Portuguese");
	int voto;
	printf("Informe o número da chapa:");
	printf("\n( 21 ) UNIVERSIDADE PARA TODOS\n( 15 ) IGUALDADE\n( 36 ) TRANSFORMAÇÃO\n( 50 ) EVOLUÇÃO\n");
	scanf("%i", &voto);
	switch (voto){
	case 21:
		printf("Seu voto foi para: UNIVERSIDADE PARA TODOS\n");
		break;

	case 15:
		printf("Seu voto foi para : IGUALDADE\n");
		break;

	case 36:
		printf("Seu voto foi para : TRANSFORMAÇÃO\n");
		break;

	case 50:
		printf("Seu voto foi para : EVOLUÇÃO\n");
		break;

	default:
		printf("Voto inválido\n");
		break;
	}

	/* Linux */
	getchar();
	/* Windows */
	/* system ("Pause"); */
}

Questão 4

Um shopping de Salvador, contar a quantidade de vagas do seu estacionamento por setor. Para informar ao cliente por meio de um programa, decidiram contratar um programador. Construa um algoritmo que receba como entrada a identificação do setor e informe quantas vagas estão disponíveis naquele setor ao cliente. Segue abaixo a distribuição de vagas:

A - 500 vagas B - 352 vagas C - 267 vagas D - 976 vagas

#include <stdlib.h>
#include <stdio.h>
#include <locale.h>

int main()
{
	setlocale(LC_ALL, "Portuguese");

	char setor;

	printf("Informe seu setor de identificação:");
	printf("\n( A )\n( B )\n( C )\n( D )\n");
	scanf("%c", &setor);

	/* Linux */
	system("clear");
	/* Windows */
	/* system("cls"); */

	switch (setor){
	case 'A':
		printf("A - 500 vagas\n");
		break;

	case 'B':
		printf("B - 352 vagas\n");
		break;

	case 'C':
		printf("C - 267 vagas\n");
		break;

	case 'D':
		printf("D - 976 vagas\n");
		break;

	default:
		printf("Voto inválido\n");
		break;
	}

	/* Linux */
	getchar();
	/* Windows */
	/* system ("Pause"); */
}

Questão 5

Leia o código de um determinado produto e mostre sua classificação. Utilize a seguinte tabela como referência:

CódigoClassificação
1Alimento não perecível
2, 3 ou 4Alimento perecível
5 ou 6Vestuário
7Higiene Pessoal
8 a 15Limeza e Utensílios Domésticos
Outros códigosCódigo Inválido
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>

int main (){
	setlocale (LC_ALL,"Portuguese");
	int codigo = 0;

	printf("Digite o código do produto: ");
	scanf("%d", &codigo);
	printf("--------------------------------\n");

	if(codigo == 2 || codigo == 3 || codigo == 4){
		codigo = 2;
	}

	if(codigo == 5 || codigo == 6){
		codigo = 3;
	}

	if(codigo >= 8 && codigo <= 15){
		codigo = 4;
	}

	switch(codigo){
	case 1:
		printf("Alimento não-perecível!!");
		break;

	case 2:
		printf("Alimento perecível!!");
		break;

	case 3:
		printf("Vestuario!!");
		break;

	case 4:
		printf("Limpeza e Utensílios Domésticos!!");
		break;

	case 7:
		printf("Higiene Pessoal!!");
		break;

	default:
		printf("Codigo Inválido!!");
		break;

	}

	/* Linux */
	getchar();
	/* Windows */
	/* system ("Pause"); */

}

Questão 6

Faça um programa que receba dois números e execute as operações listadas a seguir de acordo com a escolha do usuário:

Escolha do usuárioOperação
1Média entre os números digitados
2Diferença entre os números
3Produtos entre os números digitados
4Divisão do primeiro pelo segundo
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main(){
	setlocale(LC_ALL, "Portuguese");
	float num1 =0 , num2 = 0;
	int escolha;
	printf("Calculadora em C\n");
	printf("Informe a operação desejada:");
	printf("\n1. Média\n2. Diferença\n3. Produto\n4. Divisão\n");
	scanf("%i", &escolha);
	printf("\n\nInforme os números:");
	printf("\nNúmero 1:");
	scanf("%f", &num1);
	printf("\nNúmero 2:");
	scanf("%f", &num2);
	system("cls");
	switch (escolha){
	case 1:
		printf("Média = %.2f\n", (num1+num2)/2);
		break;

	case 2:
		printf("Diferença = %.2f\n", num1 - num2);
		break;

	case 3:
		printf("Produto = %.2f\n", num1 * num2);
		break;

	case 4:
		printf("Divisão = %.2f\n", num1 / num2);
		break;
	}

	/* Linux */
	getchar();
	/* Windows */
	/* system ("Pause"); */

}

Questão 7

O cardápio de uma casa de lanches é dado pela tabela abaixo:

CódigoProdutoPreço Unitário (R$)
100Cachorro quente1,70
101Bauru Simples2,30
102Bauru com ovo2,60
103Hambúrguer2,40
104Cheeseburger2,50
105Refrigerante1,00

Escreva um algoritmo que leia o código do item adquirido pelo consumidor e a quantidade, calculando e mostrando o valor a pagar. Não será necessário exibir o produto e o valor, somente o valor final.

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

int main(){
	setlocale(LC_ALL, "Portuguese");
	int codigo;
	float quantidade = 0;

	printf("####Casa de lanches UNIFACS####\n");

	printf("\n\nCardápio:\n\n");
	printf("(100) Cachorro Quente ----- R$ 1,70\n");
	printf("(101) Bauru Simples ------- R$ 2,30\n");
	printf("(102) Bauru como ovo ------ R$ 2,60\n");
	printf("(103) Hamburguer ---------- R$ 2,40\n");
	printf("(104) Cheeseburguer ------- R$ 2,50\n");
	printf("(105) Refrigerante -------- R$ 1,00\n");

	printf("\n\nInforme o código do lanche escolhido: ");
	scanf("%i",&codigo);

	printf("\nInforme a quantidade:");
	scanf("%f", &quantidade);

	switch (codigo){
	case 100:
		printf("Total = %f\n",1.7*quantidade);
		break;
	case 101:
		printf("Total = %f\n",2.3*quantidade);
		break;
	case 102:
		printf("Total = %f\n",2.6*quantidade);
		break;
	case 103:
		printf("Total = %f\n",2.4*quantidade);
		break;
	case 104:
		printf("Total = %f\n",2.5*quantidade);
		break;
	case 105:
		printf("Total = %f\n",quantidade);
		break;
	default:
		printf("Código inválido\n");
	}

	/* Linux */
	getchar();
	/* Windows */
	/* system ("Pause"); */
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment