Ir ao conteúdo

kgin

Membro Pleno
  • Posts

    386
  • Cadastrado em

  • Última visita

Tudo que kgin postou

  1. Aqui. checa_impar.com.zip Funciona no windows e linux.
  2. Pois é, mas logo em seguida o enunciado diz após ler essas listagens, ler de onde? Ou só é para comparar o vetor já carregado? Como eu disse o enunciado está meio vago, não explica muito bem o que é pra fazer.
  3. Eu não sei se entendi direito, mas você não deveria ler dois vetores do usuário? Dessa maneira int d1[Q_ALUNOS], d2[Q_ALUNOS], quantidade_alunos = 0; int contador1, contador2; for (contador1 = 0; contador1 < Q_ALUNOS; contador1++) { printf("Digite o aluno da matricula [%d] da turma d1\n", contador1); scanf("%d%*c",&d1[contador1]); } for (contador1 = 0; contador1 < Q_ALUNOS; contador1++) { printf("Digite o aluno da matricula [%d] da turma d2\n", contador1); scanf("%d%*c",&d2[contador1]); } Depois não seria só verificar os alunos? for (contador1 = 0; contador1 < Q_ALUNOS; contador1++) { for (contador2 = 0; contador2 < Q_ALUNOS; contador2++) { if (d1[contador1] == d2[contador2]) { printf("O aluno %i esta matriculado na matricula [%d] da turma d1 e na matricula [%d] da turma d2\n", d1[contador1], contador1, contador2); } } } Exemplo completo. Ao menos foi isso que eu entendi (o enunciado e meio vago também) .
  4. Qual seria o curso ou material que você está utilizando para aprender? Eu vejo essa linha em vários algoritmos aqui no fórum e isso me deixou curioso para saber de onde vem. Agora vamos ao seu código, ele está correto só que você colocou o simbolo de igual "==" aqui Ao invés do simbolo de atribuição "=" x[i] = '@'; Com isso resolve o problema. Uma melhoria para o seu programa seria colocar o caractere de controle %*c no scanf scanf("%c%*c", &x[i]); Por hora e melhor usar o %*c do que um espaço, ele com o tempo deixa as coisa um pouco complicadas e mais para frente e melhor usar fgets para ler a entrada. outra melhoria seria colocar um loop a mais para mostrar a modificação do vetor. dessa maneira for (i=0; i<tam; i++){ printf("nova sequencia %c \n", x[i]); } Código consertado. #include <stdio.h> #include <stdlib.h> #define tam 5 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, char** argv) { char x[tam]; int i; for (i=0; i<tam; i++) { printf("Digite um caracter: "); scanf(" %c", &x[i]); } for (i=0; i<tam; i++){ if (x[i]=='a'){ x[i] = '@'; } } for (i=0; i<tam; i++){ printf("nova sequencia %c \n", x[i]); } return 0; } Agora e só adicionar as outras vogais. É você não está escrevendo nada na linguagem C++ tudo isso que você fez e em C.
  5. @criatividade Qual seria o erro que você está recebendo? por que ao meu ver o algoritmo está correto, mas você está usando uma biblioteca que o meu compilador não tem e provavelmente o seu também não deve ter. essa biblioteca não e implementada mais desde o borland turbo c++(do sistema DOS) então o que eu fiz foi tirar ela e colocar a cstdio e trocar o getch() por getchar() #include <iostream> #include <cstdio> #include <math.h> using namespace std; int X_elevado_a_Z(int X, int Z) { int i,potencia=1; for (i=1; i<=Z; i++) potencia = potencia*X; return (potencia); } int main () { int a,b; cout << "Escreva X\n"; cin >> a; cout << "\nEscreva Z\n"; cin >> b; cout << "\n------------------------\nX elevado a Z = " << X_elevado_a_Z(a,b); getchar (); } tá aí! funcionando perfeitamente.
  6. Se a minha memoria não me falha (que com certeza ela falha) eu acho que isso serve para aquele jogo chines chamado go também. Eu dei uma olha do seu código e a ideia e realmente a mesma, mas aquele código do devair o cara tava aprendendo e criptografia porque eu não entendi nada daquele código dele.
  7. Poste o que você já fez para podermos ajudá-lo.
  8. @Leanderson Pinheiro Poderia ser feito dessa maneira também. int linhas, colunas, objeto, vezes; /* Checa as linhas */ for (linhas = 0; linhas < Q_LINHAS; linhas++) { vezes = 1; objeto = tabuleiro[linhas][0]; for (colunas = 1; colunas < Q_COLUNAS; colunas++) { if (objeto == tabuleiro[linhas][colunas]) { vezes++; } } if ((vezes == Q_LINHAS)&&(objeto != TAB_VAZIO)) { return(objeto); } } Código do exemplo.
  9. Eu acho que seria melhor você postar o código completo, por que assim está meio difícil de entender o que está errado.
  10. kgin

    Outro Programa em Linguagem C

    @Carolmarton você deveria começar assim ao invés de começar pelo menu #include <stdio.h> #define T_FRASE 6 char frase[T_FRASE]; void adiciona(void); void imprime(void); int main(void) { adiciona(); imprime(); return(0); } void adiciona(void) { printf("Digite alguma coisa de ate %d letras\n", T_FRASE-1); scanf("%[^\n]s", frase); /* Recomendo usar fgets() para pegar uma string */ } void imprime(void) { printf("voce digitou %s\n", frase); } Se você começar por aqui e depois ir para Depois e só continuar fazendo as funções para no final fazer o menu. esse exemplo no replit https://replit.com/@KGin/Exemplo#main.c sim, é mais ou menos isso só que com caracteres. para contar quantas as vogais e as consoantes não é tão difícil assim, faça algo mais ou menos assim. void conta(int *vogais, int *consoantes) { int contador; *vogais = *consoantes = '\0'; for (contador = 0; frase[contador] != '\0'; contador++) { switch (frase[contador]) { case 'a': case 'A': (*vogais)++; break; case 'e': case 'E': (*vogais)++; break; case 'i': case 'I': (*vogais)++; break; case 'o': case 'O': (*vogais)++; break; case 'u': case 'U': (*vogais)++; break; default: if ((frase[contador] >= 'A' && frase[contador] <= 'Z') || (frase[contador] >= 'a' && frase[contador] <= 'z')) (*consoantes)++; } } }
  11. Poste o que você já fez para nos podermos ajudá-lo.
  12. kgin

    Outro Programa em Linguagem C

    poste o que você já fez para nos podermos ajudar.
  13. @Um mero usuário Para você utilizar a ncurses você precisa iniciá-la primeiro dessa maneira. initscr(); /* Inicia a ncurses */ depois de iniciada você pode escrever ou pegar algo da saída padrão com as funções. /* Funções de saida */ printw(); /* Funciona igual a printf() */ addch(); addstr(); /* Funções de entrada */ scanw(); /* Funciona igual a scanf() */ getch(); getstr(); você também não precisa incluir o cabeçalho stdio.h a ncurses inclui automaticamente ele e o termios.h. Quando você utilizar uma das funções de saída (como printw()) você tem que utilizar a função refresh() refresh(); /* Atualiza as informções do terminal */ Quando o seu programa terminar você tem que chamar a função endwin() endwin(); /* Finaliza a ncurses */ Ela vai restaurar todas as cagadas que você fez com o termios.h, por isso eu não recomendo a solução do @Lucca Rodrigues porque ela mexe direto com as configurações do terminal. Um programa básico com ncurses é assim. #include <ncurses.h> int main(void) { initscr(); /* Inicia a ncurses */ printw("Ola mundo!\n"); refresh(); /* Atualiza o terminal */ getchar(); /* Espera a tecla enter */ endwin(); /* Finaliza a ncurses */ return(0); } Para compilar você utiliza a linha de comando gcc NOME_DO_ARQUIVO.c -o NOME_DO_EXECUTAVEL -Wall -lncurses para um tutorial bem mais completo e detalhado de uma olhada nesse site. https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ Boa sorte!
  14. Sim você vai ter que usar estruturas (struct) e vetores para fazer esse algoritmo. você deveria fazer algo assim para começar #include <stdio.h> struct info_aluno { char nome[60]; int ira; int ano; }; int main(void) { struct info_aluno aluno; /* Pega as informações do aluno */ printf("Digite o nome do aluno\n"); fgets(aluno.nome, 60, stdin); printf("Digite o IRA do aluno\n"); scanf("%d%*c", &aluno.ira); printf("Digite o ano de inicio da graduacao\n"); scanf("%d%*c", &aluno.ano); /* Mostra as informações do aluno */ printf("Nome do aluno:%s", aluno.nome); printf("IRA:%d\n", aluno.ira); printf("Ano:%d\n", aluno.ano); getchar(); /* Pausa o programa */ return(0); }
  15. @TsunaY Mas assim fica meio difícil de ajudar, você já escreveu alguma coisa?
  16. @TsunaY Qual seria a sua duvida? índice de rendimento acadêmico (IRA).
  17. ctype trabalha com caracteres, faz conversões de maiúscula para minuscula (e vice versa), checa se um caractere e um numero ou um gráfico (caracteres gráficos !,@,°,E,...). já o unistd está aí só para dar um delay com a função usleep (eu poderia ter usado sleep() também).
  18. Uma alternativa se você utilizar linux seria a ncurses. exemplo #include <ncurses.h> #include <ctype.h> #include <unistd.h> struct vetor2 { int x, y; }; int main(void) { int tecla; struct vetor2 vetor = {1, 1}; initscr(); /* inicia a ncurses */ noecho(); /* Não deixa o caractere pressionado aparecer */ cbreak(); /* Não espera que seja pressionado enter */ do { clear(); /* Apaga a tela */ printw("Utilize as teclas WASD para se mover, e X para sair\n"); tecla = getch(); /* pega uma tecla */ switch (toupper(tecla)) { case 'A': if (vetor.x > 0) { vetor.x--; } else { vetor.x = 79; } break; case 'D': if (vetor.x < 79) { vetor.x++; } else { vetor.x = 0; } break; case 'W': if (vetor.y > 0) { vetor.y--; } else { vetor.y = 20; } break; case 'S': if (vetor.y < 20) { vetor.y++; } else { vetor.y = 0; } break; } move(vetor.y, vetor.x); printw("#"); refresh(); /* Atualiza a tela */ usleep(50000); /* Faz uma pausa de 50 msec */ } while (toupper(tecla) != 'X'); endwin(); /* finaliza a ncurses */ return(0); } para ver o funcionamento do programa. https://onlinegdb.com/m-r5HCBGB
  19. kgin

    C excluir item de arquivo.txt

    Não seria melhor você deixar a função de cadastrar só para cadastrar? Dessa maneira. #include <stdio.h> #include <stdlib.h> struct dados_produto { int id; int quantidade; float preco; }; void salvarCadastro(struct dados_produto *produto); int cadastraProduto(struct dados_produto *produto); int main(void) { struct dados_produto produto; if (cadastraProduto(&produto)) { char opcao; printf("id:%d\n", produto.id); printf("quantidade:%d\n", produto.quantidade); printf("preco:%.2f\n", produto.preco); printf("Salvar cadastro no arquivo\n"); printf("S\\N\n"); scanf("%c%*c", &opcao); if (opcao == 'S' || opcao == 's') { salvarCadastro(&produto); printf("Cadastro salvo no arquivo\n"); } } else { printf("Cadastro descartado\n"); } getchar(); return(0); } void salvarCadastro(struct dados_produto *produto) { int contador; char buffer[256]; FILE *arq = fopen("Cadastros.csv", "r+"); if (arq == NULL) { arq = fopen("Cadastros.csv", "w+"); if (arq == NULL) { perror("Nao foi possivel de criar ou ler o arquivo"); exit(EXIT_FAILURE); } } /* Pula todos os cadastros */ do { fgets(buffer, 256, arq); } while (!feof(arq)); /* Salva o cadastro */ fprintf(arq, "%d,%d,%.2f\n", produto->id, produto->quantidade, produto->preco); fflush(arq); fclose(arq); } int cadastraProduto(struct dados_produto *produto) { struct dados_produto tmp; char opcao; do { printf("Digite o id do produto\n"); scanf("%d%*c", &tmp.id); printf("Digite a quantidade de produtos\n"); scanf("%d%*c", &tmp.quantidade); printf("Digite o preco do produto\n"); scanf("%f%*c", &tmp.preco); printf("O cadastro esta correto\n"); printf("S\\N\n"); scanf("%c%*c", &opcao); if (opcao == 'S' || opcao == 's') { *produto = tmp; printf("Cadastro feito com sucesso!\n"); return(1); } printf("Cadastrar novamente?\n"); printf("S\\N\n"); scanf("%c%*c", &opcao); } while (opcao == 'S' || opcao == 's'); return(0); } Assim fica mais simples para remover um cadastro depois.
  20. kgin

    C Usando headers em C

    Tudo que você coloca no header (.h) em c vai ser visível quando você incluir em outro arquivo, então sim você colocar suas estruturas e declarações de funções e variáveis no .h se você quiser que seja visível.
  21. @RenanDias92 Mas os valores tem que ser gerados aleatoriamente ou o programa poderia aceitar que o usuário digitasse qualquer numero menos os números anteriores? Você já fez alguma coisa?
  22. kgin

    C++ erro no codigo c++

    Olha aqui no meu compilador Que está basicamente dizendo que na linha 189 do arquivo calc.cpp while(value > 0) convert(value % 10, digits, (*count)++); value = value / 10; } Seu while está sem a chave do bloco '{' e que na linha 123 do mesmo arquivo (calc.cpp) você está utilizando uma variável chamada digit no loop for que não foi declarada for(digit = 0; digit < 8; digit++){ numeros[x] = num % 10; num /= 10; } e que a sua função void CpuSthefani::converterIntToDigits(int value, Digit *digits, int *count) você não fechou o bloco da função com a chave '}'
  23. kgin

    C++ erro no codigo c++

    @souza souza00 Pra mim esse seu código não tem salvação, mas se vocẽ ainda quiser tentar recuperar a maior parte dos erros estão no método void CpuSthefani::converterIntToDigits(int value, Digit *digits, int *count) na linha 118 do arquivo calc.cpp. Você não fechou o método com a chave } nem utilizou um bloco {} no while, e no for você está utilizando um ponteiro para contar deveria se uma variável do tipo inteira (int). Eu fiz um código demonstrado um display em C (avisando novamente eu não sei C++) talvez seja útil. #include <stdio.h> #include <stdlib.h> /* Informações internas do display */ /* Seria os campos privados do objeto */ struct info_display { int max_buffer; char *buffer; }; /* Metodos do objeto */ void limpaDisplay(struct info_display *display); /* * Limpa todos os caracteres no display */ void iniciaDisplay(struct info_display *display, int max_caracteres); /* * Inicia o display com a quantidade de caracteres suportados */ void atualizaDisplay(struct info_display *display); /* * Mostra o display para o usuario */ void adicionaCaractereDisplay(struct info_display *display, char caractere); /* * Coloca caracteres no display */ void apagaUltimoCaractereDisplay(struct info_display *display); /* * Remove o ultimo caractere adicionado no display */ void liberaDisplay(struct info_display *display); /* * Apaga a memoria reservada para o display */ int main(void) { struct info_display display; iniciaDisplay(&display, 10); printf("Primeira atualizacao\n"); adicionaCaractereDisplay(&display, '1'); adicionaCaractereDisplay(&display, '3'); adicionaCaractereDisplay(&display, '7'); atualizaDisplay(&display); printf("Segunda atualizacao\n"); apagaUltimoCaractereDisplay(&display); adicionaCaractereDisplay(&display, 'C'); atualizaDisplay(&display); printf("Terceira atualizacao\n"); limpaDisplay(&display); atualizaDisplay(&display); liberaDisplay(&display); return(0); } void limpaDisplay(struct info_display *display) { int contador = 0; for (contador = 0; contador < display->max_buffer; contador++) { display->buffer[contador] = '\0'; } } void iniciaDisplay(struct info_display *display, int max_caracteres) { /* Reserva a quantidade caracteres maxíma do display */ display->buffer = malloc(sizeof(*display->buffer)*display->max_buffer); /* Se foi possivel reservar memoria então limpa o display */ if (display->buffer != NULL) { display->max_buffer = max_caracteres; limpaDisplay(display); } else { display->buffer = NULL; } } void atualizaDisplay(struct info_display *display) { int contador; /* Mostra uma linha */ for (contador = 0; contador < display->max_buffer; contador++) { putchar('-'); } putchar('\n'); /* Mostra o conteudo do display */ printf("%s\n",display->buffer); /* Mostra uma linha */ for (contador = 0; contador < display->max_buffer; contador++) { putchar('-'); } putchar('\n'); } void adicionaCaractereDisplay(struct info_display *display, char caractere) { int contador; for (contador = 0; contador < display->max_buffer-1 && display->buffer[contador]; contador++); if (contador < display->max_buffer-1) { display->buffer[contador] = caractere; display->buffer[contador+1] = '\0'; } } void apagaUltimoCaractereDisplay(struct info_display *display) { int contador; for (contador = 0; display->buffer[contador]; contador++); if (contador > 0) { display->buffer[contador-1] = '\0'; } else { display->buffer[contador] = '\0'; } } void liberaDisplay(struct info_display *display) { if (display->buffer != NULL) { free(display->buffer); } } Defina o que cada objeto em seu programa faz, e coloque cada um para fazer a sua tarefa com perfeição.
  24. kgin

    C++ erro no codigo c++

    você pode postar no replit ou no onlineGDB que fica mais cômodo para as pessoas visualizarem, Agora vamos ao código eu não sei C++, mas eu acho que essa calculadora está com muitos objetos para uma calculadora. Você já parou para pensar o que o objeto Cpu faz? esse objeto está fazendo serviço de outros como virtual void setDisplay(Display * display) = 0; Isso não deveria estar em Display? qual é o sentido de display ser configurado por outro objeto? É aqui nesse trecho virtual void setDecimalSeparator() = 0; Pra que ter isso sendo que você poderia ter algo como void addCharacterToDisplay(const character char); void removeLastCharacterDisplay();
  25. Eu sei que é, mas tudo que eu vejo os outros postarem parece que vem do C++. Acabei inventando palavra. seria criar uma sinônimo ou alias, porque você acabou de criar uma estrutura pra que dar um nome que foge do escopo do proposito do mesmo?

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!