me ajudar nesse trabalho

1. me ajudar nesse trabalho

erilton
ton23

(usa Outra)

Enviado em 11/08/2008 - 10:41h

Não consigo terminar esse trabalho quem pode me ajudar ai da um forcinha falta o exercicio Nº 4 e 5 ...desde ja agradeço

1) [2 pts] Elabore uma função int fatorial(int x) que receba um numero e retorna o fatorial.

#include <stdio.h>
int fatorial(int x)
{
if(x<= 1)
return 1;
else return x*fatorial(x-1);

}
int main()
{
int n;
printf("\n\nDigite um valor para x: ");
scanf("%d", &x);
printf("\nO fatorial de %d e' %d", x, fatorial(x));
return 0;
}

2) [3 pts] Elabore uma função int *retornaVetor() que retorna um ponteiro para um vetor de 5 elementos do tipo inteiro aleatórios, utilizando a função malloc para alocar o vetor e a função rand para armazenar os valores aleatório entre 1 e 50.

#include <stdio.h>
#include <stdlib.h>
int *retornavetor(int *pt);
main()
{
int n; //tamanho do vetor
n=50;

pt = (int*) malloc(n * sizeof(int));
if (!pt)
{
printf (" Erro Memoria Insuficiente ");
exit;

int vet[50], i;
retornavetor(vet);
printf("Resultado do VETOR povoado aleatoriamente: ");
for(i = 0; i < 50; i ++)
{
printf("%d\n",vet[i]);
}
printf("\n\n\n");
system("pause");
}

int *retornavetor(int *pt)
{
int r, i;
for(i = 0; i < 5; i ++)
{
r = rand() % 5;
pt[i] = r;
}
return pt;
}


3) [4 pts] Crie uma TAD LISTA ENCADEADA, com as operações de incluir e imprimir.

#include <stdio.h>
#include <stdlib.h>
#define MALLOC(x) ((x *) malloc (sizeof(x))) //Este define torna a utilização do malloc mais fácil

void insere (void);
void imprimir (void);


struct no{
int item;
struct no *proximo;
};

typedef struct no no_t;

no_t *primeiro, *novo, *ultimo;

int main (void)
{
int op;
primeiro = novo = ultimo = 0;
for (;;)
{
system("clear");
printf("\n1- Inserir");
printf("\n2- imprimir");
printf("\n3- Sair");
printf("\nSua opção: ");
scanf ("%d",&op);
switch(op){
case 1 : insere();
break;
case 2 : imprimir();
break;

case 3 : exit (0);
default: printf("Opcao Errada");
}
}
}

void insere (void)
{
int j;
system("clear");
printf("ITEM : ");
scanf ("%d",&j);
novo = MALLOC(no_t);
novo->proximo = 0;
novo->item = j;
if (primeiro == 0)
primeiro = novo;
else
ultimo->proximo = novo;
ultimo=novo;
}

void imprimir (void)
{
no_t *p;
char s[80];
system("clear");
if (primeiro == 0)
{
printf("Lista Vazia");
return;
}
p = primeiro;
do{
printf("\nITEM %d",p->item);
p = p->proximo;
}while (p!=0);
printf("\n<S>air");
scanf("%s",&s);
}
}







4) [3 pts] Desenvolva um programa principal para receba um numero através do argumentos argc e argv e chame a função fatorial, chame a função retornaVetor() e imprima os valores armazenador no vetor. Criar, incluir os valores armazenado no vetor e imprimir o conteúdo da lista encadeada.?????

5) [8 pts] Dada os valores: 48 30 14 56 88 34 51 32 (Mantenha os passos)
a) Ordene utilizando o método de seleção
b) Ordene utilizando o método de Bolha
c) Ordene utilizando o método de HeapSort
d) Insira os valores acima em uma arvore binária.


  


2. Re: me ajudar nesse trabalho

Percival F. Jr.
percival

(usa Debian)

Enviado em 11/08/2008 - 12:49h

hahahahah

Que cara-de-pau !


3. Re: me ajudar nesse trabalho

César...
cesar

(usa CentOS)

Enviado em 11/08/2008 - 12:56h

O que você fez até agora?

¬¬'

Do jeito que você colocou as questões aqui, está parecendo que você está querendo é que a gente faça pra você!

[]'s.


4. to com duvida mermo

erilton
ton23

(usa Outra)

Enviado em 11/08/2008 - 14:38h

a 4 tudo bem nao sei como fazer , agora na cinco tenho a estrutura pronta , to meio confuso como jogo os dados ... me ajuda ai gente..

4) [3 pts] Desenvolva um programa principal para receba um numero através do argumentos argc e argv e chame a função fatorial, chame a função retornaVetor() e imprima os valores armazenador no vetor. Criar, incluir os valores armazenado no vetor e imprimir o conteúdo da lista encadeada.

#include <stdio.h>
#include <stdlib.h>
int main (int argc,char *argv[]);



5) [8 pts] Dada os valores: 48 30 14 56 88 34 51 32 (Mantenha os passos)
a) Ordene utilizando o método de seleção
#include <stdio.h>
#include <stdlib.h>

void SelectionSort(tChave tabela[], unsigned nElem)
{
tChave maior;
unsigned i, j, indice;

for (i = nElem-1; i > 0; --i) { /* Coloca em 'maior' o maior */
maior = tabela[0]; /* valor entre 0 e i */
indice = 0;

for (j = 1; j <= i; ++j) /* Escolhe o maior valor entre o */
if (tabela[j] > maior) { /* segundo elemento e i; os elementos */
maior = tabela[j]; /* entre i+1 e nElem-1 já estão ordenados */
indice = j;
}

tabela[indice] = tabela[i];
tabela[i] = maior;
}
}




b) Ordene utilizando o método de Bolha
void BubbleSort(tChave tabela[], unsigned nElem)
{
unsigned i, ordenado = 0;
tChave aux;

while (!ordenado) { /*1*/
ordenado = 1; /* Supõe que a tabela está ordenada */ /*2*/

for (i = 0; i < nElem - 1; i++) /*3*/
if (tabela[i] > tabela[i+1]) { /* Compara elementos adjacentes */ /*4*/
ordenado = 0; /* Pelo menos um elemento está fora de ordem */ /*5*/

/* Troca elementos adjacentes */
aux = tabela[i]; /*6*/
tabela[i] = tabela[i+1]; /*7*/
tabela[i+1] = aux; /*8*/
}
}
}

c) Ordene utilizando o método de HeapSort

void HeapSort(tChave tabela[], unsigned nElem)
{
int i;
tChave aux;

for(i = (nElem-2)/2; i >= 0; i--) /* Constrói o heap a partir do pai */
PercolaAbaixo(tabela, i, nElem); /* do último elemento da tabela */

/* Neste ponto, o heap está construído. Agora, troca-se o */
/* primeiro elemento do heap, diminuído de um elemento, */
/* com o último elemento e reordena-se o heap. */
for(i = nElem-1; i >= 1; i--) {
aux = tabela[0]; /* Remove o maior elemento do heap */
tabela[0] = tabela[i]; /* e coloca-o no final da tabela */
tabela[i] = aux;
PercolaAbaixo(tabela, 0, i); /* Reordena o heap */
}
}

d) Insira os valores acima em uma arvore binária.

*/

#include <stdio.h>
#include <stdlib.h>
#define MALLOC(x) ((x *) malloc (sizeof(x)))
#define TRUE 1

struct arv_bin{
char info;
struct arv_bin *esquerda;
struct arv_bin *direita;
};
typedef struct arv_bin bin_t;

void preordem(bin_t *);
void incluir (void);
void exibir_pre (void);
bin_t *raiz;
bin_t *arvore(bin_t *, bin_t *, char);

int main (void)
{
int op;
raiz=NULL;
for (;;)
{
system ("clear");
printf ("\nMenu");
printf ("\n\n 1. Insere");
printf ("\n 2. Exibe");
printf ("\n 3. Sair");
printf ("\n\n Entre a sua opção: ");
scanf ("%d",&op);
fflush(stdin);
switch (op) {
case 1 : incluir();
break;
case 2 : exibir_pre();
break;
case 3 : exit(0);
default: printf ("\nOpção errada");
break;
}
}

}

void incluir (void)
{

char s[80];
while(TRUE)
{
printf("\nLETRA: ");
scanf("%s",&s);
if (!raiz)
{
raiz = arvore(raiz,raiz, *s);
}
else
{
arvore(raiz,raiz,*s);
}
printf("\n Continua: (s,n) ");
scanf("%s",&s);
if(*s!='s') break;
};
}


bin_t *arvore (bin_t *ra, bin_t *r, char info)
{
if(!r){
r = MALLOC(bin_t);
if (!r)
{
printf("Sem memória");
exit(0);
}

r->esquerda = NULL;
r->direita = NULL;
r->info=info;

if(!ra)
{
printf("\nEssa letra é a raiz");
return r;
}
if(info < ra->info)
{
ra->esquerda=r;
printf("\nEssa letra entrou a esqueda de %c",ra->info);
}
else
{
ra->direita = r;
printf("\nEssa letra entrou a direita %c",ra->info);
}
return r;
}
if(info < ra->info) arvore(r,r->esquerda,info);
else arvore(r,r->direita,info);
}

void exibir_pre (void)
{
char b[80];
preordem(raiz);
printf("\n qualquer tecla sai");
scanf("%s",&b);

}

void preordem (bin_t *ton)
{

if (ton!=NULL)
{
printf("%c",ton->info);
preordem(ton->esquerda);
preordem(ton->direita);
}

}



5. Re: me ajudar nesse trabalho

César...
cesar

(usa CentOS)

Enviado em 11/08/2008 - 15:48h

Aff parecendo minha aula de estrutura de dados!

Coisa chata pra caramba, não entendia bolotas nenhuma ^^"



6. Re: me ajudar nesse trabalho

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

Enviado em 11/08/2008 - 17:31h

Ele ainda esta bem: árvore binária, deixa ele ver AVL, aí sim, ele vai ficar enrolado.


Abraços


7. Re: me ajudar nesse trabalho

thiago damasceno
thiagobrandam

(usa OpenSuSE)

Enviado em 11/08/2008 - 23:19h

ou então árvore 2-3...


8. Re: me ajudar nesse trabalho

Leandro Luiz
trycatch

(usa Ubuntu)

Enviado em 13/08/2008 - 10:52h

Bem, estes exercícios são simples, eu sou novo em C, mas tenho noção em outras linguagens..
Eu acredito, que se você tiver um bom conhecimento em algoritmo e ficar trabalhando com Debug.. e/ou analisar a reposta do build, você mata suas dúvidas em questão de minutos. ;)


9. galera

João Marcos Menezes
stremer

(usa Arch Linux)

Enviado em 13/08/2008 - 14:33h

desculpem, sei que nem devia tar postando isso, mas a galera fica falando um monte de abobrinha e ajudar que é bom nada. Realmente o cara tem de pensar, mas ele ja fez bastante coisa. Olha amigo, só não te ajudo pois to sem tempo agora, pois ao contrario iria ver como ja fiz em outros posts. Acho que o que ele ja fez anteriormente mostra que não é apenas olhas as mensagens de erro do compilador... Desculpe, mas temos que acabar com esse monte de baboseira pois isto aqui é uma duvida de verdade.


10. sabio stremer

erilton
ton23

(usa Outra)

Enviado em 13/08/2008 - 14:52h

valeu pelo bom senso ..obrigado mermo...


11. Re: me ajudar nesse trabalho

Leandro Luiz
trycatch

(usa Ubuntu)

Enviado em 14/08/2008 - 10:54h

Caro stremer, eu espero que minha mensagem não pertença ao seu grupo de abobrinhas ;)
Também estou sem tempo, só que dúvidas, normalmente a gente cita.. e não simplemente joga um código dizendo socorro..

Caro ton, reveja o que lhe falei... comece a partir daquele exercício da fatorial.. tem algo errado em seu programa.. analise sua variavel X e depois solicite a sua dúvida.
Abraços.


12. o exercicio 1 2 3 estao correto

erilton
ton23

(usa Outra)

Enviado em 14/08/2008 - 14:45h

no fatorial só declarar a variavel x , que no caso la tem um n . mais 1 a 2 a 3 estao corretas rodam direitinho ... tenho duvida so na 4 que nao sei por onde começo ... e na cinco a letra a b c to com duvida em jogar os dados ...



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts