Você está na página 1de 52

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.

P
CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

Formador: Joo Leito

1. Considere o seguinte pseudocdigo:


int main(){
int a;
a=5;
int b ;
b=9;
int c;
c=9;

A=5
B=9
C=9
RES=X-Y
9-5=4
RES=4
VOLTA NO C=FI(A,B)

If(a<2 && b<c){


c = f1(a,b)
}
Else{
c = f1(b,a)
}

O RESULTADO FICA
A=5
B=9
C=4(RES)VALOR DA FUNO;

Printf(a);
Printf(b);
Printf(c);
return(0);
}
Int f1(int x, int y){
Int res;
res= 0;
If(x>y)
res = x-y;
else
res = y-x;
return(res);
}
No final da execuo da funo principal (Main) qual o resultado das seguintes
variveis:
5
a=__________
9
b=__________
c=__________
4

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

1. Considere o seguinte pseudocdigo:


int main(){
int x;
x=1;
int y;
y=0;
int z;
z=0;
int res;
res=0;
int resultado;
resultado=0;
if(x>y && y>z){
x=x+1
y=y+2
z=z+3
}
else{
x=x+2;
y=y+3;
z=z+4;
}
res=f1(y,z,x);
resultado = f2(res);
printf(x); 1
printf(y); 3
printf(z); 4
printf(res); 2
printf(resultado); 1
}

return(0);

int F1(int a, int c, int b){


int res;
res=3;

If(res>0){
res=c-(a+b);
}
else{
res=0;
}
return(res);

Data: __/__/__

Formador: Joo Leito

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

int F2(int x){


int res;
res=0;
int a;
a=10;
If(a>5){
res=res+x;
}
}

Return(res);

No final da execuo da funo principal (Main) qual o resultado das seguintes


variveis:
x=___

y=___

z=___

res=___

resultado=___

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

1. Considere o seguinte pseudocdigo:


int main(){
int a;
a=5;
int b;
b=3;
int c;
c=7;
int x;
int z;
int y;
x=0;
y=x;
z=y+x;

if(c>0){
x=0;
y=0;
a=1;
b=1;
c=1;
}
Else if(a>0){
x=1;
y=1;
a=0;
b=0;
c=0;
}
Else{
x=1;
y=0;
a=1;
b=0;
c=1;
}
x=faz(b,a,c);
y=faz(x,c,a);
x=x+1;
y=x+y;
printf(a);
printf(b);
printf(c);
printf(x);
printf(y);
printf(z);
return(0);

Data: __/__/__

Formador: Joo Leito

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

int faz(int x, int y, int z){


int res;
res=0;
if(x>y || x>z){
res=1;
}
else if(y>x || y>z){
res=2;
}
else{
res=3;
}
res=res-1;
}

Return(res);

No final da execuo da funo principal (Main) qual o resultado das seguintes


variveis:
a=___

b=___

c=___

x=___

y=___

z=___

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

1. Considere o seguinte pseudocdigo:

Data: __/__/__

Formador: Joo Leito

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
int main(){
int w;
int q;
int e;
w=0;
q=1;
e=0;
int x;
int y;
int z;
if(q==0){
x=0;
y=1;
z=1;
}
Else if(q<0){
x=1;
y=0;
z=1;
}
Else{
x=0;
y=1;
z=0;
}
q=acontece(z,y,x); 1
w=acontece (x,z,q); 2
e=q+w; 1+2=3
printf(q); 1
printf(w); 2
printf(e); 3
printf(x); 0
printf(y); 1
printf(z); 0
}

return(0);

w0 2
q1 1
e0 3
x0
y1
z0

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

int acontece(int a, int b, int1 c){


0
int res; 0
int x;
res=1;
x=1 x=0
x=a+b;
if(x>1){
res=0;
}
Else if(x<=2){
res=1;
}
Else{
res=2;
}
res=1 res=1+1=2
res=res+c;
Return(res);
}

No final da execuo da funo principal (Main) qual o resultado das seguintes


variveis:
q=___

w=___

e=___

x=___

y=___

z=___

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

1. Considere o seguinte pseudocdigo:


int main(){
int a;
int s;
a=0 1 4
int d;
s1 1
int f;
d1 0
int i;
f202

a=0;
s=1;
d=a+s;
f=d+s;
if(a==0 && s<1){
a=1;
d=1;
f=1;
}
else if(a==0 && s>1){
a=0;
d=0;
f=0;
}
else if(a==0 && d>1){
a=0;
d=1;
f=0;
}
else{
a=1;
d=0;
s=1;
}
f=funcao1(s,d,a); 0
f=f+2; =2
a=funcao2(f); 4
for(i=0;i<10;i=i+3){
}

printf(i); 12
printf(a); 4
printf(s); 1
printf(d); 0
printf(f); 2
return(0);

i 0 3 6 9 12

Formador: Joo Leito

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

int funcao1(int a, int b, int c){


int res;
if(a>b){
res=1
res=1;
}
else if(b>c){
res=2;
}
else{
res=3;
}

res=res-1; res=1-1=0
return(res);

int funcao2(int x){


int res;
res=x*x;
return(res); res=4
}

No final da execuo da funo principal (Main) qual o resultado das seguintes


variveis:
i=___

a=___

s=___

d=___

f=___

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

Formador: Joo Leito

1. Considere o seguinte pseudocdigo:


int main(){
int x1
int x2;
int x3;
int y1;
int y2;
x1=0;
x2=1;
x3=x1+x1;
y1=1;
y2=0;
if(x1==0 || x2==0){
y1=y1+1;
y2=y2+1
}
else if(x2==0 && x1==0){
y1=y1-1;
y2=y2+1
}
else{
y1=y1+2;
y2=y2+2;
}
x1=func(y1,y2,x3); 4
x2=func(x1,y1,y2); 4
x3=func2(x1,x2);
4

printf(x1); 4
printf(x2); 4
printf(x3);11
printf(y1); 2
printf(y2); 1
}

return(0);

x1= 0
x2=1
x3=0
y1=1 2
y2=0 1

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
4
2

1
0

2
1

int func(int a, int b, int c){


int res;
if(a>b || a<c){
res=1;
}
else if(b>c || c==b){
res=2;
}
else{
res=3;
}

res= 1
1+1=2
2*2=4

res=res+1;
res=res*2;
}

return(res);

int func2(int x, int y){


int res;
res=x+y; res=8
if(x>y){
res=res+1;
}
else{
res=res+2; 10
}
res=res+1; 10+1=11
return(res);
}

No final da execuo da funo principal (Main) qual o resultado das seguintes


variveis:
x1=___
y2=___

x2=___

x3=___

y1=___

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

Formador: Joo Leito

1. Crie funes para os seguintes problemas:


a) Dados 3 nmeros devolver qual o nmero mximo.
b) Dados 3 nmeros devolver qual o nmero mnimo.
c) Dados 3 nmeros devolver qual o nmero mdio.
d) Dados 3 notas de testes, calcule a mdia ponderada sabendo que o
primeiro teste vale 20%, o segundo, 60% e o terceiro, 20%.
e) Altere o exerccio para que as percentagens (pesos) sejam passadas
como argumento. De notar que o programa s faz a conta se a soma de
todos os pesos for igual a 100% (ou 1).

2. Aps criar as funes, realize para cada situao, a integrao com a funo main
para que os valores que so passados como argumentos para as funes sejam
inseridos pelo utilizador.

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

Formador: Joo Leito

1. Crie funes para os seguintes problemas:


Os nomes das funes so escolhidos por si.
a) Dado um nmero, devolva o nmero inteiro seguinte.
b) Dado um nmero, devolva o nmero inteiro anterior.
c) Dados 3 nmeros, devolva a diferena entre o maior e o mais pequeno.
d) Dado um nmero que corresponde a um peso em libras dever retornar o
valor em quilogramas, sabendo que 1 libra corresponde a 0,45kg.
e) Dado um nmero que corresponde a um valor em quilmetros dever
retornar o valor em milhas, sabendo que 1 quilmetro corresponde a 0,62
milhas.

2. Aps criar as funes, realize para cada situao, a integrao com a funo main
para que os valores que so passados como argumentos para as funes sejam
inseridos pelo utilizador. Fica ao seu critrio a forma como so chamadas as
funes.

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

Formador: Joo Leito

1. Crie funes para os seguintes problemas:


Os nomes das funes so escolhidos por si.
1. Realizar uma funo que recebe dois valores (N1,N2) em que N1 representa
um valor a pagar sem IVA e N2 representa uma taxa de IVA normalizada (0 a 1)
e a funo devolve o valor a pagar com IVA. Verifique se a taxa est correcta
antes de fazer os clculos. O cdigo de erro para taxa de erro -1
2. Realizar uma funo que recebe trs valores (N1,N2,N3) em que N1
representa um valor a pagar sem IVA, N2 representa uma taxa de IVA
normalizada (0 a 1) e N3 representa um valor a pagar com IVA e a funo
verifica se o N3 vlido de acordo com os valores inseridos para N1 e N2.
Assim a funo s devolve dois resultados possveis:
a. 0 (zero) se os valores esto correctos.
b. -1 no caso contrrio.
3. Realizar uma funo que recebe um valor (N) e devolve a multiplicao de N
vezes pelo prprio nmero. De notar que o nmero tem de ser positivo. Utilize
o -99 para cdigo de erro.
4. Realizar uma funo que dado um n, realize a soma de todos os nmeros
inteiros desse nmero at 5. De notar que o nmero que o utilizador insere,
tem de ser superior ou igual a 5. Utilize o -99 para cdigo de erro.
5. Realizar uma funo que recebe um valor (N) e calcula o factorial desse
nmero. De notar que o nmero tem de ser positivo. Utilize o -99 para cdigo
de erro.
6. Aps criar a funo, realize a integrao com a funo main para que o
utilizador insira valores atravs da consola e no final dever receber no ecr o
resultado das funes criadas.
NOTA: Deve tratar correctamente os cdigos de erros criados nas funes
anteriores, isto , dever verificar o resultado da funo antes de o mostrar ao
utilizador.

Pgina1/1

7. Altere o main anterior para que sempre que uma funo apresente um cdigo
de erro o programa no avance enquanto o utilizador no inserir um valor
vlido para testar essa funo. S aps a escolha de um valor vlido para a
funo e receber o resultado da mesma que retorna ao menu de escolhas de
programas (at escolher a opo para sair pode utilizar a opo 0).

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

Formador: Joo Leito

1. Crie funes para os seguintes problemas:


Os nomes das funes so escolhidos por si.

1. Realizar uma funo que recebe um valor (N) e:


a. Imprimir N vezes a seguinte mensagem: Isto um teste!
2. Realizar uma funo que recebe dois valores (N1,N2) em que N1
representa um valor a pagar sem IVA e N2 representa uma taxa de IVA
normalizada (0 a 1) e a funo devolve o valor a pagar com IVA:
3. Realizar uma funo que recebe trs valores (N1,N2,N3) em que N1
representa um valor a pagar sem IVA, N2 representa uma taxa de IVA
normalizada (0 a 1) e N3 representa um valor a pagar com IVA e a funo
verifica se o N3 vlido de acordo com os valores inseridos para N1 e N2.
Assim a funo imprime uma das duas situaes possveis:
a. Se N3 estiver correto com base no N1 e N2: Valores corretos.
b. Seno: Valores incorretos
4. Realizar uma funo que recebe um valor (N) e:
a. Pedir N vezes um valor inserido, calcular a soma de todos os
valores inseridos e devolver essa mesma soma.

5. Aps criar a funo, realize a integrao com a funo main para que o
utilizador insira valores atravs da consola e no final dever receber no ecr o
resultado das funes criadas.

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

Formador: Joo Leito

1. Crie funes para os seguintes problemas:


Os nomes das funes so escolhidos por si.
1. Realizar uma funo com o nome comparaints que recebe dois valores
(obrigatrio serem superiores a 10) e devolve os seguintes resultados:
a. 0 se os nmeros forem iguais
b. 1 se o primeiro valor for superior ao segundo
c. -1 se o primeiro valor for inferior ao segundo
d. -99 se algum dos valores for inferior a 10
2. Aps criar a funo, realize a integrao com a funo main para que o
utilizador insira valores atravs da consola e no final dever receber no ecr o
resultado das funes criadas.
NOTA: Deve tratar correctamente todos os resultados e enviar as mensagens
para o utilizador de acordo com o resultado da funo.
3. Altere o main anterior para que sempre que a funo apresente um cdigo de
erro o programa no avance enquanto o utilizador no inserir valores vlidos
para testar essa funo.

Pgina1/1

S aps a escolha de um valor vlido para a funo e receber o resultado da


mesma que retorna ao menu de escolhas de programas (at escolher a
opo para sair pode utilizar a opo 0).

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

Formador: Joo Leito

1. Crie funes para os seguintes problemas:


Os nomes das funes so escolhidos por si.
1. Dado um nmero inserido pelo utilizador, a funo imprime uma das
seguintes mensagens:
a. Nmero maior que 10
b. Nmero menor que 10
c. Nmero igual a 10

2. Dado um nmero inserido pelo utilizador e um factor N a funo devolve:


a. Quadrado de um numero se N=2
b. Cubo de um numero se N=3
c.

Realize a integrao com o main() para que teste os dois programas em


simultneo.

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

Formador: Joo Leito

1. Crie funes para os seguintes problemas:


Os nomes das funes so escolhidos por si.
Escreva um programa que faa o jogo de adivinhar um nmero da forma que se
segue:
O programa escolhe um nmero (configure estaticamente um nmero no cdigo
C) e o utilizador tenta adivinhar esse nmero. O intervalo possvel de 0 a 50.
A interface do jogo deve ser a seguinte:
Tenho um nmero de 1 a 50.
Ser capaz de adivinhar o nmero?
Por favor, insira o seu palpite
O jogador insere ento o primeiro palpite. O programa devolve uma das
seguintes respostas:
1. Excelente! Acertou!
2. Muito baixo. Tente novamente.
3. Muito alto. Tente novamente.
O programa ficar em ciclo at o utilizador acertar.
obrigatrio utilizar funo para devolver as mensagens (Excelente, muito
baixo, muito alto)

Extra:
O utilizador s possui 3 tentativas para acertar. Caso no consiga ao fim das 3
tentativas, o programa revela o nmero e d-lhe a possibilidade de comear a
jogar novamente (o utilizador escolhe se volta a jogar ou se sai do programa).

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

Formador: Joo Leito

1. Crie funes para os seguintes problemas:


1. Realizar uma funo com o nome convertemoedas que recebe 5 valores (um
valor a converter, uma opo, valorcambioeurodlar, valorcambioeurolibra e
valorcambiodolarlibra) e converte o valor com base no seguinte quadro:
a. 1 | EURO DLAR
b. 2 | DLAR EURO
c. 3 | LIBRA EURO
d. 4 | EURO LIBRA
e. 5 | LIBRA DLAR
f. 6 | DLAR LIBRA
Outra opo: -99

Valores de cmbios:
1 euro igual a 1,37 dlares
1 euro igual a 0,83 libras
1 dlar igual a 0,60 libras
O objectivo destes valores serem passados como argumentos para mais
tarde, no main(), as taxas serem parametrizadas para que seja mais fcil
alterar as taxas de cmbio.
2. Aps criar a funo, realize a integrao com a funo main para que o
utilizador insira valores atravs da consola e no final dever receber no ecr o
resultado da funo criada. De notar que o utilizador pode testar qualquer
opo.
NOTA: Deve tratar correctamente todos os resultados e enviar as mensagens
para o utilizador de acordo com o resultado da funo.
3. Altere o main anterior para que sempre que a funo apresente um cdigo de
erro o programa no avance enquanto o utilizador no inserir valores vlidos
para testar essa funo. S aps a escolha de um valor vlido para a funo e
receber o resultado da mesma que retorna ao menu de escolhas de
programas (at escolher a opo para sair pode utilizar a opo 0).
4. Altere o exerccio anterior para que o seu programa passe a ser um conversor
tudo em um.
Pgina1/1

Assim, agora passa a ter disponvel a possibilidade de converter moedas mas


tambm medidas (litros, decilitros, centilitros e mililitros).
Em primeiro lugar o utilizador deve escolher (1 Converter medidas | 2
converter moedas).

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
Caso escolha a opo moedas, encontrar o seu menu criado na ficha anterior.
Caso escolha a opo medidas, encontrar um menu com as seguintes
opes:
1 Converter litros decilitros
2 Converter litros centilitros
3 Converter litros mililitros
4 Converter mililitros centilitros
5 Converter mililitros decilitros
6 Converter mililitros . Litros

Pgina2/1

Realize todos os procedimentos necessrios para que a execuo do


programa seja igual ao anterior, isto , Em caso de erro, pedir novamente o
valor, opes invlidas, etc.

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha de Avaliao Sumativa


EFA Tecnolgico - Tcnico de Informtica e Sistemas
UFCD:0784 Programao em C C++ - Funes e Estruturas
Durao: 120 minutos
Nome Formando: _______________________

Data: ___/___/___ Formador: Joo Leito

Classificao: ________________________________________________________________

Notas Gerais:
Esta prova de natureza terica divide-se em dois grupos e tem a durao de 120
minutos sem tolerncia.
Utilize apenas caneta ou esferogrfica de tinta indelvel, azul ou preta.
No permitido o uso de corrector. Em caso de engano, deve riscar, de forma
inequvoca, aquilo que pretende que no seja classificado.
No permitido o uso de auxiliares.
As respostas ilegveis ou que no possam ser identificadas so classificadas com zero
pontos.
Rubrique no canto superior direito todas as folhas da prova.
Qualquer tentativa de cpia ser punida com a anulao da prova.
As cotaes dos itens encontram-se descritas no quadro seguinte:

Grupo

Grupo I

Grupo II

Grupo III

Questo

Alnea

Cotao
(Pontos)

TOTAL

1.

0,5

2.

0,5

3.

0,5

4.

0,5

1.

2.

1.

1,5

2.

2,5

3.

2,5

4.

1,5

12

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
5.

4
20

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Grupo I
Ateno! Se apresentar mais de uma resposta, ou resposta ambgua, a questo ser
anulada.

1. Indique, para cada afirmao, se verdadeira ou falsa, justificando no caso de ser


falsa:
a)
Na declarao de uma funo obrigatrio colocar o tipo de dados dos
argumentos dessa funo.
verdadeiro
_______________________________________________________________

_______________________________________________________________

b)
possvel no momento da declarao de uma funo, no atribuir o
nome da funo.
falso
_______________________________________________________________

_______________________________________________________________

c)
S possvel definir no mximo dois argumentos na declarao de uma
funo.
falso
_______________________________________________________________

_______________________________________________________________

d)
Na chamada de uma funo obrigatrio colocar o tipo de dados dos
argumentos dessa funo.
falso
_______________________________________________________________

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
_______________________________________________________________

Grupo II
1. Indique qual o resultado final das variveis x, y, z, a e b aps a execuo do
int main(){
seguinte
fragmento de cdigo:
int x;
int y;
int z;
x=0;
y=1;
z=0;
int a;
int b;
int c;
if(x==0){
a=2;
b=x+y;
}
else if(x==0 || y>2){
a=0;
b=-1;
}
else{
a=1;
b=10;
}

x0
y1
z0
a2
b1
c5

c=funcao1(a,b);
c=c+(a-b);
x=x+1;
y=y-1;
z=z+1;
printf("%d\n",x); 1
printf("%d\n",y); 0
printf("%d\n",z); 1
printf("%d\n",a);2
printf("%d\n",b); 1
printf("%d\n",c); 6
return(0);
}
2

int funcao1(int b, int a){


int res;
res=b-a;
res=res+(2*b);
return(res);
}

b2
a1
res=1
res=1+4
res=5

1
0
1
6

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

2. Indique qual o resultado final das variveis: q, w, e, r, t, y e i aps a execuo do


seguinte fragmento de cdigo:
int main(){
int q;
int w;
int e;
int r;
int t;
int y;
int i;
q=5;
w=3;
e=4;
r=q+w;
t=(r+e)-q;
y=t-r;
if(q==0 && y<1){
r=6;
t=1;
y=2;
}
else if(q==0 || t>=1){
r=3;
t=1;
y=2;
}
else{
r=1;
t=5;
y=1;
}

int funcao1(int x, int y, int


z){
q5 2
int res;
w3
if(x>y){
e4
res=z;
r8 3
}
t7 12
else{
y -1 2 4
i 11 9 7 5 3 1
res=y-x;
}
res=3-1
return(res);
res=2
}

for(i=11;i>=3;i=i-2){
}
q=funcao1(i,r,t);
y=q*2;
t=funcao2(q);
printf("%d",q); 2
printf("%d",w); 3
printf("%d",e); 4
printf("%d",r); 3
printf("%d",t); 2
printf("%d",y); 4
printf("%d",i); 1
return(0);
}

int funcao2(int x){


int res;
if(x<0){
res=1;
}
else{
res=res+x;
}
return(res);
}

Obrigatrio mostrar clculos intermdios!

Grupo III

Atenao pois o res esta


sem =0 isso nao validaria
seria necessario ou para ou acre
scentar o 0

res=res 0

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
1. Crie uma funo que receba um nmero e devolva o cubo desse nmero. Para
calcular o cubo de um nmero deve se multiplicar o nmero recebido, trs vezes.
Exemplo:
N inserido: 3
Resultado: 27
2. Crie uma funo que receba um valor em euros e devolva o valor correspondente
em rublo (moeda oficial da Rssia). Sabe-se que um rublo corresponde a 0,02
euros.
Exemplo:
N inserido: 10 (euros)
Resultado: 407 (rublos)
3. Crie uma funo que receba um valor em euros e devolva o valor correspondente
em francos suos (moeda oficial da Sua e Liechtenstein). Sabe-se que um euro
corresponde a 1,2 francos.
Exemplo:
N inserido: 5 (euros)
Resultado: 6 (francos)
4. Crie uma funo que receba um valor e devolva um resultado consoante das
seguintes restries:
a. Caso o valor inserido seja inferior a 4, o resultado ser 0.
b. Caso o valor inserido seja 4, o resultado ser 1.
c. Caso seja qualquer outro valor superior a 4 e inferior ou igual a 10,
dever ento verificar quais os quatro valores anteriores ao nmero
inserido e calcular a soma desses valores.
d. Caso o valor inserido seja superior a 10, dever realizar a multiplicao
entre o 1, 3 e 5 valor anterior ao nmero inserido.
Exemplos:
N inserido: 10
Resultado: 9+8+7+6=30
-------------------------------------------N inserido: 12
Resultado: 11*9*7=693
5. Realize a integrao com a funo main para que seja possvel testar as suas
funes de acordo com as seguintes condies:
a. Solicitar ao utilizador para introduzir um nmero e dever receber para
esse nmero introduzido o resultado da funo criada no ponto 1 deste
grupo III (triplo do nmero inserido).
b. Solicitar ao utilizador para introduzir um valor em euros e dever
receber para esse nmero introduzido o resultado das funes criadas
no ponto 2 e 3 deste grupo III (rublos e francos).
c. Solicitar ao utilizador a insero de um valor para testar a funo criada
no ponto 4 do grupo III recebendo o resultado dessa funo.
Execute todas as aces de Input/Output (scanf e printf) pela ordem do enunciado.

Resoluo Grupo III

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha de Avaliao Sumativa


EFA Tecnolgico - Tcnico de Informtica e Sistemas
UFCD:0784 Programao em C C++ - Funes e Estruturas
Durao: 150 minutos
Nome Formando: _______________________

Data: ___/___/___ Formador: Joo Leito

Classificao: ________________________________________________________________

Notas Gerais:
Esta prova de natureza terico-prtica divide-se em trs grupos e tem a durao de
150 minutos sem tolerncia.
Utilize apenas caneta ou esferogrfica de tinta indelvel, azul ou preta.
No permitido o uso de corrector. Em caso de engano, deve riscar, de forma
inequvoca, aquilo que pretende que no seja classificado.
No permitido o uso de auxiliares.
As respostas ilegveis ou que no possam ser identificadas so classificadas com zero
pontos.
Rubrique no canto superior direito todas as folhas da prova.
Qualquer tentativa de cpia ser punida com a anulao da prova.
As cotaes dos itens encontram-se descritas no quadro seguinte:
Grupo

Grupo I

Grupo II

Grupo III

Questo

Alnea

Cotao
(Pontos)

TOTAL

1.

0,5

2.

0,5

3.

0,5

4.

0,5

1.

2.

1.

2.

3.

4.

5.

12

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
20

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Grupo I
Ateno! Se apresentar mais de uma resposta, ou resposta ambgua, a questo ser
anulada.

1. Indique, para cada afirmao, se verdadeira ou falsa, justificando no caso de ser


falsa:
a)
Na declarao de uma funo obrigatrio definir o tipo de dados dos
argumentos.
Verdadeiro

_______________________________________________________________
_______________________________________________________________

b)

Na declarao de uma funo obrigatrio definir o nome da funo.

verdade
_______________________________________________________________

_______________________________________________________________

c)
Na declarao de uma funo obrigatrio colocar pelo menos um
argumento.
falso
_______________________________________________________________

_______________________________________________________________

d)

Na chamada de uma funo obrigatrio colocar o nome da funo.

verdade

_______________________________________________________________
_______________________________________________________________

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

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){
x=0;
}
y=x+i;
int res;
y=f1(x); 5
x=x+1;
res=f1(x);
if(res<0){
x=x+1;
y=y+1;
res=res+1;
}else{
x=x-1;
y=y+1;
res=res-1;
}

i 3 7 11
x0 10
y 12 5 6

res 5

printf(\nValor de x: %d,x); 0
printf(\nValor de y: %d,y); 6
printf(\nValor de res: %d,res); 4
return(0);
}
int f1(int a){
int x;
x=a;
if(a<10 || x<10){
x=5;
}
else{
x=10;
}
return(x);
}

Obrigatrio mostrar clculos intermdios!

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

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


#include<stdio.h>
int main(){

int a;
int b;
int c;
a=1;
b=2;
a=a+1;
c=f2(a,b); 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); 3
b=f4(a); 2
c=1+f2(b,a); 4
2 3
}

A1 2
B2
C0

A3 5
B2 7
C 4 16

a=a+b;
b=a+b;
c=a+b+c;
printf(\nValor de a: %d,a); 5
printf(\nValor de b: %d,b); 7
printf(\nValor de c: %d,c); 16
return(0);
}

Considere que as funes esto declaradas de forma contnua (seguidas).


2
2

int f2(int a,int b){


2
3
int x;
x=a; 2
if(a>b){
x=a;
}
else if(b>a){
x=b; 3
}
else{
x=0;
}
return(x);
}

int f3(int c){


int a;

int f4(int a){


int c;

if(c==0){
if(a>2){
a=1;
c=2;
}
}
else if(c>2){
else if(a==0){
a=2;
c=1;
}
}
else{
else{
a=3;
c=3;
}
}
Obrigatrio mostrar
clculos intermdios!
return(a);
return(c);
}
}

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Grupo III
Todas as questes devem de ser respondidas em linguagem C.
As funes definidas podem ser recursivas ou iterativas.

1. Crie uma funo que recebe um nmero e imprima a subtrao do nmero


seguinte pelo nmero anterior.
Exemplo:
Insira um nmero:
3
Subtrao do num seguinte pelo num. anterior: 2

2. Crie uma funo que recebe um nmero e devolva um resultado com base na
seguinte expresso:
a. Se n>5 > 0
b. Se n<5 > Soma do quadrado de n com o quadrado do prximo
nmero e assim sucessivamente, isto : n*n + ((n+1)*(n+1)) + . (utilizar
ciclo ou recursividade)

c. Seno > 1

Validar para que s faa os clculos caso o nmero seja superior a 0.


Exemplo:
Insira um nmero:
3
Resultado: 26 ( (3*3) + (4*4) + 1 )

3. Crie uma funo que receba seis nmeros e imprima qual o maior e menor valor
inserido.
Exemplo:
Insira os seis nmeros:
2
15
3
20
1
4
Maior valor inserido: 20
Menor valor inserido: 1

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

4. Crie uma funo que recebe uma data de nascimento (separada em 3 variveis) e
uma data remota (separada em 3 variveis) e a funo imprime quantos anos e
quantos meses uma determinada pessoa possua na data remota.
Exemplos:
Insira uma data de nascimento:
20
10
2008
Insira uma data remota:
1
2
2012
Possua na data remota
3 anos e 4 meses
----------------------------------------------------------------------------------Insira uma data de nascimento:
07
08
1970
Insira uma data remota:
07
08
2013
Possua na data remota
43 anos e 0 meses

5. Realize a integrao com a funo main para que seja possvel testar as suas
funes de acordo com as seguintes condies:
a. Solicitar ao utilizador a insero de um nmero e mostrar o resultado
das funes criadas no ponto 1 e 2 deste grupo.
b. Solicitar ao utilizador para introduzir seis valores e mostrar o resultado
semelhana do exemplo apresentado para a pergunta 3 (Maior valor
inserido e menor valor inserido).
c. Solicitar ao utilizador a insero de duas datas (valores separados) para
testar a funo criada no ponto 4 deste grupo mostrando o resultado
dessa funo semelhana dos exemplos (nmero de anos e meses).

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha de Avaliao Sumativa


EFA Tecnolgico - Tcnico de Informtica e Sistemas
UFCD:0784 Programao em C C++ - Funes e Estruturas
Durao: 180 minutos
Nome Formando: _______________________

Data: ___/___/___ Formador: Joo Leito

Classificao: ________________________________________________________________

Notas Gerais:
Esta prova de natureza terico-prtica divide-se em trs grupos e tem a durao de
180 minutos sem tolerncia.
Utilize apenas caneta ou esferogrfica de tinta indelvel, azul ou preta.
No permitido o uso de corrector. Em caso de engano, deve riscar, de forma
inequvoca, aquilo que pretende que no seja classificado.
No permitido o uso de auxiliares.
As respostas ilegveis ou que no possam ser identificadas so classificadas com zero
pontos.
Rubrique no canto superior direito todas as folhas da prova.
Qualquer tentativa de cpia ser punida com a anulao da prova.
As cotaes dos itens encontram-se descritas no quadro seguinte:
Grupo

Grupo I

Grupo II

Grupo III

Questo

Alnea

Cotao
(Pontos)

TOTAL

1.

0,5

2.

0,5

3.

0,5

4.

0,5

1.

2.

1.

2.

3.

4.

5.

13

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
6.

2
20

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Grupo I
Ateno! Se apresentar mais de uma resposta, ou resposta ambgua, a questo ser
anulada.

1. O que obrigatrio na declarao de uma funo independentemente do seu tipo?


*
*(A)Nome

e tipo de dados de retorno da funo.

(B)Valor de retorno da funo.


(C)Tipo de dados dos argumentos da funo.
(D)Nenhuma das anteriores.

2. O que obrigatrio na chamada de uma funo independentemente do seu tipo?

(A)Nome e tipo de dados de retorno da funo.


(B)Valor de retorno da funo.
(C)Tipo de dados dos argumentos da funo.
+
+(D)Nenhuma

das anteriores.

3. Uma funo void se:

(A)No possuir argumentos.


+
(B)No
possuir retorno.

(C)No possuir nome.


(D)Nenhuma das anteriores

4. Uma funo recursiva pode possuir qualquer tipo de dados de retorno (int, float,
void, etc) desde que exista uma chamada da prpria funo no retorno da
mesma?
+
(A)Verdadeiro

(B)Falso

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

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

#include<stdio.h>
int main(){
int a=5;
int b=2;
int c;
c=f1(b);
a = b+c;
if(a<10){
b = f1(a);
c = c+1;
a = a+c;
}else if (a==10){
a=0;
b=a;
c=a+b;
}else{
a=a-10;
b=f1(a);
c=a+b;
}

A5 2 3
B2 0
C0 1

printf("\nValor de a: %d",a); 3
printf("\nValor de b: %d",b); 0
printf("\nValor de c: %d",c); 1
return(0);
}
2

int f1(int a){


int res=0;
int i;
for(i=a;i>=0;i=i-2){
res=res+i;
}
return(res);
}

Obrigatrio mostrar clculos intermdios!

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

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


#include<stdio.h>
int main(){

int a;
int b;
int c;
a=1;
b=2;
c=f1(a,b); 3
int i;
for(i=0;i<b;i=i+1){
c=c+i;
}
a=f2(b); 1
b=f1(c,a); 2 7
c=f1(a,b); 1 8

3 7 18
A 1 -2
2
4 11 29
B2
C3 4 1 2
20 67

A11
B2 7
C 3 4 56 8
I0 12 3

if(c<0){
a=(a*b*c)*(a+(c*2));
b=(a*c)*(b-(c*3));
c=(b*c)*(c+(a*5));
}
else{
a=b+1; 8
b=a+1; 9
c=c+1; 9
}
for(i=1;i<3;i=i+2){
a=a+b;
b=a+b;
c=a+b+c;
}
printf(\nValor de a: %d,a); 18 17
printf(\nValor de b: %d,b); 29 26
printf(\nValor de c: %d,c); 67 51
return(0);
}

Considere que as funes esto declaradas de forma contnua (seguidas).


2
1

int f1(int
a,int b){
1 1 76
int res;
2
if(a>b){
res=a+b;
}
else if(b>a){
res=b+a; 1+2 =3
1+6=7
}
else{
res=1+b+a;
}
return(res);
}

int f2(int x){


int res;
int i;
res = 2*x; 2*2 4
4
do{
res = res-3; 1
}while(res<0);

return(res);
Obrigatrio mostrar
clculos1 intermdios!
}

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Grupo III
Todas as questes devem de ser respondidas em linguagem C.
As funes definidas podem ser recursivas ou iterativas.

1. Crie uma funo que recebe um nmero inteiro positivo superior a zero (N) e a
funo imprime trs valores: o nmero anterior, o prprio nmero e o nmero
seguinte.
Exemplo:
Valor para N: 5
Valor anterior4
Valor escolhido: 5
Valor seguinte: 6
2. Crie uma funo que recebe um valor em euros ou dlares e um nmero inteiro (0
ou 1) e a funo devolve o valor em dlares ou euros com base no nmero inteiro
recebido sabendo que:
a. 0 recebe em euros e devolve em dlares
b. 1 recebe em dlares e devolve em euros.
Notas:
Verifique o caso da funo receber outras possibilidades para nmero inteiro
devendo de dar -1 para este tipo de erro.
Verifique o caso da funo receber valor a converter negativo devendo de dar -99
para este tipo de erro.
1 euro igual a 1,37 dlares.
3. Crie uma funo que recebe um nmero inteiro (N) e uma posio para nmeros
seguintes a N (P) e o programa devolve a soma de todos os nmeros inteiros de N
at ao P-simo nmero seguinte a N.
Exemplo:
Valor para N: 5
Valor para P: 4
Resultado: 6 + 7 + 8 + 9 = 30
Notas:
A funo s dever devolver resultados se ambos os valores forem positivos. No
caso do N ser negativo enviar o cdigo de erro -1. No caso de P ser negativo enviar o
cdigo de erro -2. No caso de serem ambos negativos enviar o cdigo de erro -3.

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

4. Crie uma funo que retrate a funo de Ackermann (funo utilizada na teoria de
computao). Sabe-se que a funo de Ackermann recebe dois argumentos (M e
N) e devolve um valor tendo em conta as seguintes restries:
a. Se m=0 ! devolve: n+1
b. Se m>0 e n=0 ! retira-se um valor a m e chama-se novamente a
funo com o novo valor para m e com o n a 1.
c. Se m>0 e n>0 ! retira-se um valor a n e chama-se novamente a
funo com o novo valor para n e mantendo o mesmo m. Este resultado
aplicado como segundo argumento da chamada da funo sendo o
primeiro um decremento (retirar uma unidade) de m.
Eis a frmula da funo:

Eis a lista de valores:

M\N

0+1

1+1

2+1

3+1

4+1

A(0,1)

A(0,A(1,0))

A(0,A(1,1))

A(0,A(1,2))

A(0,A(1,3))

A(1,1)

A(1,A(2,0))

A(1,A(2,1))

A(1,A(2,2))

A(1,A(2,3))

A(2,1)

A(2,A(3,0))

A(2,A(3,1))

A(2,A(3,2))

A(2,A(3,3))

M\N

11

13

29

61

125

5. Realize a integrao com a funo main para que seja possvel testar as suas
funes de acordo com as seguintes condies:
a. Criar um menu para testar cada funo criada em que a opo para
testar a funo corresponde ao nmero da alnea
i. 0 Sair | 1 Funo 1 | 2 Funo 2 | etc..
b. Deve programar correctamente todos os resultados e enviar as
mensagens para o utilizador de acordo com o resultado da funo,
incluindo cdigos de erros detalhados.

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
6. Altere o main anterior para que sempre que a funo apresente um cdigo de erro
o programa no avance enquanto o utilizador no inserir valores vlidos para
testar essa funo.
S aps a escolha de um valor vlido para a funo e receber o resultado da
mesma que retorna ao menu de escolhas de programas (at escolher a opo
para sair).

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha de Avaliao Sumativa


EFA Tecnolgico - Tcnico de Informtica e Sistemas
UFCD:0784 Programao em C C++ - Funes e Estruturas
Durao: 120 minutos
Nome Formando: _______________________

Data: ___/___/___ Formador: Joo Leito

Classificao: ________________________________________________________________

Notas Gerais:
Esta prova de natureza terico-prtica divide-se em trs grupos e tem a durao de
120 minutos sem tolerncia.
Utilize apenas caneta ou esferogrfica de tinta indelvel, azul ou preta.
No permitido o uso de corrector. Em caso de engano, deve riscar, de forma
inequvoca, aquilo que pretende que no seja classificado.
No permitido o uso de auxiliares.
As respostas ilegveis ou que no possam ser identificadas so classificadas com zero
pontos.
Rubrique no canto superior direito todas as folhas da prova.
Qualquer tentativa de cpia ser punida com a anulao da prova.
As cotaes dos itens encontram-se descritas no quadro seguinte:

Grupo

Grupo I

Grupo II

Grupo III

Questo

Alnea

Cotao
(Pontos)

TOTAL

1.

0,5

2.

0,5

3.

0,5

4.

0,5

1.

2.

1.

2.

3.

4.

12

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
5.

6.

2
20

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
Grupo I
Ateno! Se apresentar mais de uma resposta, ou resposta ambgua, a questo ser
anulada.

1. Indique, para cada afirmao, se verdadeira ou falsa, justificando no caso de ser


falsa:
S existe uma coisa obrigatria na declarao de uma funo: o seu nome.
_______________________________________________________________
_______________________________________________________________

A chamada da funo necessita sempre de referenciar pelo menos um


argumento.
_______________________________________________________________
_______________________________________________________________

O nmero de argumentos da chamada da funo tem de ser obrigatoriamente


igual ao nmero de argumentos da sua declarao..
_______________________________________________________________
_______________________________________________________________

Na declarao de uma funo obrigatrio colocar o tipo de dados dos


argumentos.
_______________________________________________________________
_______________________________________________________________

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Grupo II
1. Indique qual o resultado final das variveis x, y, z, aps a execuo do seguinte
fragmento de cdigo:
int main(){
int x;
int y;
int z;
x=1;
y=x;
z=y;
if(x==0){
x=2;
y=x+y;
}
else if(x==1 || y>10){
y=2;
x=x+y-z;
z=x+y-z;
}
else{
z=2;
x=x+z-y;
z=z+x-y;
}
x=f1(z,y);
x=x+1;
y=y-1;
z=z+1;
printf("%d\n",x);
printf("%d\n",y);
printf("%d\n",z);
return(0);
}
int f1(int a, int b){
int res;
if(a>b){
res=a-(b + 1);
}
else{
res=b-(a +2);
}
res=res+1;
return(res);
}

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

2. Indique qual o resultado final das variveis: x, y, z, res e i aps a execuo do


seguinte fragmento de cdigo:
#include<stdio.h>
int main(){
int x, y, z, res, i;
for(i=10;i>=1;i=i-1){
}
x=i;
y=x+1;
z=i+1;
res=x+y+z;
if(res<2){
x=f1(res,y);
y=res+x;
}
else if(res>2){
x=f1(res,z);
y=f2(x);
}
else{
x=f1(y);
res=f2(x);
z=f1(res,0);
}

int f1(int y, int x){


int res;
if(x>y){
res=0;
}
else{
res=y-x;
}
return(res);
}

printf("\n%d",x);
printf("\n%d",y);
printf("\n%d",z);
printf("\n%d",i);
printf("\n%d",res);
return(0);
}

int f2(int x){


int res=10;
if(x==0){
res=1;
}
else{
res=res-x;
}
return(res);
}

Obrigatrio mostrar clculos intermdios!

Grupo III

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

1. Crie uma funo que receba um nmero inferior a 10 e imprima todos os nmeros
do seguinte at 10 (no includo):
Exemplo:
N inserido: 6
7
8
9

2. Crie uma funo que receba um nmero inferior a 10 e imprima a seguinte


mensagem:
Exemplo:
N inserido: 3
Inseriu o nmero 3
Faltam, para o nmero 10, 6 nmeros:
4
5
6
7
8
9

3. Crie uma funo que receba um limite (nmero de linhas) e a funo imprime o
seguinte resultado:
Exemplo:
N inserido: 5
*****
****
***
**
*

4. Crie uma funo que receba um valor e devolva o resultado da seguinte


expresso:
F1(2)=1
F1(X)=(X*2)+F1(X-1), enquanto x>2
Para qualquer nmero inferior a 2 a funo retorna 0.
Exemplo:
N inserido: 5
Resultado: 25

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

5. Realize a integrao com a funo main para que seja possvel testar as suas
funes de acordo com as seguintes condies:
a. Criar um menu para testar cada funo criada em que a opo para
testar a funo corresponde ao nmero da alnea
i. 0 Sair | 1 Funo 1 | 2 Funo 2 | etc..
b. Deve programar correctamente todos os resultados e enviar as
mensagens para o utilizador de acordo com o resultado da funo,
incluindo cdigos de erros detalhados.

6. Altere o main anterior para que sempre que a funo apresente um cdigo de erro
o programa no avance enquanto o utilizador no inserir valores vlidos para
testar essa funo.
S aps a escolha de um valor vlido para a funo e receber o resultado da
mesma que retorna ao menu de escolhas de programas (at escolher a opo
para sair).

INSTITUTO DO EMPREGO E FORMAO PROFISSIONAL I.E.F.P


CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA

Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________

Data: __/__/__

Formador: Joo Leito

Os nomes das funes so escolhidos por si.

1. Desenvolva uma funo recursiva (ou iterativa), para o clculo de potncias.


Sabe-se que a funo recebe um nmero e devolve um resultado com base no
seguinte esquema:

2. Desenvolva uma funo recursiva (ou iterativa), que recebe um nmero e


calcula o factorial da sequncia de Fibonacci desse valor.
Exemplo:
Nmero inserido: 4
Resultado: factorial ( fibonacci(4) ) = factorial (3) = 6

3. Desenvolva uma funo recursiva (ou iterativa), que recebe um nmero


mltiplo de 5 e soma sucessivamente os mltiplos de 5 at chegar a 50 (valor
de n).
4. Desenvolva uma funo recursiva (ou iterativa), que recebe dois valores (a e b)
e devolve um dos seguintes resultados:
b , se a=0
chamada da funo com argumentos:(a-1,b) + a*b, se a>0

Nota: Pode utilizar funes j declaradas nos exerccios anteriores.

Faa a integrao com o main para que, em cada programa, sejam solicitados os
argumentos para testar as suas funes.

Você também pode gostar