Jump to content

Search the Community

Showing results for tags 'c'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • Pascal
    • Python
    • Bases de Dados
    • Visual Basic Clássico
    • Visual Basic for Applications (VBA)
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • Apresentação de Software
  • Informática
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica
    • Automação Industrial
    • Matemática
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categories

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Found 4,996 results

  1. whoami-r

    Bubble Sort em lista ligada

    Boas pessoal, é o seguinte: eu tenho uma lista ligada de estruturas em que cada nó é constituído por vários dados. typedef struct dados_pilotos piloto, *pPiloto; typedef struct dados_carros carro, *pCarro; typedef struct lista carroPiloto, *pCarroPiloto; struct dados_pilotos { char nome[100]; int id; data nasc; // struct para data de nascimento do piloto float peso; float exp; // exp >= 0.0 int impedimento; // lesão ou penalização pPiloto prox; // ponteiro para o prox piloto da lista }; struct dados_carros { int id; int potencia; int avariado; // fica impedido 1 corrida após acidente pCarro prox; // ponteiro para o prox carro da lista }; struct lista { piloto piloto; carro carro; int *tempo; pCarroPiloto prox; }; Cada nó da lista é constituído por 1 piloto, 1 carro e um ponteiro *tempo que aponta para uma matriz com vários tempos de corridas. Aqui está a criação da lista: pCarroPiloto criaListaCarroPiloto(piloto *p, carro *c, int tam, int carros) { pCarroPiloto lista = NULL, aux; int i=0, j=0, cont=0; // i -> contador para percorrer os pilotos // j -> contador para percorrer os carros // cont -> conta o numero de vezes que é concluido um nó com sucesso (piloto+carro) for(i = 0; cont < tam; i++) { if(lista == NULL) { // PILOTOS if(p[i].impedimento == 0) { lista = malloc(sizeof(carroPiloto)); strcpy(lista->piloto.nome, p[i].nome); lista->piloto.id = p[i].id; // CARROS while(j < carros) { if(c[j].avariado == 0) { lista->carro.id = c[j].id; lista->prox = NULL; j++; cont++; break; } else j++; } } aux = lista; } else { if(p[i].impedimento == 0) { aux->prox = malloc(sizeof(carroPiloto)); aux = aux->prox; strcpy(aux->piloto.nome, p[i].nome); aux->piloto.id = p[i].id; while(j < carros) { if(c[j].avariado == 0) { aux->carro.id = c[j].id; aux->prox = NULL; j++; cont++; break; } else j++; } } } } return lista; } E aqui as funções que criam os vários tempos por volta de cada combinação carro/piloto: int calculaIdade(data nasc, data atual) { int meses[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int idadeD, idadeM, idadeA; if(nasc.dia > atual.dia) { atual.dia = atual.mes + meses[nasc.mes - 1]; atual.mes = atual.mes - 1; } if(nasc.mes > atual.mes) { atual.ano = atual.ano - 1; atual.mes = atual.mes + 12; } if(nasc.ano > atual.ano) exit(0); idadeA = atual.ano - nasc.ano; idadeM = atual.mes - nasc.mes; idadeD = atual.dia - nasc.mes; return idadeA; } int calculaSegundos(int idadeP, int pesoP, float expP, int PotC, int metros){ return metros/20 + min(3, max(1, 20-expP))*intUniformRnd(1,3) + (float)pesoP/idadeP*intUniformRnd(1,2) + 500.0*(intUniformRnd(1,2))/PotC; } pCarroPiloto tempoPorVolta(pCarroPiloto lista, piloto *p, carro *c, treino caract) { pCarroPiloto aux = lista, novo; int i=0, j=0, idade, peso, potencia, prob; int tempos[caract.n_carros][caract.voltas]; // matriz para guardar os tempos de cada piloto int volta[caract.n_carros]; data nasc, atual; int h, m, s;; float exp; int soma; obtemData(&atual.dia, &atual.mes, &atual.ano, &h, &m, &s); printf("\n\n %2.2d/%2.2d/%d: %2.2d:%2.2d:%2.2d\n", atual.dia, atual.mes, atual.ano, h, m, s); for(i = 0; i < caract.n_carros; i++) { aux->tempo = malloc(sizeof(int) * caract.voltas); printf(" Piloto %d\t", aux->piloto.id); nasc = lista->piloto.nasc idade = calculaIdade(nasc,atual); peso = lista->piloto.peso; exp = lista->piloto.exp; potencia = lista->carro.potencia; soma = 0; for(j = 0; j < caract.voltas; j++) { tempos[i][j] = calculaSegundos(idade,peso,exp,potencia,caract.comprimento); aux->tempo[j] = tempos[i][j]; soma = soma + aux->tempo[j]; aux->tempo[j] = soma; printf(" %d\t", aux->tempo[j]); } printf("\n"); aux = aux->prox; } return lista; } O meu objetivo e a minha dúvida agora é como ordenar a lista por tempos. O último elemento da matriz contém sempre a soma dos tempos de cada piloto no total das voltas. Ou seja, comparar o último elemento de cada linha da matriz e de seguida ordenar a lista por esse valor... Não sei se fui bem explícito, mas qualquer dúvida digam.
  2. Vera_Simoes

    Árvores

    Boas pessoal, Eu precisava de ajuda, estou na universidade e tenho um mini-trabalho que é criar umas funções que me listem os nos de uma árvore por níveis. E não sei como fazer Obrigado
  3. whoami-r

    Problema ao ler lista ligada

    Boas pessoal, tenho um problema que é o seguinte: eu criei uma lista ligada com x nós (sendo x um número introduzido pelo utilizador) em que cada nó é constituído por nome do piloto, id do piloto e id do carro. Quando imprimo a lista é tudo apresentado corretamente. Mas agora tenciono editar a lista e alterar os valores que lá estão, e para isso tenho esta função que atribui id's aleatórios: pCarroPiloto emparelhamentoRand(pCarroPiloto lista, piloto *p, carro *c, int capacidade, int tamCarro, int tamPiloto) { // cont -> conta o número de vezes que é editado um nó com sucesso(piloto+carro) int i=0, j=0, flag, posC=0, posP=0, cont=0; int posCarro[tamCarro], posPiloto[tamPiloto]; pCarroPiloto aux; printf("\n\n"); for(i = 0; i < tamCarro; i++) { // gera x posiçoes carro (sendo x o numero de carros no vetor) do { flag = 1; posCarro[i] = intUniformRnd(0,tamCarro-1); for(j = 0; j < i; j++) if(posCarro[i] == posCarro[j]) flag = 0; }while(flag == 0); // enquanto for repetido printf(" %d \t", posCarro[i]); } printf("\n"); for(i = 0; i < tamPiloto; i++) { // gera x posiçoes piloto (sendo x o numero de pilotos no vetor) do { flag = 1; posPiloto[i] = intUniformRnd(0,tamPiloto-1); for(j = 0; j < i; j++) if(posPiloto[i] == posPiloto[j]) flag = 0; }while(flag == 0); // enquanto for repetido printf(" %d \t", posPiloto[i]); } // EMPARELHAMENTO (EDICAO DA LISTA) j = 0; for(i = 0; cont < capacidade; i++) { while(lista != NULL) { aux = lista; // PILOTOS posP = posPiloto[i]; if(p[posP].impedimento == 0) { aux->piloto.id = p[posP].id; strcpy(aux->piloto.nome, p[posP].nome); // CARROS while(j < tamCarro) { posC = posCarro[j]; if(c[posC].avariado == 0) { aux->carro.id = c[posC].id; lista = lista->prox; j++; cont++; break; } else j++; } } } } return aux; } Basicamente o que faz é gerar uma posição aleatória e de seguida ir a um vetor dinâmico com todos os dados e escolher o elemento da posição gerada e copiar para a lista. E penso que agora o problema estará aqui porque quando tento imprimir a lista após esta função, apenas imprime 1 combinação piloto/carro, quando deveria imprimir 4 (que corresponde ao valor da variável 'capacidade' passada para a função. Deixo também aqui a função que imprime a lista: void showList(pCarroPiloto lista) { pCarroPiloto aux; if(lista == NULL) { printf("\n Lista vazia.\n"); return; } else { while(lista != NULL) { aux = lista; printf("\n------------------------------ "); printf("\n Piloto %d - %s\n Carro %d", aux->piloto.id, aux->piloto.nome, aux->carro.id); lista = lista->prox; } printf("\n------------------------------ "); } } Eu fiz debug e após imprimir o primeiro par, a lista dá com NULL e termina a função.
  4. dopo@dc-business.com

    Exercício struct

    Boas. Preciso de fazer um exercício para que apresente o nome da banda, o tipo de música, quantos integrantes e qual é o ranking. Eu consegui fazer mas no resultado, o tipo de música aparece-me um "?" e no ranking aparece-me 0. Foram usadas 2 folhas. 1ª Folha (main) #include <stdio.h> #include <stdlib.h> #include <locale.h> #include "oi.h" int main() { setlocale(LC_ALL,"portuguese"); int x; for(x=0;x<5;x++) { system("cls"); printf("Digite o nome da banda: "); gets(musica[x].nome); printf("\nDigite o tipo de música: "); gets(musica[x].tipo); printf("\nQuantos integrantes tem a banda: "); scanf("%i",&musica[x].n); fflush(stdin); printf("\nQual é a posição da banda no ranking: "); scanf("%i",&musica[x].tipo); fflush(stdin); } system("cls");\ for(x=0;x<5;x++){ printf("Nome: %s\n",musica[x].nome); printf("Música: %s\n",musica[x].tipo); printf("Nº.Integrantes: %i\n",musica[x].n); printf("Ranking: %i\n",musica[x].pos); } return x; } 2ª Folha #ifndef OI_H_INCLUDED #define OI_H_INCLUDED struct banda{ char nome[35]; char tipo[15]; int n; int pos; }; struct banda musica[5]; #endif // OI_H_INCLUDED
  5. guilherme ramalho

    fflush (stdin) - duvida.

    boa noite, alguém me podia explicar o porque de eu usar o comando "fflush (stdin)" neste código ( lembrando que é um código apenas de validação, para garantir que o nome não fica vazio), ou mostrar uma alternativa para não usa-lo? do{ printf("Nome do atleta?"); fflush (stdin); gets(ciclista.nome); }while(ciclista.nome[0]== '\0'); obrigado, aguardo resposta! :D
  6. Luís Paiva

    mystrcmp e apontadores

    int myStrCmp (const char *s1, const char *s2) { const unsigned char *p1 = (const unsigned char *)s1; const unsigned char *p2 = (const unsigned char *)s2; while (*p1 != '\0') { if (*p2 == '\0') return 1; if (*p2 > *p1) return -1; if (*p1 > *p2) return 1; p1++; p2++; } if (*p2 != '\0') return -1; return 0; } alguem me pode explicar este codigo como alternativa ao strcmp? Porque são demasiados apontadores e não consigo entender nada.
  7. Luís Paiva

    linha do triangulo de pascal

    Boas, o exercício pede: "Defina uma função void pascal (int v[], int N) que preenche o vector v com a N-ésima linha do triângulo de Pascal." eu fiz isto: int pascal (int v[], int N) { if(N == 1) v[0] = 1; else { int prevLine[N - 1]; pascal(prevLine,N-1); v[0] = 1; v[N - 1] = 1; for(int i = 1; i < N - 1; i++) { v[i] = prevLine[i - 1] + prevLine[i]; } } return *v; } int main(){ int u[3] = {}; printf("%d", (pascal(u,2))); } na função main está apenas um exemplo. Alguém me consegue ajudar no programa? Obrigado
  8. SERGIO REBELO

    BarTender API

    Bom dia Alguém já desenvolveu alguma aplicação em C++ ou C#, de impressão de etiquetas com base de dados em SQL Server, que utilize a API do software de etiquetas Bartender ? Obrigado
  9. Luís Paiva

    signos

    Tenho o seguinte código: char *signo(int dia, int mes) { char buffer[25]; switch (mes) { case 1: strcpy(buffer, dia < 20 ? "Capricórnio" : "Aquário" ); break; case 7: strcpy(buffer, dia < 23 ? "Cancer" : "Leao" ); break; case 8: strcpy(buffer, dia < 23 ? "Leao" : "Virgem"); break; case 9: strcpy(buffer, dia < 23 ? "Virgem" : "Libra"); break; case 12: strcpy(buffer, dia < 22 ? "Sagitário" : "Capricórnio"); break; default: strcpy(buffer, "desconhecido"); break; } return buffer; } e tem várias coisas que não entendo. Será que alguém me pode explicar o char buffer? e o ponto de interrogação? e o programa não funciona e é suposto corrigi-la com a função static. Alguém me faz o favor de me explicar tudo isto? Obrigado.
  10. QuitoSousa

    Pedir ao utilizador para inserir matrícula

    Boa tarde, Basicamente eu preciso de pedir ao utilizador que insira uma matrícula num dos 3 formatos abaixo. A matrícula é suposto ir para um vector de uma estrutura. 1 - 00-00-XX 2 - XX-00-00 3 - 00-XX-00 Onde: XX são quaisquer duas letras maiúsculas de A a Z inseridas pelo utilizador. 00 é qualquer número de 00 a 99 inseridos pelo utilizador. Alguém que me consiga ajudar? Obrigado desde já!
  11. vinicius

    Conversão Codigo C para Python

    Estou com dificuldade para converter este script em C para Python. Alguém me ajuda por favor int main() { int i, j; int n; int soma=0; int a, b; int pilha[PMAX]; int moves=0; int movimentos=0; scanf("%d", &n); for (i=0; i<n; i++) { scanf("%d", &pilha[ i ]); soma+=pilha[ i ]; } b=(((2*soma)/n)+(n-1))/2; a=1+b-n; for (i=0; i<n; i++) { moves+=(pilha[ i ]-(i+a)); if (pilha[ i ]>i+a) { movimentos+=(pilha[ i ]-(i+a)); } } if (moves!=0) { printf("-1\n"); } else { printf("%d\n", movimentos); } return 0; }
  12. whoami-r

    Função para emparelhamento aleatório

    Boas pessoal, estou a desenvolver um programa de gestão de corridas de automóveis e estou neste momento a tentar fazer uma função que faça o emparelhamento aleatório entre pilotos e carros. Isto é, eu tenho os pilotos armazenados num ficheiro de texto e os carros noutro ficheiro de texto. Criei 2 vetores dinâmicos para os armazenar (visto que é um requisito do enunciado) e neste momento tenho de gerar pares piloto/carro (através de listas ligadas) que posteriormente serão para competir em corridas. A minha dúvida está em como irei desenvolver isto. Pensei em 2 formas mas não sei se serão as mais eficientes: 1 - Converter os 2 vetores dinâmicos (pilotos e carros) em 2 listas ligadas e de seguida criar uma lista "pCarroPiloto" que une as duas. 2 - Voltar a ler os dados do ficheiro e copiar para uma lista com os dados de ambos (pilotos e carros). Foi nos também dada esta função que recebe 2 inteiros e gera 1 int nesse intervalo: int intUniformRnd(int a, int b){ return a + rand()%(b-a+1); } Eu já tentei criar uma lista para os pilotos e copiar os dados do vetor dinâmico, mas sempre que a imprimo só aparece os dados relativos ao primeiro piloto. /*------STRUCTS------*/ typedef struct data_nascimento data; typedef struct dados_pilotos piloto, *pPiloto; typedef struct dados_carros carro, *pCarro; typedef struct corrida treino, campeonato; typedef struct lista carroPiloto, *pCarroPiloto; struct data_nascimento{ int dia, mes, ano; }; struct dados_pilotos { char nome[100]; int id; data nasc; // struct para data de nascimento do piloto float peso; float exp; // exp >= 0.0 int impedimento; // lesão ou penalização pPiloto prox; // ponteiro para o prox piloto da lista }; struct dados_carros { int id; int potencia; int avariado; // fica impedido 1 corrida após acidente pCarro prox; // ponteiro para o prox carro da lista }; struct corrida { int voltas; // entre 5 e 10 int comprimento; // entre 500 e 1000 (metros) int n_carros; // numero maximo de carros a participar int corridasCamp; // numero de corridas/provas do campeonato }; struct lista { char nome[100]; int idPiloto, idCarro; data nasc; float peso, exp; int impedimento, avariado, potencia; pCarroPiloto prox; }; /*------FIM STRUCTS--------*/ pCarroPiloto criaLista(piloto *p) { pCarroPiloto pc = NULL, novo; novo = malloc(sizeof(pCarroPiloto)); if(novo == NULL) { printf("Erro ao alocar memoria.\n"); return NULL; } preenche(pc,p); pc = novo; return pc; } pCarroPiloto insere_final(pCarroPiloto pc, piloto *p) { pCarroPiloto novo, aux; novo = malloc(sizeof(pCarroPiloto)); if(novo == NULL) { printf("Erro ao alocar memoria.\n"); return pc; } preenche(novo,p); if(pc == NULL) pc = novo; else { aux = pc; while(aux->prox != NULL) aux = aux->prox; aux->prox = novo; } return pc; } void preenche(pCarroPiloto novo, piloto *p) { strcpy(novo->nome, p->nome); novo->idPiloto = p->id; novo->nasc.dia = p->nasc.dia; novo->nasc.mes = p->nasc.mes; novo->nasc.ano = p->nasc.ano; novo->peso = p->peso; novo->exp = p->exp; novo->impedimento = p->impedimento; novo->prox = NULL; } void imprimir_lista(pCarroPiloto lista) { while(lista != NULL) { printf("\n Nome: %s\n" " ID: %d\n" " Data de nascimento: %d/%d/%d\n" " Peso: %.2f\n" " Experiencia: %.2f\n" " Impedimentos: %d\n", lista->nome, lista->idPiloto, lista->nasc.dia, lista->nasc.mes, lista->nasc.ano, lista->peso, lista->exp, lista->impedimento); lista = lista->prox; } }
  13. Douglas

    Programa de perguntas e respostas

    Boa noite, tudo bom? Sou estudante de ciência da computação do primeiro período, estou iniciando na linguagem C e preciso de ajuda pra criar um software pra um trabalho da faculdade, mesmo sem saber quase nada da linguagem. Preciso criar um software onde a ideia inicial é um programa onde o usuário faz perguntas sobre doenças psicológicas, e o computador responde. Minha ideia inicial é criar um conjunto de pronomes interrogativos [P] (Que, quais, qual), e um conjunto de doenças [D] (Depressão, ansiedade, etc), quando o usuário digitasse P+D (Acompanhado de "?") o sistema daria a descrição da pergunta. Sou bem leigo no assunto, estou começando agora a programar, se alguém puder me indicar pelo menos o que estudar pra conseguir manipular essas saídas de dados, eu ficaria muito, muito grato, não faço a menor ideia de como fazer isso em código.
  14. Boas, Estou a desenvolver um programa em C para um trabalho da faculdade e tenho uma dúvida no acesso aos ficheiros. Eu tenho um ficheiro de texto com pilotos (e suas definições) na seguinte forma: Paulo Andrade 2 23 12 1995 76 0.5 0 Faisca 3 1 1 1980 50 9.5 1 Diana Alves Pombo 4 1 10 1990 55 4.5 0 Ana Luisa Freitas 7 12 7 1976 68 1.0 3 Ricardo Cardoso 8 4 2 1999 65 0.2 0 Os valores apresentados por baixo dos nomes correspondem, respetivamente ao ID, data de nascimento (dd mm aaaa), peso, experiencia, impedimento. O valor "impedimento" corresponde ao número de corridas que um determinado piloto está impedido de correr. P.ex. O primeiro piloto está autorizado a correr e o quarto está impedido durante 3 corridas. O meu objetivo é abrir o ficheiro e contar o nº de pilotos que estão autorizados a correr, acedendo apenas ao campo "impedimento", mas não sei se isso é possível. Tenho algum código que fiz mas penso que o que está a fazer é simplesmente contar o número de pilotos que estão no ficheiro: typedef struct dados_pilotos { char nome[100]; int id; data nasc; // struct para data de nascimento do piloto float peso; float exp; // exp >= 0.0 int impedimento; // lesão ou penalização } piloto; int conta_pilotos() { FILE *f; piloto *v; int tam_fich, cont; f = fopen("pilotos.txt", "rt"); // abre o ficheiro e verifica se deu erro if(f == NULL) { printf("Erro no acesso ao ficheiro.\n"); return 0; } else // verifica se o ficheiro está vazio { fseek(f, 0, SEEK_END); tam_fich = ftell(f); if(tam_fich == 0) { printf("O ficheiro esta vazio\n\n"); return 0; } } fseek(f, 0, SEEK_SET); v = malloc(sizeof(piloto)); // aloca memoria e verifica se deu erro if(v == NULL) { printf("Erro na alocacao de memoria.\n"); return 0; } do { if(fscanf(f, "%49[^\n] %d %d %d %d %f %f %d\n", v->nome, &v->id, &v->nasc.dia, // verifica se tem 8 argumentos &v->nasc.mes, &v->nasc.ano, &v->peso, &v->exp, &v->impedimento) != 8) { printf("Formato invalido\n\n"); return 0; } else // aqui verifica quantos pilotos estão impedidos de correr { if(v->impedimento == 0) cont++; } }while(!feof(f)); return cont; }
  15. PsySc0rpi0n

    Usar o operador ternário

    Boas. Já não me recordo como se usar o operador ternário quando preciso de devolver o resultado de uma operação dentro do operador ternário. Passo a expôr o problema: Tenho uma função que é suposto devolver 0 ou 1 mas a condição a verificar é diferente, ou seja, devolve 0 se a condição XXX for verdadeira e devolve 1 se a condição YYY for verdadeira. Com um 'if era fácil mas para o compilador, existe sempre a possibilidade de uma terceira situação não contemplada no 'if' e portanto o compilador queixa-se que a função precisa de devolver um valor. Passo ao código uint8_t TWI_Read(uint8_t d_address, uint8_t* packet){ // Send Slave address and R/W operation TWI0_MADDR = 0x18 | READ_OP; //0x18 + 1 bit for read operation // Check for Slave ACK/NACK bit for slave address if( !(TWI0_MSTATUS & TWI_RXACK_bm) ){ // Read data *packet = TWI0_MDATA; } if(TWI0_MSTATUS & TWI_RIF_bm) return 0x00; else if (TWI0_MSTATUS & TWI_WIF_bm) return 0x01; } Como declarei esta função para devolver um unit8_t e o if que está no final verifica duas condições diferentes, para o compilador existe sempre a possibilidade de nem a condição do IF nem a condição do ELSE IF serem verdadeiras, o compilador queixa-se. Portanto queria usar o operador ternário porque me resolveria o problema mas já não me recordo de como o usar nesta situação. Assim dá: return (TWI0_MSTATUS & TWI_RIF_bm) ? 0x00 : ((TWI0_MSTATUS & TWI_WIF_bm) ? 0x01 : 0x02); Ou seja, se (TWI0_MSTATUS & TWI_RIF_bm) der 1, devolve0, se for 0, vai ver o resultado de (TWI0_MSTATUS & TWI_WIF_bm). Se este for 1, devolve 1, se for falso devolve 2. Mas não sei se era assim ou se há outra forma mais comum para fazer isto! Eu sei que podia adicionar o ELSE no if e devolver o 0x02, mas na verdade este 0x02 nem me interessa! Apenas me interessa o resultado daquelas duas verificações porque sei que no que pretendo, apenas aqueles dois resultados são possíveis!
  16. Boas, gostava de saber se e possivel e como separar um inteiro pelos seus algarismos , ou seja, por ex numero 255, os algarismos sao: 2 - 5 - 5 . Cumprimentos
  17. Luís Paiva

    Erros na declaração de main

    No código seguinte: char main(char s1[], char s2[]) { int i=0,len=strlen(s1); while (s1[i+len]=s2){ i++; } return s1; } e retorna-me os seguintes avisos: line 5 warning return type of 'main' is not 'int' line 5 warning first argument of 'main' should be 'int' line 5 warning second argument of 'main' should be 'char **' in function 'main': line 6 warning implicit declaration of function 'strlen' line 6 warning incompatible implicit declaration of built-in function 'strlen' line 6 note: include '<string.h>' or provide a declaration of 'strlen' line 7 warning suggest parentheses around assignment are used as truth value line 10 warning return makes integer from pointer without a cast alguém me pode explicar o porquê de tantos avisos? e porquê de serem avisos e não erros?
  18. Pessoal estou tendo dificuldades alguém consegue fazer ou já tenha pronto este programa, desde já agradeço Att. Elabore um algoritmo na linguagem C para calibrar a temperatura do equipamento conforme a espessura da chapa que será cortada. O algoritmo terá a simples tarefa de solicitar a temperatura desejada pelo operador e aplicar esta configuração para o equipamento. Perceba então que a temperatura irá depender da espessura da chapa de Aço Carbono que será cortada. Utilize no algoritmo as estruturas de seleção If ou Case para realização desta tarefa. Coloque também o processo de configuração da temperatura em looping para que não seja necessário o operador reiniciar o programa a cada nova temperatura fornecida. Esta atividade deverá fornecer os fontes do algoritmo para correção.
  19. britoOo

    Quantos 1 em binário

    Pessoal estou com dúvidas num exercicio. o exercicio pede para introduzir um número e dizer quantos 1 tem em binário. por exemplo: 10/2 -> 0 5/2 -> 1 2/2 -> 0 1 ou seja tem 2 numeros 1. Eu fiz este código compila mas a soma não está a funcionar não sei porque, continua sempre com '0'. #include <stdio.h> int bitsUm(unsigned int n){ int aux,soma; while(n>=0){ if(n%2==1){ soma=soma+1; aux=n/2; n=aux; } else { aux=(n/2); n=aux; } return soma; } } int main() { int n,soma; printf("numero: \n"); scanf("%d",&n); printf("o numero em binario '%d' apresanta '%d' numeros 1 \n",n,bitsUm(soma)); return 0; } na consola dá isto numero: 10 o numero em binario '10' apresanta '0' numeros 1 Obrigado pela atenção! BritoO
  20. Luís Paiva

    strcpy alternativa

    char *mystrcpy(char s1[], const char s2[]) { int i; for (i=0;s2[i]!='\0';i++) s1[i]=s2[i]; s1[i]='\0'; return s1; } Este programa não foi feito por mim, mas disseram-me que é assim que se faz a minha própria função strcpy. Mas como é possível esta função estar correta? o estado de s1 [ i ] não será sempre '\0' ? O programa parece-me que faria mais sentido se fosse retirada a linha s1[ i ] = '\0' . Por favor ajudem-me. 😫
  21. Luís Paiva

    [Resolvido] Dúvida em ciclo while e scanf

    Tenho o seguinte código: void maior(){ int x,y; x=0; y=1; printf ("Números: \n"); while (y!=0) { scanf("%d",&y); if (x<y) x=y; } printf("Maior número é %d \n",x); } O programa funciona perfeitamente, mas eu não consigo entender o porquê.Nomeadamente, no ciclo while, o valor de y não será sempre 1? e o %d será apenas o primeiro número introduzido ou será os números todos? Por exemplo, se os números introduzidos forem 4 1 5 0, o %d na primeira volta do ciclo, será 4, ou será 4 1 5 0?
  22. Luís Paiva

    [Resolvido] Undefined reference to WinMain@16

    Eu tenho o seguinte código: void maior (){ int y,x; x=0; y=1; printf ("Números:"); // Condição de paragem é o zero. while (y!=0) { scanf ("%d",&y); if (x<y) x=y; } printf ("Maior Número é %d\n", x); } No entanto, não consigo construir o programa e diz-me : undefined reference to 'WinMain@16' error: ld returned 1 exit status Build failed: 2 errors. Alguém me consegue explicar o porquê? (Ainda estou muito verde nisto)
  23. alguém me pode explicar o porquê deste erro? Estou a aprender a programar mas ainda sei muito pouco. #include <stdio.h> #include <stdlib.h> int main() { int idade; printf ("Qual a tua idade: "); scanf ("%d, &idade"); printf ("Tu tens %d anos de idade", idade); return 0; }
  24. João Carlos

    Menu com escolha de níveis

    Tenho este trabalho ja feito mas a minha professora mandou me criar um menu em que o utilizador escolha entre 3 niveis: facil, medio ou dificil. Eu comecei a estudar programação ha relativamente pouco tempo dai pedir ajuda. Eu pensei em nivel facil 20 tentativas, nivel medio 13 tentativas e nivel dificil 8 tentativas. Agradecia a quem me pudesse ajudar. #include <stdio.h> #include <time.h> int random(); void dicas(int num, int password, int tentativas); int main() { system("color B0"); int continuar=1, password, tentativas, num; do { system("cls"); printf("\t\t\tSorteando numero entre 1 e 100...\n"); password = random(); printf("Comecou!\nTente adivinhar o numero!\n\n"); tentativas = 0; do { tentativas++; printf("Tentativa %d: ", tentativas); scanf("%d", &num); dicas(num,password,tentativas); } while( num != password); printf("Digite 0 para sair, ou qualquer outro numero para continuar: "); scanf("%d", &continuar); } while(continuar); } int random() { srand( (unsigned)time(NULL) ); return (1 + rand()%100); } void dicas(int num, int password, int tentativas) { if(num > password) printf("O numero sorteado e menor que %d\n\n", num); else if(num < password) printf("O numero sorteado e maior que %d\n\n", num); else printf("Parabens! Voce acertou o numero em %d tentativas!\n\n", tentativas); }
  25. AndrejHatzi

    Necessito de Ajuda - Projeto Final de Curso

    ¡Hello, Hola, Olá, Ciao, Salut, Saluton! Necessito de ajuda para o meu projeto final de curso, estou a desenvolver uma linguagem de programação com python, cython e c, e preciso de um nome atualmente está como 'haya' mas detesto o nome profundamente e quero saber que coisas faltam na lgs de hoje e que devem ser adicionadas a uma nova! link do projeto: https://github.com/AndrejHatzi/Haya Obrigado, Andrej
×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.