Ir ao conteúdo

Ansi C

Membro Pleno
  • Posts

    3.284
  • Cadastrado em

  • Última visita

Tudo que Ansi C postou

  1. Fico sem entender. Veja: Disso, se fez a interpretação (+) // Enquanto Ler um Numero, devolve 1 Numero while (scanf ("%f", &valor) == 1){ resultado += valor; // Aplica o Operador valor = .0f; } Isso é folclórico. O identificador da função scan+f, f no final que remete a palavra inglesa formatted. Isso inclusive ficamos sabendo qual é a sua entrada.
  2. Melhor Editor do Mundo: Bloco de Notas Inclusive para você @Def, é pouco produtivo para os profissionais, porém pra quem está aprendendo ou não é profissional é melhor do mundo
  3. Não é só isso. É preciso mais que isso. Observem: while (scanf ("%f", valor) == 1){ ... ... } Continua esperar mesmo com fim dos valores, disso basta digitar, por exemplo: # e depois ENTER *Eliminou-se a espera porque a função retorna 0 quando alcança # um valor ilegal para máscara de leitura ("%f"). Sim é uma maneira de delimitar. Eu não rsrsr. Se enganou porque eu não sugeri quantidade de operadores e operação arbitrários. Veja: Um operador por operação, operandos em sequência que lembra a notação polonesa, só que o nosso sinal indica em todos casos adição, multiplicação ou ... dos n termos.. Básico Estou interessado no Produtório de n {-3 2 1 -2} o usuário digita: * -3 2 1 -2 o programa responde: 12 * -3 2 1 -2 == (-3) * 2 * 1 * (-2) Aninhado Estou interessado no Somatório de n {2, 3, -1, Produtório de {-3 2 1 -2}} o usuário digita: * -3 2 1 -2 + 2 3 -1 o programa responde: 14 * -3 2 1 -2 + 2 3 -1 == ((-3) * 2 * 1 * (-2)) + 2 + 3 + (-1) Unitário Estou interessado no Somatório de n {2, Produtório de {-3}} o usuário digita: * 3 + 2 o programa responde: 5 * 3 + 2 == 3 + 2 Fica no Básico! Que mané backspace kkkkk coisa ridícula é space-barque dá espaços.
  4. Nesse formato: Usuário define a operação e a quantidade de operandos em uma linha. O caractere de nova linha ('\n'), que surge no fim de cada entrada, marca o fim da operação e também dos operandos. O operador ('+','-','/','*') define o tipo da operação e será o primeiro caractere em cada linha. Todos argumentos têm um espaço entre eles (backspace). Sim, você pode reutilizar esse outro programa. Com pequenas diferenças. Leia antes de tudo o operador Depois leia o primeiro valor Dentro de cada switch case: ao invés de uma operação terá quantas forem necessárias, ou seja, em loop. Enquanto pegar (getchar ()) um caractere diferente de nova linha ('\n') novo valor é lido no corpo do loop e a operação escolhida executada. E quando finalmente o caractere de nova linha surgir, o loop acaba e imprime o resultado, conforme o operador. Tente e depois mostre (faça só para adição)
  5. É foi isso que não ficou totalmente claro para mim. Por exemplo, o usuário digita: + 45 90 1024 1 Disso, o programa responde: 1160 É isso?
  6. Acho que fiquei com dúvidas na sua pergunta! Dê-me uma exemplo de entrada e saída.
  7. Tudo indica @Hugo Picello , foi confuso no começo, porém é isso que o enunciado pede implicitamente.
  8. Então é isso mesmo, M e O são constantes quaisquer que deseje dar um valor e com isso concluir a expressão.
  9. Fiquei sem compreender completamente @Hugo Picello , mas acho que sim. Poderia post o enunciado para tirar as dúvidas.
  10. Então! Saber o que é fatorial de um número é importante nesse questão. Depois que descobrir o fatorial, implemente uma função que passado N retorna o fatorial de N. Basicamente, a função calcula quando multiplica todos os números inteiros positivos de 1 até N. Por exemplo.: Se o valor de N da função é 4 acontece isso dentro da função: 1*2*3*4, logo a função retorna 24. Percebe-se que é um exercício envolvido em loop WHILE ou FOR e VETORES. Essa função não é a resposta total ao exercício, porém é a metade do problema. Tente e depois mostre!
  11. Essa está certa, só tentei melhorar a apresentação do código int conta_vogais (char *str){ int i = 0,contador = 0; while (*(i + str)!='\0'){ if( (*(i + str)=='a')|| (*(i + str)=='e')|| (*(i + str)=='i')|| (*(i + str)=='o')|| (*(i + str)=='u')|| (*(i + str)=='A')|| (*(i + str)=='E')|| (*(i + str)=='I')|| (*(i + str)=='O')|| (*(i + str)=='U') ){ contador++; } i++; } return contador; } Como posso ajudar nas questões 1 e 3 ?
  12. Se tentou responder alguns desses, mostre-nos o resultado e daí discutiremos.
  13. Ansi C

    C++ Como se usa const char*

    "Nesse código aqui const char* funciona mas string não por que ?" Precisa incluir a classe string. #include <iostream> #include <string> //< Classe string using namespace std; int main(){ const string nome = "Alexa"; for (size_t c = 0; nome.length () > c; ++c){ cout << nome.at (c) << endl; } return 0; } Se preferir pode aplicar uma interpretação com versão compactada de FOR (C++11) também de limites no arranjo da classe. for (auto c : nome){ cout << c << endl; }
  14. Estudou estruturas de repetição ou operadores aritméticos ?
  15. No geral funções com esse nome são especializadas em somente inserir. void inserir (struct produto stock[], int *quant, int inserirP) { int i, j; i = *quant + inserirP; ... } Por que i = a expressão ? Implementação de pilha (stock), limitada (100 itens) os parâmetros formais da função ,basicamente, são: O item, A pilha. //----------------------------------------------------------| INSERIR int inserir (struct produto *item, struct produto stock []){ for (unsigned int n = 0; 100 > n; ++n){ if (0 == n[stock].codigo){ if (item) n[stock] = *item; return EXIT_SUCCESS; } } return EXIT_FAILURE; }//----------- FIM INSERIR * Pode continuar usando (,) para separar as frações de inteiros graças ao comando setlocale (LC_ALL, "portuguese"); as convenções de entrada foram todas (LC_ALL) para Português. @nickosoft notou, ou melhor, não notou que aconteceu essa troca!
  16. Eu desde sempre usei Bloco de Notas de codificação UTF-8 então antes de testar qualquer coisa modifico o terminal para a mesma codificação binária que uso no meu editor predileto. No terminal digito: chcp 65001 *Esse problema da discussão experimentei uma vez, depois nunca mais.
  17. Na minha opinião a discussão redeu isto. #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //** Macro de Constante do menu #define Cadastrar_Veiculo (2) #define Mostra_Veiculo (3) #define Sair_ (5) //** Dados Cadastrais Folha do Cliente struct cad_cliente{ char nome[10]; int idade; char CPF_CNPJ[20]; char CNH[30]; char endereco[50]; }; typedef struct cad_cliente Cliente; //** Dados Cadastrais Folha do Carro struct cad_carro { char placa[10]; char modelo[20]; char marca[20]; char cor[20]; char ano[5]; }; typedef struct cad_carro Carro; //** Protótipos de Funções // > Funções do Tipo Carro int le_um_carro (Carro *); int mostra_um_carro(Carro *); // > Funções do Tipo Cliente int le_um_cliente (Cliente *); int mostrar_um_cliente (Cliente *); // > Funções Sistema int menu (void); //------------------------------------------------------------| MAIN int main (void){ Carro infor_carro; //> Folha de Informações d'Carro int opcao = 0; int continuar_loop = 1; while (continuar_loop){ menu (); //> Exibe as opções do menu. scanf (" %d", &opcao); //> Ler opção do Usuário setbuf (stdin, NULL); switch (opcao){ case Cadastrar_Veiculo: le_um_carro (&infor_carro); break; case Mostra_Veiculo: mostra_um_carro (&infor_carro); break; case Sair_: continuar_loop = 0; break; default: printf("Opcao inesperada: %d\n", opcao); break; } opcao = 0; } return EXIT_SUCCESS; }//----------- FIM MAIN //** Definição de Funções d'Programa //>> Funções do Tipo Carro //------------------------------------------------------------| LER UM CARRO int le_um_carro(Carro *C){ Carro tmp_car = {0}; //> Variável Temporária do Tipo Carro _placa: printf("Informe o numero da placa [7 digitos]: "); gets (tmp_car.placa); setbuf (stdin, NULL); if (strlen (tmp_car.placa) != 7){ printf (" Erro quantidade de digitos diferente de 7! \n\n"); goto _placa; } printf (" a marca do veiculo..................: "); gets (tmp_car.marca); setbuf (stdin, NULL); printf (" o modelo do veiculo.................: "); gets (tmp_car.modelo); setbuf (stdin, NULL); printf (" a cor do veiculo....................: "); gets (tmp_car.cor); setbuf (stdin, NULL); printf (" o ano do veiculo....................: "); gets (tmp_car.ano); setbuf (stdin, NULL); if (C){ *C = tmp_car; return EXIT_SUCCESS; } return EXIT_FAILURE; }//----------- FIM LER UM CARRO //------------------------------------------------------------| MOSTRA UM CARRO int mostra_um_carro (Carro *C){ if (C){ printf ("\n\n"); printf ("Veiculo(s) Cadastrado \n" " %-10s|%-20s|%-20s|%-20s|%-5s \n", "Marca", "Modelo", "Cor", "Placa", "Ano"); printf( " %-10s|%-20s|%-20s|%-20s|%-5s \n", C->marca, C->modelo, C->cor, C->placa, C->ano); getchar (); // Pause return EXIT_SUCCESS; } return EXIT_FAILURE; }//----------- FIM MOSTRA UM CARRO // > Funções d'Sistema //------------------------------------------------------------| MENU int menu (void){ system ("cls"); printf ("-----------------------------------------\n" "\tCONTROLE DE ESTACIONAMENTO\n" "-----------------------------------------\n" "\n1 Cadastrar Cliente" "\n2 Cadastrar Veiculo" "\n3 Listar veiculos cadastrados" "\n4 Creditos" "\n5 Sair" "\nOpcao..: " ); return EXIT_SUCCESS; }//----------- FIM MENU
  18. @Def Entendo perfeitamente, ou seja etapa do momento é um teste de case 1: e case 2: juntamente com a exibição das opções do menu.
  19. Esse print que nos mostra agora tem uma case 1: e conteúdo com comandos que já foram há tempos agrupados num bloco organizado de comandos chamado função le_um_cliente (), adicionado 1 minuto depois Ou será que ainda não ?
  20. Talvez @Def você devia apenas copiar e depois colar case 2: e conteúdo... porque os outros comandos já existiam igualmente lá. Ou será que não.
  21. De longe esse é o fórum mais engraçado do Brasil! Espero que você esteja aproveitando bem as dicas e não só colando.
  22. né! Porque fala, "mais que o correto", "menos que o correto" e não diz qual é o correto, parece um jogo de adivinhação. Os (...) pontinhos não são parte dos comandos, estão ali só para indicação de que existe outras coisas, mas sem interesse para discussão.
  23. Detalhes do projeto: É realmente tão importante indica que tem dígitos a mais e a menos quando o mais importante é a placa ter exatamente 7 dígitos. Refiro-me essa parte abaixo, observem que o resultado lógico dos comandos é impor 7 dígitos: ... fflush(stdin); gets(aux); if (strlen(aux) < 7) { printf("erro quantidade de digitos menor do que o correto\n"); printf("Digite novamente: "); goto placa; } else if (strlen(aux) > 7) { printf("erro quantidade de digitos maior do que o correto\n"); printf("Digite novamente: "); goto placa; } else { strcpy(info.placa, aux); } ... Disso podemos juntas as partes numa só e com a mesma determinação, assim: ... fflush(stdin); gets(aux); if (strlen(aux) != 7){ printf("Erro quantidade de digitos diferente de 7\n" "Digite novamente: "); goto placa; } else { strcpy(info.placa, aux); } ... Tendeu ??
  24. @Def , Boa Dia. Qual post tem o código mais atualizado do programa ?
  25. Parece que ainda não percebeu que onde tem \n na string quando impresso no terminal cria uma nova linha

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!