• Nenhum resultado encontrado

PN LISTA02 RESPOSTAS

N/A
N/A
Protected

Academic year: 2021

Share "PN LISTA02 RESPOSTAS"

Copied!
8
0
0

Texto

(1)

RESPOSTAS DOS EXERCÍCIOS – LISTA 2

[1]

Eu desejo declarar duas variáveis do tipo char, duas do tipo int e uma do tipo float,

assinale as opções em que as declarações foram realizadas corretamente (X) . char a; int b,c; float d; char e; ( ) char a b; int c d; float e; (X) char a, b; int c, d; float e; (X) char a = 0; int b, c; float d; char e = 'F'; ( ) char a, b, int c, d;

float d; (X) charint b = 'V', c; a;

float d = 3; char e; (X) char a; int b; char c; float d; int e; (X) char a = 5, e = 280; int b = 8, c = 23; float d = 90;

[2]

Sabendo que a variável var é do tipo char, porque executar o comando var = 1232; não atribui o valor 1232 a variável var?

(2)

[3]

Nos programas abaixo, qual será a saída mostrada na tela ao se executar o programa? Não é necessário incluir a parte onde o system(“PAUSE”) solicita que se pressione qualquer tecla para continuar...

(a) #include <stdio.h> #include <stdlib.h> void funcao(char a) { a = a*a; printf("%d\n",a); } int main(void) { char aux = 5; funcao(aux); system("PAUSE"); return 0; }

A função imprime o resultado da operação a*a. (b) #include <stdio.h> #include <stdlib.h> int funcao(char a) { a = a*a; return a; } int main(void) { char aux = 5; aux = funcao(aux); printf("%d\n",aux); system("PAUSE"); return 0; }

A função retorna o resultado de a*a e a função principal (main) imprime o resultado.

(3)

(c) #include <stdio.h> #include <stdlib.h> int funcao(char a) { printf("Calculando..."); a = a*a; return a; } int main(void) { char aux = 5; aux = funcao(aux); system("PAUSE"); return 0; }

Não há um printf onde se imprima números... apenas a string “calculando...” é impressa.

(d) #include <stdio.h> #include <stdlib.h> void funcao(char a) { a = a*a; } int main(void) { char aux = 5; funcao(aux); printf("%d\n", aux); system("PAUSE"); return 0; }

Lembre-se que a função não altera uma variável externa à função!!

(4)

[4]

Escreva uma função que calcula e retorna o volume de uma esfera em m3. A função deverá receber como parâmetro

3 4 3 esfera V = πr o raio da esfera em m. float calc_vol(float r) { float vol; vol = (4.0/3.0)*M_PI*r*r*r;

/* Tenho que usar 4.0 e 3.0 para informar que são constantes em ponto flutuante. (4/3) é divisão inteira e retorna 1. Cuidado! M_PI é uma definição que está em math.h */

return vol; }

[5]

Escreva uma função que calcula e retorna

float calc_massa(float v, float d)

a massa de uma esfera (em kg). A função deverá receber o volume da esfera (em m3) e a densidade do material (em kg/m3).

{

float m;

m = v*d; //se d = m/v, então m = v*d...

return m; //se eu desejasse, poteria retornar direto a expressão } //return v*d; isso economizaria duas linhas de código...

(5)

[6]

Faça um programa que calcula a massa do planeta terra utilizando, necessariamente, as funções criadas nos exercícios 4 e 5. Utilize os dados da tabela abaixo:

Raio médio da Terra: 6378,1 km

Densidade média da Terra: 5515,3 kg/m3

O programa deverá ler do teclado

#include <stdio.h>

o raio (em km) e a densidade (em kg/m3) da terra e chamar as funções para realizar os cálculos. A massa da terra deverá ser impressa em toneladas e em kg. Não se esqueça de realizar as conversões antes de chamar as funções.

#include <stdlib.h> #include <math.h> float calc_vol(float r) { float vol; vol = (4.0/3.0)*M_PI*r*r*r; return vol; }

float calc_massa(float v, float d) {

return v*d; //só para mostrar como posso escrever a função de

} //uma forma diferente... v e d já receberam seu valor

int main(void) {

float rterra,dterra,vterra,mterra;

printf("Entre com o raio medio da terra em km: "); scanf("%f",&rterra); //leio o raio da terra

printf("Entre com a densidade media terra em kg/m3: "); scanf("%f",&dterra); //leio densidade da terra

vterra = calc_vol(rterra*1000); //transformo para metros quando envio!!

mterra = calc_massa(vterra, dterra); //calculo a massa!

printf("A massa da terra e' kg: %e\n",mterra); mterra = mterra/1000; //kg -> toneladas

printf("A massa da terra e' toneladas: %e\n",mterra); system("PAUSE");

return 0; }

(6)

[7]

Escreva uma função que calcula e retorna

O cálculo se baseia na tensão de polarização direta do LED (Vd), na corrente (i) desejada

(que influi na luminosidade) e na tensão aplicada ao circuito (Vi). Observe a figura abaixo.

o valor de resistência ideal para LEDs.

No circuito, a corrente é obtida aplicando-se a Lei de Kirchhoff das malhas ao circuito:

− + + = 0V V Vi R d

Aplicando a lei de Ohm a VR:

0

i d

V R i V − + ⋅ + =

Isolando-se R obtém-se a equação que define a resistência necessária para garantir uma corrente pré-definida, assim:

i d V V R i − =

Escreva um programa de teste para a função. Utilize os valores definidos na tabela abaixo para testar a função. (o resultado deverá ser 350 Ohms)

Vi: 10V Vd: 3V i 20mA #include <stdio.h> #include <stdlib.h> #include <math.h>

float calc_res(float vd, float v, float i) { float res; res = (v - vd)/i; return res; } int main(void) { float valimentacao,vpolarizacao,corrente,resistencia; valimentacao = 10; vpolarizacao = 3; corrente = 0.02; resistencia = calc_res(vpolarizacao,valimentacao,corrente); printf("Resistencia calculada: %f\n",resistencia);

system("PAUSE"); return 0;

(7)

[8]

Escreva uma função que calcula e imprime a reatância capacitiva (em Ohms) de um capacitor. 1 1 2 C X C f C ω π = =

Onde XC é a reatância capacitiva [Ohms], f é a frequência em Hz e C é a

Capacitância [Farad].

O programa deverá ler do teclado a capacitância e a frequência e chamar a função para calcular e imprimir a reatância. Utilize, se desejar, a definição M_PI que está na biblioteca matemática (basta incluir #include <math.h> ao programa) e utilizar M_PI quando desejar utilizar o valor de π.

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

void imp_reat(float C, float f) {

float reat;

reat = 1/(2*M_PI*f*C); //M_PI está definido em math.h printf("A reatancia capacitiva e': %f Ohms",reat); }

int main(void) {

float cap,freq;

printf("Digite a capacitancia\n"); scanf("%f",&cap); //leio a capacitancia printf("Digite a frequencia\n");

scanf("%f",&freq); //leio a capacitancia

imp_reat(cap,freq); //chamo a função para calcular e imprimir system("PAUSE");

return 0; }

(8)

[9]

Escreva uma função que calcula e retorna

2

pk RMS

V = ⋅V

a potência de pico em um resistor sujeito a uma tensão senoidal. A função deverá receber como parâmetro o valor eficaz (RMS) da tensão e o valor da resistência. Para resolver o exercício, saiba que:

Vpk é o valor de pico da tensão senoidal cujo valor RMS é VRMS. Lembre-se que o valor RMS

é o valor usualmente utilizado em CA. Quando se fala 127V para designar a tensão de operação de um aparelho, o valor informado é o valor eficaz (RMS) da tensão.

Lembre-se também que a potência em uma resistência é obtida facilmente utilizando-se a relação: 2 V P R =

Dica: Podes utilizar a função sqrt() e a função pow() da biblioteca math.h. ( ) ( , ) y sqrt x x pow x y x → → #include <stdio.h> #include <stdlib.h> #include <math.h>

float calc_Ppk(float Vrms, float R) {

float P, Vpk;

Vpk = sqrt(2)*Vrms; //calculo tensao de pico P = pow(Vpk,2)/R; //calculo potência de pico return P; //retorno potência de pico }

int main(void) {

float tensao,resistencia,potencia; printf("Digite a Tensao eficaz\n"); scanf("%f",&tensao); //leio a tensao printf("Digite a Resistencia\n");

scanf("%f",&resistencia); //leio a resistencia potencia = calc_Ppk(tensao, resistencia);

printf("A potencia de pico dissipada e' %f\n",potencia); system("PAUSE");

return 0; }

Referências

Documentos relacionados

Produção Industrial - Controle Estatístico de Processos; Legislação Aplicada; Gestão da Produção; Gestão de Processos; Gestão da Qualidade e Metrologia; Normatização e Gestão

Follow-up of infants with risk indicators for hearing loss (RIHL) referred to a Neonatal Hearing Screening Reference Service (NHSRS) of a University Hospital of Belo Horizonte

Não obstante ERENCH (1906), citado por CINOTTI e por LACROIX, apresentar a primitiva referência sobre a técnica conser^ vadora, sugerindo a diminuição do lume do

OCT-302 (extensão) Taxa de recorrência da úlcera Pacientes que necessitaram de administração oral contínua de ácido acetilsalicílico em baixas doses durante o período

Aos dez dias do mês de Fevereiro do ano de dois mil e dez, nesta Vila de Redondo, no edifício dos Paços do Concelho e sala de sessões, realizou-se a reunião ordinária da

Se se quer definir como possível uma nova conceituação para a terminologia povo, retirando-a da exclusividade do Estado nacional – em sua capacidade jurídica de

PEDIDO DE ISENÇÃO DO PAGAMENTO DE LICENÇA PARA PASSEIO DE CICLOTURISMO --- Foi presente um fax da FPCUB a solicitar a isenção do pagamento de licença para

3º É obrigatório às operadoras de planos privados de assistência à saúde formar um agrupamento com todos os seus contratos coletivos com menos de 30 (trinta) beneficiários para