Beruflich Dokumente
Kultur Dokumente
P
CENTRO EMPREGO E FORMAO PROFISSIONAL DE VORA
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
A=5
B=9
C=9
RES=X-Y
9-5=4
RES=4
VOLTA NO C=FI(A,B)
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
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
return(0);
If(res>0){
res=c-(a+b);
}
else{
res=0;
}
return(res);
Data: __/__/__
Return(res);
y=___
z=___
res=___
resultado=___
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
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: __/__/__
Return(res);
b=___
c=___
x=___
y=___
z=___
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
return(0);
w0 2
q1 1
e0 3
x0
y1
z0
w=___
e=___
x=___
y=___
z=___
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
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
res=res-1; res=1-1=0
return(res);
a=___
s=___
d=___
f=___
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
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
1
0
2
1
res= 1
1+1=2
2*2=4
res=res+1;
res=res*2;
}
return(res);
x2=___
x3=___
y1=___
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
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.
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
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.
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
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).
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
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.
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
Pgina1/1
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
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).
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
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
Pgina2/1
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
4
20
Grupo I
Ateno! Se apresentar mais de uma resposta, ou resposta ambgua, a questo ser
anulada.
_______________________________________________________________
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
_______________________________________________________________
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
b2
a1
res=1
res=1+4
res=5
1
0
1
6
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);
}
Grupo III
res=res 0
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
Grupo I
Ateno! Se apresentar mais de uma resposta, ou resposta ambgua, a questo ser
anulada.
_______________________________________________________________
_______________________________________________________________
b)
verdade
_______________________________________________________________
_______________________________________________________________
c)
Na declarao de uma funo obrigatrio colocar pelo menos um
argumento.
falso
_______________________________________________________________
_______________________________________________________________
d)
verdade
_______________________________________________________________
_______________________________________________________________
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);
}
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);
}
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);
}
}
Grupo III
Todas as questes devem de ser respondidas em linguagem C.
As funes definidas podem ser recursivas ou iterativas.
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
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
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).
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
2
20
Grupo I
Ateno! Se apresentar mais de uma resposta, ou resposta ambgua, a questo ser
anulada.
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
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 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);
}
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);
}
return(res);
Obrigatrio mostrar
clculos1 intermdios!
}
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.
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:
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.
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
6.
2
20
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);
}
printf("\n%d",x);
printf("\n%d",y);
printf("\n%d",z);
printf("\n%d",i);
printf("\n%d",res);
return(0);
}
Grupo III
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
3. Crie uma funo que receba um limite (nmero de linhas) e a funo imprime o
seguinte resultado:
Exemplo:
N inserido: 5
*****
****
***
**
*
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).
Ficha Formativa
Tcnico de Informtica e Sistemas | UFCD: 0784
Nome Formando: _____________________
Data: __/__/__
Faa a integrao com o main para que, em cada programa, sejam solicitados os
argumentos para testar as suas funes.