Jump to content

Search the Community

Showing results for tags 'c'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Comunidade
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Apresentação de Projectos de Programação
    • Downloads
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Pascal
    • Python
    • Bases de Dados
    • 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 e Automação Industrial
    • Matemática
    • Software de Contabilidade e Finanças
    • Dúvidas e Discussão de Programação
  • Outras Áreas
    • Notícias de Tecnologia
    • 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...

Joined

  • Start

    End


Group


Website


GitHub


LinkedIn


Twitter


Facebook

  1. Bom dia, estou a ter algumas dificuldades num trabalho de programação onde tenho de simular algo como um ATM. A parte onde estou a ter dificuldades neste momento remete para a data. Estou a a usar a time.h para me dar a data, mas não estou com a certeza de que esta esteja a funcionar, uma vez que não consigo dizer se está a guardar a data da criação da conta do individuo X. Deixo em seguida o código que estou a utilizar para gerar a data: void dataA(int data, int nAC){ struct tm *p; time_t seconds; time(&seconds); p = localtime(&seconds); printf("\n\tData de criação da conta: %d/%d/%d\n", p->tm_mday, p->tm_mon + 1, p->tm_year + 1900); } nAC corresponde à variável que controla os individuos.
  2. Boas pessoal. Sou novo no fórum e na programação também. Tenho um projeto de um banco de sangue para fazer em linguagem C mas estou muito perdido. Será que alguém me consegue ajudar por favor
  3. Bom dia a todos, Tenho o seguinte código que está a funcionar, mas por algum mistério só me aceita 3 cores, quando o laço supostamente deveria aceitar 5 entradas na função insiraCodigo(). Toda a ajuda é bem vinda e agradecida uma vez que ainda não percebi porquê e deve ser coisa simples. Obrigado. #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> #define QTD 5 // Número de strings a ler #define MAX 10 // Número de caracteres na string #define DIM 7 // Número de cores no vetor colors char *cores[QTD][MAX]; // Vetor cores aleatórias char *colors[] = {"green", "red", "blue", "yellow", "brown"}; //Cores permitidas char *aux[QTD][MAX]; // Vetor cores escolhidas pelo jogador void clear(){ #if defined(__linux__) || defined(__unix__) || defined(__APPLE__) system("clear"); #endif #if defined(_WIN32) || defined(_WIN64) system("cls"); #endif } void exibeTabuleiro(){ int i; //Exibir mascara for (int i = 0; i < QTD; ++i) { printf(" *"); } } /* Função para criar código aleatório de cores*/ void crearCodigoCores(char cores[QTD][MAX]) { int i, n, randColor; srand(time(NULL)); for(i=0; i<5; i++) { randColor = 1 + rand() % 5; //creates a number switch(randColor) //converts number created to a string { case 1: strcpy(cores[i], "red"); break; case 2: strcpy(cores[i], "yellow"); break; case 3: strcpy(cores[i], "green"); break; case 4: strcpy(cores[i], "blue"); break; case 5: strcpy(cores[i], "brown"); break; } } printf("\nO código:\n"); for (int i = 0; i < QTD; i++) printf(" %s", cores[i]); } //Função para comparar cores inseridas com o array aleatório int identical(int i) { for (int j = 0 ; j < QTD ; j++) { if(*aux[i] == *cores[i]) { return 1; } } return 0; } char comum(char *aux[], int len1, char *cores[],int len2) { int i,j,k,white=0,black=0; for(i = 0; i < QTD ;i++) { if(aux[i] == cores[i]) { black++; continue; } if(identical(i)==1) { white++; } } printf("\n\nTem %d cores certas no sitio errado",white); printf("\nTem %d cores certas no sítio certo",black); } /* Função para verificar se a string existe no vetor cores permitidas "colors" */ int verificaCores(char *s) { // Elimina o '\n' que do fgets if (s[strlen(s) - 1] == '\n') s[strlen(s) - 1] = '\0'; //Compara input com cores permitidas for (int i = 0; i < DIM; i++) if (strcasecmp(s, colors[i]) == 0){ printf("COMPARADO!\n"); //Se houver retorna 1 return 1;} return 0; } void insiraCodigo(){ int i; char *input[MAX]; printf("\nInsira o seu código:\n"); /* scanf cores escolhidas e envia para função verificaCores. Se a função retornar 1, guarda no vetor cores */ for(i = 0; i < 5 ; i++) { fgets(input, MAX, stdin); if (verificaCores(input)) { printf("Gotcha!\n"); strcpy(aux[i], input); i++; } else printf("Opcao inválida. Tente de novo!\n"); } //Mostrar array de cores introduzidas printf("O seu código:\n"); for (int i = 0; i < QTD; i++) printf(" %s", aux[i]); } int jogo(){ int i; char *input[MAX]; char *mensagem; mensagem="Bem vindo ao jogo"; int tentativas=0,max_tentativas=5,tentativas_restantes=0; tentativas_restantes=max_tentativas - tentativas; clear(); printf("%s:\n", mensagem); printf("Código secreto:\n"); exibeTabuleiro(); crearCodigoCores(*cores); insiraCodigo(input); comum(*aux,QTD,*cores,QTD); } int main(void){ jogo(); }
  4. Boas tardes a todos, Estou a iniciar-me na linguagem C e estou ás voltas com um problema que não consigo resolver. Quero comparar o input de um utilizador, com um array de strings para verificar se a string é válida ou não. Consigo armazenar as strings , mas o strcmp funciona nalgumas strings e não noutras. Qualquer ajuda é bem vinda! Obrigado O código é o seguinte: #include <locale.h> #include <stdio.h> #include <stdlib.h> #include <string.h> char *colors[] = { "green", "red", "blue", "yellow", "brown", "white", "black" }; int n = 5, i, j, l; char cores[4][7]; char* copy; char input[5]; int num,result; void copiar(){ strcpy(copy,input); } int main(){ printf("Add colors\n"); for (int i = 0; i < n; i++) { scanf("%s", input); strcpy(cores[i],input); while(j<n) { if(strcmp(input,colors[j])==0) printf("Gotcha!\n"); // comparing strings str1 and str2 result = strcmp(input,colors[j]); printf("strcmp(str1, str2) = %d\n", result); j++; break; } input[0]='\0'; } for(l=0;l<5;l++) printf("%s\n", cores[l]); return 0; }
  5. Ola, eu tenho vários trabalhos de programação para fazer e nem sempre posso andar com o meu pc atras, ent alguém poderia me indicar uma app de programação que de para escrever o código, em linguagem c e compilar no telemóvel, ficaria agradecida. Obrigada
  6. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <strings.h> #include <ctype.h> char recebendo_String(char *s){ int x = 0; int y = 0; char caracter ; char caracter_nao_acentuado[]="aaaaeeeeiiiioooouuuucAAAAEEEEIIIIOOOOUUUUC"; char caracter_acentuado[]="áàãâéèẽêíìĩîóòõôúùũûçÁÀÃÂÉÈẼÊÍÌĨÎÓÒÕÔÚÙŨÛÇ"; caracter = toupper(fgetc(stdin)); for(x = 0 ; x < (100 - 1) ; x++){ if(((caracter == '\n') && (x == 0)) || ((caracter ==' ') && (x ==0))){ x = x -1; continue; } if(caracter == '\n'){ break; } for(y = 0 ; y < 43 ; y++){ if(caracter_acentuado[y] == caracter) caracter = caracter_nao_acentuado[y]; } s[x] = caracter; } s[x] = 0; return (caracter); } int main() { char escreva; printf("Hello world!\n"); printf("digite um caracter :"); recebendo_String(&escreva); return 0; } Esse codigo deveria retornar ao refente sem acento mas da o erro : *** stack smashing detected ***: <unknown> terminated Abortado (imagem do núcleo gravada)
  7. Boas Pessoal! Entrei em Engenharia Informática e estou neste momento a iniciar em C, gostaria de obter alguns conselhos vossos, visto que nunca dei programação na vida e se puderem enviar algum website que tenha exercícios de programação em C para iniciantes. Obrigado!
  8. Olá, tenho dois enunciados para resolver mas não sei como os fazer. Eles são semelhantes entre si, aqui vão eles: 1. Dada uma determinada hora do dia, em horas, minutos e segundos, indicar quantos segundos decorreram desde o início do dia (sem efetuar validações). 2. Dado o número de minutos decorridos desde o início do dia, calcular as horas e minutos correntes (sem efetuar validações). Se alguém me conseguisse ajudar ate ao final da noite de hoje agradecia.
  9. Boa tarde a todos, estive a tentar fazer um makefile para poder compilar e carregar SW para um microcontrolador STM8. Apesar de estar a funcionar compila sempre todos os arquivos e não apenas os alterados, gostaria de perguntar se podiam ajudar a ter o comportamento esperado. Aqui está o conteúdo do makefile: PROJ_NAME=workingproject MICRO=STM8L15xC8 PROGRAMMER=STVP_CmdLine # Compiler CC=cxstm8 # Flags for compiler CFLAGS=+mods0 -pp -dSTM8L15X_HD -iinc -isrc -i"C:\Program Files (x86)\COSMIC\FSE_Compilers\Hstm8" -clRelease\ -coRelease\ # .c files C_SOURCE=$(wildcard *.c) C_SOURCE+=$(wildcard src/*.c) # .h files H_SOURCE=$(wildcard *.h) H_SOURCE+=$(wildcard inc/*.h) # Object files objects=$(C_SOURCE:c=o) %.o : %.c $(CC) $(CFLAGS) $? #target : prerequisites #<TAB>recipe #all : $(PROJ_NAME).sm8 $(PROJ_NAME).sm8 : $(objects) clnk -l"C:\Program Files (x86)\COSMIC\FSE_Compilers\Lib" -o Release\$(PROJ_NAME).sm8 Release\eso.lkf chex -o Release\$(PROJ_NAME).s19 Release\$(PROJ_NAME).sm8 .PHONY : load load: STVP_CmdLine -BoardName=ST-LINK -Port=USB -ProgMode=SWIM -Device=$(MICRO) -no_log -no_loop -no_warn_protect -verif -FileProg=Release\$(PROJ_NAME).s19 desde já obrigado, Mauro.
  10. #include <iostream> #include <string.h> int main (){ int i; char telefone[20]; char ch; i=0 while((ch=getchar ())) 1='\n') ( if (ch=='-')telefone[1]='-'; else if (ch >=48 && ch <=57) telefone [i]=ch; else if (ch >=65 && ch <=67) telefone [i]='2'; else if (ch >=68 && ch <=70) telefone [i]='3'; else if (ch >=71 && ch <=73) telefone [i]='4'; else if (ch >=74 && ch <=76) telefone [i]='5'; else if (ch >=77 && ch <=79) telefone [i]='6'; else if (ch >=80 && ch <=83) telefone [i]='7'; else if (ch >=84 && ch <=86) telefone [i]='8'; else if (ch >=87 && ch <=90) telefone [i]='9'; i++; } telefone[i]='\0'; printf("%s", telefone); return(0); }
  11. Tenho um programa para a faculdade e está a funcionar perfeitamente, o meu único problema e não sei por onde começar é como guardar as informações armazenadas ao abrir novamente o programa, é através de um ciclo em que puxo o ficheiro?
  12. Eu tenho de fazer estruturas para armazenar jogadores e jogos a minh duvida é como posso fazer para eliminar os jogadores presentes no ficheiro de texto alem do mais preciso ordenar a tabela de jogadores e editar a parte do peso e numero de jogos Será que alguem pode ajudar? O meu código é o seguinte: #include <stdio.h> #include <stdlib.h> #include <string.h> FILE * dados_jogador; FILE * dados_jogo; FILE * dados_gerais; int n_jogos = 0; int n_jogadores = 0; struct dados_jogador { int numero; char nome[12]; int dia; int mes; int ano; float altura; float peso; int n_jogos; }; typedef struct dados_jogador jogador; void ler_jogador(jogador listaJogadores[]){ printf("numero de jogadores: %d\n", n_jogadores); if(n_jogadores == 0){ dados_jogador = fopen("dados_jogador.txt", "a"); fprintf(dados_jogador, "Num Nome Data de nascimento Altura Peso Numero de Jogos\n"); fclose(dados_jogador); } if(n_jogadores >= 0 && n_jogadores <= 12){ printf("\nDADOS DO JOGADOR:\n"); listaJogadores[n_jogadores].numero = n_jogadores; printf("nome:"); scanf("%s", listaJogadores[n_jogadores].nome); printf("data de nascimento (do tipo dd/mm/aaaa):"); scanf("%d/%d/%d", &listaJogadores[n_jogadores].dia, &listaJogadores[n_jogadores].mes, &listaJogadores[n_jogadores].ano); if ((listaJogadores[n_jogadores].dia >= 01 && listaJogadores[n_jogadores].dia <= 30) && (listaJogadores[n_jogadores].mes == 04 || listaJogadores[n_jogadores].mes == 06 || listaJogadores[n_jogadores].mes == 9 || listaJogadores[n_jogadores].mes == 11)){ } if (listaJogadores[n_jogadores].dia >= 01 && listaJogadores[n_jogadores].dia <= 31 && (listaJogadores[n_jogadores].mes == 01 || listaJogadores[n_jogadores].mes == 03 || listaJogadores[n_jogadores].mes == 05 || listaJogadores[n_jogadores].mes == 07 || listaJogadores[n_jogadores].mes == 8|| listaJogadores[n_jogadores].mes == 10 || listaJogadores[n_jogadores].mes == 12) && listaJogadores[n_jogadores].ano >= 1583){ } if (listaJogadores[n_jogadores].dia == 29 && listaJogadores[n_jogadores].dia == 2 && (listaJogadores[n_jogadores].ano % 400 == 0 || listaJogadores[n_jogadores].ano % 4 == 0 && listaJogadores[n_jogadores].ano % 100 != 0)){ } if ((listaJogadores[n_jogadores].dia >= 01 && listaJogadores[n_jogadores].dia <= 28) && (listaJogadores[n_jogadores].mes == 2)){ } if (listaJogadores[n_jogadores].dia <= 00 || listaJogadores[n_jogadores].dia > 31){ printf("dia invalido\n"); ler_jogador(listaJogadores); } if (listaJogadores[n_jogadores].mes <= 00 || listaJogadores[n_jogadores].mes > 12){ printf("mes invalido\n"); ler_jogador(listaJogadores); } if (listaJogadores[n_jogadores].ano < 1583){ printf("ano invalido\n"); ler_jogador(listaJogadores); } printf("altura:"); scanf("%f", &listaJogadores[n_jogadores].altura); if(listaJogadores[n_jogadores].altura <= 0){ ler_jogador(listaJogadores); } printf("peso:"); scanf("%f", &listaJogadores[n_jogadores].peso); if(listaJogadores[n_jogadores].peso <= 0){ ler_jogador(listaJogadores); } printf("numero de jogos:"); scanf("%d", &listaJogadores[n_jogadores].n_jogos); if(listaJogadores[n_jogadores].n_jogos < 0){ ler_jogador(listaJogadores); } dados_jogador = fopen("dados_jogador.txt", "a"); fprintf(dados_jogador, "%d \t\t%s \t\t %02d/%02d/%d\t\t %.2f\t\t %.2f\t\t %d\n", listaJogadores[n_jogadores].numero, listaJogadores[n_jogadores].nome, listaJogadores[n_jogadores].dia, listaJogadores[n_jogadores].mes, listaJogadores[n_jogadores].ano, listaJogadores[n_jogadores].altura, listaJogadores[n_jogadores].peso, listaJogadores[n_jogadores].n_jogos); fclose(dados_jogador); dados_gerais = fopen("dados_gerais.dat", "ab"); fwrite (&listaJogadores, sizeof(struct dados_jogador), 1 , dados_gerais); fclose(dados_gerais); n_jogadores++; } if(n_jogadores > 12){ printf("maximo de jogadores:12\n"); } } void consultar_jogador(jogador listaJogadores[]){ dados_jogador=fopen("dados_jogador.txt","r"); //para abrir os ficheiros para ler while(fgets(listaJogadores[n_jogadores].nome, 200, dados_jogador)!= NULL){ printf("%s", listaJogadores[n_jogadores].nome); } fclose(dados_jogador); } void eliminar_jogador(jogador listaJogadores[]) { int numero; printf("Jogadores existentes: \n"); consultar_jogador(listaJogadores); printf("Qual numero do jogador que deseja eliminar:"); scanf("%d", &numero); for(int i=numero;i<n_jogadores;i++){ listaJogadores[numero] = listaJogadores[numero+1]; dados_jogador = fopen("dados_jogador.txt", "w+"); fprintf(dados_jogador, "Num Nome Data de nascimento Altura Peso Numero de Jogos\n%d \t\t%s \t\t %02d/%02d/%d\t\t %.2f\t\t %.2f\t\t %d\n", listaJogadores[n_jogadores].numero, listaJogadores[n_jogadores].nome, listaJogadores[n_jogadores].dia, listaJogadores[n_jogadores].mes, listaJogadores[n_jogadores].ano, listaJogadores[n_jogadores].altura, listaJogadores[n_jogadores].peso, listaJogadores[n_jogadores].n_jogos); fclose(dados_jogador); } n_jogadores--; } void editar_jogador(jogador listaJogadores[]){ int num; printf("Jogadores existentes: \n"); consultar_jogador(listaJogadores); printf("Qual numero do jogador que deseja editar:"); scanf("%d", &num); printf("Peso:"); scanf("%f", &listaJogadores[num].peso); printf("Numero de jogos: "); scanf("%d", &listaJogadores[num].n_jogos); } void procurar_jogador(jogador listaJogadores[]){ char numero; printf("Numero do jogador a procurar: "); scanf("%d", numero); printf("Nome: %s\nData de nascimento: %02d/%02d/%d\nAltura: %.2f\nPeso:%.2f\nNumero de jogos:%d", listaJogadores[numero].nome, listaJogadores[numero].dia, listaJogadores[numero].mes, listaJogadores[numero].ano, listaJogadores[numero].altura, listaJogadores[numero].peso, listaJogadores[numero].n_jogos); } struct dados_jogo { int dia; int mes; int ano; char local[50]; char adversario[50]; char resultado[50]; }; typedef struct dados_jogo jogo; void ler_jogo(jogo listaJogos[]) { printf("numero de jogos: %d\n",n_jogos); if(n_jogos == 0){ dados_jogo = fopen("dados_jogo.txt", "a"); fprintf(dados_jogo, "Data Local Adversario Resultado "); fclose(dados_jogo); } if(n_jogos >= 0 && n_jogos < 100){ printf("\nDADOS DO JOGO:\n"); printf("data (do tipo dd/mm/aaaa):"); scanf("%d/%d/%d",&listaJogos[n_jogos].dia, &listaJogos[n_jogos].mes, &listaJogos[n_jogos].ano); if ((listaJogos[n_jogos].dia >= 01 && listaJogos[n_jogos].dia <= 30) && (listaJogos[n_jogos].mes == 04 || listaJogos[n_jogos].mes == 06 || listaJogos[n_jogos].mes == 9 || listaJogos[n_jogos].mes == 11)){ } if (listaJogos[n_jogos].dia >= 01 && listaJogos[n_jogos].dia <= 31 && (listaJogos[n_jogos].mes == 01 || listaJogos[n_jogos].mes == 03 || listaJogos[n_jogos].mes == 05 || listaJogos[n_jogos].mes == 07 || listaJogos[n_jogos].mes == 8|| listaJogos[n_jogos].mes == 10 || listaJogos[n_jogos].mes == 12) && listaJogos[n_jogos].ano >= 1583){ } if (listaJogos[n_jogos].dia == 29 && listaJogos[n_jogos].dia == 2 && (listaJogos[n_jogos].ano % 400 == 0 || listaJogos[n_jogos].ano % 4 == 0 && listaJogos[n_jogos].ano % 100 != 0)){ } if ((listaJogos[n_jogos].dia >= 01 && listaJogos[n_jogos].dia <= 28) && (listaJogos[n_jogos].mes == 2)){ } if (listaJogos[n_jogos].dia <= 00 || listaJogos[n_jogos].dia > 31){ printf("dia invalido\n"); ler_jogo(listaJogos); } if (listaJogos[n_jogos].mes <= 00 || listaJogos[n_jogos].mes > 12){ printf("mes invalido\n"); ler_jogo(listaJogos); } if (listaJogos[n_jogos].ano < 1583){ printf("ano invalido\n"); ler_jogo(listaJogos); } printf("local:"); scanf("%s", listaJogos[n_jogos].local); printf("adversario:"); scanf("%s", listaJogos[n_jogos].adversario); printf("resultado:"); scanf("%s", listaJogos[n_jogos].resultado); dados_jogo = fopen("dados_jogo.txt", "a"); fprintf(dados_jogo, "\n%02d/%02d/%d %s %s %s", listaJogos[n_jogos].dia, listaJogos[n_jogos].mes, listaJogos[n_jogos].ano, listaJogos[n_jogos].local, listaJogos[n_jogos].adversario, listaJogos[n_jogos].resultado); fclose(dados_jogo); dados_gerais = fopen("dados_gerais.dat", "ab"); fwrite (&listaJogos, sizeof(struct dados_jogo), 1 , dados_gerais); fclose(dados_gerais); n_jogos++; } if(n_jogos >= 100){ printf("limite excedido de jogos:100\n"); } } void ordenar_Nome(jogador listaJogadores[]){ } void contabilizar(jogo listaJogos[]){ } int main(int argc, char *argv[]) { jogador listaJogadores[12]; jogo listaJogos[100]; char opcao; dados_jogador=fopen("dados_jogador.txt","r"); //para abrir os ficheiros para ler while(fgets(listaJogadores[n_jogadores].nome, 200, dados_jogador)!= NULL){ n_jogadores++; } if(n_jogadores != 0){ n_jogadores--; } fclose(dados_jogador); dados_jogo=fopen("dados_jogo.txt","r"); //para abrir os ficheiros para ler while(fgets(listaJogos[n_jogos].local, 200, dados_jogo)!= NULL){ n_jogos++; } if(n_jogadores != 0){ n_jogos--; } fclose(dados_jogo); do{ printf(" MENU INICIAL:\n"); printf("Escolha uma das opcoes:\n"); printf("1- Inserir jogador \n"); printf("2- Editar jogador \n"); printf("3- Procurar jogador \n"); printf("4- Eliminar jogador \n"); printf("5- Inserir jogo \n"); printf("6- Contabilizar \n"); printf("7- Sair do programa \n"); fflush(stdin); printf("opcao:"); scanf("%c", &opcao); switch(opcao){ case '1': ler_jogador(listaJogadores); break; //escolha das opcoes e suas funcoes case '2': editar_jogador(listaJogadores); break; case '3': procurar_jogador(listaJogadores); break; case '4': eliminar_jogador(listaJogadores); break; case '5': ler_jogo(listaJogos); break; case '6': contabilizar(listaJogos); break; case '7': return 0; default: printf("Opcao invalida\n");break; } } while (opcao != '7'); return 0; } O conteudo do ficheiro de texto dos jogadores é : Num Nome Data de nascimento Altura Peso Numero de Jogos 0 Peter 12/07/1970 1.70 70.00 2 1 Luis 21/08/1980 1.80 80.00 4 2 Kyle 13/08/1980 1.70 78.00 2 3 John 03/03/1970 1.79 80.00 2 4 Hugo 02/09/1980 1.70 68.00 4 Desde já agradeço a vossa ajuda
  13. #include <stdio.h> #include <stdlib.h> #include <time.h> struct frame { char b1,b2; int ball1,ball2,score; }; int ball(int pins) { int jogada; printf("Entre com a pontuação da jogada: "); scanf("%d", &jogada); return jogada; } void get_frame(struct frame *f) { f->ball1 = ball(10); if(f->ball1==10) { f->ball2 = 0; f->b1 = ' '; f->b2 = 'X'; f->score = 10; return; } f->ball2 = ball(10 - f->ball1); f->score = f->ball1 + f->ball2; f->b1 = f->ball1 ? '0' + f->ball1 : '-'; f->b2 = f->ball2 ? '0' + f->ball2 : '-'; if( f->score==10 ) f->b2 = '/'; } int main() { struct frame game[12]; int x,score; srand((unsigned)time(NULL)); score = 0; /* Simulate 12 potential frames */ for(x=0;x<12;x++) get_frame(&game[x]); /* properly calculate the scores */ for(x=0;x<10;x++) { if( game[x].b2 == 'X' ) { if( game[x+1].b2 == 'X' ) score += 10 + game[x+1].ball1 + game[x+2].ball1; else score += 10 + game[x+1].score; } else if( game[x].b2 == '/' ) score += 10 + game[x+1].ball1; else score += game[x].score; game[x].score = score; } /* Display first row, frame numbers */ for(x=0;x<10;x++) printf(" %2d ",x+1); putchar('\n'); /* Second row, balls rolled */ for(x=0;x<9;x++) { if( game[x].b2 == 'X') printf("| |X"); else printf("| %c|%c",game[x].b1,game[x].b2); } /* Special output for 10th frame */ if( game[x].b2 == 'X') { if( game[x+1].b2 == 'X') { if( game[x+2].b2 == 'X') printf("| X|X|X|\n"); else printf("| X|X|%c|\n",game[x+2].b1); } else printf("| X|%c|%c|\n",game[x+1].b1,game[x+1].b2); } else if( game[x].b2 == '/') { if( game[x+1].b2 == 'X') printf("| %c|/|X|\n",game[x].b1); else printf("| %c|/|%c|\n",game[x].b1,game[x+1].b1); } else printf("| %c|%c| |\n",game[x].b1,game[x].b2); /* Third row, scores */ for(x=0;x<9;x++) { printf("| %3d",game[x].score); } printf("| %3d |\n",game[x].score); return(0); }
  14. Pergunta: "Escreva um programa que ordene alfabeticamente, de forma crescente, as letras existente numa “string” previamente pedida ao utilizador. Esta ordenação deverá ser efetuada num vetor auxiliar que será inicializado com os endereços de memória de cada uma das letras existente na “string”. A construção deste vetor, o qual é constituído por endereços de memória, não poderá alterar a “string” original." Por exemplo: a palavra "ana", no output ficaria "aan" Já tentei mas não percebo porque está a dar erro #include <stdio.h> #include <string.h> void ordenarString(char *string, int tamanho); main() { char string[100]; int tamanho; printf("Introduza uma palavra\n"); gets(string); tamanho=strlen(string); ordenarString(string,tamanho); scanf("%d",&string); } void ordenarString(char *string, int tamanho){ int i, j, *aux[tamanho]; for(i=0;i<10;i++){ for(j=i+1;j<10;j++){ if(strcmp(string[j], string[i])==-1){ strcpy(aux, string[i]); strcpy(string[i], string[j]); strcpy(string[j], aux); } } } } Obrigada desde já!
  15. Boa Tarde, Eu tenho de criar um projeto com estruturas de equipas em que cada equipa vai ter um torneio com outra aleatoria e tenho de criar tabelas com as equipas e os resultados eliminando assim equipa a equipa até chegar à vencedora. Eu para já só criei as estruturas e a inserção de jogadores e tudo mais. Como acham que posso criar tabelas das equipas aleatorias e os seus respetivos torneios? O meu codigo é o seguinte: #include <stdio.h> #include <stdlib.h> #include <string.h> FILE * dados_jogador; FILE * dados_jogo; FILE * dados_gerais; int n_jogos = 0; int i; int n_jogadores = 0; struct dados_jogador { char nome[12]; int dia; int mes; int ano; float altura; float peso; int n_jogos; }; typedef struct dados_jogador jogador; jogador tabela[12]; jogador ler_jogador() { int i; int num; jogador jogador; printf("Qual o numero de jogadores que deseja adicionar:"); scanf("%d", &num); if(num > 0 && num <= 12){ for(int i = 0; i < num; i++){ printf("\nDADOS DO JOGADOR:\n"); printf("nome:"); scanf("%s", jogador.nome); printf("data de nascimento:"); scanf("%d/%d/%d", &jogador.dia, &jogador.mes, &jogador.ano); if ((jogador.dia >= 01 && jogador.dia <= 30) && (jogador.mes == 04 || jogador.mes == 06 || jogador.mes == 9 || jogador.mes == 11)){ } if (jogador.dia >= 01 && jogador.dia <= 31 && (jogador.mes == 01 || jogador.mes == 03 || jogador.mes == 05 || jogador.mes == 07 || jogador.mes == 8|| jogador.mes == 10 || jogador.mes == 12) && jogador.ano >= 1583){ } if (jogador.dia == 29 && jogador.dia == 2 && (jogador.ano % 400 == 0 || jogador.ano % 4 == 0 && jogador.ano % 100 != 0)){ } if ((jogador.dia >= 01 && jogador.dia <= 28) && (jogador.mes == 2)){ } if (jogador.dia <= 00 || jogador.dia > 31){ printf("dia invalido\n"); ler_jogador(); } if (jogador.mes <= 00 || jogador.mes > 12){ printf("mes invalido\n"); ler_jogador(); } if (jogador.ano < 1583){ printf("ano invalido\n"); ler_jogador(); } printf("altura:"); scanf("%f", &jogador.altura); if(jogador.altura <= 0){ ler_jogador(); } printf("peso:"); scanf("%f", &jogador.peso); if(jogador.peso <= 0){ ler_jogador(); } printf("numero de jogos:"); scanf("%d", &jogador.n_jogos); if(jogador.n_jogos < 0){ ler_jogador(); } dados_jogador = fopen("dados_jogador.txt", "a"); fprintf(dados_jogador, "\n%s \t\t%02d/%02d/%d\t\t%.2f\t\t%.2f\t\t%d", jogador.nome, jogador.dia, jogador.mes, jogador.ano, jogador.altura, jogador.peso, jogador.n_jogos); fclose(dados_jogador); dados_gerais = fopen("dados_gerais.dat", "ab"); fwrite (&jogador.nome, sizeof(struct dados_jogador), 1 , dados_gerais); fclose(dados_gerais); n_jogadores++; }} printf("maximo de jogadores:12\n"); } jogador consultar_jogador(){ jogador jogador; int i; printf("numero jogadores: %d\n",n_jogadores); printf("Jogadores existentes:\n"); for(i=0; i<n_jogadores; i++){ printf("%s\n", jogador.nome); } } jogador eliminar_jogador() { jogador jogador; int i; printf("Jogadores existentes: \n"); dados_jogador = fopen("dados_jogador.txt", "r"); for(int i = 0; i< n_jogadores; i++){ fscanf(dados_jogador, "%s", jogador.nome[n_jogadores]); fclose(dados_jogador); } } void procurar_jogador(){ jogador jogador; char nome_jogador; printf("Qual o nome do jogador que procura:"); scanf("%s", nome_jogador); for(int i = 0; i < n_jogadores; i++){ if((nome_jogador,jogador.nome) == 0){ printf("Nome: %s\nData de nascimento: %02d/%02d/%d\nAltura: %.2f\nPeso:%.2f\nNumero de jogos:%d", tabela[i].nome, tabela[i].dia, tabela[i].mes, tabela[i].ano, tabela[i].altura, tabela[i].peso, tabela[i].n_jogos); }} } struct dados_jogo { int dia; int mes; int ano; char local[50]; char adversario[50]; char resultado[50]; }; typedef struct dados_jogo jogo; jogo ler_jogo() { jogo jogo; printf("\nDADOS DO JOGO:\n"); printf("data:"); scanf("%d/%d/%d",&jogo.dia, &jogo.mes, &jogo.ano); if ((jogo.dia >= 01 && jogo.dia <= 30) && (jogo.mes == 04 || jogo.mes == 06 || jogo.mes == 9 || jogo.mes == 11)){ } if (jogo.dia >= 01 && jogo.dia <= 31 && (jogo.mes == 01 || jogo.mes == 03 || jogo.mes == 05 || jogo.mes == 07 || jogo.mes == 8|| jogo.mes == 10 || jogo.mes == 12) && jogo.ano >= 1583){ } if (jogo.dia == 29 && jogo.dia == 2 && (jogo.ano % 400 == 0 || jogo.ano % 4 == 0 && jogo.ano % 100 != 0)){ } if ((jogo.dia >= 01 && jogo.dia <= 28) && (jogo.mes == 2)){ } if (jogo.dia <= 00 || jogo.dia > 31){ printf("dia invalido\n"); ler_jogo(); } if (jogo.mes <= 00 || jogo.mes > 12){ printf("mes invalido\n"); ler_jogo(); } if (jogo.ano < 1583){ printf("ano invalido\n"); ler_jogo(); } printf("local:"); scanf("%s", jogo.local); printf("adversario:"); scanf("%s", jogo.adversario); printf("resultado:"); scanf("%s", jogo.resultado); dados_jogo = fopen("dados_jogo.txt", "a"); fprintf(dados_jogo, "\n%02d/%02d/%d %s %s %s", jogo.dia, jogo.mes, jogo.ano, jogo.local, jogo.adversario, jogo.resultado); fclose(dados_jogo); } int main(int argc, char *argv[]) { jogador jogador[12]; jogo jogo[100]; char opcao; dados_jogador=fopen("dados_jogador.txt","r"); //para abrir os ficheiros para ler i=0; while(fscanf(dados_jogador, "%s", jogador[i].nome)!= EOF){ i++; n_jogadores++; } fclose(dados_jogador); do{ printf(" MENU INICIAL:\n"); printf("Escolha uma das opcoes:\n"); printf("1- Inserir jogador \n"); printf("2- Editar jogador \n"); printf("3- Procurar jogador \n"); printf("4- Eliminar jogador \n"); printf("5- Inserir jogo \n"); printf("6- Contabilizar \n"); printf("7- Sair do programa \n"); fflush(stdin); printf("opcao:"); scanf("%c", &opcao); switch(opcao){ case '1': ler_jogador(); break; //escolha das opcoes e suas funcoes case '2': consultar_jogador(); break; case '3': procurar_jogador(); break; case '4': eliminar_jogador(); break; case '5': ler_jogo(); break; case '6': break; case '7': return 0; default: printf("Opcao invalida\n");break; } } while (opcao != '7'); return 0; }
  16. Oi pessoal! Será que alguem pode me dizer como posso colocar o ficheiro binario com o nome da data atual e hora? O meu codigo está assim: #include <stdio.h> #include <time.h> struct dados_cliente{ char nome[10]; float valor; }; typedef struct dados_cliente dados; int escrever_ficheiro() { time_t ddh; time(&ddh); char nome = ctime(&ddh); dados dados_cliente; printf("Insira nome cliente:"); scanf("%s",dados_cliente.nome); printf("valor:"); scanf("%.2f", dados_cliente.valor); FILE* dados; dados= fopen(nome+".dat", "ab"); fprintf(dados, "%s %s %.2f", ctime(&ddh), dados_cliente.nome, dados_cliente.valor); fclose(dados); } int main() { time_t ddh; time(&ddh); escrever_ficheiro(); return 0; } Agradeço desde já!
  17. Olá pessoa, bom dia/ boa noite. Estou a ter sérios problemas com uma atividade da faculdade na qual não consigo fazer, gostaria de saber podem me ajudar com a seguinte atividade por favor: Considere a implementação em linguagem C da estrutura de dados pilha com tamanho fixo. #define tam 10 struct pilha{ int dados[tam]; int primeiro; int ultimo; }; pilha p; void pop(){ p.dados[p.ultimo-1] = 0; p.ultimo--; } A Pilha é uma das estruturas mais simples e mais versáteis dentre as utilizadas na computação. A pilha é uma estrutura em a entrada e a saída de dados se dão pela mesma extremidade, chamada de topo da pilha. São estruturas conhecidas como Last In, First Out (LIFO), que pode ser traduzido por Último a Entrar, Primeiro a Sair. Você recebeu o código parcialmente implementado, conforme o código apresentado acima. Seu gerente de projetos, solicitou que você complete este código incluindo as funções: inclusão de elementos PUSH(), função de exibir o pilha DISPLAY(), função principal MAIN(). Considere que durante a execução o usuário do programa executou as seguintes ações 1 - Executou a função POP(), porém o vetor está vazio. 2 - Foi executo 3 vezes a função PUSH(); 3 - Executou 1 vez a função DISPLAY(); Neste caso específico, descreva o comportamento da pilha mediante a esta sequência de execuções. Desculpa por pedir algo desse tipo aqui...
  18. Oi pessoal! Eu estou fazendo um trabalho de gerir uma equipa de um desporto à escolha e preciso criar estruturas para colocar as informações dos jogadores e os seus respetivos jogos. O problema é que eu sou iniciante em estruturas tenho de fazer uma tabela e apresentá-la em ficheiro de texto e não sei como fazer a não ser em modo manual no entanto ficam tortas as linhas. O meu segundo problema é que tenho de criar um ficheiro binário com os dados de todos os jogadores e jogos como posso fazer isso? Alguém pode ajudar? Isto é o que eu tenho até agora: #include <stdio.h> FILE * dados_jogador; FILE * dados_jogo; FILE * dados_gerais; int i, j; struct dados_jogador { char nome[50]; int dia; int mes; int ano; float altura; float peso; int n_jogos; }; typedef struct dados_jogador jogador; jogador ler_jogador() { jogador jogador; printf("\nDADOS DO JOGADOR:\n"); printf("nome:"); scanf("%s", jogador.nome); printf("data de nascimento:"); scanf("%d/%d/%d", &jogador.dia, &jogador.mes, &jogador.ano); if ((jogador.dia >= 01 && jogador.dia <= 30) && (jogador.mes == 04 || jogador.mes == 06 || jogador.mes == 9 || jogador.mes == 11)){ } if (jogador.dia >= 01 && jogador.dia <= 31 && (jogador.mes == 01 || jogador.mes == 03 || jogador.mes == 05 || jogador.mes == 07 || jogador.mes == 8|| jogador.mes == 10 || jogador.mes == 12) && jogador.ano >= 1583){ } if (jogador.dia == 29 && jogador.dia == 2 && (jogador.ano % 400 == 0 || jogador.ano % 4 == 0 && jogador.ano % 100 != 0)){ } if ((jogador.dia >= 01 && jogador.dia <= 28) && (jogador.mes == 2)){ } if (jogador.dia <= 00 || jogador.dia > 31){ printf("dia invalido\n"); ler_jogador(); } if (jogador.mes <= 00 || jogador.mes > 12){ printf("mes invalido\n"); ler_jogador(); } if (jogador.ano < 1583){ printf("ano invalido\n"); ler_jogador(); } printf("altura:"); scanf("%f", &jogador.altura); if(jogador.altura <= 0){ ler_jogador(); } printf("peso:"); scanf("%f", &jogador.peso); if(jogador.peso <= 0){ ler_jogador(); } printf("numero de jogos:"); scanf("%d", &jogador.n_jogos); if(jogador.n_jogos < 0){ ler_jogador(); } dados_jogador = fopen("dados_jogador.txt", "a"); fprintf(dados_jogador, "\n%s %02d/%02d/%d %.2f %.2f %d", jogador.nome, jogador.dia, jogador.mes, jogador.ano, jogador.altura, jogador.peso, jogador.n_jogos); fclose(dados_jogador); dados_gerais = fopen("dados_gerais.dat", "ab"); fwrite (&jogador.nome, sizeof(struct dados_jogador), 1 , dados_gerais); fclose(dados_gerais); } struct dados_jogo { int dia; int mes; int ano; char local[50]; char adversario[50]; char resultado[50]; }; typedef struct dados_jogo jogo; jogo ler_jogo() { jogo jogo; printf("\nDADOS DO JOGO:\n"); printf("data:"); scanf("%d/%d/%d",&jogo.dia, &jogo.mes, &jogo.ano); printf("local:"); scanf("%s", jogo.local); printf("adversario:"); scanf("%s", jogo.adversario); printf("resultado:"); scanf("%s", jogo.resultado); dados_jogo = fopen("dados_jogo.txt", "a"); fprintf(dados_jogo, "\n%02d/%02d/%d %s %s %s\n", jogo.dia, jogo.mes, jogo.ano, jogo.local, jogo.adversario, jogo.resultado); fclose(dados_jogo); } int main(int argc, char *argv[]) { char opcao; do{ printf(" MENU INICIAL:\n"); printf("Escolha uma das opcoes:\n"); printf("1- Inserir jogador \n"); printf("2- Editar jogador \n"); printf("3- Procurar jogador \n"); printf("4- Eliminar jogador \n"); printf("5- Inserir jogo \n"); printf("6- Contabilizar \n"); printf("7- Sair do programa \n"); fflush(stdin); printf("opcao:"); scanf("%c", &opcao); switch(opcao){ case '1': ler_jogador(); break; //escolha das opcoes e suas funcoes case '2': break; case '3': break; case '4': break; case '5': ler_jogo(); break; case '6': break; case '7': return 0; default: printf("Opcao invalida\n");break; } } while (opcao != '7'); return 0; }
  19. HYPER

    Matrizes dinâmicas

    Olá a todos, Estou em Engenharia Informática e preciso de fazer um trabalho (que é o jogo do semáforo) onde tenho que fazer um tabuleiro (char) com alocação de memória. Neste momento estou preso numa função em que tenho que adicionar uma linha ou uma coluna dependendo do que o utilizador quiser fazer. Alguém me consegue ajudar? Obrigado.
  20. Alguém pode me ajudar? Escreva um programa C que armazene um endereço, contendo: rua (string), número (int), bairro (string) e cidade (string). O programa tem que ler as informações e exibi-las. Fiz o código assim mas está dando erro #include <stdio.h> struct endereco { char rua[64]; int numero; char bairro[20]; char cidade[2]; }; int main() { struct endereco local_casa; printf("Digite rua, número, bairro e cidade um em cada linha.\n"); scanf("%s", &local_casa.rua); scanf("%i", &local_casa.numero); scanf("%s", &local_casa.bairro); scanf("%s", &local_casa.cidade); printf("Rua %s, %i, %s, %s. \n", local_casa.rua, local_casa.numero, local_casa.bairro, local_casa.cidade); return 0; }
  21. Boa tarde, gostaria que me pudessem ajudar em relação a este que me é dado quando 'corro' o programa. Vou também pôr aqui o enunciado caso queiram estar dentro do que me é pedido para implementar no programa, ou se estiver a fazer algo de mal ou faltar algo, por favor sintam-se na necessidade de expor a vossa opinião. Enunciado(ainda não fiz a alínea D): 1)Pretende-se analisar um conjunto de músicas. Cada música caracteriza-se pelo título, intérprete, ano, single (1:sim ou 0:não) e número de downloads nas plataformas aderentes. Obs:1. n, em todos os cabeçalhos das funções, representa o número de músicas no vetor lista; 2. utilize ponteiros em todas as alíneas para aceder ao valor dos atributos dos elementos do vetor. a) Defina o tipo de dados Musica e crie um vetor de nome lista, com um número de músicas definido pelo utilizador (valor disponível na variável nMusicas). b) Implemente uma função que escreva no ecrã, as características das músicas com mais do que um determinado número de downloads (parâmetro numD). void musicasDownload(Musica *lista, int n, int numD) c) Desenvolva uma função que receba a listagem de músicas e devolva quantas têm um dado intérprete. d) Desenvolva uma função que guarde num ficheiro binário, as músicas singles, não singles ou ambas (parâmetro tpMeio=’s’, ‘n’ ou ‘a´, respetivamente), posteriores a um determinado ano. A função deve ainda devolver o número médio de downloads dessas músicas. float gravaFichMusicas (Musica *lista, int n, int ano, char *nFich, char tpMeio) Obs. Sintaxes: FILE* fopen(const char* fileName, const char* mode); size_t fwrite (const void* ptr, size_t size, size_t nElements, FILE* file); #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <locale.h> struct Lista{ char titulo[40], inter[40]; int ano, dw; bool single; float duracao; Lista *prox; }; Lista *inicio, *fim, *aux; void inserirMusica(){ int c; Lista *novo = (struct Lista *)malloc(sizeof(struct Lista)); printf("\nNome da Musica: \t "); fgets(novo->titulo, 39, stdin); printf("Intérprete: \t "); fgets(novo->inter, 39, stdin); printf("Single: \t "); scanf("%d", &novo->single); printf("Duração da música: \t "); scanf("%f", &novo->duracao); printf("Ano de Lançamento: \t "); scanf("%i", &novo->ano); printf("Quantidade de Downloads: \t "); scanf("%i", &novo->dw); while ((c = getchar()) != '\n' && c != EOF) {} // Limpar buffer do teclado novo->prox = NULL; if (inicio == NULL){ inicio = fim = novo; }else{ fim->prox = novo; fim = novo; } } void esvaziarLista(){ char op; if (inicio == NULL){ printf("\nA fila esta vazia!\n\n"); }else{ printf("\nTem certeza que deseja esvaziar toda a lista?(s/n): "); op = getchar(); if (op == 's' || op == 'S'){ while (inicio != NULL){ aux = inicio; inicio = inicio->prox; free(aux); // Liberta memória } printf("\nA lista esvaziada com sucesso!!\n"); }else{ printf("\nA lista nao foi esvaziada!!\n"); } } } void mostrarLista(){ aux = inicio; if (inicio == NULL){ printf("\nLista de Músicas vazia!"); }else{ while (aux != NULL){ printf("Título: %s", aux->titulo); printf("Intérprete: %s", aux->inter); printf("Single: %d\n\n", aux->single); printf("Duração: %f\n\n", aux->duracao); printf("Ano de Lançamento: %i\n\n", aux->ano); printf("Quantidade de Downloads: %i\n\n", aux->dw); aux = aux->prox; } } printf("\n\n"); } void localizarInter(){ char inter[40]; aux = inicio; if (inicio == NULL){ printf("\nLista de Músicas vazia!"); }else{ printf("Digite o Intérprete que procura: "); scanf("%s", &aux); while (aux != NULL){ if (inter == aux->inter){ printf("\nIntérprete %s localizado/a!\n\n", aux->inter); printf("Título %s", aux->titulo); return; }else{ aux = aux->prox; } } if (aux == NULL){ printf("\nMúsica %s nao localizada!\n", titulo); } } printf("\n\n"); } int main(){ setlocale(LC_ALL, "Portuguese"); int op, c; do{ printf("| 1. Inserir Música |\n"); printf("| 2. Pesquisar Músicas |\n"); printf("| 3. listar Músicas |\n"); printf("| 4. Limpar Lista |\n"); printf("| 5. Sair |\n"); printf("Insira a sua escolha: "); scanf("%d", &op); while ((c = getchar()) != '\n' && c != EOF) {} // Limpar buffer switch (op){ case 1: inserirMusica(); printf("\nMusica inserida com sucesso!!\n\n"); system("pause"); break; case 2: localizarMusica(); system("pause"); break; case 3: mostrarLista(); system("pause"); break; case 4: esvaziarLista(); system("pause"); break; case 5: printf("\nO programa foi encerrado com sucesso!!\n\n"); system("pause"); break; default: printf("\nEscolha Invalida!!\n\n"); system("pause"); break; } system("cls"); }while (op != 5); return 0; }
  22. Olá, Gostava de fazer um pequeno programa que simulasse uma linha de comandos. Em baixo tenho o esquema dum menu onde só existem 4 comandos possíveis: "ls" "ls nomedapasta" "find . -type f -mtime -1" e "find nomedapasta -type f -mtime -1" Estou com dificuldades em fazer com que o utilizador escolha a opção correta, isto é, escrevo "ls pasta1" e o resultado é "comando não encontrado" ao invés de ser "Estamos na pasta: pasta1." O programa em baixo apenas está simplificado. #include<stdio.h> #include<string.h> //Duas funções auxiliares: (main em baixo) char* pastas(int valor){ if (valor==0) return "pasta1"; if (valor==1) return "pasta2"; return ""; //Existem estas duas pastas, devolve pasta1 se o utilizador escrever "pasta1", devolve pasta2 caso escreva "pasta2" } int compara (char *primeiros){ if (primeiros[0]='l' && primeiros[1]=='s' && primeiros[2]==' ') return 1; if (primeiros[0]=='f' && primeiros [1]=='i' && primeiros[2]=='n' && primeiros[3]=='d' && primeiros[4]==' ') return 0; return -1; }//esta função verifica se o comando do utilizador começa por ls ou find e é do tipo: "ls nomedapasta" ou "find nomedapasta (...)" //Função Principal: void main(){ int num_pastas=2; char *comando[100]; while (strcmp(comando, "cd ..")!=0){ //se o utilizador escrever "cd .." deve sair do ciclo, isto não está a acontecer.... scanf("%s",&comando); if(strcmp(comando, "ls") == 0) //aqui o programa está a acertar. { printf("listar todos os ficheiros e diretorias\n"); continue;} if(strcmp(comando, "find . -type f -mtime -1") == 0) //aqui o programa está a errar. { printf("listar todos os ficheiros atualizados na última atualização\n"); continue; } if(compara(comando)==1) //se o utilizador escrever "ls nomedapasta", aqui se utilizador escrever este comando, não entra aqui mas entra no { int aviso=0,i; // primeiro if do ciclo while for(i=0;i<num_pastas;i++) { char *nome=strcat("ls ", pastas(i)); if(strcmp(comando,nome)==0) //verifica se a pasta existe. Neste programa só existem duas pastas: pasta1 e pasta2 { printf("Estamos na pasta: %s",pastas(i)); aviso=1; } if (aviso==1)break; } if (aviso==1) continue; } if(compara(comando)==0) //se o utilizador escreveu "find nomedapasta -type f -mtime -1", também não está a entrar aqui. { int aviso1=0,g; for(g=0;g<num_pastas;g++) { char nome1=strcat("find ", pastas(g)); char nome2=strcat(nome1," -type f -mtime -1"); if(strcmp(comando,nome2)==0) //verifica se a pasta existe { printf("Estamos na pasta: %s",pastas(g)); aviso1=1; } if (aviso1==1)break; } if (aviso1==1) continue; } printf("Comando não encontrado\n"); } } Ora o programa supostamente só deve escrever "Comando não encontrado" quando não se escreveu nenhum dos 4 comandos acima, ele está a escrever sempre, o que não é suposto. Só acerta quando o utilizador escreve "ls". Será que me poderiam ajudar?
  23. Olá, boa tarde, tudo bem? Preciso criar um código que calcule o cosseno de um número fornecido pelo usuário pela aproximação de Taylor, porém não posso utilizar da função cos() nem da função pow(). Só posso utilizar da função cos() para aproximar o valor no final #include<stdio.h> #include<math.h> float meu_cosseno(float x, int N){ float numerador, denominador, cosseno=1; int i; denominador = fatorial(N); numerador = potencia(x, N); for(i=0;i<N;i++){ cosseno = cosseno + numerador/denominador; } return cosseno; } int fatorial(int N){ int i, fat=1; for(i=1; i<(2*N)+1;i++){ fat = fat*i; } return fat; } float potencia(float x, int N){ float alternada=1, base=1, a; int i; for(i=0;i<N; i++){ base = base*x; alternada = alternada*(-1); } a = alternada*base; return a; } int main(){ float x, cosseno, cos_exato; int N; printf("Aproximacao da funcao cosseno atraves do Polinomio de Taylor\n\n"); printf("Entre com o valor de x:"); scanf("%f", &x); printf("Entre com o valor de N:"); scanf("%d", &N); cosseno = meu_cosseno(x, N); cos_exato = cos(x); printf("meu_cosseno(%.8f) = %.8f", x, cosseno); printf("cos(%f) = %.8f", x, cos_exato); return 0; } Esse é o meu código e estou recebendo o erro "conflicting type for potencia" na linha 20. Percebi que não copiou tudo, no final está faltando alguns printf para mostrar ao usuário o resultado, mas esse não altera no resultado em si. Se alguém puder me ajudar agradeceria!!
  24. Objetivo: Popular uma BD a partir de um .txt Pergunta: Que linguagem é mais simples/prática para o fazer? Descrição: Eu quero fazer um programa simples que me permita ler e escrever uma base de dados e ter uma interface gráfica que permita aplicar filtros à minha pesquisa. Estou a fazer esta pergunta porque sou novo na programação e queria saber a vossa opinião sobre como deveria fazer esta aplicação. As linguagens que sei sao: C C# C++ JAVASCRIPT PHP SQL Obrigado 😄
  25. Boas! Tenho um codigo que fiz para q fosse feita a leitura de um ficheiro para um array de struct. No entanto dá erro a sua execução. typedef struct aluno{ int num; float nota1; float nota2; float notaP; }ALUNO; void colocarArray(ALUNO ficheiro[], int nAlunos){ int i=0; fp=fopen("alunos.txt","r"); if(fp==NULL) printf("\nErro!"); while(fscanf(fp, "\n%i;%f;%f;%f", ficheiro[i].num, ficheiro[i].nota1, ficheiro[i].nota2, ficheiro[i].notaP)!=EOF) i++; fclose(fp); }
×
×
  • Create New...

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.