void inserir(Par **inicio,Par **fim,int x,int y){
		if(*inicio == NULL){
				*inicio = *fim = criar(x,y);
		}else{
			Par *novo = criar(x,y);
			(*fim)->prox = novo;
			novo->ant = *fim;
			*fim = novo;
		}
	}
Ejemplo n.º 2
0
//----------------------
main()
{
  menu();
  int quant;
  criar();

  do
  {
      printf ("Informe o numero de identificação da peça: ");
      scanf  ("%d",&quant);
      fflush(stdin);
      if (quant == 0) {system ("cls");break;}
      reg.id= quant;
      fflush(stdin);
      printf ("Informe a descrição da peça: ");
      gets   (reg.desc);
      fflush(stdin);
      printf ("Informe o fabricante: ");
      gets   (reg.fabricante);
      fflush(stdin);
      printf ("Informe o ano de fabricação: ");
      scanf  ("%d",&reg.ano);
      fflush(stdin);
      printf ("Informe o Preço Unitario: ");
      scanf  ("%d",&reg.preco);
      fflush(stdin);
      printf ("Informea quantidade disponivel: ");
      scanf  ("%d",&reg.quantidade);
      fflush(stdin);
      printf ("----------------------------------------\n");
      getch  ();
      system ("cls");
      menu();

      fwrite (&reg,sizeof(reg),1,arquivo);
  }
  while (quant != 0);
  fechar();

  abrir();
  int fab_2009=0,mais_1000=0,somatorio=0,cara=0,barata;
  barata= reg.preco;
  while (fread(&reg,sizeof(reg),1,arquivo))
  {
      if (reg.ano == 2009) {++fab_2009;}
      if (reg.preco > 1000) {++mais_1000;}
      if (((reg.id % 2)== 1) || (reg.preco > 30)) {somatorio= somatorio + reg.preco;}
      if (reg.preco > cara) {cara= reg.preco;}
      if (reg.preco < barata) {barata= reg.preco;}
  }
  fechar();

  printf ("- Foram fabricadas %d peças em 2009\n\n",fab_2009);
  printf ("- Contem %d peças mais caras que 1000 reias\n\n",mais_1000);
  printf ("- A soma dos preços de peças com 'Id' impar\n\n");
  printf ("ou mais caro que 30 reais é %d\n\n",somatorio);
  printf ("- %d é o presço mais caro\n\n",cara);
  printf ("- %d é o preço mais barato\n\n",barata);
  getch  ();
}
main()
{
  char letra;
  int  num_as;
  tipopilha *ponteiro;
  ponteiro = criar();
  
  fflush(stdin);
  printf("Digite uma letra (X finaliza)\n");
  scanf("%c", &letra);
  letra = toupper(letra);
  while (letra != 'X')
  {
    push(ponteiro, letra);
    fflush(stdin);
    printf("Digite uma letra (X finaliza)\n");
    scanf("%c", &letra);
    letra = toupper(letra);
  }
  printf("\n");
  num_as = conta_letras_as(ponteiro);
  printf("Quantidade de letras As -> %d", num_as);

  getch();
}
Ejemplo n.º 4
0
main()
{
  int num;
  tipo_pilha *pilha;
  system("cls");
  pilha = criar();
  printf("Digite um numero (0 finaliza)\n");
  scanf("%d", &num);
  while (num != 0)
  {
    push(pilha, num);
    printf("Digite um numero (0 finaliza)\n");
    scanf("%d", &num);
  }

  printf("\n");
  imprimir_pilha(pilha);

  getch();

  printf("\n");
  pop(pilha);

  printf("\n");
  imprimir_pilha(pilha);

  getch();
}
Ejemplo n.º 5
0
Archivo: main.c Proyecto: streeck/ed1
int main() {
int i;

  //criar a lista
  LISTA_LIGADA_CIRCULAR lista;
  criar(&lista);

  //inserir itens na &lista
  for (i = 0; i < 10; i++) {
    ITEM item;
    item.chave = i;
    item.valor = rand();
    inserir_fim(&lista, &item);
  }

  imprimir(&lista);

  ITEM item1;
  if (buscar(&lista, 9, &item1)) {
    printf("encontrado: %d - %d\n---\n", item1.chave, item1.valor);
  }

  remover_posicao(&lista, 9);

  ITEM item2;
  item2.chave = 111;
  item2.valor = 333;
  inserir_fim(&lista, &item2);

  imprimir(&lista);

  apagar_lista(&lista);

  return 0;
}
Lista * somar(Lista *operando1, Lista *operando2) //funcionando perfeitamente
{
	int i;
	int valor = 0;
	int tam1 = tamanho(operando1);
	int tam2 = tamanho(operando2);
	Lista *resultadoSoma = criar();

    // caso os operandos sejam de tamanhos distintos, completa-se com zeros no inicio.
	if(tam1 > tam2){
        for(i = 0; i < tam1-tam2; i++)
            inserir_primeiro(operando2, 0);
	}
    // caso os operandos sejam de tamanhos distintos, completa-se com zeros no inicio.
	if(tam2 > tam1){
        for(i = 0; i < tam2-tam1; i++)
            inserir_primeiro(operando1, 0);
    }

    // soma do ultimo algarismo até o primeiro
    // colocando as unidades no resultado e somando a dezena na proxima soma.
	tam1 = tamanho(operando1);

	while(tam1 > 0){
	    valor = ler_pos(operando1, tam1-1) + ler_pos(operando2, tam1-1) + valor/10 ;
	    inserir_primeiro(resultadoSoma, valor%10);
        tam1--;
	}

    // caso sobre uma dezena da soma do primeiro algarismo, ela é adicionada no inicio do numero.
	if(valor/10 > 0)
        inserir_primeiro(resultadoSoma, valor/10);
    return resultadoSoma;
}
Ejemplo n.º 7
0
main()
{
  char expressao[100];
  tipo_pilha *pilha;
  system("cls");
  pilha = criar();
  printf("Digite uma frase:\n");
  gets(expressao);
  int tamanho=strlen(expressao)-1,i=0;
  for (i;i<=tamanho;i++){
        if(expressao[i]=='('){
            push(pilha,expressao[i]);
        }
        else if((expressao[i]==')')& !(pilha_vazia(pilha))){
            pop(pilha);
        }
      }
 if (pilha_vazia(pilha)){
    puts("EXPRESSAO CORRETA");
 }
 else{
    puts("EXPRESSAO INCORRETA LEK");
 }


  getch();
}
Ejemplo n.º 8
0
int main(int argc, char *argv[])
{
	char *entrada=argv[1], *saida=argv[2]; //Obtendo o nome dos arquivos passados por parametro ao executar o programa
	int instancias,aux;
	FILE *input= fopen (entrada,"r"); //Abertura do arquivo de leitura de dados.
	FILE *out= fopen (saida,"w+a"); //Abertura do arquivo para gravação dos dados de saida.
    Matriz *MAT;
    if(input == NULL ) //Verificar se o arquivo de entrada não pode ser aberto.
    { 
        fprintf(out,"ERRO 01: Houve algum problema ao abrir o seu arquivo de texto, verifique se o arquivo existe ou se o nome digitado esta correto");
        fclose(input);
        fclose(out);
        return 0;
    }
    fscanf(input,"%d ",&instancias); 
    if(instancias <= 0) //Verifica se o número de instãncias lido é permitido.
    {
        fprintf(out,"ERRO 02: Número de instâncias insuficiente");
        fclose(out);
        fclose(input);
        return 0;
    }
    while(instancias > 0)//Loop para executar as leituras e operações das matrizes de acordo com o número de instâncias.
    {
            MAT = criar(MAT,input,out);
            MAT = carregar(MAT,input);
            MAT = verificar(MAT,input,out);
            imprimir(MAT,out,instancias);
            liberar(MAT);
            instancias--;
    }
    fclose(out); //fechamento dos arquivos utilizados durante o programa
    fclose(input);
    return 0;
}
Ejemplo n.º 9
0
car *inserir(car**inicio,car**fim ){
	int placa,cont=0;
	car *p;
		printf("Informe um numero ");
		scanf("%d",&cont);
	if(*inicio==NULL){
		*fim=*inicio=criar(&*inicio,cont);
	}else{
		p=criar(&*inicio,cont);
		p->prox=*inicio;
		*inicio=p;
		p=p->prox;
		*fim=p;
	}
	
}
Ejemplo n.º 10
0
//ADICIONAR AO HEADER
Lista* preparar_lista(){
    Lista* a = criar();
    
    a = inserir(a, 0, RAM_VAL_2GB, HD_VAL_500GB, PROC_CLOCK_VAL_428);
    a = inserir(a, 1, RAM_VAL_8GB, HD_VAL_1000GB, PROC_CLOCK_VAL_828);
    a = inserir(a, 2, RAM_VAL_8GB, HD_VAL_250GB, PROC_CLOCK_VAL_423);
    a = inserir(a, 3, RAM_VAL_4GB, HD_VAL_500GB, PROC_CLOCK_VAL_823);
    a = inserir(a, 4, RAM_VAL_1GB, HD_VAL_750GB, PROC_CLOCK_VAL_423);
    a = inserir(a, 5, RAM_VAL_1GB, HD_VAL_250GB, PROC_CLOCK_VAL_423);
    a = inserir(a, 6, RAM_VAL_2GB, HD_VAL_750GB, PROC_CLOCK_VAL_428);
    
    return a;
}
Ejemplo n.º 11
0
int main() {
    int estado = 1;    
    unsigned int discos = 0; 
    Pilha * A = criar();
    Pilha * B = criar();
    Pilha * C = criar();
    while(estado != 1000){
        switch(estado){
            case 1 :
                system("cls");
                estado = inicializar(A, &discos);     
                break;
            case 2 :
                system("cls");
                mostrarPinos(A,B,C); 
            case 3 :
                mostrarPossibilidades(A,B,C);
            case 4 :                
                estado = movimentar(A, B, C);                
                break;            
            case 5 :
                if(tamanho(C) == discos){
                    estado = 6;
                }
                else{
                    estado = 2;   
                }
                break;  
            case 6 :
                terminar(A, B, C);
                estado = 1000;
                break;            
        }
        
    }
    printf("Jogo finalizado!!");
}
Ejemplo n.º 12
0
int main(){
    int op;
    FILE *arquivo;
    criar(arquivo);
    do{
        printf("***********************************\n");
        printf("*               MENU              *\n");
        printf("***********************************\n");
        printf("*   1 - Cadastrar Banda           *\n");
        printf("*   2 - Listar Bandas             *\n");
        printf("*   3 - Pesquisar Banda           *\n");
        printf("*   4 - Alterar Banda             *\n");//falta
        printf("*   5 - Remover Bandas            *\n");//falta
        printf("*   6 - Creditos                  *\n");
        printf("*   7 - Sair                      *\n");
        printf("***********************************\n");
        printf("\nDigite sua opcao: ");
        scanf("%d",&op);
        switch(op){
            case 1:
                    system("cls");
                    inserir(arquivo);
                    break;
            case 2:
                    system("cls");
                    exibir(arquivo);
                    break;
            case 3:
                    system("cls");
                    pesquisar(arquivo);
                    break;
            case 4:
                    //falta
                    break;
            case 5:
                    //falta
                    break;
 
            case 6:
                    system("cls");
                    creditos();
                    break;
            default:
                    printf("Saindo!\n");
       }
    }while(op != 7);
    system("pause");
}
Ejemplo n.º 13
0
inserir2(car **ini, car **fim2,car **inicio){
	car *p,*aux=*inicio;
	int cont=0;
	cont=aux->cont;

	if(*ini==0){
		*ini=criar2(&*ini,cont);

	}else{
		p=criar(&*ini,cont);
		p->prox=*ini;
		*ini=p;
		p=p->prox;
		*fim2=p;
	}	
}
Lista * numero_para_lista(int n) // funcionando perfeitamente
{
    Lista *resultado = criar();
    if(n == 0)
        inserir_primeiro(resultado,0);
    else
    {
        while(n>0)
        {
            inserir_primeiro(resultado,n%10);
            n = n/10;
        }
    }

    return resultado;
}
Ejemplo n.º 15
0
int main() {
	struct pilha *minha_pilha;
	int tamanho;

	minha_pilha = criar();
	empilhar(minha_pilha, 'a');
	empilhar(minha_pilha, 'b');
	empilhar(minha_pilha, 'c');
	tamanho = tamanho_pilha(minha_pilha);
	printf("Desempilhando elementos \n");
	for (int i = 0; i < tamanho; i++) {
		printf("%c \n", desempilhar(minha_pilha));
	}
	destruir(minha_pilha);

	return 0;
}
Ejemplo n.º 16
0
main()
{
  char palavra[50];
  int i=0;
  tipo_pilha *pilha;
  system("cls");
  pilha = criar();
  printf("Digite uma palavra \n");
  fflush(stdin);
  strupr(gets(palavra));
  int tamanho = strlen(palavra);
  for (i=0;i<tamanho;i++){
    push(pilha,palavra[i]);
  }
  printf("\n");
  imprimir_pilha(pilha);
  getch();
}
Lista * listaXnum(Lista * l, int n) // funcionando perfeitamente
{
	Lista * resultadoMult = criar();
	int valor = 0; // resultado da multiplicação de 'n' por um valor da lista
	int tam;

    // multiplica 'n' por toda a lista 'l'
	for(tam = tamanho(l); tam > 0; tam--)
    {
		valor = n*ler_pos(l, tam-1) + valor/10;     //valor é um numero de dois digitos
		inserir_primeiro(resultadoMult, valor%10);  // insere a unidade no final
	}

	// ao terminar a multiplicacao, insere o "vai um", que é a dezena, no inicio do numero;
	if(valor/10 > 0)
		inserir_primeiro(resultadoMult, valor/10);

	return resultadoMult;
}
Ejemplo n.º 18
0
int main(int argc, char const *argv[]) {
  printf("antes\n");
  system("free");
  BigNum *big = criar();
  int i = 0;
  for(i=0; i < 100; i++){
    adicionarNumero(i, big);
  }

  //for(i=0; i < 10; i++){
  //  adicionarNumero(i, big);
  //}
  getchar();
  printf("depois alocado\n");
  system("free");
  destruir(big);
  getchar();
  printf("depois desalocado\n");
  system("free");
  return 0;
}
Ejemplo n.º 19
0
//------------------------------------------------------------------------------------------
main()
{
  char frase[50],frase2[50];
  int pos;
  tipo_pilha *pilha;
  system("cls");
  pilha = criar();
  printf("Digite uma frase\n");
  gets(frase);

  for (pos = 0; pos <= strlen(frase) - 1; ++pos)
  {
    push(pilha, frase[pos]);
  }


  printf("\n");
  imprimir_pilha(pilha,frase2);

  verificacao(frase,frase2);

}
Ejemplo n.º 20
0
//------------------------------
main()
{
  char letra;
  int numero_de_vezes=0;
  tipo_pilha *pilha;
  pilha = criar();

  printf ("Informe a letra: ");
  scanf  ("%c",&letra);
  while (toupper(letra) != 'X')
  {
      push(pilha,letra);
      fflush (stdin);
      printf ("Informe a letra: ");
      scanf  ("%c",&letra);
  }

  verificacao(pilha);
  printf ("O numero de vezes que aparece a letra A é %d",verificacao(pilha));
  getch  ();

}
Ejemplo n.º 21
0
Archivo: main.c Proyecto: streeck/ed1
int main(){
	ARVORE_BINARIA arv1;

	criar(&arv1);

	NO *node;
	INFO item;

	item.chave = 1; 
	item.valor = '+';
	node = criar_raiz(&arv1, &item);

	item.chave = 2;
	item.valor = 'A';
	inserir_esquerda(node, &item);

	item.chave = 3;
	item.valor = '*';
	node = inserir_direita(node, &item);

	item.chave = 4;
	item.valor = 'B';
	inserir_esquerda(node, &item);

	item.chave = 5;
	item.valor = 'C';
	node = inserir_direita(node, &item);

	emordem(&arv1);
	printf("\n");

	preordem(&arv1);
	printf("\n");

	posordem(&arv1);
	printf("\n");

	return 0;
}
Lista * listaXlista(Lista *operando1, Lista *operando2) // funcionando perfeitamente
{
    int tam2 = tamanho(operando2);
    int i,j;
    Lista *resultado1 = criar();
    Lista *resultado2;
    Lista *lixo;

    for(j = 0; tam2 > 0; j++, tam2--)
    {
        resultado2 = listaXnum(operando1, ler_pos(operando2, tam2-1));
        for(i = 0; i<j ;i++)
        {
            inserir_ultimo(resultado2, 0);
        }
        // como o resultado1 sempre vai pegar um valor de soma e vai perder o caminho para a lista original
        // a variavel "lixo" sempre pega os endereços perdidos e destrói.
        lixo = resultado1;
        resultado1 = somar(resultado1, resultado2);
        destruir(lixo);
    }

    return resultado1;
}
Ejemplo n.º 23
0
Archivo: main.c Proyecto: streeck/ed1
int main() {
  int i;

  //criar a &lista
  LISTA_DUPLAMENTE_LIGADA lista;
  criar(&lista);

  //inserir itens na &lista
  for (i = 0; i < 10; i++) {
    ITEM item;
    item.chave = i;
    item.valor = rand();
    if (i%2==0) {
      inserir_inicio(&lista, &item);
    } else {
      inserir_fim(&lista, &item);
    }
  }

  imprimir(&lista);
  printf("---\n");
  imprimir_inverso(&lista);
  printf("---\n");

  {
    ITEM item;
    if (buscar(&lista, 8, &item)) {
      printf("encontrado: %d - %d\n---\n", item.chave, item.valor);
    }

    for (i = 0; i < 3; i++) {
      remover_inicio(&lista);
    }
  }

  // tenta inserir novo ITEM em posicao invalida
  ITEM item;
  item.chave = rand();
  item.valor = 111;
  inserir_posicao(&lista, 9, &item);
  

  imprimir(&lista);
  printf("---\n");

  // insere 5 itens no final da lista
  for (i = 0; i < 5; i++) {
    ITEM item;
    item.chave = rand();
    item.valor = i;
    inserir_fim(&lista, &item);
  }

  imprimir(&lista);
  printf("---\n");

  // remove 3 ultimos itens da lista
  for (i = 0; i < 3; i++) {
    remover_fim(&lista);
  }

  // remove o primeiro no
  remover_posicao(&lista, 0);

  imprimir(&lista);
  printf("---\n");

  apagar_lista(&lista);

  return 0;
}
Ejemplo n.º 24
0
void main(){
  clrscr;
  criar();
  menu();}
Ejemplo n.º 25
0
 int main()
{
	FILE *arquivoSimetrico;
	FILE *arquivoPreOrdem;
	FILE *arquivoPosOrdem;
	FILE *arquivoEntrada;
	
	arquivoSimetrico = fopen("imprimirSimetrico.txt","w");
	arquivoPreOrdem = fopen("imprimirPreOrdem.txt","w");	
	arquivoPosOrdem = fopen("imprimirPosOrdem.txt","w");

	
	NoArv *arvore =  criar();

	int opcao;
	int numero;

	char *letra= (char*) malloc(sizeof(char)*40);
	char *nomeArquivo = (char*) malloc(sizeof(char)*40);
	
	do{

		printf("\n 0-Sair \n 1-Inserir \n 2- Remover \n 3-Buscar \n 4- imprimirSimetrico \n 5- imprimirPreOrdem \n 6- imprimirPosOrdem \n 7- Ler de Arquivo de Entrada");
		scanf("%d",&opcao);


		switch (opcao){

			case 1:

				printf("\n Digite o a informação do nó \n ");
				scanf("%d",&numero);
				printf("\n Digite o a letra do nó \n ");
				scanf(" %[^\n]",letra);

				

				arvore = inserir(arvore,numero,letra);

				break;


			case 3:
				printf("\n Digite o a informação do nó \n ");
				scanf("%d",&numero);
				buscar(arvore,numero);
				break;

			case 4:
				printf("\n Imprimindo Simetrico \n");
				imprimirSimetrico(arvore,arquivoSimetrico);
				break;

			case 5:
				printf("\n Imprimindo Pré Ordem  \n");
				imprimirPreOrdem(arvore,arquivoPreOrdem);
				break;

			case 6:
				printf("\n Imprimindo Pós Ordem \n");
				imprimirPosOrdem(arvore,arquivoPosOrdem);
				break;

			case 7:
	
				printf("Digite um nome do arquivo \n");
				scanf(" %40[^\n]",nomeArquivo);
	
				arquivoEntrada = fopen(nomeArquivo,"r");
	
				while( (fscanf(arquivoEntrada,"%d %c",&numero,letra)) != EOF ){
	

					arvore = inserir(arvore,numero,letra);

				}
	
	
				break;

			default:
				printf("\n Ok Saindo...\n ");				
		}
	}while( opcao != 0 );

	fclose(arquivoSimetrico);
	fclose(arquivoPreOrdem);
	fclose(arquivoPosOrdem);
	fclose(arquivoEntrada);
	free(nomeArquivo);
				


	return 0;
}