---
# System prepended metadata

title: "\n        Exercício 2\n    "
tags: [Linguagem de Programação]

---

<div style="text-align:center">
    <img src="https://www.uninorteac.edu.br/static/images/ic-logo.png" height=40>
</div>
<div align="center">
    <h1>
        Exercício 2
    </h1>
	<h2>
        Análise e Desenvolvimento de Sistemas<br>
		Linguagem de Programação<br>        
	</h2>
    <h3>
        Prof. Edkallenn Lima
    </h3>
</div>

## Instruções:

---
- Enviar para o e-mail do professor (edkallenn.lima@uninorteac.edu.br com cópia para o edkallenn.lima@uninorteac.com.
- ATENÇÃO: ENVIAR SOMENTE OS CÓDIGOS-FONTE (OS ARQUIVOS COM A EXTENSÃO .C)
- Data de entrega: 23/04/2022 às 14:00 (horário de Brasília)
- Quaisquer dúvidas podem ser tiradas no fórum, por e-mail ou preferencialmente na equipe do Teams da Disciplina, no privado.
---

### Resolva as seguintes questões: 

#### 1. Faça os programas abaixo em Linguagem C:

- O triangulo de Pascal é um arranjo de números da forma:
<pre>
1
1     1
1     2     1
1     3     3     1
1     4     6     4     1
1     5     10    10    5     1
.  .  .
.  .  .
.  .  .
</pre>
onde o elemento que aparece na linha **i**, coluna **j** **(i>=1, j>=1)** é calculado por: $$\frac{(i-1)!}{(j-1)!(i-j)!}$$Dado um inteiro **n** (com **n>=1**), faça um programa para produzir um triângulo de Pascal com **n** linhas. O programa deverá verificar a consistência do dado de entrada e usar a função fatorial em sua forma _não-recursiva_.
- Elabore um programa que, dados os N valores inteiros de um vetor A, classificados em ordem crescente, determine e mostre um vetor B com os mesmos elementos de A, mas sem repetições. O tamanho e os elementos do vetor A devem ser gerados aleatoriamente.
- Fazer uma função que dado os valores de num e b (ambos inteiros) mostre a representação de num no sistema de numeração de base b.
- Implemente uma função que classifica os elementos de um vetor em ordem crescente usando o algoritmo “quicksort” (conhecido como “classificação rápida”): 
    - Seja **m** o elemento que ocupa a posição “central” no vetor;
    - Seja **i** o índice do primeiro e **j**, o índice do último elemento do vetor;
    - Enquanto **i** for menor ou igual a **j**, faça com que:
        - O valor de **i** aumente até encontrar um elemento maior do que **m**;
        - O valor de **j** diminua até encontrar um elemento menor do que **m**;
        - Haja troca entre os elementos que ocupam as posições **i** e **j**;
    - Ao final desses passos, a situação do vetor será a seguinte: à esquerda da posição central, existem somente elementos menores do que **m** e à direita da posição central, existem somente elementos maiores do que **m**. Assim o problema de ordenar o vetor se reduz a um problema de ordenar cada uma dessas “metades”. Para ordenar basta aplicar os mesmos passos a cada uma das “metades”. (Ou seja, a função será chamada _recursivamente_ para cada “metade”).
    - Teste a função com dados gerados **aleatoriamente**


#### 2. Faça os seguintes programas em Linguagem C

- Implemente uma função que receba como parâmetro um vetor de números inteiros (vet) de tamanho n e inverta a ordem dos elementos armazenados nesse vetor. A função deve obedecer ao seguinte protótipo: `void inverte (int n, int *vet);`
- Implemente uma função que receba como parâmetro um vetor de números inteiros (vet) de tamanho n e retorne quantos números pares estão armazenados nesse vetor. A função deve obedecer ao seguinte protótipo: `int pares (int n, int *vet);`
    - Em seguida exibir o vetor e embaixo, somente os pares;
    - Testar a função com MAX números aleatórios (com MAX valendo 10, 20, 50, 100 e 1000).
    - Exibir os resultados dos testes com valores aleatórios em uma tabela

- Fazer um programa para simular o lançamento de dois dados  MAX vezes (os números gerados pelos dados são, obviamente, aleatórios) e exibir os valores do lançamento dos dados (cada um) a cada jogada e a soma dos mesmos (a cada jogada). Executar o programa com MAX sendo digitado pelo usuário. Exibir cada sequência de valores destes lançamentos dos dados de forma tabulada (`\t`). Criar uma tabela de frequências para cada face do dado e exibir a tabela de forma formatada, assim:
 
--------------------------------
|Face	|	Quantidade de Vezes|
--------|-----------------------
1		|xxxxx vezes
2		|xxxxx vezes
3		|xxxxx vezes
4		|xxxxx vezes
5		|xxxxx vezes
6		|xxxxx vezes
--------------------------------

Em seguida, exibir as 3 faces (e as respectivas quantidades) que mais foram sorteadas neste experimento! DICA: Use arrays

###### tags: `Linguagem de Programação`