• Nenhum resultado encontrado

1. Indique, para cada afirmação, se é verdadeira ou falsa, justificando no caso de ser falsa:

N/A
N/A
Protected

Academic year: 2022

Share "1. Indique, para cada afirmação, se é verdadeira ou falsa, justificando no caso de ser falsa:"

Copied!
10
0
0

Texto

(1)

Grupo I

1. Indique, para cada afirmação, se é verdadeira ou falsa, justificando no caso de ser falsa:

a) Na declaração de uma função é obrigatório definir o tipo de dados dos argumentos.

Resp: Verdadeira.

b) Na declaração de uma função é obrigatório definir o nome da função.

Resp: Verdadeira.

c) Na declaração de uma função é obrigatório colocar pelo menos um argumento.

Resp: Falsa. Existem funcões que não têm argumentos, como por exemplo funcões void ou a função main.

d) Na chamada de uma função é obrigatório colocar o nome da função.

Resp: Verdadeira.

Grupo II

1. Indique todos os resultados enviados como output deste programa:

#include<stdio.h>

int main(){

int i;

int x;

int y;

for(i=3;i<10;i=i+4){ i=3,7,11

x=0; x=0

}

y=x+i; y=0+11=11

int res;

y=f1(x); y=f1(0)=5

x=x+1; x=5+1=6

res=f1(x); res=f1(6)=5

if(res<0){

x=x+1;

y=y+1;

res=res+1;

}else{

x=x-1; x=6-1=5

y=y+1; y=5+1=6

res=res-1; res=5-1=4

}

printf(“\nValor de x: %d”,x); x=5 printf(“\nValor de y: %d”,y); y=6

printf(“\nValor de res: %d”,res); res=4 return(0);

}

//////////////////////

(2)

int f1(int a){ a=0,6 int x;

x=a; x=0,6

if(a<10 || x<10){

x=5; x=5

} else{

x=10;

}

return(x); x=5

}

/////////////////////////////////////

2. Indique todos os resultados enviados como output deste programa:

#include<stdio.h>

int main(){

int a;

int b;

int c;

a=1; a=1

b=2; b=2

a=a+1; a=1+1=2

c=f2(a,b); c=f2(2,2)=0

if(c<0){

a=2-f3(b);

b=1+f3(a);

c=f2(b,a);

}

else if(c>0){

a=1+f4(b);

b=1-f4(a);

c=f2(b,a);

} else{

a=f3(b); a=f3(2)=3

b=f4(a); b=f4(3)=2

c=1+f2(b,a); c=1+f2(2,3)=1+3=4

}

a=a+b; a=3+2=6

b=a+b; b=6+2=8

c=a+b+c; c=6+8+4=18

printf(“\nValor de a: %d”,a); a=6 printf(“\nValor de b: %d”,b); b=8

printf(“\nValor de c: %d”,c); c=18 return(0);

}

/////////////////////

int f2(int a,int b){ a=2 b=3

int x;

(3)

x=a; x=2 if(a>b){

x=a;

}

else if(b>a){

x=b; x=3

} else{

x=0;

}

return(x); x=3

}

/////////////////////

int f3(int c){ c=2

int a;

if(c==0){

a=1;

}

else if(c>2){

a=2;

} else{

a=3; a=3

}

return(a); a=3

}

/////////////////////

int f4(int a){ a=3

int c;

if(a>2){

c=2; c=2

}

else if(a==0){

c=1;

} else{

c=3;

}

return(c); c=2

}

/////////////////////

Grupo III

Todas as questões devem de ser respondidas em linguagem C.

As funções definidas podem ser recursivas ou iterativas.

1. Crie uma função que recebe um número e imprima a subtração do número seguinte pelo número anterior.

Exemplo:

Insira um número:

(4)

3

Subtração do num seguinte pelo num. anterior: 2

2. Crie uma função que recebe um número e devolva um resultado com base na seguinte expressão:

a. Se n>5 —> 0

b. Se n<5 —> Soma do quadrado de n com o quadrado do próximo número e assim sucessivamente, isto é: n*n + ((n+1)*(n+1)) + …. (utilizar ciclo ou recursividade) c. Senão —> 1

Validar para que só faça os cálculos caso o número seja superior a 0.

Exemplo:

Insira um número:

3

Resultado: 26 ((3*3)+(4*4)+1)

3. Crie uma função que receba seis números e imprima qual o maior e menor valor inserido.

Exemplo:

Insira os seis números:

2 15 3 20 1 4

Maior valor inserido: 20 Menor valor inserido: 1

4. Crie uma função que recebe uma data de nascimento (separada em 3 variáveis) e uma data remota (separada em 3 variáveis) e a função imprime quantos anos e quantos meses uma determinada pessoa possuía na data remota.

Exemplos:

Insira uma data de nascimento:

20 10 2008

Insira uma data remota:

1 2 2012

Possuía na data remota 3 anos e 4 meses

--- Insira uma data de nascimento:

07 08

(5)

1970

Insira uma data remota:

07 08 2013

Possuía na data remota 43 anos e 0 meses

5. Realize a integração com a função main para que seja possível testar as suas funções de acordo com as seguintes condições:

a. Solicitar ao utilizador a inserção de um número e mostrar o resultado das funções criadas no ponto 1 e 2 deste grupo.

b. Solicitar ao utilizador para introduzir seis valores e mostrar o resultado

à semelhança do exemplo apresentado para a pergunta 3 (Maior valor inserido e menor valor inserido).

c. Solicitar ao utilizador a inserção de duas datas (valores separados) para testar a função criada no ponto 4 deste grupo mostrando o resultado dessa função à semelhança dos exemplos (número de anos e meses).

///////////////////////////////// Código linguagem C

#include<stdio.h>

int funcao1(int n1);

int funcao2(int n1);

int funcao3(int n1);

int funcao4(int ndd,int nmm,int naaaa,int rdd, int rmm, int raaaa);

int max,min;

int main() {

int Ch_f99=0;

do {

printf ("\n*");

printf ("\n********** Ficha 16_0786 Grupo III ***********");

printf ("\n* ");

printf ("\n* Escolha uma das opcoes:");

printf ("\n*");

printf ("\n* 1 -> Executa Funcao Item 1 e 2");

printf ("\n* 2 -> Executa Funcao Item 3");

printf ("\n* 3 -> Executa Funcao Item 4");

printf ("\n* 0 -> Sai do programa");

printf ("\n* ");

printf ("\n*************************************");

printf ("\n*\n");

int Op_menu;

scanf ("%d",&Op_menu);

if (Op_menu==1) {

(6)

int Ch_f01=0;

int n1;

do {

printf ("\n* Executa Funcao Item 1 e 2\n");

printf ("\n* Insira um numero inteiro positivo maior que zero: ");

scanf ("%d",&n1);

if (n1 > 0) {

int res;

res = funcao1(n1);

printf ("\n* A subtracao do num seguinte pelo num anterior: %d",res);

res = funcao2(n1);

printf ("\n* O Resultado apos execucao da Funcao Item 2 : %d",res);

Ch_f01 = 1;

} else {

printf ("\n* Numero tem que ser superior a 0. Tente novamente...\n");

}

} while (Ch_f01 != 1);

}

else if (Op_menu==2) {

printf ("\n* Executa Funcao Item 3\n");

printf ("\n* Dados n numeros esta funcao mostra qual");

printf ("\n* o maior e o menor numero inserido.\n");

int n1;

printf ("\n* Quantos numeros quer comparar? : \n");

scanf ("%d",&n1);

int res;

// int max,min;

res = funcao3(n1);

if (n1 != 0) {

printf ("\nO maior numero inserido : %d",max);

printf ("\nO menor numero inserido : %d",min);

} }

else if (Op_menu==3) {

printf ("\n* Executa Funcao Item 4\n");

printf ("\n* Insira uma data de nascimento *");

printf ("\n* dia : ");

int ndd;

scanf ("%d",&ndd);

printf ("\n* mes : ");

int nmm;

scanf ("%d",&nmm);

printf ("\n* ano (aaaa) : ");

int naaaa;

scanf ("%d",&naaaa);

printf ("\n* Insira uma data remota *");

printf ("\n* dia : ");

int rdd;

(7)

scanf ("%d",&rdd);

printf ("\n* mes : ");

int rmm;

scanf ("%d",&rmm);

printf ("\n* ano (aaaa) : ");

int raaaa;

scanf ("%d",&raaaa);

int res;

res = funcao4 (ndd,nmm,naaaa,rdd,rmm,raaaa);

}

else if (Op_menu==0) {

printf ("\n* Fim da execucao. Obrigado por utilizar este programa.\n");

Ch_f99 = 1;

} else {

printf ("\n* Opcao invalida. Tente novamente...");

}

} while (Ch_f99 != 1);

return(0);

}

//////////////////

int funcao1(int n1) {

int res;

res = (n1+1)-(n1-1);

return(res);

}

//////////////////

int funcao2(int n1) {

int res;

if (n1 > 5) {

res = 0;

}

else if (n1 < 5) {

int ix1; //

res=0; //

for (ix1=n1;ix1<5;ix1=ix1+1) { //res=(n1*n1)+f2(n+1);

res = res + (ix1 * ix1); //

} //

res = res + 1; //

} else {

res = 1;

}

return(res);

}

////////////////////

int funcao3(int n1) {

int res;

int n2;

(8)

//int max,min;

int ix1;

for (ix1=1;ix1<=n1;ix1=ix1+1) { printf ("\nInsira o numero %d : ",ix1);

scanf ("%d",&n2);

if (ix1 == 1) {

max = n2;

min = n2;

}

else if (n2 > max) { max = n2;

}

else if (n2 < min) { min = n2;

} }

//if (n1 != 0) {

// printf ("\nO maior numero inserido : %d",max);

// printf ("\nO menor numero inserido : %d",min);

//}

return(res);

}

////////////////////////

int funcao4(int ndd,int nmm,int naaaa,int rdd, int rmm, int raaaa){

int dias,meses,anos,res;

int erro=0;

if (rmm >= nmm) { if (rdd >= ndd) {

anos = raaaa - naaaa;

meses = rmm - nmm;

} else {

if (rmm == nmm) { anos = raaaa - naaaa - 1;

meses = 11;

} else {

anos = raaaa - naaaa;

meses = rmm - nmm -1;

} }

} else {

if (rdd >= ndd) {

anos = raaaa - naaaa - 1;

meses = 12 - (nmm - nmm);

} else {

anos = raaaa - naaaa - 1;

(9)

meses = 12 - (nmm - rmm) - 1;

} }

if (erro == 1) {

printf ("\n* Erro. Data remota inferior a data de nascimento.\n");

} else {

printf ("\nPossuia na data remota");

printf ("\n%d ano(s) e %d mese(s)",anos,meses);

}

return(res);

}

////////////////////

Esta solução contempla os dias (por isso no primeiro exemplo dá menos um mês) mas se tivessem feito como está no teste (ignorando os dias)

também seria aceite.

#include<stdio.h>

void f4(int dn, int mn, int an, int dr, int mr, int ar);

int main() {

int dn,mn, an, dr, mr, ar;

printf("\nIntroduza o dia de nascimento: ");

scanf("%d",&dn);

printf("\nIntroduza o mes de nascimento: ");

scanf("%d",&mn);

printf("\nIntroduza o ano de nascimento: ");

scanf("%d",&an);

printf("\nIntroduza o dia remoto: ");

scanf("%d",&dr);

printf("\nIntroduza o mes remoto: ");

scanf("%d",&mr);

printf("\nIntroduza o ano remoto: ");

scanf("%d",&ar);

f4(dn, mn, an, dr, mr, ar);

return(0);

}

void f4(int dn, int mn, int an, int dr, int mr, int ar) {

int anos, meses;

if (mr>=mn) { if (dr>=dn) { anos=ar-an;

meses=mr-mn;

} else {

if (mr==mn) { anos=ar-an-1;

meses=11;

(10)

} else { anos=ar-an;

meses=mr-mn-1;

} } } else {

if (dr>=dn) { anos=ar-an-1;

meses=12-(mn-mr);

} else {

anos=ar-an-1;

meses=12-(mn-mr)-1;

} }

printf("\nAnos: %d",anos);

printf("\nMeses: %d",meses);

}

Referências

Documentos relacionados

Era de conhecimento de todos e as observações etnográficas dos viajantes, nas mais diversas regiões brasileiras, demonstraram largamente os cuidados e o apreço

Como objetivos específicos pretendeu-se iden- tificar os taxa existentes nesta gruta, determinar a riqueza de es- pécies de sua comunidade; verificar a influência de fatores

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

A Psicologia, por sua vez, seguiu sua trajetória também modificando sua visão de homem e fugindo do paradigma da ciência clássica. Ampliou sua atuação para além da

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

modo favorável; porem uma contusão mais forte pode terminar-se não só pela resolução da infiltração ou do derramamento sanguíneo no meio dos. tecidos orgânicos, como até

Outro ponto importante referente à inserção dos jovens no mercado de trabalho é a possibilidade de conciliar estudo e trabalho. Os dados demonstram as

Todavia, nos substratos de ambos os solos sem adição de matéria orgânica (Figura 4 A e 5 A), constatou-se a presença do herbicida na maior profundidade da coluna