1º relatório – estrutura de dados

Categories: Trabalhos

0

Primeira Lista de Exercicios Renan Raphael de Lira Silva Universidade Federal do Piauí — Pl Campus Senador Helvídio Nunes de Barros renan490@gmail. com Resumo Este trabalho apresenta sete algoritmos de onze solicitados, onde é descrito cada algoritmo, suas funções e suas funcionalidades e testes para melhor entendimento. 1 – Introdução A partir dos algorit do total. Onde foram Programação em C, f por referência, vetor or16 Sv. içx to view tos sete algoritmos ssuntos: arâmetro, passagem , pilhas e listas.

Será descrito aqui cada questão resolvida, as suas funções, e como funcionam. – Primeiro algoritmo Esse algoritmo calcula a mediana de um vetor de números e apresenta através de uma mensagem a mediana ao usuário. 2. 1 — Função Leitura Esta função requere do usuário a quantidade de elementos desejados. É passado por parâmetro a variável qtd, que receberá a quantidade de elementos, e será retornada por função. Nesta função foi limitada a quantidade de elementos para no máximo vinte elementos. rdenação Bubble Sort. O vetor é automaticamente passado por referência. 2. 4— Função Mediana Nesta função é apresentado já o vetor ordenado para o usuário. Após isso, é analisado se a quantidade de elementos é par ou impar. E é feito o calculo da mediana de acordo com estas informações. O valor da mediana será retornada por função. 2. 5 – Função Resultado Esta função mostra ao usuário o resultado da mediana do vetor.

Esta função não retorna valor. 2. 6 – Entrada e Resultados Quantidade = 4 é par 1 a Valor 20 Valor 1 30 Valor 40 Valor I 41312151 Vetor ordenado 1 a Valor 20 Valor 1 30 Valor 40 Valor I Mediana 2 314 Mediana = / 2 – vet[faixa = (3+4)/2 Mediana 3,5 Quantidade = 3 é impar novalor 20 valor 1 30valor 312111 or achar a moda, ou seja, é o número que é repetido com maior frequência. O valor da moda do vetor será retornado por função. 3. — Entrada e Resultados Quantidade 4 1a Valor 20 Valor 1 30 Valor 40 Valor I Moda I 312121412 3 repete 1 vez 2 repete 2 vezes 4 repete 1 vez Moda = 2 4 – Terceiro Algoritmo Este algoritmo calcula o mdc entre dois números e apresenta o mdc através de uma mensagem. 4. 1 – Função Lerint Esta função ler um valor inteiro a cada vez que for chamada. 4. 2 — Função MDCx Esta função é interessante porque não precisa comparar se x é aior que y ou o contrário, pois se x é maior, depois do calculo do resto da divisão, x passará a ser y e y, o resto.

No final do laço x será o mdc, pois será diferente de zero. Não há como calcular mdc de x e y, quando um ou ambos sejam iguais a zero. O valor de mdc será retornado por função. 4. 3 — Entrada e Resultados 1a Valor 20 Valor I MDC 811214 como explicado antes será igual ‘a’ vezes ‘b’ dividido pelo mdc entre eles. O valor de div será retornado por função. 5. 3 — Entrada e Resultados 10 Valor 20 Valor I MMC I 12 | 3-3 4=22=4 MDC-I MMC= (4. 3)/1 5 – Quinto algoritmo Este algoritmo mostra ao usuário a menor de uma matriz aij de uma matriz quadrada A que é preenchida pelo usuário. . 1 – Função Lerint A função ler inteiro ler um número inteiro por vez informado pelo usuário. 6. 2 — Função Leitura A função Leitura faz a leitura de todos os elementos da matriz digitada pelo usuário, como visto é auxiliada pela função Ler inteiro. Para percorrer toda a matriz foi usada dois laços de repetição, i percorre as linhas e j, as colunas da matriz. Esta função não precisa retornar a matriz, pois a matriz é automaticamente passada por referência, já que é um vetor idmensional. 6. — Função Imprime É responsável por imprimir a matriz 3×3 informada pelo usuário. A função imprime não preci pois somente imprimirá receberá zero quando cont2 for maior que um. Foram passadas por parâmetro além das variáveis típicas: i, j, contador um e cont2. E o valor da matriz menor é automaticamente passado por referência já que é um vetor bidimensional. 6. 6 – Função Mostramenor A Função mostra a menor da matriz aij ao usuário. Esta função não retorna por função, apenas mostra o resultado. 6. – Entrada e Resultados Linha excluída: 2 Coluna excluída: 2 Números ignorados em sublinhado Matriz 3×3 10 Valor 20 Valor 1 30 Valor 213 40 Valor 50 Valor 1 60 Valor 515 4 70 Valor 80 Valor 1 90 Valor 7 819 Menor da matriz aij 10Valor 20 Valor I 21 40 Valor 50 Valor I 51 Oitavo Algoritmo Este algoritmo converte uma ex ressão matemática do modo infixa para posfixa. Este al conceito de pilha estática A função é do tipo int. Se a pilha estiver vazia, será retornado um, que representa true, caso contrário será retornado zero. . Topo: Atualiza que elemento está no topo. Retorna o valor do topo. A função é do tipo char. 7. 2 — Função ehOperador Verifica se o caractere é um operador. ‘+’, T, Retorna um caso seja verdadeiro e zero caso seja falso. A função é do tipo 7. 3 — Função precedência Verifica se um dos casos é verdadeiro. A função retorna um caso encontre um caso verdadeiro e falso caso não encontre. 7. 4— Função inToPosFix Esta função usa todas as funções da pilha acima mencionadas, as funções ehoperador e inToPosFix.

A função todas estas funções de modo a retirar os parênteses, e de modo que fique cada elemento na posição correta da posfixa, assm tendo mesmo resultado calculando de forma posfixa. A ordem é ajustada, pois é notório que existe na matemática, prioridade no calculo da equação. 7. 5 – Método Main No método principal, a função inicializa é chamada, inicializando a pilha. No laço enquanto é lido caractere por caractere da expressão infixa, sendo que o vetor infixa recebe cada caractere em suas posições.

A função inToPosFix é chamada calculando a posfixa. Na inToPosFix é passado por parâmetro o vetores char infixa e posfixa. No final é apresentada a expressão infixa que o usuário digitou, e a posfixa da ex ressão. PAGF Expressão Posfixal 1 2+3* 8 – Décimo Primeiro Algoritmo Neste algoritmo é exposto o problema das n rainhas, onde há um total de 92 soluções possíveis e 12 soluções distintas, no caso de n igual a oito. O problema das n rainhas é dispor de n rainhas de forma que nenhuma delas seja atacada pela outra.

Ao dizer n rainhas, também limitamos o tabuleiro para n x n, onde cada rainha ficará em uma linha e coluna e diagonal diferente de todas as outras rainhas que estão dispostas no tabuleiro. 8. 1 — Método Main No método principal estão algumas orientações ao usuário, onde para n rainhas se terá um tabuleiro n x n. Também é no método ue é chamada a função getPositions. Como visto a variável N é global, variável inteira a recebe N, que é quantas rainhas dispomos no tabuleiro. 8. — Função getPositions Nesta função é encontrada a coluna apropriada para cada linha, começando da linha zero e incrementando até que a colno seja igual a N – 1, apresentando as uma solução no printArray. No segundo IF da função é reparado que há duas equações. Fazendo testes é reparado que: 1 . Primeira equação ((colno+l -ctr2) * (colno+l -ctr2)) sempre é igual a 1; 2. Segunda equação ((ctrl -al [ctr2]) * (ctrl -al [ctr2])) começa gual a 0, repete 8 vezes iguais a 1 e termina em 0, isso até que a contagem dos zeros e uns seja igual a 64.

Este algoritmo das n rainhas a resenta 10 soluções por vez até completar as 92 soluções. chamada de função recursiva, e incrementando ctrl. Observe que no método main, a função getPositions é executada N vezes. A função getPositions é recursiva e não retorna por função. 8. 3 — Função printArray Esta função é responsável por apresentar as coordenadas das n rainhas em cada solução encontrada. Uma solução é mostrada por vez até que o contador dividido por 10 apresente resto zero. Após isso o usuário poderá escolher entre ver as próximas soluções ou sair. 8. — Entrada e Resultados Tabuleiro 8×8 Soluções possíveis | 92 Tabuleiro 7×7 Soluções possíveis | 40 Tabuleiro 4×4 Soluções possíveis | 2 Conclusão A linguagem C se mostra uma boa ferramenta para o aprendizado da disciplina estrutura de dados, sobretudo aos assuntos vistos até aqui. Estes algoritmos facilitam o entendimento de estrutura de dados, e de como as lógicas podem ser readaptadas em diferentes problemas. E que não há uma única solução para um problema, visto que há soluções usando recursividade, pilha, istas, estruturas ou ponteiros, ou ainda usando todos estes conceitos de estrutura de dados na linguagem C.

Apêndice TAM); return qtd; void lemetor(int qtd, int int i; printf (”
lnforme o valor correspondente cada elemento do vetor: for (i O; i < qtd; i++){ printf (“%d elemento, posicao [%d] scanf (“%d”, &vetor[i]); void resultado(float printf E D IA N printf vetor tem mediana = mediana); void ordenaCres (int vet[], int faixa) register int i, j; // indexadores. int aux; // variavel auxillar. for (i = O; i < (faixa – 1); i++) for 1; j ut; faixa; j*+) if (ve [i) > vet[j]) aux – vet[i]; et[i] = veto]; veto] aux; float MEDIANA ont veto, int faixa) register int i; indexado egister vetor[TAM]; // 80 bytes alocados. loat mediana; register int i; // indexador. int qtd; qtd = leitura(qtd); len’etor(qtd, vetor); mediana MEDIANA (vetor, qtd); resultado(mediana); getchar(); return (0); 2. Questão #include ;stdio. h; #include ;stdlib. h; int contem(double Y, int i); double moda(double *vet, int tam); int main int i, tam; double *X; do{ printf(“Quantos numeros deseja inserir? scanf(“%d”,&tam); fflush(stdin); X — (double if(X -z na alocacao.
ENTE-R]para encerrar”);

1 Guerra mundial e belle epoque – resumo

0

História 2BIM-2PROVA CAPITULO 2 – A competição Imperialista e a Primeira Guerra Mundial (PG 93) No séc XX, as principais

Read More

Tributário

0

Direito Tributário Prof. Nilson Prova: 16 de abril – prova 28 de maio – prova 21 de maio – duas

Read More