You are on page 1of 28

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.

P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Ficha Formativa
Técnico de Informática e Sistemas | UFCD: 0785
Nome Formando: _____________________

Data: __/__/__

Formador: João Leitão

1. Crie os programas no Quincy, utilizando vectores, para as seguintes situações:
1. Receber 4 números do utilizador e realizar a multiplicação de todos os
elementos do vector.
2. Receber 10 números do utilizador e realizar a soma de todos os
elementos cujas posições no vector são pares (0, 2, 4, …).
3. Receber 10 números do utilizador e realizar a multiplicação de todos os
elementos cujas posições no vector são ímpares (1, 3, 5, …).
4. Receber 6 números do utilizador e consoante o valor guardado no vector,
realizar as seguintes acções:
a. Se o valor guardado for superior a 10: Mostra o valor guardado -1
b. Senão: Mostra o valor +1

Exemplo:

1

5

12

Resultado para o utilizador:
2
6
11
13
19
5

14

20

4

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Ficha Formativa
Técnico de Informática e Sistemas | UFCD: 0785
Nome Formando: _____________________

Data: __/__/__

Formador: João Leitão

1. Indique qual o resultado do seguinte fragmento de código:
#include<stdio.h>
int main(){
int
int
int
int

v[6];
i;
res;
resultado;

v[1]=5;
v[0]=1;
v[3]=1;
v[2]=4;
v[4]=5;
v[5]=2;
res=0;
for(i=0;i<6;i=i+2){
res=res+(i+1);
}
for(i=0;i<6;i=i+2){
resultado=res+v[i];
}
if(res>0){
res=resultado+(2*i);
}
else{
res= resultado-(2*i)
}
res=resultado-2;
printf(“%d”,res);
return(0);
}

0=1
1=5
2=4
3=1
4=5
5=2
res=0 1 4 9 26 12
i=0 2 4 6 0 2 4 6
resultado 10 13 14 14+2*6

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Ficha Formativa
Técnico de Informática e Sistemas | UFCD: 0785
Nome Formando: _____________________

Data: __/__/__

1. Indique qual o resultado do seguinte fragmento de código:
#include<stdio.h>
int main(){
int v[6];
int i;
int res;
v[0]=0;
v[1]=0;
v[2]=0;
v[3]=0;
v[4]=1;
v[5]=1;
res=1;
for(i=0;i<6;i=i+1){
if(i>3){
v[i]=res-1;
}
else{
v[i]=res+1;
}
}
for(i=0;i<6;i=i+1){
res=res+v[i];
}
printf(“%d”,res);
return(0);
}

0=0 2
1=0 2
2=0 2
3=0 2
4=1 0
5=1 0
res=1 3 5 7 9 9 9
i=0 2 3 4

Formador: João Leitão

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Ficha Formativa
Técnico de Informática e Sistemas | UFCD: 0785
Nome Formando: _____________________

Data: __/__/__

Formador: João Leitão

1. Crie os programas no Quincy, para as seguintes situações:

A. Criar um programa que receba 4 números do utilizador e verifique
a seguinte situação para cada número inserido. Se o valor inserido
for superior a 5, então deverá mostrar uma mensagem a dizer
“Inseriu um valor superior a 5”. Caso contrário receberá uma
mensagem a dizer “Inseriu um valor inferior a 5”. Deverá repetir a
acção para cada elemento do vector.

B. Crie um programa que receba um valor sem IVA, uma taxa de IVA e
mostre ao utilizador o valor com IVA. O vector deverá ter 3
posições em que na primeira fica o valor sem IVA, na segunda a
taxa de IVA e na terceira, o valor com IVA.

C. Crie um programa que receba 5 valores que correspondem a
valores em euros e converta cada um dos valores para dólares.
Obrigatório usar vectores. 1 euro é igual a 1,27 dólares.

D. Crie um programa que receba quatro números e mostre o factorial
para cada um desses números. Obrigatório utilizar vectores.

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

EFA Tecnológico - Técnico de Informática e Sistemas
UFCD:0785 – Programação em C – C++ - Formas complexas
Duração: 120 minutos
Nome Formando: _______________________

Data: ___/___/___ Formador: João Leitão

Classificação: ________________________________________________________________

1. Utilizando vectores, crie um programa que recebe 3 notas de testes e mostrar
ao utilizador qual a média aritmética (soma dos 3 testes a dividir por 3).

2. Utilizando vectores, crie um programa que receba 4 números e devolva a soma
de todos os elementos desse vector com a seguinte indicação: Caso a soma
de todos os elementos for superior a 10, então junta mais 1. Senão, retira 1 à
soma. No final, mostra esse resultado ao utilizador.

3. Crie um programa que dados 5 números devolva a diferença entre a
quantidade de números positivos e negativos.
Exemplo:
1
Resultado para o utilizador:
2 (números positivos)
3 (números negativos)
2-3 =

-1

-2

3

-2

-1

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Ficha de Avaliação Sumativa
EFA Tecnológico - Técnico de Informática e Sistemas
UFCD:0785 – Programação em C – C++ - Formas complexas
Duração: 150 minutos
Nome Formando: _______________________

Data: ___/___/___ Formador: João Leitão

Classificação: ________________________________________________________________

Notas Gerais:
Esta prova de natureza teórica divide-se em três grupos e tem a duração de 150
minutos sem tolerância.
Utilize apenas caneta ou esferográfica de tinta indelével, azul ou preta.
Não é permitido o uso de corrector. Em caso de engano, deve riscar, de forma
inequívoca, aquilo que pretende que não seja classificado.
Não é permitido o uso de auxiliares.
As respostas ilegíveis ou que não possam ser identificadas são classificadas com zero
pontos.
Rubrique no canto superior direito todas as folhas da prova.
Qualquer tentativa de cópia será punida com a anulação da prova.
As cotações dos itens encontram-se descritas no quadro seguinte:
Grupo

Grupo I

Grupo II

Grupo III

Questão

Alínea

Cotação
(Pontos)

TOTAL

1.

0,5

2.

0,5

3.

0,5

4.

0,5

1.

3

2.

3

1.

2

2.

2

3.

2

4.

3

5.

3

2

6

12

20

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Grupo I
Atenção! Se apresentar mais de uma resposta, ou resposta ambígua, a questão será
anulada.

1. Indique, para cada afirmação, se é verdadeira ou falsa, justificando no caso de ser
falsa:
a)
Independentemente do tipo de dados do array, o conteúdo das suas
posições é sempre do tipo de dados: int.
Falso
_______________________________________________________________

_______________________________________________________________

b)
É possível que duas posições do mesmo array apresentem o mesmo
valor.
Verdadeiro
_______________________________________________________________
_______________________________________________________________

c)

A primeira posição de um array com N elementos é sempre N-1.

Falso a primeira posição é 0,
_______________________________________________________________

_______________________________________________________________

d)
É possível que um array com N elementos apresente posições sem
estarem preenchidas.
Verdadeiro!
_______________________________________________________________

_______________________________________________________________

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Grupo II
1. Indique qual o resultado para o utilizador após a execução do seguinte fragmento
de código:

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

int vx[5];
int i=1;
int res;

i=1
res=

for(i=4;i>0;i--){
vx[i]=i;
}
res=i;
do{
vx[i]=res;
res=res+1;
i=res;
}while(res<0);
for(i=0;i<5;i=i+3){
res=res*vx[i];
}
if(res>0 && res<5){
res=2;
}
else if(res>=5 && res<10){
res=3;
}
else{
res=1;
}
printf("\nRes: %d", res);
for(i=0;i<5;i=i+1){
printf("\nVector: %d",vx[i]);
}
return(0);
}

Obrigatório mostrar cálculos intermédios!

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

2. Indique qual o resultado final para o utilizador após a execução do seguinte
fragmento de código:
#include<stdio.h>
int main(){
v1 [0] 0
int v1[6];
v1 [1] 1
int i=0;
v1 [2]
int x=0;
v1 [3]
int y=1;
v1 [4]
int z=2;
v1[ 5]
for(i=0;i<6;i++){
if(i%2==0){
v1[i+1]=1;
}
else{
v1[i-1]=0;
}
}

i 0 0 1 2 3 4 5 6 4 2 0 -2 4 3 2 1
x 064202
y13333
z23 3 66

do{
x=i;
y=z+1;
i=i-2;
}while(x>0);
z=x+y;
for(i=4;i>=2;i=i--){
if(v1[i]>0){
z=z+y;
}
else{
z=z+x;
}
}
x=v1[i]+1;
printf("\nX: %d", x);
printf("\nY: %d", y);
printf("\nZ: %d", z);
for(i=0;i<5;i=i+1){
printf("\nVector: %d",v1[i]);
}
return(0);
}

Obrigatório mostrar cálculos intermédios!

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Grupo III (Utilização de vectores)

1. Utilizando vectores, crie um programa que receba 4 números e imprima a
posição e o respetivo conteúdo na forma (posição,conteúdo) como demonstra
o exemplo.
Exemplo:
1
2
3
4
Vector (posição par, conteúdo): (0,1) (2,3)
Vector (posição ímpar, conteúdo): (1,2) (3,4)
2. Utilizando vectores, crie um programa que recebe 5 valores e mostra ao
utilizador quais os números que são acima de 10.
Exemplo:
Insira 5 valores:
1
20
3
40
5
Números acima de 10:
20
40

3. Utilizando vectores, crie um programa que receba para 3 produtos, a
quantidade em stock e o preço de venda e o programa deverá devolver
quantos euros a empresa tem em stock sabendo que esse valor é a soma da
multiplicação entre a quantidade e o preço de venda para todos os produtos.
Tenha em atenção que nem o preço, nem a quantidade, podem ser negativos.
Caso seja, deverá solicitar novamente ao utilizador o valor (para a quantidade
ou para o preço) e continuar a execução do seu programa.
Exemplo:
Insira a quantidade e preço para o produto 1:
2
10.5
Insira a quantidade e o preço para o produto 2:
1
5
Insira a quantidade e o preço para o produto 3:
2
20
Valor em stock: 66euros.

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA
EFA Tecnológico - Técnico de Informática e Sistemas
UFCD:0785 – Programação em C – C++ - Formas complexas
Duração: 150 minutos
Nome Formando: _______________________

Data: ___/___/___ Formador: João Leitão

Classificação: ________________________________________________________________

1. Utilizando vectores, crie um programa que recebe 5 raios de esferas e o
programa mostra qual a área (A) e volume (V) para cada um dos raios
inseridos, sabendo que:

!
2. Utilizando vectores, crie um programa que calcula e mostra a média ponderada
para uma turma. O programa recebe 5 notas (0-20) e os respetivos pesos
normalizados (0-1). Assuma que o utilizador insere os valores na sequência:
N1 P1 N2 P2 …
Não é necessário garantir que o intervalo de notas é de 0 a 20 nem que o
intervalo dos pesos é de 0 a 1.

3. Utilizando vectores, crie um programa que receba 10 números do utilizador e
um número a procurar (X) e o programa devolve quantas vezes o número X
aparece nos números inseridos. Caso não apareça, o utilizador recebe uma
mensagem a informar: “O número que procura não foi inserido”. Caso contrário
surge: “O número que inseriu aparece N vezes nos 10 números inseridos”.
5. Utilizando vectores, crie um programa que realize a gestão de um piloto numa
corrida de automóveis com 6 voltas de duração. São anotados para um piloto
os tempos registrados em cada volta. O programa deve ler os tempos de todas
as voltas e mostrar:
a. Melhor tempo;
b. Pior tempo;
c. A volta (número) em que ocorreu o melhor tempo;
d. Tempo médio das 6 voltas;
De notar que deve no final ser dada a hipótese do utilizador voltar a utilizar o
programa e caso isso aconteça, o programa ficará em ciclo até o utilizador
escolher a opção para sair ou ter chegado às três utilizações (ou seja, ao fim
de 3 utilizações o utilizador já não pode voltar a utilizar o programa). O ecrã
deve ser “limpo” sempre que o utilizador escolher a opção para utilizar
novamente o programa.

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Ficha Formativa
Técnico de Informática e Sistemas | UFCD: 0785
Nome Formando: _____________________

Data: __/__/__

Formador: João Leitão

1. Crie os programas no Quincy, para as seguintes situações:
A. Criar um menu para que caso o utilizador insira a opção 1, deverá
abrir o site www.google.pt. Caso a opção seja 2, deverá abrir o site
www.iefp.pt. Se a opção for 3, deverá criar uma pasta com o nome
abcd.
Se inserir qualquer outra opção deverá receber uma mensagem de
erro.

B. Criar um programa que receba 4 números do utilizador e verifique
a seguinte situação para cada número inserido. Se o valor inserido
for superior a 5, então deverá mostrar uma mensagem a dizer
“Inseriu um valor superior a 5”. Caso contrário receberá uma
mensagem a dizer “Inseriu um valor inferior a 5”. Deverá repetir a
acção para cada elemento do vector.

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Ficha de Avaliação Sumativa
EFA Tecnológico - Técnico de Informática e Sistemas
UFCD:0785 – Programação em C – C++ - Formas complexas
Duração: 150 minutos
Nome Formando: _______________________

Data: ___/___/___ Formador: João Leitão

Classificação: ________________________________________________________________

Notas Gerais:
Esta prova de natureza teórica divide-se em três grupos e tem a duração de 150
minutos sem tolerância.
Utilize apenas caneta ou esferográfica de tinta indelével, azul ou preta.
Não é permitido o uso de corrector. Em caso de engano, deve riscar, de forma
inequívoca, aquilo que pretende que não seja classificado.
Não é permitido o uso de auxiliares.
As respostas ilegíveis ou que não possam ser identificadas são classificadas com zero
pontos.
Rubrique no canto superior direito todas as folhas da prova.
Qualquer tentativa de cópia será punida com a anulação da prova.
As cotações dos itens encontram-se descritas no quadro seguinte:

Grupo

Grupo I

Grupo II

Grupo III

Questão

Alínea

Cotação
(Pontos)

TOTAL

1.

0,5

2.

0,5

3.

0,5

4.

0,5

1.

3

2.

3

1.

2

2.

2

3.

2

4.

3

2

6

12

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA
5.

3
20

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Grupo I
Atenção! Se apresentar mais de uma resposta, ou resposta ambígua, a questão será
anulada.

1. Indique, para cada afirmação, se é verdadeira ou falsa, justificando no caso de ser
falsa:
a)
Independentemente do tipo de dados do vector, o conteúdo das suas
posições é sempre do tipo de dados: int.
FALSO
_______________________________________________________________

_______________________________________________________________

b)
É possível que duas posições do mesmo vector apresentem o mesmo
valor.
Falso
_______________________________________________________________
_______________________________________________________________

c)

A primeira posição de um vector com N elementos é sempre N-1.

Falso
_______________________________________________________________

_______________________________________________________________

d)
É possível que um vector com N elementos apresente posições sem
estarem preenchidas.
Verdadeiro
_______________________________________________________________

_______________________________________________________________

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Grupo II
1. Indique qual o resultado para o utilizador após a execução do seguinte fragmento
de código:

#include<stdio.h>
int main(){
int vx[5];
int i=1;
int res;

1
VX[0] 4
VX[1] 3
VX[2] 2
VX[3] 1
VX[4] 0
I=1 4 3 2 1 2
RES= 1 2 2 2

for(i=4;i>0;i--){
vx[i]=i;
}
res=i;
do{
vx[i]=res;
res=res+1;
i=res;
}while(res<0);
for(i=0;i<5;i=i+3){
res=res*vx[i];
}
if(res>0 && res<5){
res=2;
}
else if(res>=5 && res<10){
res=3;
}
else{
res=1;
}
printf("\nRes: %d", res);
for(i=0;i<5;i=i+1){
printf("\nVector: %d",vx[i]);
}
return(0);
}

Obrigatório mostrar cálculos intermédios!

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

2. Indique qual o resultado final para o utilizador após a execução do seguinte
fragmento de código:
#include<stdio.h>
int main(){
V1[0] 0
int v1[6];
V1[1] 1
V1[2] 0
int i=0;
V1[3] 1
int x=0;
V1[4] 0
int y=1;
V1[5] 1
int z=2;
for(i=0;i<6;i++){
if(i%2==0){
v1[i+1]=1;
}
else{
v1[i-1]=0;
}
}

I= 0 1 2 3 4 5 6 4 2 0
X=0 6 4 2
Y=1 3 3 3
Z=2 5

do{
x=i;
y=z+1;
i=i-2;
}while(x>0);
z=x+y;
for(i=4;i>=2;i=i--){
if(v1[i]>0){
z=z+y;
}
else{
z=z+x;
}
}
x=v1[i]+1;
printf("\nX: %d", x);
printf("\nY: %d", y);
printf("\nZ: %d", z);
for(i=0;i<5;i=i+1){
printf("\nVector: %d",v1[i]);
}
return(0);
}

Obrigatório mostrar cálculos intermédios!

Grupo III (Utilização de vectores)

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

1. Utilizando vectores, crie um programa que receba 4 números e imprima a
posição e o respetivo conteúdo na forma (posição,conteúdo) como demonstra
o exemplo.
Exemplo:
1
2
3
4
Vector (posição par, conteúdo): (0,1) (2,3)
Vector (posição ímpar, conteúdo): (1,2) (3,4)
2. Utilizando vectores, crie um programa que recebe 5 valores e mostra ao
utilizador quais os números que são acima de 10.
Exemplo:
Insira 5 valores:
1
20
3
40
5
Números acima de 10:
20
40

3. Utilizando vectores, crie um programa que receba para 3 produtos, a
quantidade em stock e o preço de venda e o programa deverá devolver
quantos euros a empresa tem em stock sabendo que esse valor é a soma da
multiplicação entre a quantidade e o preço de venda para todos os produtos.
Tenha em atenção que nem o preço, nem a quantidade, podem ser negativos.
Caso seja, deverá solicitar novamente ao utilizador o valor (para a quantidade
ou para o preço) e continuar a execução do seu programa.
Exemplo:
Insira a quantidade e preço para o produto 1:
2
10.5
Insira a quantidade e o preço para o produto 2:
1
5
Insira a quantidade e o preço para o produto 3:
2
20
Valor em stock: 66euros.
4. Utilizando vectores, crie um programa que receba 10 valores inteiros que
representam acções, estando disponíveis apenas as seguintes 3 acções:
1 – Abrir o site www.google.pt
2 – Abrir o site www.iefp.pt
3 – Criar uma pasta com o nome teste785

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA
O programa deverá ter o seguinte comportamento:
Se o utilizador inserir uma opção inválida, deverá ser solicitada
novamente a opção
O programa deverá verificar quantas vezes o utilizador escolheu cada
opção sabendo que independentemente do número de vezes que escolheu a
opção 3, o programa apenas realiza esta acção uma vez. No caso em que o
utilizador inseriu várias vezes (N) o número 1 ou 2 então realizará N vezes a
acção de abrir a respetiva página.
Exemplo:

1
2
3
1
1
3
2
2
1
3

O programa abre 4 vezes seguidas o site www.google.pt
O programa abre 3 vezes seguidas o site www.iefp.pt
O programa cria uma pasta com o nome teste785

5. Utilizando vectores, crie um programa que receba 10 números do utilizador e o
programa devolva a indicação de quantos e quais os valores repetidos.
Considere a hipótese de não existirem repetidos.
No final deverá mostrar os números repetidos ordenados como demonstra o
exemplo.
NOTA: Simplifique a solução admitindo que o utilizador nunca pode inserir um
número seguinte inferior a qualquer um anterior (no máximo igual) e apenas
pode repetir uma vez.
Exemplo:
2
3
4
2
4
5
5
6
7
8
Existem 3 números repetidos. Os números repetidos são:
2
4
5

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Ficha de Avaliação Sumativa
EFA Tecnológico - Técnico de Informática e Sistemas
UFCD:0785 – Programação em C – C++ - Formas complexas
Duração: 120 minutos
Nome Formando: _______________________

Data: ___/___/___ Formador: João Leitão

Classificação: ________________________________________________________________

Notas Gerais:
Esta prova de natureza teórica divide-se em três grupos e tem a duração de 120
minutos sem tolerância.
Utilize apenas caneta ou esferográfica de tinta indelével, azul ou preta.
Não é permitido o uso de corrector. Em caso de engano, deve riscar, de forma
inequívoca, aquilo que pretende que não seja classificado.
Não é permitido o uso de auxiliares.
As respostas ilegíveis ou que não possam ser identificadas são classificadas com zero
pontos.
Rubrique no canto superior direito todas as folhas da prova.
Qualquer tentativa de cópia será punida com a anulação da prova.
As cotações dos itens encontram-se descritas no quadro seguinte:

Grupo

Grupo I

Grupo II

Grupo III

Questão

Alínea

Cotação
(Pontos)

TOTAL

1.

0,5

2.

0,5

3.

0,5

4.

0,5

1.

3

2.

3

1.

2

2.

2

3.

3

4.

3

2

6

12

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA
5.

2
20

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Grupo I
Atenção! Se apresentar mais de uma resposta, ou resposta ambígua, a questão será
anulada.

1. Indique, para cada afirmação, se é verdadeira ou falsa, justificando no caso de ser
falsa:
a)
Na declaração de um vector é obrigatório colocar o conteúdo de cada
posição.
Falso , eu posso ter a posição disponivel mas posso nao colocar nada...
_______________________________________________________________

_______________________________________________________________

b)

Num vector com N elementos, a primeira posição é N e a última é 0.

_______________________________________________________________
Falso, a primeira opcao é sempre 0 e a ultima é menos um o tamanho
_______________________________________________________________

c)
É possível alterar a indicação de qual a primeira posição de um vector.
Por exemplo, é possível dizer que a primeira posição de um vector passa a ser
a posição 5.
Falso, não é possivel
_______________________________________________________________

_______________________________________________________________

d)
É possível utilizar o conteúdo de uma posição de um vector na condição
da estrutura de decisão if.
Verdadeiro
_______________________________________________________________

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA
_______________________________________________________________

Grupo II
1. Indique qual o resultado final para o utiliador após a execução do seguinte
fragmento de código:
#include<stdio.h>
int main(){
int xpto[5];
int i;
int res;
xpto[0]=1;
xpto[1]=0;
xpto[2]=0;
xpto[3]=1;
xpto[4]=0;
res=xpto[0];
for(i=1;i<5;i=i+2){
xpto[i]=xpto[i]+res;
}
res=1;
for(i=0;i<5;i=i+1){
res=res+xpto[i];
}

1
1
0
2
0
I5
RES 20

res=res*i;
if(res>0){
res=res-i;
}
else{
res=res+1;
}
printf(“%d”, res);

20

for(i=0;i<5;i=i+1){
printf(“%d”,xpto[i]);
}
return(0);
}

xpto[0] 1
xpto[1] 0 1
xpto[2] 0
xpto[3] 1 2
xpto[4] 0
I1350 12 3 4 5
RES 1 1 2 3 3 5 5 25 20

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

2. Indique qual o resultado final para o utilizador após a execução do seguinte
fragmento de código:
#include<stdio.h>
int main(){
int
int
int
int
int

vector[4];
i;
res;
w;
init;

V[0] 1 1
V[1] 1 2
V[2] 1 3
V[3] 1 4
-1
I 0 3 40 1 2 3 4 0 3 6 0 1 2 3 4 2 1 0
RES 2 3 4 5 5 4
0 64 2 0 1
W
INIT 1 2 1

init=1;
res=2;
for(i=0;i<4;i=i+1){
vector[i]=init;
}
init=init+1;
w=0;
res=res+1;
for(i=0;i<4;i=i+3){
res=res+vector[i];
}
res=res+w;
init=init-1;
for(i=0;i<4;i=i+1){
vector[i]=vector[i]+i;
}
for(i=3;i>=0;i=i-1){
w=i+vector[i]-init;
}

1+2-1 4

res=res+i;
w=w-i;
printf("%d\n", res);
printf("%d\n\n", w);
for(i=0;i<4;i=i+1){
printf("%d\n",vector[i]);
}
return(0);
}

Obrigatório mostrar cálculos intermédios!

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Grupo III (Utilização de vectores)
1. Utilizando vectores, crie um programa que recebe 3 notas de testes e mostrar
ao utilizador qual a média aritmética (soma dos 3 testes a dividir por 3).

2. Utilizando vectores, crie um programa que receba 4 números e devolva a soma
de todos os elementos desse vector com a seguinte indicação: Caso a soma
de todos os elementos for superior a 10, então junta mais 1. Senão, retira 1 à
soma. No final, mostra esse resultado ao utilizador.

3. Utilizando vectores, crie um programa que receba 5 números do utilizador e
que mostre ao utilizador os seguintes resultados: Se a posição for par, mostra a
multiplicação entre 5 e o conteúdo dessa posição par. Se a posição for ímpar,
mostra o resultado da multiplicação entre 2 e o conteúdo dessa posição ímpar

4. Utilizando vectores, crie um programa que recebe 5 números inteiros positivos
e verifique para cada posição se esse número é superior ou igual a 20. Caso
seja, deverá receber uma mensagem a dizer: “Número superior ou igual a 20”.
Caso contrário, receberá “Número inferior a 20”.

5. Utilizando vectores, crie um programa que receba 4 números do utilizador e
consoante o valor guardado no vector, realize as seguintes acções:
Se o valor guardado for superior igual a 1, então cria uma pasta com o nome
pasta1, se for igual a 2, cria uma pasta com o nome pasta2, se for igual a 3
abre o site www.google.pt. Caso contrário avisa o utilizador que o número não
tem acção prevista.
O comando para criar uma pasta é: mkdir NOMEDAPASTA

6. Utilizando vectores, crie um programa que receba do utilizador 5 alturas, em
centímetros, e que mostre ao utilizador qual a média e desvio padrão sendo
que:
Média = SA / 5
Variância = SA – Média
SA corresponde à soma de todos os elementos do vector.

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

7. Utilizando vectores, crie um programa que receba para cada produto, um preço
de compra e um preço de venda. Pretende-se receber os preços para 5
produtos e o objectivo é que os valores fiquem em posições adjacentes (lado a
lado). Ou seja, para o produto 1, o preço de compra fica na posição 0 e o preço
de venda na posição 1 e assim sucessivamente para os restantes produtos.
Pretende-se mostrar ao utilizador, para cada produto, qual o lucro obtido
através da diferença entre o preço de venda e o preço de compra.

8. Utilizando vectores, crie um programa que dados 5 números devolva a
diferença entre a quantidade de números positivos e negativos, acompanhada
de uma mensagem explicativa do sucedido, isto é, se essa diferença for
superior a 0 deverá receber a mensagem: “Existem mais números positivos
que negativos”. Se for inferior a 0: “Existem mais números negativos que
positivos”. Se for igual a 0: “O número de positivos e negativos é igual”.
Exemplo:
1

2

3

Resultado para o utilizador:
1
Existem mais números positivos que negativos.

-2

-1

INSTITUTO DO EMPREGO E FORMAÇÃO PROFISSIONAL – I.E.F.P
CENTRO EMPREGO E FORMAÇÃO PROFISSIONAL DE ÉVORA

Ficha Formativa

Técnico de Informática e Sistemas | UFCD: 0785
Nome Formando: _____________________
Data: __/__/__
Formador: João Leitão

1. Crie o seguinte programa utilizando a linguagem C:
Pretende-se criar um programa que auxilie o utilizador na remodelação de uma casa.
O utilizador insere as medidas (em metros quadrados) de cada uma das divisões
(quarto, sala, cozinha e wc) e o programa mostra quantas caixas de mosaicos são
necessárias adquirir, assim como o valor a pagar sabendo que:
a. Cada caixa de mosaicos tem um metro quadrado
b. O valor da caixa é inserido pelo utilizador
c. As medidas devem de estar armazenadas num vector.
d. O cálculo do valor a pagar é feito multiplicando o valor de cada caixa
pelo total de metros quadrados.
e. O utilizador no final escolhe se quer voltar ao programa de cálculo ou
não. Caso opte por voltar, todo o ecrã deve ser “limpo”.
f. Após o utilizador ver o número de caixas a comprar e o respetivo valor
total, é aberto o site: http://www.gresart.pt/

Altere o programa anterior para que em vez do utilizador inserir as medidas em
metros quadrados, insere para cada divisão o comprimento e largura e o programa,
através de uma função própria devolve os metros quadrados. Altere toda a estrutura
necessária para que o programa fique a funcionar da mesma forma que estava, mas
desta vez, utilizando funções e aumentando o tamanho do vector.