Ir ao conteúdo
  • Cadastre-se

Ansi C

Membro Pleno
  • Posts

    3.206
  • Cadastrado em

  • Última visita

Tudo que Ansi C postou

  1. @devair1010 organização e compartilhamento. Organização Aos iniciantes, quase sempre, inspira-se depositar declarações neste tipo. Vê-se, pelo menos, assim um para: Declaração de tipos ... macros ... funções ... variáveis globais coisas comuns com compartilhamento no projeto.
  2. @Gustavo Rossi0101 Qual a duvida, onde fica tua maior dificuldade? -
  3. @ignite137 Olá. Para expressar o PROCESSAMENTO com C, é requisito uma expressão com matemática. Semelhante o que já foi dito, a partir da informação de entrada determine a área da superfície total da caixa em metros quadrados (At m²): sendo a soma da área da superfície das 6 faces. At = 2xy + 2xz + 2yz Em seguida, suponha cada razão do enunciado. Sendo a primeira a quantidade de tinta total para o serviço, uma razão de um metro quadrado por 3 litros de tinta (1 m²/3l). At m²/(1 m²/3 l) › (At m² • 3 l) /m² › 3At litro(s) *Suponho a quantidade de tinta sendo o produto da área da superfícies por 3. Em seguida, para cada 10 metros quadrados é necessário um novo rolo de tinta que custa R$ 5,00 (10 m²/5 r › 2 m² /real) At m²/(2 m²/real) › (At m² • real) /2 m² › ½At real *Suponho o custo com rolos sendo a metade da área da superfícies. continua...
  4. Claro, e qual é probabilidade de erro nessa situação? Dum erro que é quase inexistente. Entretanto, culturalmente essa expressão vem com mais uma sentença -- c != EOF Ex. /*Um discarte mais seguro da linha*/ int c = 0; //isso declara a palavra auxiliar no discarte */ while (c != '\n' && c != EOF) /*isso expressa um discarte mais seguro da linha (por ciclo) enquanto a palavra diferir de 'ENTER' e EOF */ c = getchar (); //isso pega uma palavra (int) na linha É mais ou menos assim que os manuais expressão essas coisas, né? Para lógica não faz diferença, não é erro, com ou sem o tratamento.
  5. Erros Internos associados ao fluxo (Input/Output) nos são irrelevantes na compreensão da Lógica, é por esse motivo que, consideramos certas as expressões de @Midori @devair1010 Checar os estados dos fluxos padrões, por exemplo, com uso da função 'ferror', pouco ou quase nada adicionará as suas lógicas / expressões. Sendo mais didático, por exemplo: no caso da expressão do @Midori há pequeníssima possibilidade de ficarmos presos num laço infinito, bem ali, na expressão que nos aponta um descarregar do fluxo de entrada (padrão): while(getchar() != '\n'); # Um tratamento de erro while (getchar () != '\n' && ferror (stdin) == 0) ; Se, potencialmente, a getchar indicasse erro, veríamos o laço sem fim; apesar de tratável, o tratamento é irrelevante na compreensão dessa expressão, de sua lógica e entendimento.
  6. @Diego M. Santos Olá! Estou iniciante nesse assunto (ainda). Parece-nos sinistra a inter-relação. Porque entendemos, o primeiro sendo uma CLI e outro um Editor (supostamente) independentes. Logo, o que acontece se ousássemos instalar (Angular/CLI) a Interface de Linha de Comando do Angular e expressássemos diretamente duma Shell: ng --help, antes de instalar o VSCode ?
  7. @clara leal , Olá (outra vez), por motivos didáticos acrescentarei a mensagem (exemplificação) que, talvez, reforça a percepção de que o cerne não são os números inteiros (Z), porém -especificamente- os positivos (Z+). C'11 in GCC /* main.c --- Uma exemplificação duma variável de controle @ESPECIFICAÇÃO Exemplificação e verificação de user-prompt da informação [#] Agora para continuar com essa operação, diga-nos A QUANTIA de fichas Cliente"s no cadastramento. (0 = anulará operação)? @BUGs Caso falhem -especificamente- na informação (digitação), imprima-se: [!] erro--- quantia inválida. *sendo 'erro' aquela string faltosa. e repetir. @EXPRESSÃO C'11 into GCC 5.2.0 *** by Mauro B. 2024-2 v2 */ #include <stdio.h> int main (void) { int nfichas = (-1); /* sendo quantia de f- Cliente no cadastramento */ char prompt [BUFSIZ]; /* sendo mediador de tipos no cadastramento */ /* Como na interação user-prompt ... */ printf ("%s", "[#] Agora para continuar com essa operação,\n" "diga-nos A QUANTIA de fichas Cliente's para cadastramento.\n" "\n"); for (; printf ("%s", "(0 = anulará operação)? "), fgets (prompt, BUFSIZ - 1, stdin), sscanf (prompt, " %i", &nfichas), (nfichas <= 0) ;) if (nfichas) /* SE difere do 0 */ printf ("[!] %s--- quantia inválida.\n" "Dê-me quantia >= 0.\n\n", prompt); else /* SE 0 */ return (-1); /* retonar status FAILURE */ printf ("%s%d%s", "[#] Informou-nos A QUANTIA de: ", nfichas, " fichas.\n" "\n"); return (0); } /* retornar status SUCCESS */ Ilustração in MS Windows — Numa situação de uso comum, hipoteticamente, o laço encerra na informação de inteiro positivo ou 0 encerra. Entendeu-me nessa lógica /expressão ?
  8. Se diz provavelmente, então prove... Contudo, tuas opiniões (comentário mínimo) talvez ajude outro alguém… (senão tanto faz) Devemos e podemos COMENTAR TUDO.; até expressões simples e quem diz o contrário, quase sempre tem pouco ou quase nenhuma autoridade. Se estou errado, prove! Ex: c = a + b; /*c sendo soma de a e b */ c = a + b; /*c sendo soma de a e b */ — Excelentes Programadores \ professores \ tutores \ iniciantes com um pouco de experiência e até mesmo IA sabem ignorar esses comentários, independentemente de que os escreveu. De todo modo, agradeço à tentativa!
  9. Olá! Suponho haver semelhança entre o queres e o que necessitas. Portanto… Há necessidade (duma informação), sendo ela um elemento no conjuntos dos números inteiros positivos (Z+). Daí… Essa analise superficial foca numa variável de controle, porque, interessa-nos, talvez, o valor nela e não noutra. Logo… Parafraseando-se tua indagação, mais exemplo de interação num caso de uso comum; expressamos o código-fonte assim: C'11 in GCC /* main.c --- Uma exemplificação duma variável de controle @ESPECIFICAÇÃO Exemplificação e verificação de user-prompt da informação [#] Agora para continuar com essa operação, diga-nos A QUANTIA de fichas Cliente"s no cadastramento. (0 = anulará operação)? '''BUGs: Caso falhem -especificamente- na informação (digitação), imprima-se: [!] erro--- quantia inválida. *sendo 'erro' aquela string faltosa. e repetir. @EXPRESSÃO C'11 into GCC 5.2.0 *** by Mauro B. 2024-2 */ #include <stdio.h> int main(void) { int nfichas = (-1); /* sendo quantia de f- Cliente no cadastramento */ char prompt [BUFSIZ]; /* sendo mediador de tipos no cadastramento */ /* Como na interação user-prompt ... */ printf ("%s", "[#] Agora para continuar com essa operação,\n" "diga-nos A QUANTIA de fichas Cliente's para cadastramento.\n\n"); for (; printf ("%s", "(0 = anulará operação)? "), fgets (prompt, BUFSIZ - 1, stdin), sscanf (prompt, " %i", &nfichas), (nfichas <= 0) ;) if (nfichas) /* SE difere do 0 */ printf ("[!] %s--- quantia inválida.\n" "Dê-me quantia >= 0.\n\n", prompt), prompt [0] = '\0'; else /* SE 0 */ return (-1); /* retonar status FAILURE */ return 0; } /* retornar status SUCCESS */ Ilustração no MS Windows — Note a expressão / sentença para inteiro positivo (Z+) ou zero, onde qualquer diferente, hipoteticamente, será FALHA e continuará no seu laço. Isso talvez inspire uma expressão para o teu problema @clara leal
  10. Como quase sempre os fluxos são tipos agregados-lineares (Overwrite), essa solução consistirá na substituição daquele espaço em branco por um caractere de quebra de linha ('\n') — e não inserção. Olá @André T Franco — Semelhante o que já foi dito: Supostamente, essa tua solução ainda não será suficiente, porque a linha recém-definida teria uma soma de strings inferior a 16; essa situação, aparentemente, exige, quando possível, complementar 16 strings por linha, sendo a linha abaixo a fonte dessa complementação: supostamente, após encontrar aquela string de controle, envia-se à saída 16 strings e um quebra de linha (se possível, senão envia o resto).
  11. Quem falou que seus comentários foram desnecessários / qual autoridade? 'ÔXI'!!! A expressão é tua, comente-na livremente (se tem tempo: seja verborrágico). Não perda–tempo com regrinhas, recomendações de estilo e indentação esdrúxulas; se necessário, existem exemplos de expressões bem escritas na pasta da biblioteca padrão da linguagem de programação C. A propósito, alguns dos melhores guias para iniciantes tem comentários em TUDO; e somos autorizados por eles a sermos super didáticos até à nos mesmos. — Sugerem que, inicialmente, expressemos uma solução com algoritmo. Existem 3 tipos principais de algoritmo: a descrição narrativa, o fluxograma e o pseudocódigo. E daí? — Daí que, recomendam mais estudo no seu desenvolvimento lógico e expressão em algoritmo, em seguida, rebaixá-lo à linguagem C, usá-lo para documentar com comentários e aprender, porque a linguagem de programação é somente uma ferramente ( e C é uma das antigas); — Então Existem linguagens muito, …, muito mais idiomáticas que a linguagem C, e mesmo elas, não superam o algoritmo/lógica/comentário.
  12. O que dizem nos guias da Linguagem de Programação C? — Suponho que algo semelhante à String: é uma sequência finita de elementos dum alfabeto, sendo algum meio de variável ou constante literal de bytes contíguos, quase sempre legíveis, que na computação denotam array ou matriz normalmente de caracteres — porque, muitas vezes, depende dessa estrutura e tipo de dados. E daí? — Daí o motivo desta resposta Suponho que, dependendo da Filosofia C do autor, string denotará arranjo de char ou arranjo de qualquer tipo na implementação que estruturar o texto. Ou somente uma sequência de caracteres. Então — Concordo com @devair1010, porque tradicionalmente string é composta de dados legíveis por humanos sobre estrutura de dados de array de tipo caractere (char: byte).
  13. [Opinião]: Concordo contigo, reverter o legível para 'bem mais legível' faz sentido para aqueles que (ainda) enunciam. E vou além, destoa de refinamento do código-fonte, dizem uma etapa manual de otimização de software que a partir duma primeira solução, o refinamento define outra em expressões básicas e/ou eficientes; E daí? Daí responda, é possível equacionar/provar O eficiente e O Básico (S/N)? Se SIM, então o eficiente e o básico não são subjetivos. E o legível é! Refinamento do código-fonte, é uma etapa vital por volta de 1946 Hoje, para aqueles que deixam o compilador ajustar o código, meus sinceros parabéns porque o tempo é tudo. [Opinião]: As discussões, aparentemente, começam assim desse jeitinho e sendo C uma linguagem dita de cima para baixo, as soluções vão de sintética à analítica. Na realidade, têm-se muitas soluções para um mesmo velho problema. E não, eu não pesquisei, mas acredito que há muitas soluções de problemas semelhantes, quiça o mesmo problema com enunciado diferente. É uma oportunidade para aprender muito mais do que sugerem; no exercício da leitura do guia — suponho que tenha um ou mais guias de linguagem c para ler.
  14. Ah! Agradeço pela oportunidade de responder tuas perguntas sobre os compiladores: MinGW (definido para suporte ao GCC) GCC (sendo um conjunto (coleção) de compiladores da GNU). Os programas do gênero compilador (MinGW/GCC) são, para mim, seguramente bons. — Sinta-se a vontade para experimentar e perguntar.
  15. Suponho que sim, sendo MinGW um importante 'software' do gênero compilador, ele incluirá certamente essa especificação. E o GCC, sendo o seu conjunto de compiladores, também é capaz! Logo “MinGW o seu GCC para Microsoft Windows”. — Seja Um Windows ou Um sistema operacional do tipo Unix, o GCC seguramente suporta 4 subscritos. Boa pergunta, suponho haver uma formalização. Sendo, talvez, mais divertido observar. — Então, experimenta! #include <stdio.h> int main() { /* escreva mais subscritos [2] em sx até o limite do suporte */ static char sx[2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2][2] = {0}; // ok unsigned sx_meu_tamanho_e = sizeof sx; printf("O tam de sx e: %u byte.\n", sx_meu_tamanho_e); return 0; } * Não há perigo, adicione mais dimensões até o insuportável. — Meu palpite é que não passa de +126. — Espero que sim.
  16. Exemplifique um instante, talvez, ficará tudo ainda mais óbvio. Por exemplo, digamos que iniciou, passou-se 43876 milissegundos [supomos milissegundos sendo a unidade de tempo mais precisa em teu problema] E agora… com esse instante, qual a disposição e dígitos no LCD? — Palpito que estaria assim: 00:00:43 08 87 876
  17. @arfneto Olá! Eu ainda não entendo >< !
  18. Ok! Experimente algo: apague aquela linha e observe, se o erro sumiu, então sua conclusão está correta. O livro pode estar sim!
  19. Supostamente, essa é o erro.
  20. Olá!@cimerio7, o que dizem — nos guia de programação C# — dos nomes nas 'class' ? — Suponho que alguns desses nomes são campos, e que os campos são/ou/não inicializados na declaração. Aparentemente, é um erro inicializar pós-declaração. Sendo, talvez, ideal inicializar o campo com 20 argumentos na declaração.
  21. Olá! Entendo os dois (você e vosso professor). Suponho que, apesar de um 'pointer', empresa[] é efetivamente 'array' porque terá o endereço de um; e sua sintaxe. E daí, Em 'arrays', declara-se tudo, inclusive o "n" - sua composição; sendo "N"-máximo independente do usuário com declaração no programa pelo programador - N sendo constante, porque, proíbe-se composição de 'array' (tamanho) sobre incógnita (x, n... qualquer variável não definida) e dizem que 'arrays' são quase sempre definidos durante a montagem do programa: A turma talvez concordará que no máximo 10 endereços por empresa já serve para essa constante — Assim, o máximo de endereços por empresa. Depois de um cadastro, existirá entre eles empresas com endereços preenchidos e não, sem definição de número. Mas, como determina os endereço a cada empresa com/sem preenchimento e excluído? — Com lógica.
  22. Olá! Suponho que, vosso professor filosofou e durante sua aula discriminou 'Array' x 'Pointers'. E daí, Apesar dos operadores de array, o parâmetro empresa não é um; tem-se a ilusão de array, mas será somente seu ponteiro — Sendo didático, sugiro a revisão da discussão, porque se essa exceção passou, então passou ponteiro.
  23. Há solução que utiliza a raiz do dividendo (o número a ser dividido) para reduzir a quantidade de divisões|multiplicações|iterações explicitas, sendo uma razão para importar, em específico, math.h sqrt(x) -- calcular a raiz quadrada de seu argumento x -- Observe No caso, a pergunta foi|é se n (número de divisores de x) é igual a 1, ou seja, estaria|está x fora do grupo dos números compostos ou simplesmente é primo. Em tese: * Se x é par x é composto. * Se x>2 tem raiz inteira x é composto. * Se x tem divisores entre x+1 e sua raiz ele é composto. Logo Em duas de três condições a raiz de x é útil para uma solução que corrobora na importação da biblioteca math.h Advirto que às vezes uma resposta não é melhor que o como responde, sendo necessário contemplar o máximo de quesitos estudado|visto|anotados|lidos|etc na aula para ter uma resposta válida, ou seja, um resultado que funciona no fórum não é garantia de resultado. Pergunte mais sobre Observe tuas anotações, há exemplo com uso de funções dessa biblioteca (math)? Se sim, é porque deve ser feito com elas.
  24. A entrada acima, relaciona-se à (a>=b>=c) sendo a primeira instrução IF. Em tese, para uma entrada do tipo: 3 2 1 a saída será: 3 2 1. Conforme o primeiro IF
  25. Um compilador moderno acusaria alguns alerta relacionados com a construção|codificação acima, entre eles estaria o uso de variáveis não inicializadas como número repetição imprevisível. São falhas de semântica|lógica. Comece por avaliar a expressão de fluxo de controle e repetição -- FOR. Lá diz que PARA `i` (indefinido) ENQUANTO `result_joao` (indefinido) MENOR IGUAL `result_ze`(indefinido) FAZ blah, blah,blah, i = i + 1 É definidamente um loop às vezes infinito.

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...