Ir ao conteúdo

Ansi C

Membro Pleno
  • Posts

    3.284
  • Cadastrado em

  • Última visita

Tudo que Ansi C postou

  1. @EltonEvo Sim, sou um dos mais frequentes, estou sempre em indas e voltas com a LINGUAGEM C, é um vício gostoso! Vamos lá! int decimal_to_convert( unsigned int decimal, unsigned int base ) { if( base > 9 )return decimal; int intSlot = 1, intBaseConvert = 0; unsigned int buff = decimal; while( buff ) { intBaseConvert = ((buff % base * intSlot) + intBaseConvert); buff = buff / base; intSlot = intSlot * 10; } //printf( "Converting 10x%d to %s%d\n", // decimal,base_type( base ),intBaseConvert ); return intBaseConvert; /**< 1º Faça a função retorna o resultado, * ao invés de imprimir. **/ } /* Test */ int ret = decimal_to_convert( 255,2 ); cout << "Resultado: " << ret << endl;
  2. @xXDiogoXx É você o autor do tópico, eu acho que não é! @Diogo Duarte Calma aê, que ninguém aqui vai pra guerra kkk' incentivo é eeste meu filho. "Pra q iço cê é louco tiu"
  3. Gostei quando estiver pronto, passe link da versão.
  4. @Intruder18 Eu estou evitando chegar em struct Mais é interessante, o conceito sobre tipos de tipos primitivos só fica claro quando se tem o conceito e estrutura. É a parte mais importante da linguagem tenha foco.
  5. Click aqui: fseek
  6. Formulário; O que nos diz o dicionário priberam: 3. Modelo ou impresso para determinado fim, com campos que devem ser preenchidos com dados específicos do interessado. A linguagem proporciona, através da estrutura de dados, a viabilidade de construção de formulário com campos organizados em blocos de memória. Já deve ter percebido nesta altura que programa em C e programa na memória e para CPU; Entenda estruturas sendo formulários aproximadamente na CPU, de acesso eficiente, rápido, reiterativo e organizado. Estruturas é um dos assuntos mais complexos e interessantes. C++, C# e Java, são linguagens concebidas da estruturação de dados. Na maneira como avança em poucos dias estará estudando Object C, isso se for de seu interesse e perceberá os fundamentos e lógicas da estruturas, antes disso terá: Stack; Queues, Tree ainda em C. Eu me encontro em inteiros int e você está em struct. Parabéns! "Sou muito preguiçoso " _______________________________
  7. a média das idades dos jogadores de cada time; Reutilizando o código acima, com o in-put já pronto, necessita agora de declarar um vetor, cujo largura é número de times, já que a média é de todos do mesmo time. Código atualizado com B). C) a média das alturas de todos os jogadores do campeonato; Aqui temos um novo in-put: altura e como é de todos os jogadores, segue mesma lógica que idade. Código atualizado com C) D) a percentagem de jogadores com mais de 80 Kg entre todos os jogadores do campeonato; Aqui temos um novo in-put: Peso e com a mesma logística que em altura E) a média de idade dos jogadores com peso acima de 100 Kg. É a junção de tudo aprendido.
  8. Preciso garantir que, no momento, as magnitudes estejam todo no conjunto Z+, porque assim garanto equiparação. Porém o que é unsigned? Aqui
  9. Muito bem, também tinha imaginado algo parecido, experimente abaixo pode vir servir como resolução para os bugs de sua solução. CODE: int numeric = 0; cout << "**** Entre com numero: "; cin >> numeric; while(cin.fail()){ cout << "\r[ERRO]Entre com numero valido: "; cin.clear(); cin.ignore(128u,'\n'); cin >> numeric; } cout << "voce digitou numero: " << numeric << endl;
  10. Para construção de um melhor entendimento, de todos que por motivos finalizar uma busca neste tópico, dividirei cada solução em etapas complementares de um mesmo código. Começando do começo, LETRA A). Para este quesito precisamos de; Variável: Idades[ todos os jogadores ], menor_idade, x , y; ou seja, um vetor cujo o largura é o número de jogadores do campeonato (produto de x y) , x é número de times, e y o número de jogadores de cada time, daí a justificativa de o n. jogadores ser o produto de x y. Para A, não é necessário entrar com peso e altura, logo serão por hora ignoradas estas entradas ou in-putis. CODE FULL: #include <stdio.h> int main(void){ unsigned int x, y; /**< x, y número de Times, Jogadores. */ //! O VETOR IDADE SOMENTE É CRIADO QUANDO TIVERMOS X & Y printf("**** Campeonato software.\n"); printf( "** Digite o numero de times e jogadores no formato( x y ): " ); scanf( "%u%u", &x, &y); float idades[ x * y ]; /**< vetor idade tem largura do produto de x y. */ //! VLA- Não é método mais adequado para alocação de memória, mas util //! quando estamos escrevendo para pequenos vetores de largura pequena. float media_idade_time[ x ];/**< precisa de uma variável para caada time.*/ //! declarou-se flutuantes porque a média pode resultar em números quebrados. float alturas[ x * y ];//*< precisa da altura de todos os jogadores. */ float pesos[ x * y ];//*< precisa da peso de todos os jogadores. */ unsigned int menor_idade; /**< esta variável contém o n. de menor idade. */ float media_altura_todos;/**< esta variável contém a média geral de altura */ unsigned int acima_80_kg;/**< esta variável contém a os de peso > 80kg */ float m_i_100_kg;/**< Média da idade dos que tem +100kg */ unsigned int jog_100_kg;/**< Ocorrências dos que tem +100kg */ //! Para próximo passo é necessário duas estruturas FOR aninhadas. unsigned int i, j; /**< i: linhas, j: colunas. */ float aij; /**< aij: é o elemento, aqui optei por flutuante por ser mais * flexível como in-put. */ //! NESTE PONTO TEMOS 2 VETORES NÃO PODEMOS ARRISCAR DEIXA-LOS SEM INICIAR. for( i = 0; i < x; i++) for( j = 0; j < y; j++) idades[ (i * y) + j ] = media_idade_time[ i ] = 0, alturas[ (i * y) + j ] = 0; /**< Inicializando vetores. */ menor_idade = 0; /**< vamos iniciar, pois será usada a partir de agora. */ media_altura_todos = 0;/**< vamos iniciar. */ acima_80_kg = 0;/**< incializando... */ m_i_100_kg = 0; jog_100_kg = 0; for( i = 0; i < x; i++ ){/**< percorre as linhas: ou times. */ printf("** Entre com os dados dos jogadores do %u-Time.\n", i + 1); for( j = 0; j < y; j++ ){/**< percorre as colunas: ou jogadores. */ printf("* Jogador %u: ", j + 1); printf("#formulario[ idade altura peso ]: "); scanf(" %f", &aij); /**< captura idade: sem tratamento de in-puts. */ idades[ (i * y) + j ] = aij; /**< Respondendo A) */ media_idade_time[ i ] += aij; /**< Respondendo B) */ scanf(" %f", &aij); /**< captura altura: sem tratamento de in-puts. */ alturas[ (i * y) + j ] = aij; /**< Resposdendo C) */ scanf(" %f", &aij); /**< captura peso: sem tratamento de in-puts. */ pesos[ (i * y) + j ] = aij; /**< Respondendo D) */ } printf("\n"); } //! A PARTIR DE AGORA: GERAR RELÁTÓRIOS. //! Primeiro relátorio é a tarefa A), B), C) e E) printf("\nRelatorios Consolidados...\n"); for( i = 0; i < x; i++ ){/**< percorre as linhas: ou times. */ for( j = 0; j < y; j++ ){/**< percorre as colunas: ou jogadores. */ if(idades[ (i * y) + j ] < 18u)menor_idade++; /**< Se menor que 18 anos incremente menor idade. */ //! RESPOSTA DE A) */ media_altura_todos += alturas[ (i * y) + j ]; /**< Resposdendo C) */ if(pesos[ (i * y) + j ] > 80u)acima_80_kg++; /**< Respondendo D) */ if(pesos[ (i * y) + j ] > 100u){ m_i_100_kg += pesos[ (i * y) + j ]; jog_100_kg++; } /**< Respondendo E) */ } media_idade_time[ i ] /= y;/**< A cada intereção de time, é calculada * a média do time atual, a soma das idades dividido por n. jogadores. */ //! RESPOSTA DE B) } media_altura_todos /= x * y;/**< Média Geral * a média do time atual, a soma das alturas dividido por todos jogadores.*/ //! RESPOSTA DE C) //! A PARTIR DE AGORA: EXIBIR OS RELÁTÓRIOS. //! Primeiro relátorio é a tarefa A), B), C) e E) printf("** Relatorios.\n"); printf("* Total de Jogadores de idade < 18: %u jogador(es).\n",menor_idade); printf("* A Media de idade por time.\n"); printf("* #Time | media de idade.\n"); for( i = 0; i < x; i++ ){ printf("* #%3u | %.1f anos.\n", i + 1, media_idade_time[ i ]); } printf("* A media das alturas e: %.2f metro(s).\n", media_altura_todos); if(acima_80_kg)/**< Se 0 então não faz nd. */ printf("* %.1f%% dos jogadores com +80kg.\n", (float)acima_80_kg/(x*y)*100); if(jog_100_kg)/**< Se 0 então não faz nd. */ printf("* Em media %.1f jodadores têm +100kg.\n", m_i_100_kg / jog_100_kg); printf("** Fim.\n"); //! FIM. return 0; } Preciso do feedback, desta maneira ficou claro? Faça-me as perguntas que quiser. Referência Novo C: VLA- Matriz de Comprimento Variável ______________________________________
  11. , compreendo, foi um rascunho da solução... com mais tempo venho aqui e farei um Bottom-up deste código, e o farei mais limpo e inteligível.
  12. C Language is Dead? Acho que a pergunta esta. Não sou programador, aprendo C por hobby e também para usar as vezes nas aulas de matemática; Mais para fixação do assunto do que ensinar C. Já faz bastante tempo que estou ' zapiando' assunto e pegando isso e aquilo, considero-me um pouco mais que iniciante. Durante este tempo Vi matérias e declarações de Pessoas importantes Na área de programação conclui que C tem capacidade de despertar certa simpatia que nos deixa que apaixonados pela linguagem, e daí naturalmente aqueles que buscam produtividade em relação a tudo percebe que C como linguagem produtiva total falta de produtividade. Minha experiência com C demonstrou que é fácil de cometer erros difícil de ler os códigos, principalmente dos outros, poderosa, onipresente por razão de tudo e 'todas' as linguagem serem progresso do C. Para aqueles que não simpatizavam com a linguagem não recomendo e guir adiante, pois será perda de tempo, e dinheiro: Encontra senso a isto se você foi o tipo de criança que abriu o carrinho eletrônico para saber como funciona, então C vai estimular seu dom exploratório, e isto não tem nada ver com mercado ou produtividade ou segurança. Nas mais atuais linguagens nós encontramos o business. Em C, nas antigas a resposta para o porquê das novas. _______________________________
  13. beleza
  14. Observe e compare o fragmento abaixo: /** * \author Mauro Britivaldo * \date 23-Dez-2016 * Linguagem: C'11 * Editor: Code::Blocks 16.01 GNU GCC Compiler * * breve descrição. * */ //##################### Referências Bibliográficas ###########################// #include <stdio.h> int main( void ) { unsigned int x_times, y_jogadores, menor_de_idade; /**< Inteiro-sem sinal total de times(x), total de jogadores(y) por x. */ x_times = 0, y_jogadores = 0, menor_de_idade = 0; //< CAPTURANDO DO TECLADO OS VALORES DE X & Y printf( "Entre com x times, y jogadores por time (X Y): " ); scanf( " %u%u", &x_times, &y_jogadores ); /**< flags: %u quer dizer apenas inteiros positivos. */ //< VETORES DECLARADOS DEPOIS DE CAPTURAR OS VALORES DE X & Y //< Busque na google por VLA - Variable Lenght Array. unsigned int jogadores_idades[ x_times * y_jogadores ]; /**< Declarado VETOR com o produto de times por jogadores. */ /**< Busque por VLA. Para mais informação */ float time_media_idade[ x_times ]; /**< Declarado VETOR para media de idade por time */ /**< Vetor-Flutuante-sem sinal: apenas valores positivos. */ //< resposta A LETRA B) DEPENDE DA LETRA A) unsigned int i, j, input; for( i = 0; i < x_times; i++ ) { for( j = 0; j < y_jogadores; j++ ) { printf( "Entre com a Idade de %u-Time, %u-Jogador: ", i + 1, j + 1 ); scanf( " %u", &input ); jogadores_idades[ ((i * j) + j) ] = input; /**< Para aij temos i x j + j. */ time_media_idade[ i ] = input + time_media_idade[ i ]; if( input < 18u ) menor_de_idade++; /**< Respondendo a questão A). */ input = 0; } time_media_idade[ i ] = time_media_idade[ i ] / j; /**< Respondendo a questão B). */ } printf( "\n\n%s%u%s%s%u%s%s", "*** No campeonato tem ", x_times * y_jogadores, " jogadores.\n", "Destes ", menor_de_idade, " tem menor idade (<18 anos).\n", "A Media de Idade e:\n" ); //< EXIBIR: RELATORIO FINAL. for( i = 0; i < x_times; i++ ) { printf( "%u-Time, Media de idade igual: %.2f\n", i + 1, time_media_idade[ i ] ); } printf( "\nFinal de Resposta para A & B\n\n" ); return 0; } ____________________________________
  15. Boa noite, este exercícios longos de fixação que preguiça dar de responder... Vamos lá, primeira coisa x, y ➠ x é o time, y é número de jogadores então Se x: 1 time e cade time tem y: 5 jogadores teremos: x:1,y:5 = {☻☻☻☻☻}, Total: 5☻ e se x:3, y:5 temos: {☻☻☻☻☻}, {☻☻☻☻☻}, {☻☻☻☻☻}, Total: 15☻ mesmo que x vezes y, portanto uma MATRIZ aij( 3x5 ). Este foi um exemplo. Solucione com uma estrutura de repetição e um vetor para cada característica, ao invés de uma matriz: declare: games_idade[ x * y], games_altura[ x * y], games_peso[ x * y ], time_idade_media[ x ]; uma variável para responder cada pergunta de a) ate e), uma estrutura for, e para cada pergunta uma declaração IF avaliando a condição. Escolha uma letra para ser respondida de exemplo? Se jugar necessário. ____________________________________
  16. Eu aprendo mais e mais com as questões que os colegas trazem aqui para fórum, por isso gosto tanto de vir aqui, praticamente ação diária em minha vida. Fazia tempo que queria dizer isso! Thank!!! A tarefa é, determinar o maior número de repetições consecutivas, em um vetor previu e organizado, melhor dizendo, ordenado. Dividir para conquistar: Funções, na minha concepção funções além de simplificar a solução, produz um código mais elegante (bonito de se ver). É uma prática logicamente e estaticamente mais organizada que jogar tudo dentro do main, da ultima forma fica desorganizado e difícil de depurar, por razão disso,não recomendo. Por mais simples que seja ou complexa a tarefa, jogar tudo no main é FAIL. Dito isso, vamos ao exercício: A Função faz- Busca por um Elemento e Conta suas ocorrências no reta vetorial A Função retorna- O elemento ou índice do elemento campeão bem como imprime o número de ocorrências. É preciso- vetor, tamanho do vetor, índice de elementos bem como campeão. CODE /** * \author Mauro Britivaldo * \date 21-Dez-2016 * Linguagem: C'11 * Editor: Code::Blocks 16.01 GNU GCC Compiler * * breve descrição. * */ //##################### Referências Bibliográficas ###########################// #include <iostream> //##################### Protótipos de Função ###########################// int elem_count( const unsigned int scale, unsigned int strip[] ); using namespace std; int main( void ) { unsigned int v[11]={30, 30, 30, 30, 40, 40, 40, 40, 40, 30, 30}; elem_count( 11,v ); return 0; } //##################### Declaração de Função ##########################// int elem_count( const unsigned int scale, unsigned int strip[] ) { unsigned int index, maior = 0, tmp_maior = 0, busca = 0, campeao = 0; for( index = 0; index < scale; ) { busca = strip[ index ]; for( ;index < scale && busca == strip[ index ]; index++ ) { tmp_maior++; } if( maior < tmp_maior ){ campeao = index - 1, maior = tmp_maior; } tmp_maior = 0; } cout << "Saida- " << maior << "(" << maior << " "; cout << strip[campeao] << "'s consecutivos)" << endl; return 0; } Fácil de ler acima >.<
  17. @Felipe da Silva Bisso Boa tarde, std::cin este objeto, dentro muitos de seus métodos existe um que vai ajudar-te em uma boa solução: o método fail( ) , este método retorna true se o tipo de dados é incompatível, e false se o tipo de dados é compatível. int toNumeric; std::cin >> toNumeric; if( true == std::cin.fail( ) ) cout << "[FAIL] It's not numeric value!" << endl; ____________________________________
  18. Procure na internet: 1: Funções em programação C, ou C++, 2: Criando menu em programação C. ___________________________________
  19. Tente assim: Faltou [ ; ] depois de int soma = 0, deve ser int soma = 0;
  20. Fortalecendo o que diz acima; Tem que retornar para a função principal: main int c(int *numero) { int soma = 0 for(int c = 0; c < 10; c++){ soma = soma+numero[c]; return soma; } main(){ int x, soma = 0, vetor[10] = (1,1,1,1,1,1,1,1,1,1); soma = s(vetor); cout << "Total: " << soma << endl; system ("pause"); } _____________________________________
  21. É isto mesmo, único programa com no mínimo duas funções e um menu.
  22. A variável m tem sua utilidade marcada pelo uso da função média, logo sua necessidade acaba no instante em que deixa de ser útil, ou seja, dentro da função calcularmedia.
  23. kkk correto@doodoh
  24. Boa noite @doodoh Na minha avaliação você tirou 10, entretanto temos que captar a intenção por trás do uso e uma função: I- Um a função possui parâmetros, e os argumento somente são acessíveis à função meio de seus parâmetros. ( ... ) float n1,n2,n3,n4,m; /**< Flutuante-com sinal {m}: declarada global ERRADO. */ calcularmedia (float a,float b,float c,float d){ float m = .0f; /**< Flutuante-com sinal {m}: declarada local CORRETO. */ m=(n1+n2+n3+n4)/4; /**< ERRADO. */ m = (a + b + c) / 4.0;/**< CORRETO. */ cout<<"Media: "<<m; /**< Somente um pouco errado! */ cout << "Media: " << m << endl; /**< Totalmente certo. */ } ( ... ) ______________________________
  25. Boa tarde, Todos Solução apresentada @isrnick está excelente. Vamos deixar o software +completo, e servir o post como futura referência. Open Software, aberto para edição e compartilhamento. /** * \author Mauro Britivaldo * \date 21-Dez-2016 * Linguagem: C'11 * Editor: Code::Blocks 16.01 GNU GCC Compiler * * breve descrição. * */ //################## Referências Bibliográficas ########################// #include <stdio.h> //< printf( ... ); scanf( ... ); //################## Protótipos de Função ########################// int frente( unsigned int col, int vetor[], int val ); int tras( unsigned int col, int vetor[], int val ); int print_matriz( unsigned int lin, unsigned int col, int matriz[][col] ); int main( void ) { unsigned int lin, col; printf( "*** Matriz de sequencia Zigzag Software \n" ); printf( "[#] Digite o numero de linhas e colunas da matriz: " ); scanf( " %u%u", &lin, &col ); while( lin && col ) { {/**< Bloco anônimo */ int matrix[ lin ][ col ], i, aij = 0; for( i = 0; i < lin; i++ ) { if( i % 2 ) aij = tras( col, matrix[ i ], aij ); else aij = frente( col, matrix[ i ], aij ); } print_matriz( lin, col, matrix ), lin = col = 0; }// Bloco anõnimo printf( "[#] Digite o numero de linhas e colunas da matriz: " ); scanf( " %u%u", &lin, &col ); }; return 0; } //################## Definição de Função #######################// int frente( unsigned int col, int vetor[], int val ) { unsigned int j; for( j = 0; j < col; j )vetor[ j++ ] = ++val; return val; } int tras( unsigned int col, int vetor[], int val ) { unsigned int j; for( j = col; j > 0; j )vetor[ --j ] = ++val; return val; } int print_matriz( unsigned int lin, unsigned int col, int matriz[][col] ) { int i, j; for( j = 0; j < col; j++ )printf( " ---" ); printf( "\n" ); for( i = 0; i < lin; i++ ) { for( j = 0; j < col; j++ ) { printf( " %3d", matriz[ i ][ j ] ); } printf( "\n" ); } printf( "\n" ); return 0; } ___________________________________

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!