Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Karina Bueno

Trabalho de Facul...

Recommended Posts

Elaborar um programa em C que faça a carga de um vetor com 20 posições de valores inteiros e positivos

 

Permitir escolher um dos métodos de ordenação de dados (1-inserção, 2-bubble sort, 3-quick sort, 4-seleção).

 

Depois de escolhido o método de ordenação, mostrar linha a linha, cada vez que teclar < enter >, como está ordenando o vetor.

 

 

< Nome Pgm> Nome da Faculdade DD/MM/AAAA

Cidade Estrutura de Dados HH:MM:SS

 

 

 

Digite os dados do Vetor: __ __ __ __ __ __ __ __ __ __

 

1 - Inserção

2 – Buble Sort

3 - Quick Sort

4 - Seleção

 

Opção................. : ___

 

 

 

 

 

 

 

Essa é a primeira tela

 

 

< Nome Pgm> nome da faculdade DD/MM/AAAA

 

Cidade Estrutura de Dados HH:MM:SS

 

 

 

 

 

Primeira ordenação __ __ __ __ __ __ __ __ __ __

Segunda ordenação __ __ __ __ __ __ __ __ __ __

Terceira ordenação __ __ __ __ __ __ __ __ __ __

.

.

.

.

Continua a Ordenação de Dados(S/N)? ___

 

 

 

 

 

essa e a segunda tela

 

 

Depois de finalizada ordenação na tela02, se digitar “S” para continuar a ordenação, devo retornar a tela 01, para redigitar novo vetor e escolher novo método de ordenação, caso contrário, vou para tela03, conforme tela abaixo:

 

 

- Depois do vetor ordenado, deverá ser feita a pesquisa binária, conforme tela abaixo:

 

 

Pesquisa Binária

 

 

x1 x2 x3 ... xn

 

 

Digite Número....: ____

 

 

<< O numero digitado foi encontrado na posição XX depois de YY pesquisas >>

 

Continua a pesquisa binária(S/N)? ___

 

 

O programa deverá mostrar o número de testes para cada pesquisa, e as seguintes mensagens conforme resultado da pesquisa:

• O numero digitado foi encontrado na posição XX depois de YY pesquisas

• O numero digitado não foi encontrado no vetor e foram feitas YY pesquisas

 

- Depois de impressa mensagem na tela, se digitar “S” para continuar pesquisa, devo digitar novo número a ser pesquisado, caso contrário, mostra-se tela resumo com resultado de todas pesquisas realizadas, conforme tela abaixo:

 

 

Pesquisa Binária - Resumo

 

 

 

Número de pesquisas completadas sem sucesso: ______

Número de pesquisas completadas com sucesso: ______

Valor percentual de pesquisas completadas com sucesso: _____

Número médio de testes em cada pesquisa: ______`

 

 

 

 

 

Galera... to suplicando ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

E o código?

 

segue abaixo o que consegui fazer

 

 

#include<stdio.h>
#include<stdlib.h>
//#include<iostream.h>
#include<string.h>
#include<conio.h>
#include<ctype.h>
#define TRUE 1
#define FALSE 0
void LerNumeros();
void TabelaMelhorado();
void Sentinela();
void MaiorOUmenor();
void MaiorEmenor();
void Moda();

int achou,procura,n,dado_proc,j;
float tabela[20];

//float vetor[20];


void LerNumeros()
{
	 int icont = 0;
	 float n;
	 
	 for (icont = 0; icont <= 05;icont++)
	 {
		 printf("\n|Digite o %d numero: ",(icont+1));
		 scanf ("%f",&n);
		 tabela[icont] = n;
	 }
}
int main()
{
  int opcao;
	
	do
	{
		 system("cls");
		 printf("\n\n");
		 printf("___________M E N U________________\n");
//   		 printf("\n|1. --- Entrada de Dados ---------------------------------- |"); 
   		 printf("\n|1. --- Busca  em tabela melhorado ------------------------ |"); 
		 printf("\n|2. --- Busca com sentinela ------------------------------- |"); 
		 printf("\n|3. --- Pesquisa do maior  OU  menor elemento de uma tabela |"); 
		 printf("\n|4. --- Pesquisa do maior  E  menor elemento de uma tabela- |"); 
		 printf("\n|5. --- Determinacao de moda  de uma tabela---------------- |"); 
//		 printf("\n|6. --- Fim ------------------------------------------------|");
		 printf("\n|-----------------------------------------------------------|");
		 printf("\n|..... Digite sua opcao : ");
		 scanf ("%d",&opcao);
		 printf("								   |");
	  
			switch(toupper(opcao))
			{
				/*case  1: LerNumeros();
				  break;*/
				case  1: LerNumeros();TabelaMelhorado();
				  break;
				case 2: LerNumeros();Sentinela();
				  break;
				case 6: LerNumeros();MaiorOUmenor();
				  break;
				case 4: LerNumeros();MaiorEmenor();
				  break;
				case 5: LerNumeros();Moda();
				  break;
							 
			}
	} 
	while((opcao != 1) && (opcao != 2) && (opcao != 3) && (opcao != 4) && (opcao != 5));//(opcao != 6));	
 }	   
/* vector<int> vet
// struct vet[20];
	printf ("\n ------ENTRADA DE DADOS-------n");
	for(i=0; i<20; i++)
	{
		printf("\n Digite  o codigo da posiçao %d " ,i);
		scanf("%d",&vet[i].codigo);
 
 */
 
/*void LerNumeros()
{
	 int icont = 0;
	 float num;
	 
	 for (icont = 0; icont <= 19;icont++)
	 {
		 printf("\n|Digite o %d numero: ",(icont+1));
		 scanf ("%f",&num);
		 tabela[icont] = num;
	 }
}
	  */
 
void TabelaMelhorado()
{
//   printf("Leia dados melhorados");
   int achou,procura,n,dado_proc,j;
 printf("\n|Digite o numero: ",(j+1));
		 scanf ("%f",&tabela);
   procura = TRUE;
   achou = FALSE;
   //float tabela[20];
   
//   n = tabela.length;
   j = 0;
   
   while(procura = TRUE)
   {
	 j = j+1;
	 if(j > n)
	   procura = FALSE;
	 else
	 {
	 	procura = (tabela[j]!= dado_proc);
	 }
   }	
	if (j <= n)
	  printf("Dado achado na posicao",j);
	else 
	  printf("Dados nao achado");

}

void Sentinela()
{
   printf("Busca com sentinela");
   int achou,procura,n,dado_proc,j;
   achou = FALSE;
   float tabela[20];
   j=1;
   tabela[n]=dado_proc;
   
   while (tabela[j]!= dado_proc)
   {
	 j=j+1;
	 achou = (j!= n);
	 if (achou=TRUE)
	   printf("Dado achado na posicao",j);
	 else 
	   printf("Dados nao achado");
   }
}

void MaiorOUmenor()
{
	 int maior,j;
	 float tabela[20];
	 maior = 1;
	 
	 for (j=0;j<=2;j++)
	 {
	   if (tabela [j]>tabela[maior])
		 maior=j;
	 }
	 printf("maior elemento ",tabela[maior]);
}

void MaiorEmenor()
{
	 int maior,j, menor, i;
	 float tabela[20];
	 maior=1;
	 menor=1;
	 for (j=0;j<=2;j++)
	 {
		if (tabela [j]>tabela[maior])
		  maior = j;
		if (tabela[i]>tabela[menor])
		  menor = i;
		   
	 }
	 printf("maior elemento ",tabela[maior]);
	 printf("maior elemento ",tabela[menor]);
}

void Moda()
{
	 float tabela[20];
	 int conta,j,i,n;
	 float moda;
	 j=1;
	 conta=1;
	 while(j<n)
	 {
		j=j+1;
		if ((tabela[j]) =(tabela[j-conta]))
		  moda=tabela[j];
		conta=conta+1;
	 }
	 printf("moda igual",moda);
}
//}

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiro: veja as regras de postagem.

segundo: no laboratorio de codigos fontes, tem uns exemplo de metodos de ordenacao q o Myho posto.

terceiro: tem um topico nessa pagina msm, q mostra como iterar o loop a kd vz q o usuario digitar ENTER.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa ae quitZAUMMM mas eu sou nova aqui.. e nao sabia onde postar.. como estou hiper, ultra, mega preocupada com esse trabalho.. nem percebi o erro.. desculpa ae.. se alguem puder mover esse topico para o lcoal certo eu agradeco...flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

oie.. ainda estou aguardando alguem pra me ajudar.. modifiquei o codigo, porem ele nao esta imprimindo linha a linha quando pressiono a tecla ENTER. e nao consegui fazer a pesquisa binaria

Alguem poderia me dar um help, por gentileza

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.