Jump to content

Search the Community

Showing results for tags 'ponteiro'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 7 results

  1. luannsr12

    Ponteiro do mouse sumiu

    Olá pessoal, parece que o meu Photoshop atualizou aqui, pois apareceu algumas ferramentas que eu não tinha visto, e também sumiu o ponteiro do seletor , alguém pode me ajudar
  2. #include <iostream> #include <cstdlib> using namespace std; struct Page { int a; Page* b; }; int main(int argc, char *argv[]) { int size = 5; Page* p = (Page*) malloc(sizeof(Page)); p->a = 5; p->b = (Page*) malloc(sizeof(Page) * size); for (int i = 0; i < size; i++) { p->b[i] = NULL; } cout << p->b[3] << endl; return 0; } A ideia era criar uma página onde dentro teríamos um array de páginas inicialmente nulas. Mas por algum motivo eu não estou conseguindo criar o array interno. Pois quando tento instanciar o valor nulo para as células do array, o compilador informa que não é um array e não pode acessar. Antes de qualquer coisa, realmente necessito que seja uma alocação dinâmica. Grato desde já pela ajuda...
  3. Galera bom dia , estou com uma duvida como acesso a chave dentro dessa estrutura, ao meu ver seria assim ex: (*raiz)->reg.chave = 3 , mais nao estou conseguindo acessar a variavel chave. typedef int tipoChave; typedef struct tipoRegistro{ tipoChave chave; //outros itens... }tipoRegistro; typedef struct tipoNo* tipoApontador; typedef struct tipoNo{ tipoRegistro reg; tipoApontador esq,dir; }tipoNo;
  4. jesseufrrj

    Erro 'incompatible pointer type'

    Boa noite galera, Iniciante no C e se alguém puder me dar uma ajuda. O programa pega os dados de pacientes, usa uma função para achar o "fator" e usa esse fator multiplicado pela idade para gerar o CA(condicionamento aeróbico). Devo usar estruturas, alocação dinâmica e ponteiro. Não consigo entender o erro. #include <stdio.h> #include <stdlib.h> typedef struct { char nome[30]; int idade; float nbcr; float nbca; } TPaciente; void lerDados(TPaciente *P, int n); int resistencia (TPaciente *P, int n); // Nessa linha aparece a seguinte mensagem de erro -> [Warning] passing argument 1 of 'resistencia' from incompatible pointer type int main(){ TPaciente *g; // declarando um ponteiro do tipo TPaciente; int n; printf("Qual o numero de pacientes voce vai calcular a resistencia aerobica? \n"); scanf("%d", &n); g = ((TPaciente*) malloc(n*sizeof(TPaciente))); lerDados(g,n); resistencia(g,n); int i; float CA; int fator; for(i=0; i<n; i++){ fator = resistencia(g); //fator recebe o resultado da chamada de função resistencia CA = fator * g->idade; printf("\nO Condicionamento Aerobico do doente %s e %.0f", g->nome, CA); } free(g); } void lerDados(TPaciente *g, int n) { int i; for(i=0;i<n;i++){ printf("\n Qual o nome do paciente: "); scanf("%s", &(g+i)->nome); printf("\n Qual a idade do paciente: "); scanf("%d", &(g+i)->idade); printf("\n Qual o nbcr do paciente: "); scanf("%f", &(g+i)->nbcr); printf("\n Qual o nbca do paciente: "); scanf("%f", &(g+i)->nbca); } } int resistencia(TPaciente *g, int n){ int i, fator; float media; for(i=0; i<n ; i++){ media = ((g+i)->nbcr*3 + (g+i)->nbca*5)/10; if(media <= 70){ printf("FATOR = 3"); fator = 3; } if((media > 70) && (media < 100)){ printf("FATOR = 2"); fator = 2; } if(media > 100){ printf("FATOR = 1"); fator = 1; } return fator; } }
  5. Gabriel De Freitas

    Problema com Edição de Matriz fora do main()

    Então galera, eu tô numa dúvida extrema com o código abaixo. Eu começei a estudar ponteiros em C faz alguns dias e eu acredito que seja a solução pro meu problema, mas não sei como tratar o código. O problema é o seguinte. Na função multiplicarMatrizes() eu não consigo acessar a matriz valoresC obviamente pq foi declarada dentro do main. Mas o problema é que eu não posso declara-la 'globalmente' fora do main devido ao fato de que eu preciso ler o numero de linhas/colunas de cada matriz no inicio do programa (não posso declara-las no código com um numero constante de linhas ou colunas). Código: #include<stdio.h> #include<stdlib.h> #define G 5 void lerMatrizes(int matrizX[][G], int matrizY[][G]); void multiplicaMatrizes(int A[][G], int B[][G]); int linhasA, colunasA, linhasB, colunasB; int main() { int i, j; printf("\nInforme a quantidade de linhas da matriz A : "); scanf("%d",&linhasA); printf("\nInforme a quantidade de colunas da matriz A : "); scanf("%d",&colunasA); printf("\nInforme a quantidade de linhas da matriz B : "); scanf("%d",&linhasB); printf("\nInforme a quantidade de colunas da matriz B : "); scanf("%d",&colunasB); int valoresA[linhasA][colunasA], valoresB[linhasB][colunasB], valoresC[colunasA][linhasB]; lerMatrizes(valoresA, valoresB); if (colunasA == linhasB) { multiplicaMatrizes(valoresA, valoresB); } else { printf("\n\nNão é possivel multiplicar matrizes neste formato. O numero de colunasA tem que ser igual linhasB"); } return 0; } void lerMatrizes(int matrizX[][G], int matrizY[][G]) { int i, j; // Gera Valores p Matriz1 for(i=0; i<linhasA; i++) { for(j=0; j<colunasA; j++) { matrizX[i][j] = i+1 * j+1; } } // Gera Valores p Matriz2 for(i=0; i<linhasB; i++) { for(j=0; j<colunasB; j++) { matrizY[i][j] = i+1 * j+1; } } } void multiplicaMatrizes(int A[][G], int B[][G]) { int i, j, k, temp=0; for(i=0; i<colunasA; i++) { for(j=0; j<linhasB; j++) { valoresC[i][j]=0; for(k=0; k<G; k++) temp += A[i][k] * B[k][j]; valoresC[i][j] = temp; temp=0; } } } Eu fiz o código usando um numero constante de linhas/colunas, aí qndo fui altera-lo travei nesta parte aí. Não consegui também passar a matriz por parâmetro, a solução seria um ponteiro? Agradeço desde já!
  6. samucaur

    Gerar relatório em .txt de uma lista

    Preciso gerar um relatório .txt dos produtos cadastrados separados em produtos ativos, inativos, falta implementar a parte de vendas no MENU PRINCIPAL. Tô apanhando muito em ponteiros sem alguém puder me ajudar ficaria muito grato, wlw galera. #include<iostream> #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<windows.h> #include <locale.h> #include <sstream> #include <string> // ler e escrever um arquivo de texto #include <fstream> // ler e escrever um arquivo de texto using namespace std; struct cadastro{ char nome[50]; int ID; int quantidade; float preco; bool ativo; cadastro *prox; }; cadastro * inserir(cadastro *inicio, cadastro *novo){ cadastro *encontrar = NULL; cadastro * aux = inicio; if(inicio == NULL){ inicio = novo; }else if(novo->ID > inicio->ID && inicio->prox==NULL){ inicio->prox = novo; }else if(novo->ID < inicio->ID){ novo->prox = inicio;//novo aponta pro prox que é o inicio ate então, o prox=inicio é um cara só inicio = novo;//inicio agora é o novo }else{ while(aux->prox->ID < novo->ID && aux->prox->prox != NULL){//enquanto o novo for maior que o anterior aux=aux->prox;//aux é o ultimo que aponta para prox } //inserir o novo depois do aux //se for menor que o ultimo (saiu por causa do primeiro criterio) if(aux->prox->ID > novo->ID ){ novo->prox = aux->prox; //aponta pro mesmo proximo do aux, ja que ele sera inserido depois do aux aux->prox = novo; }else{ //preciso inserir na ultima posicao //o aux esta na penultima posicao, tenho que me mover para a ultima aux = aux->prox; //depois de chegar na ultima posicao, insiro o novo elemento no final (prox) aux->prox = novo; } return inicio; } } cadastro * alterar (cadastro *inicio, int ID, int quantidade){ cadastro * aux = inicio; if(inicio == NULL){ cout << "NENHUM PRODUTO CADASTRADO" <<endl; }else{ while(aux != NULL){ if(aux->ID == ID) break; aux = aux->prox;//aux é o que recebe o prox } if(aux != NULL){ //o produto que querem alterar e o AUX aux->quantidade = quantidade; }else{ cout << "PRODUTO NAO CADASTRADO" << endl; } } return inicio; } cadastro * listar_produtos (cadastro *inicio, int ID){ cadastro * aux = inicio; if(inicio == NULL){ cout << "NENHUM PRODUTO CADASTRADO" <<endl; }else{ while(aux != NULL){ if(aux->ID == ID) break; aux = aux->prox;//aux é o que recebe o prox } if(aux != NULL){ if(aux->ativo == true){ cout << "PRODUTO ATIVO - SERA INATIVADO" <<endl; aux->ativo = false; }else{ cout << "PRODUTO INATIVO - SERA ATIVADO" <<endl; aux->ativo = true; } //o produto que querem alterar e o AUX }else{ cout << "NENHUM PRODUTO CADASTRADO" <<endl; } } return inicio; } cadastro * ativo_inativo (cadastro *inicio, int ID){ cadastro * aux = inicio; if(inicio == NULL){ cout << "NENHUM PRODUTO CADASTRADO" <<endl; }else{ while(aux != NULL){ if(aux->ID == ID) break; aux = aux->prox;//aux é o que recebe o prox } if(aux != NULL){ if(aux->ativo == true){ cout << "PRODUTO ATIVO - SERA INATIVADO" <<endl; aux->ativo = false; }else{ cout << "PRODUTO INATIVO - SERA ATIVADO" <<endl; aux->ativo = true; } //o produto que querem alterar e o AUX }else{ cout << "NENHUM PRODUTO CADASTRADO" <<endl; } } return inicio; } void MenuPrincipal(){ cout << "#---------------------#" << endl; cout << "# MENU PRINCIPAL #" << endl; cout << "#---------------------#" << endl; cout << "[1] - GERENCIAR ESTOQUE" << endl; cout << "[2] - COMPRAS" << endl; cout << "[3] - SAIR DO PROGRAMA" << endl; cout << "OPCAO: "; } void MenuEstoque(){ cout << "#--------------------------------------#" << endl; cout << "# MENU ESTOQUE #" << endl; cout << "#--------------------------------------#" << endl; cout << "[1] CADASTRAR PRODUTO" << endl; cout << "[2] ALTERAR QUANTIDADE" << endl; cout << "[3] ATIVAR OU INATIVAR PRODUTO" << endl; cout << "[4] LISTAR TODOS OS PRODUTOS" << endl; cout << "[5] LISTAR PRODUTOS ATIVOS" << endl; cout << "[6] LISTAR PRODUTOS INATIVOS" << endl; cout << "[7] VOLTAR AO MENU PRINCIPAL" << endl; cout << "OPCAO: "; } void MenuCompras(){ cout << "----------------------------------" << endl; cout << "[1]. PEDIDOS" << endl; cout << "[2]. LISTAR" << endl; cout << "[3]. SAIR" << endl; cout << "OPCAO: "; } void carregar_arquivo(){//EXEMPLO DE COMO IMPRIMIR A LISTA string line; ifstream myfile ; // ifstream = padrão ios:in para fazer o implot do arquivo } //TESTANDO void escreve_arquivo(){ int x = 2 , y = 2, soma = 0; ofstream Saida; Saida.open("saida.txt"); soma = x + y; Saida << "A soma é: " << soma << endl; Saida.close(); } int main(){ cadastro *inicio= NULL;//ponteiro, vazio de inicio cadastro *fim= NULL; cadastro *aux= NULL;//possui um endereço de memoria(um ponteiro vai armazenar um endereco de memória) int ID, QTDE; SetConsoleOutputCP(1252); system ("color F1"); int op_Menu_Principal = -1; while(op_Menu_Principal != 3){ MenuPrincipal(); cin >> op_Menu_Principal; //Captura de variável do menu principal switch(op_Menu_Principal){ case 1: int op_Menu_Estoque = -1; //while(op_Menu_Estoque){ while( op_Menu_Estoque!= 7){ MenuEstoque(); cin >> op_Menu_Estoque; switch(op_Menu_Estoque){ case 1: aux = (cadastro *) malloc(sizeof(cadastro));//nao é vetor pois nao tem nenhum numero multiplicando o tamanho do ponteiro, sizeof cout << "-------------------------------------------" << endl; cout <<"INFORME o ID: "; cin >> aux->ID; cout <<"INFORME O NOME DO PRODUTO: "; cin >> aux->nome; cout <<"INFORME QUANTIDADE DO PRODUTO: "; cin >> aux->quantidade; cout << "INFORME O PREÇO DO PRODUTO: "; cin >> aux->preco; while(aux->quantidade < 6 || aux->quantidade < 0) { cout << "DIGITE A QUANTIDADE CORRETA: "; cin >> aux->quantidade; } aux->ativo = true; aux->prox = NULL; inicio = inserir(inicio, aux); cout << "-------------------------------------------" << endl; break; case 2: cout << "-------------------------------------------" << endl; cout << "INFORME O ID: "; cin >> ID; cout << "INFORME A NOVA QUANTIDADE: "; cin >> QTDE; inicio = alterar(inicio, ID, QTDE); cout << "-------------------------------------------" << endl; break; case 3: cout << "-------------------------------------------" << endl; cout << "INFORME O ID: "; cin >> ID; inicio = ativo_inativo(inicio, ID); cout << "-------------------------------------------" << endl; break; case 4: aux = inicio;//aux vai ser impresso, então sera o primeiro cout << "-------------------------------------------" << endl; cout << "RELATÓRIO DOS PRODUTOS CADASTRADOS" << endl; while(aux != NULL){//se aux for diferente de null, tem algo nele o while vai contar cout <<"ID: " << aux->ID << endl; cout << "PRODUTO: " << aux->nome << endl; cout << "QUANTIDADE: " << aux->quantidade << endl; aux = aux->prox; } break; case 5: cout << "-------------------------------------------" << endl; cout << "RELATÓRIO DOS PRODUTOS CADASTRADOS ATIVADOS" << endl; aux = inicio;//aux vai ser impresso, então sera o primeiro while(aux != NULL && aux->ativo == true){//se aux for diferente de null, tem algo nele o while vai contar cout <<"ID: " << aux->ID << endl; cout << "PRODUTO: " << aux->nome << endl; cout << "QUANTIDADE: " << aux->quantidade << endl; aux = aux->prox; } cout << "-------------------------------------------" << endl; break; case 6: cout << "-------------------------------------------" << endl; cout << "RELATÓRIO DOS PRODUTOS CADASTRADOS DESATIVADOS" << endl; aux = inicio;//aux vai ser impresso, então sera o primeiro while(aux != NULL && aux->ativo == false){//se aux for diferente de null, tem algo nele o while vai contar cout <<"ID: " << aux->ID << endl; cout << "PRODUTO: " << aux->nome << endl; cout << "QUANTIDADE: " << aux->quantidade << endl; aux = aux->prox; } cout << "-------------------------------------------" << endl; break; } } } } int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCdmShow); { MessageBox (NULL, "OBRIGADO POR USAR NOSSO SISTEMA!!","SVT SYSTEM", MB_OK | MB_ICONINFORMATION); } }
  7. Ouvi falar que usar ponteiros gasta menos memória e por isso diminui o tempo de execução de um código. Mas não consegui achar nada na internet que prove ou desminta isso. Nem em pequenos programas meu pc executa mais (nem menos) devagar. É verdade que usar ponteiros gasta menos memória e faz o programa executar mais rápido?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.