<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`