Você está na página 1de 10

BACHARELADO EM ENGENHARIA AMBIENTAL

Introdução a Ciência da Computação II

Trabalho Prático 4 - Lista de Exercícios 4


Linguagem C: Funções

Alunos: Isabele Canesin Longo


Ivan Souza Isael de Barros
Vitória Akiyama de Oliveira

1) Faça uma função em Linguagem C que, receba as coordenadas de dois


pontos (x1, y1) e (x2, y2). Calcule e retorne a distância entre os dois pontos.
Todos os valores utilizados na função são do tipo double.
Distancia = √(��2 − ��1)2 + (��2 − ��1)2
#include <stdio.h>
#include <locale.h>
#include <math.h>

double CalDistanciaPontos(double x1, double y1, double x2, double y2){

double distancia;

distancia = sqrt(pow(x2 - x1, 2.0) + pow(y2 - y1, 2.0));

return( distancia);
}

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

double x1, y1, x2, y2;


printf("Digite a coordenada x1: ");
scanf("%lf", &x1);
printf("Digite a coordenada y1: ");
scanf("%lf", &y1);
printf("Digite a coordenada x2: ");
scanf("%lf", &x2);
printf("Digite a coordenada y2: ");
scanf("%lf", &y2);

double distancia = CalDistanciaPontos(x1, y1, x2, y2);


printf("A distância é: %lf", distancia);

(0);
}

2) Faça uma função em Linguagem C que, dado o Salário de um funcionário


e um Percentual de Reajuste salarial. Calcule e retorne o novo Salário
do funcionário com base no Percentual de Reajuste.

���������������� =(�������������� ∗
��������������������)
100
�������������� = �������������� +
����������������

#include <stdio.h>
#include<conio.h>

int ReajusteSalarial(int N1, int N2)


{
int Resultado;
Resultado = (N1 * N2)/100;
return(Resultado);
}

int main(void)
{
int salario, percentual, Resultado, NovoSalario;
printf("Informe o salario do funcionario:");
scanf("%d", &salario);
printf("Informe a percentual de reajuste:");
scanf("%d", &percentual);

Resultado = ReajusteSalarial(salario,percentual);
NovoSalario = salario + Resultado;

int ReajusteSalarial = NovoSalario;

printf("O novo salario é %d", NovoSalario);


return;
}

3) Faça uma função em Linguagem C que, dado dois números a e b, retorne


1 se a > b, retorne -1 se b > a, retorne 0 se a == b.
#include<stdio.h>
int funcao(int a, int b){
int n;
if(a > b){
n=1;
}
if(b > a){
n=-1;
}
if (b==a){
n=0;}

return(n);
}
void main(){
int a, b,l;
printf("Digite 'a' e em seguida 'b'\n");
scanf("%d %d",&a,&b);
l=funcao(a,b);
printf("%d",l);
return;
}

4) Faça uma função em Linguagem C que, dado o valor de um produto


vendido por um estabelecimento comercial, aplique um desconto de
acordo com o valor do produto. Por fim, retorne o valor do produto com o
desconto aplicado.
✓ Para produtos com valor <= R$100,00, o desconte será de 5%.
✓ Para produtos com valor > R$100,00 e <= R$500,00, o desconte será de 10%.
✓ Para produtos com valor > R$500,00 e <= R$1000,00, o desconte será de 15%.
✓ Para produtos com valor > R$1000,00, o desconte será de 20%.

#include <stdio.h>
int funcao (float v) {
float n;
if(v<=100.0){
n=v-v*(5.0/100.0);
}
if(v>100.0 && v<=500.0){
n=v-v*(10.0/100.0);
}
if (v>500.0 && v<=1000.0){
n=v-v*(15.0/100.0);}

if (v>1000.0){
n=v-v*(20.0/100.0);}
return(n);
}
int main(){

float v,l;
printf ("Informe o valor do produto");
scanf("%f",&v);
l=funcao(v);
printf("%f",l);
return;
}

5) Faça uma função em Linguagem C que, dado a nota de três provas


calcule e retorne a média das provas. Mas atenção para o cálculo da
média das provas considere somente as duas maiores notas de prova,
desconsidere a menor nota de prova.

#include <stdio.h>

float media(float maior1,float maior2){


float m;
m = (maior1 + maior2)/2;
return (m);}

void main(){
float n1 , n2 , n3, maior1, maior2,m;

printf ("Digite as notas 1, 2 e 3 respectivamentes\n");


scanf ("%f %f %f", &n1,&n2,&n3);
if (n1>n2 && n1>n3){
maior1= n1;
if (n2>n3){
maior2=n2;}
else {
maior2=n3;}
}
if (n2>n1 && n2>n3){
maior1= n2;
if (n1>n3){
maior2=n1;}
else {
maior2=n3;}
}
if (n3>n1 && n3>n2){
maior1= n3;
if (n1>n2){
maior2=n1;}
else {
maior2=n2;}
}

m= media(maior1,maior2);
printf ("A media das maiores notas é %f",m);
return; }

6) Faça uma função em Linguagem C que dado um número real a e um


número inteiro b, calcule e retorne o valor de a elevado a b, ����. Obs:
Não utilize a função pow(), faça você mesmo utilizando um laço de
repetição.

#include <stdio.h>
float brunolindo(float a, float b){
float cont, pot;
cont = 1;
pot = 1;
while(cont <= b){
pot = pot * a;
cont++;
}
return (pot);

}
void main(){
float a, b, ivanlindo;
printf ("Insira o valor da base\n");
scanf("%f",&a);
printf("Insira o valor do expoente\n");
scanf("%f",&b);
ivanlindo = brunolindo(a,b);

printf("%f elevado a %f é %f", a , b, ivanlindo);

return;}

7) Faça uma função em Linguagem C que calcule e retorne o produto


(multiplicação) entre dois números inteiros positivos a e b usando
somente a operação aritmética de soma.

#include <stdio.h>
#include <locale.h>
float brunolindo(float a, float b){
float ab;
int soma;
ab=a;
soma= 1;
while (b>soma){
ab = ab+a;
soma = soma+1;}

return (ab);
}
void main(){
setlocale(LC_ALL,"portuguese");

float a, b, ivanlindo;

printf ("Insira um valor\n");


scanf("%f",&a);
printf("Insira o valor a ser multiplicado por %f\n",a);
scanf("%f",&b);
ivanlindo=brunolindo(a,b);

printf("%f multiplicado por %f é %f", a , b, ivanlindo);

return;}
8) Faça uma função em Linguagem C que dado um número inteiro, verifique
se esse número é primo ou não. Se o número é primo retorne 1, se o
número não é primo retorne 0. Obs: Um número é chamado de primo se
ele é divisível apenas por 1 e por ele mesmo.
#include <stdio.h>
#include <locale.h>

int brunolindo(int p){


int valor=1, divisores=-1;

while(valor<=p){
if (p%valor==0){
divisores++;}
valor++;}
if (divisores!=1){
divisores=0;
}

return (divisores);}

void main(){
setlocale(LC_ALL,"portuguese");

int p, l;
printf("Digite um número inteiro: ");
scanf("%d", &p);

l = brunolindo(p);

if(l == 1){
printf("%d é um número primo \n", p);
}
else{
printf("%d não é um número primo \n", p);
}
return 0;
}

9) Faça uma função em Linguagem C que dado um número inteiro, encontre


e retorne seu reverso. Exemplo: O reverso de 1995 é 5991.
#include <stdio.h>
#include <locale.h>

int brunolindo(int num){

int cifra;
if(num >= 0){
do{
cifra = num % 10;
printf("%d", cifra);
num /= 10;
}while(num != 0);
}
return (cifra);}

void main(){
setlocale(LC_ALL,"portuguese");

int p, l;
printf("Digite um número inteiro: ");
scanf("%d", &p);

l = brunolindo(p);

return 0;
}

10) Dizemos que um número com pelo menos dois algarismos é palíndromo
se:
✓ O 1° algarismo de n é igual ao seu último algarismo,
✓ O 2° algarismo de n é igual ao penúltimo algarismo,
✓ E assim sucessivamente...
Ou seja, um número palíndromo é o mesmo número lido da esquerda
para direita e da direita para a esquerda, o número é igual ao seu
reverso.

Exemplos: 567765 e 32423 são palíndromos, enquanto 567675 não é


palíndromo.
Faça uma função em Linguagem C que dado um número inteiro,
verifique se esse número é palíndromo. Se o número é palíndromo
retorne 1, se o número não é palíndromo retorne 0.
#include<stdio.h>
int funcao(int n){
int l, inver;
inver = 0;
l = n;

while (l > 0) {
inver = (inver*10) + (l % 10);
l = l / 10;
}
if (n == inver){
l=1;
}
else{
l=0;}

return (l);
}

int main () {

int n, l;

printf("Digite um valor de N maior do que zero: ");


scanf("%d", &n);

l =funcao(n);

if (l==1){
printf ("Eh palindromo");
}
if (l==0){
printf("Não e palindromo");
}

return 0;

ENTREGAR NO GOOGLE CLASSROOM (ATÉ O DIA 18/02)


Trabalho em Grupo de até 3 alunos! (O Grupo formado deverá ser o
mesmo em todos os trabalhos realizados até o final do semestre)
(Obs: Representa parte da nota dos trabalhos e presença nas aulas dos
dias 14/01, 28/01 e 04/01)
3

Você também pode gostar