Você está na página 1de 6

EXAME NORMAL

DISCIPLINA Programação Para Engenharia e Programação para Engenharia de Produção Industrial

CURSO Todos

DISCENTE

Nº MATRÍCULA TURMA: DATA:

• Leia atentamente as questões e responda com clareza.


• Responda com uma esferografica de cor azul ou preta
• Não é permitido o uso da calculadora e nem do telemovel
• Organize o codigo de cada programa (identação)
• Respeite todos os principios da linguagem C
• Idetificique cada resposta com o número apresentado no enuciado

1. Assine verdadeiro (V) ou falso (F) as seguintes alinhas. [0,5 val. Cada alinha]

A) double nota1=nota2=10.0; F E) char numero; V

B) char b='y'; V F) Int a; F

C) flout nome F G) int = 100; F

D) double x,x1=1+9; V H) cha sexo; F

2. Se executado o programa abaixo o que será apresentado no console. Apresente


no rascunho todos os cálculos necessários para produzir o resultado apresentado.
[4 val.]

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, t = 3;
char m[8], x = '*', o = ' ';
for (i = 0; i <= 2*t; i+=2)
m[i] = '_';
for (i = 0; i < t; i++)
{
for (j = 0; j < t; j++)
m[2*j+1] = mundo[j][i] == 0 ? o : x;
puts(m);
}
return 0;
}

Página 1 de 6
EXAME NORMAL

RESOLUÇÃO

_*_ _ _
_ _* _ _
_*_ *_ _

3. Escreva uma função em C para verificar se a sequência de números 2, 3, 4


aparece em um determinado vetor (array) de inteiros em algum lugar. [4 val.]
#include <stdio.h>
#include <stdlib.h>
int main(){
int n, i, e = 0;
printf("Digite o tamanho do vetor: ");
scanf("%d", &n);
int v[n];
for (i = 0; i < n-1; i++) {
printf("Digite %d valor do vetor: ", i+1);
scanf("%d", &v[i]);
}
for (i = 0; i < n-2; i++){
if(nums[i] == 1 && nums[i + 1] == 2 && nums[i + 2] == 3) {
printf("Existe a sequencia 1, 2, 3 nas posições %d, %d e %d.", i, i+1, i+2);
b = 1;
break;
}
}
if(b == 0)
printf("Não existe a sequencia 1, 2, 3 nalguma parte do vetor");

return 0;
}

Página 2 de 6
EXAME NORMAL

4. Dada um vector ordenado de números inteiros (1 , 2 , 3 , 5 , 6 , 8 , 9), escreva um


programa que procure um elemento no vector usando o método de pesquisa
dicotómica. O método de pesquisa dicotómica consiste em: [4 val.]
a) Determinar m, elemento na posição central do vector;
b) Se este for o valor procurado, paramos com sucesso;
c) Se não, dois casos são possíveis:
I. Se m for maior que o valor procurado, já que o vector esta ordenado, significa
que é suficiente continuar a busca na primeira metade do vector, isso é a
esquerda do elemento na posição central;
II. Caso contrario, basta pesquisar na outra metade do vector, isto e a direita do
elemento na posição central do vector.
d) Repetimos isso até encontrar o valor pesquisado ou até reduzirmos o intervalo de
pesquisa para um intervalo vazio, o que significa que o valor pesquisado não está
presente.

#include <stdio.h>
#include <locale.h>

int main(){
setlocale(LC_ALL, "portuguese");
int tabela[]={1,2,3,5,6,8,9};
int valorProcurado;
int primeiroIndice;
int ultimoIndice;
int elementoCentral;
int valorEncontrado;
int varControle=1;

while(varControle){

printf("Qual valor está procurando? ");


scanf("%d", &valorProcurado);

primeiroIndice = 0;
ultimoIndice = 6;
valorEncontrado = 0;

while((primeiroIndice <= ultimoIndice) && (valorEncontrado == 0)){

Página 3 de 6
EXAME NORMAL

elementoCentral=(primeiroIndice + ultimoIndice) / 2;

if(tabela[elementoCentral] == valorProcurado)
valorEncontrado = 1;
else
{
if(tabela[elementoCentral] > valorProcurado)
ultimoIndice = elementoCentral -1;
else primeiroIndice = elementoCentral + 1;
}
}
if(!valorEncontrado)
printf("Este valor não faz parte da lista.\n");
else printf("Este valor pertence à lista\n");

printf("Você quer continuar ? (Digite 0 para sair do programa): ");


scanf("%d", &varControle);
}

return 0;
}

5. “14 dos namorados em tempos do Covid-19.” Dada a crise imposta pela


pandemia do Covid-19, a casa de presentes denominada MboteTataTunga
procura usar a menor área de papel ilustre possível para forrar um dado presente,
é daí que advém a expressão “14 dos namorados em tempos do Covid-19”.
Para tornar realidade este desejo, o (a) prezado (a) estudante é convidado (a) a
Implemente um programa que calcule a quantidade de papel necessário para
cada presente. [4 val.]
Entrada: Existem vários casos de teste (cada teste corresponde a um presente). A
primeira linha da entrada é um inteiro z (2 ≤ z ≤ 200000) que indica a quantidade
dos casos de teste. A seguir são descritos z testes. Cada teste é descrito numa linha
contendo 3 inteiros, que são as dimensões da caixa de presente, em forma de
paralelepípedo. Esses valores variam entre 1 e 20000.
Saída: Para cada caso de teste imprime a área mínima de papel necessária para
forrar o presente.
Notas: Seguem as fórmulas caso precise de alguma (as): Volume de um
paralelepípedo retângulo V = abc, área lateral de um paralelepípedo retângulo
2(ac + bc), Área do Trapézio (B + b).h/2, área do paralelepípedo 2(ab + ac + bc),
área do cubo 6a2.

Página 4 de 6
EXAME NORMAL

Exemplo
Entrada Saída
3
1 1 1 6
4 6 3 108
6 3 4 108

EXPLICAÇÃO Formula (área do paralelepípedo)


Quantidade de teste 3 2(ab + ac + bc)
Teste 1 1 1 1 -> a, b, c (lados) 2(3)= 6
Teste 2 4 6 3 -> a,b,c (lados) 2(52) = 108
Teste 3 6 3 4 -> a,b,c (lados) 2(52) = 108

RESOLUÇÃO
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"");
int z,j,a,b,c,area;
printf("Digite a quantidade de casos de testes \n");
scanf("%d",&z);
if((z>=1)&&(z<=100000))
{
for(j=1;j<=z;j++)
{
printf("Digite três números para o caso %d\n",j);
scanf("%d%d%d", &a,&b,&c);
if((a>=1)&&(a<=10000))
{
if((b>=1)&&(b<=10000))
{
if((c>=1)&&(c<=10000))
{
area=2*((a*b) + (a*c) + (b*c));
printf("%d\n",area);
}

Página 5 de 6
EXAME NORMAL

}
}
}//fim do for
}
else
{
printf("intervalo para quantidade de casos invalido\n");
}
system("pause");
return 0;
}

Bom trabalho

Página 6 de 6

Você também pode gostar