Ir ao conteúdo
  • Cadastre-se

Ansi C

Membro Pleno
  • Posts

    3.226
  • Cadastrado em

  • Última visita

Tudo que Ansi C postou

  1. Diz que é esperado o fecha chaves } a partir da linha 43 coluna 6 do arquivo main.cpp e assim concluir o bloco de código aberto na definição da função main() { linha 4 coluna 11.
  2. Tudo bem, eu posso explicar tantas vezes quanto for necessário para entender. Veja As operações (funções) de fila uteis|essências para uma solução|algoritmo foram definidas (abaixo): Tudo que precisa, digo isso porque tenho uma solução, são delas, @oJunior1384 Existe uma lista inicial com duas operações -- enfileirar e desenfileirar, respectivamente no início e no fim da fila. Logo Tua meta será|é construir uma combinação de ‘loops’ e operações (funções) que rotaciona essa lista tantas vezes quanto necessário for para copiar o último termo de cada rotação para uma lista auxiliar. Rotação: é posicionar o último termo da fila na primeiro posição dela, para isso é necessário desenfileira e enfileira n-vezes, ou seja, o tamanho da fila - 1. Observe que Se A é uma fila tipo: A [1 2 3 4 5] E aplicar uma rotação em A, cujo tamanho é 5, fará em um ‘loop’ de 4 repetições que tornará a composição da fila A igual à [5 1 2 3 4], isso porque a cada repetição sua máquina faz `a` = início da fila A, desenfileira A e enfileira `a` em A e repete até o fim do ‘loop’-rotação. Em seguida, no fim da ‘loop’-rotação: basta enfileirar na fila B o início da fila A e desenfileirar A. Assim Nesse ponto B = [5] e A = [1 2 3 4]. Construa o programa para repetir o processo dessa observação até que a fila A fique com tamanho 0. Sendo assim, precisa de 2 loops. Quando o tamanho da fila A é 0 o loop externo para e a composição será: A = [] e B = [5 4 3 2 1], por tanto, B é A inversa.
  3. Uma resposta em três etapas/loops Loop 1. Iterar sobre a lista e imprimir os valores menores que 0, depois Loop 2. Iterar sobre a lista e imprimir os valores igual 0, depois Loop 3. Iterar sobre a lista e imprimir os valores maiores que 0.
  4. Existe uma lista inicial com duas operações -- retirar e colocar termos, respectivamente no início e no fim da lista. Tua meta será|é construir uma combinação de ‘loops’ e operações (funções) que rotaciona essa lista tantas vezes quanto necessário for para copiar o último termo de cada rotação para uma lista auxiliar. Uma rotação é retirar e colocar o termo retirado da lista n-vezes, tal que n é o tamanho da lista - 1, ou seja, no final de uma rotação o primeiro termo dela era seu último. Notará que na última rotação a lista inicial terá 1 único termo que também é|foi o seu primeiro, que ao colocar na lista auxiliar ficará na sua última posição, enquanto a inicial fica vazia, pois a auxiliar é uma cópia invertida dela. Daí a inicial é vazia e auxiliar é|será a nova inicial invertida. @oJunior1384 é isso?
  5. No caso em questão, fez alocação dinâmica e estática do vet. E segue bipolar, conflita entre alocações estática e dinâmica do vetor `vet` em todas as funções. Seria|será|é sábio escolher uma das abordagens. Penso que alocação estática tem mais indicações para o caso de estrutura simples como os vetores.
  6. Eu entendi (fica fácil perceber) que |seria|foi uma exigência|quesito do exercício contemplar a while na solução, mas desse modo é basicamente utilizar o 'loop' para copiar 1 a 1 o valor em `conta` para `x`, sendo um exercício completamente diferente que gasta energia para realizar atribuição de valor. Se a meta é|seria|foi encontrar o valor `x` da equação por intermédio de algo um pouco assemelha à "busca por força bruta", então a `conta` não existe para solução, incrementa-se x no ‘loop’ e sua condição seria|é [Y < função de x] (conforme postagens anteriores).
  7. Ola! Consegue converter e mostrar o resultado duma pessoalmente, isso é: sem eletrificar|construir|codificar em c, somente via notepad ou (papel e lápis) com base em lógica de operações de pilha? Sendo elas: empilhar(stack,push) desempilhar(stack,pop) Isso não é realmente necessário, mas esclarecerá o problema. Veja: Acima, eu observo as pilhas: operadores, operandos, tradução e adequação, sendo essa última a tradução na ordem de entrada. Ou seja, eu espero que no fim da tradução a expressão fique na ordem inversa do formato de entrada, desse jeito: [* - 4 6 + 2 4] Assim, ao desempilhar tradução em adequação terei uma pilha na ordem inversa dos itens (acima): sendo a ordem do formato de entrada, desse jeito: [4 2 + 6 4 - *] Sei também que o operador adição (+) ficou em seguida dos operandos (4 e 2) porque durante a tradução abriu e fechou parenteses, isso é, todos os operadores exceto e antes do abre, que estão na pilha de operadores, foram desempilhados para tradução, nesse caso foi somente o operador adição (+) e, logicamente, os [abre e fecha] parenteses são descartes. É isso,@Lipeco ?
  8. Ola, Função recursiva (Recursion) : são quase instruções ‘loops’ que empilham n-chamadas de si até a conquista da resposta. Exemplo /* Exibir os itens via iteração sobre vetor -- recursiva -- */ void//retorno nulo show(int n,int *array) { if(0<n){ printf("%d ",*array); show(n - 1,array + 1);} } Nota que suas chamadas (internas) decrementam `n` enquanto incrementam o `array` semelhante ao ‘loop’ que percorre o vetor: /* Exibir os itens via iteração sobre vetor */ void//retorno nulo show(int n,int *array) { for(; 0<n ;){ printf("%d ",*array); n = n - 1,array = array + 1;} } Sua tarefa é|seria adaptação de laço para recursiva (from loop to recursion).
  9. Eu penso que esse é um dos problemas, pois ainda não poderia compilar se tem falhas de sintaxe. Veja `valor` é nome de 1 byte. Mas, na expressão abaixo tem as assinaturas de uma matriz. `valor` não é matriz e não há matriz alocada para os valores desejados. Logo um bom compilador, não compila esse programa.
  10. Ola, @Fídias Torres Qual é|foi a pergunta? Se fosse para adivinhar, o meu palpite é|seria algo semelhante à: /* *PERGUNTA * Construa em lingagem de programação c++ um programa *que [1]solicite as dimensões de uma matriz de tipo string *[2], colete suas strings e [3]exiba com formato de tabela no terminal. */ Ative os alerta do compilador, eles fornecem instruções quase sempre precisas do problema quando aponta falhas de sintaxe, e os modernos de sintaxe e lógica, sendo o suficiente para maioria de nós (os iniciantes). Caso não queira, fale mais sobre o problema|pergunta|questão.
  11. Se o tamanho máximo de uma string chegar igual a 100, sua capacidade é igual a 101, isso porque nas funções que operam essa estrutura ela termina logicamente no caractere nulo (0 ou '\0'). A primeira vista esse detalhe aparenta pouco|nenhuma importância, mas produz resultados imprevisíveis.
  12. Olá, tudo bem? Espero que esteja bem! (Para mim) a impressão é que você partiu para construção do código as cegas. Veja O que é a variável p e o que significa vet[p] na declaração (acima)? Qual o sentido|razão para definir|capturar um valor em p depois que já declarou a VLA vet, por que uma variável que alberga a capacidade de um 'array type' se chama 'p'? Essa rotina (acima) funcionou, testou, ativou os alerta do compilador e não teve alerta? Logo Informe mín-máx da capacidade|variáveis no vetor, mas aloque o máximo permitido ou se utilizar de VLA, construa na ordem correta sendo primeiro a captura do número de capacidade em seguida a declaração do vetor, semelhante à: 1 /* Club-do-Hardware: Operação sobre vetores; VLA */ 2 #include"stdio.h" 3 int 4 main( void ){ 5 printf("%s","Ola, por favor informe o tamanho do vetor [1-100]: "); 6 int tamanho_vetor = 0; 7 scanf("%d",&tamanho_vetor); 8 if(tamanho_vetor<0){ 9 tamanho_vetor = (-tamanho_vetor) % 100;} 10 else if(tamanho_vetor>100){ 11 tamanho_vetor %= 100;} 12 else if(tamanho_vetor==0){ 13 tamanho_vetor = 100;} 14 int vetor_vla[tamanho_vetor]; 15 vetor_vla[tamanho_vetor - 1] = 2022; 16 printf("%s\n","Operação-sucedida!"); 17 printf("%s%d%s%d\n", 18 "Vetor[",tamanho_vetor,"] = ",vetor_vla[tamanho_vetor - 1]); 19 return 0;} OU 1 /* Club-do-Hardware: Operação sobre vetores; VLA */ 2 #include"stdio.h" 3 int 4 main( void ){ 5 printf("%s","Ola, por favor informe o tamanho do vetor [1-100]: "); 6 int tamanho_vetor = 0; 7 scanf("%d",&tamanho_vetor); 8 if(tamanho_vetor<0){ 9 tamanho_vetor = -tamanho_vetor % 100;} 10 else if(tamanho_vetor>100){ 11 tamanho_vetor %= 100;} 12 else if(tamanho_vetor==0){ 13 tamanho_vetor = 100;} 14 static int vetor[100]; 15 vetor[tamanho_vetor - 1] = 2022; 16 printf("%s\n","Operação-sucedida!"); 17 printf("%s%d%s%d\n", 18 "Vetor[",tamanho_vetor,"] = ",vetor[tamanho_vetor - 1]); 19 return 0;} Nesse caso há uma escolha (VLA ou static) que depende do assunto que estudou.
  13. Olá, tudo bem? Espero que esteja bem! Sendo um exercício, o melhor é responder somente com os auxílios existentes no livro|apostila|apontamento|páginas eletrônicas ou aplicativo com conteúdo que antecede o exercício e esse enunciado está confuso (pelo menos para mim). Veja O que é saída nesse contexto? Desempilhar e copiar, separadamente, parecem duas funções e a última expressão (copiar na saída) faz-me pensar em escrever no terminal ou qualquer outro destino de saída, daí o motivo da confusão porque o resultado (outputs) é como sugeriu baixo: Existem duas linhas para entrada e saída. Logo Construa sua TDA Pilha conforme o apontamento|livro do exercício que em tese tem as dicas-instruções para conseguir uma interpretação|compreensão desse enunciado.
  14. As funções, quase sempre são definidas a termos de outras funções. Se construir uma função para cada conversão de base numérica sendo o contrário de todas as conversões de uma só vez, no final terá o necessário para agrupar essas soluções num único procedimento intuitivo. Os exemplos de funções de conversão existem, aos montes, e não tenho nada acrescentar àquelas que existem.
  15. Olá tudo bem? Eu espero que esteja bem! Depende dos assuntos anteriormente estudados sendo um caso em que o como responde é MELHOR que só responder e a lógica (que eu sei) não é distante da realidade|natural dos fatos, experimente porque é simples, responda à pergunta (sem código). Notará uma contagem crescente|decrescente a partir da ocorrência do 0, que reinicia sempre que encontra 1, do contrário responde com a posição que iniciou sua contagem, além disso, se atingir o limite da lista antes de terminar, a resposta não é uma posição porque falhou.
  16. Olá, tudo bem? Espero que esteja bem. Tua programação demostra os recursos da linguagem c necessários para construção duma solução. Porém, sem o enunciado completo com exemplos ideias|perfeitos de entrada e saída, torna-se irracional auxiliar essa|qualquer discussão. Veja Etiquetar com ‘media_ponderada’ ou até mesmo com ‘media_ponderada_da_matriz’ é natural porque diz, desse modo, tudo sobre a função e sobre estado de espírito do programador. Logo Antes de postar o enunciado completo com exemplos ideias|perfeitos de entrada e saída, faça uma revisão da pergunta, especificamente, das partes que compõe um cálculo de média ponderada e só assim poste o enunciado completo da questão.
  17. E não! Mas, não há nada sofisticado ou sequer inédito! Veja seria|foi|é uma adaptação que usei para casos de variáveis int Logo #include"stdio.h" /* scanf printf */ #include"float.h" /* FLT_MAX FLT_MIN */ int main(void){ float n1,maior,menor; int cont; menor = FLT_MAX; maior = FLT_MIN; for(cont=1; cont<=5; cont++) { printf("Digite %iº número: ",cont); scanf("%f",&n1); if(n1>maior) maior = n1; if(n1<menor) menor = n1; } printf("O maior número é: %g.\nO menor número é: %g.",maior,menor); } * No seu caso, tuas variáveis são de float e os macros são FLT_MAX, FLT_MIN Resultado
  18. Olá, tudo bem? Há solução também nos fundamentos: qual é o máximo e o mínimo valor de representação numa variável|objeto de int. Veja Fonte: opengroup Logo ..snip.. int main(){ ..snip... menor = INT_MAX; maior = INT_MIN; ..snip.. printf("O maior número é: %g.\nO menor número é: %g.",maior,menor); } Não é uma solução lógica porque os limites não são entradas e estão invertidos nos respectivos objetos (menor: máximo, maior: mínimo), porém essa é outra maneira para garantir que o primeiro valor de entrada será simultaneamente o maior e menor inicial.
  19. Olá, tudo bem? Espero que esteja bem [...] Sendo um exercício, espera-se que encontre no apontamento|livro|apostila anterior ele; lá estão|deverão estar somente os fundamentos, pois esse é o objetivo — avaliação de leitura. Ou seja, uma responta deve os recursos (anteriormente) observados conforme o apontamento|livro|aula|grupo|site|app. Alguns assuntos em linguagem c de programação de computadores usuais nos apontamentos para exercícios semelhantes são: Tipos básicos Tipo derivado: Vetor Instrução condicional Operador lógico e aritmético Laços de repetição Iteração sobre vetor Entrada/Saída (I/O) de informação no aplicativo de console (com nenhuma ou o mínimo de “interface” gráfica) Extra: abstração e decomposição de problema. Pode ser que existam outros, porém sei que esses são o suficiente. 6. Iteração sobre vetor(es)
  20. Olá, @felipe_2015 Se o teu plano seria|foi|é uma rede de declarações IF-ELSE (cascata de condicionais) com as combinações|cenários possíveis. Então, para um determinada entrada falhar é porque lhe falta o|s cenário|s especificamente! Veja se uma entrada foi: 2, 1, 3: | Qual é uma expressão na condicional que identifica a entrada (acima) como desordenada ?a>b && c>a if(a>b && c>a){ // Um caso para c, a, b ficar não-crescente printf("%d,%d,%d.",c,a,b); } |Resultado (outputs) 3,2,1. Compreendes!
  21. Olá, Alexandre, tudo bem? Minha impressão que tuas maiores dúvidas aparecem quando o assunto é a linguagem e suas funções do padrão, e se tu defines uma site|manual|livro da linguagem c de programação para referências rápidas, resolverá a maioria delas. Veja getchar — pega 1 'byte' do fluxo stdin (padrão de entrada). Fonte: opengroup Logo A variável (int) nome (acima) tem a cópia do primeiro caractere na entrada (stdin), significa que após ler nome não existe o "Alex" na variável, há somente o 'A' de "Alex" e o resto ("lex") permanece no fluxo, no aguarda de nova leitura. A lógica poderia|foi|é substituir o separador. Veja Tua suposição seria|foi|é que durante entrada os campos são separados por 'NOVA LINHA', semelhante à: Ler nome ..... : Blah[ENTER] Ler RU ........ : Blah[ENTER] Ler telefone .. : Blah[ENTER] Ler e-mail ... : Blah[ENTER] Ou seja, fora as instruções ao usuário (humano) resta (a máquina) entrada semelhante à: Blah[ENTER]Blah[ENTER]Blah[ENTER]Blah[ENTER] Após entrada (inputs), espera-se um resultado (outputs) semelhante à: Blah;Blah;Blah;Blah; Daí o porquê duma lógica que substitui caractere. Para isso, escolha|construa o método|função|rotina de entrada e saída ideais|perfeitas.
  22. Olá, td bem? Espero que sim. Atenção no enunciado: Não-crescente e já saber disto, implica que no final procedimento, o resultado na variável 'a' tem o maior valor possível. Logo //etapa: 1 if(a<b){ int x = a; a = b; b = c; c = x; } Essa construção (acima) quase garantiu que a variável’a’ é maior que’b’, pois sua lógica é interrompida|modificada quando b recebe o valor dá’c’ Nessa etapa do programa, para uma entrada de valores: 1 2 3, terá: a = 2 b = 3 c = 1 Consequentemente, seguirá com programação de (a<b), no modo-cópia-cola: // etapa: 2 if(a<b){ int x = a; a = b; b = c; c = x; } Nessa etapa do programa, para uma entrada de valores: 1 2 3, terá: a = 3 b = 1 c = 2 Etapa: 3 Notou que nas etapas anteriores o maior valor flutua até a variável `a`, agora que está em seu lugar, a etapa seguinte envolve b e c, OK! Entretanto, se invés de (1 2 3) sua entrada fosse (2 1 3), essa lógica funcionaria? ... Não, porque a<b é falso e depois terá um resultado igual à entrada. Conforme os assuntos: E essa construção (acima) seria quase a maneira esperada para trocar|flutuar os valores nas variáveis a, b e c. Sua estrutura de decisão deve elevar os valores do maior para o menor independente dos iniciais (inputs). Observe que: SE a<b eles se trocam SE a<c eles se trocam SE b<c eles se trocam No fim, notará que o maior valor relativamente flutua para um topo. —
  23. Olá tudo bem? Espero que esteja bem. Os recursos mínimos (que sei) para conseguir uma resposta (padrão) é: condicionais if operadores aritméticos e lógicos. Logo Atenção com entrada, observe o formato delas (inputs) Esse formato (acima) difere do formato sugerido na construção abaixo Quando se espera algo mais próximo disto if(scanf("%dh%dm%ds",&ih,&im,&is)<3){ puts("SCAN-ERROR: INICIAL"); }// INICIAL if(scanf("%dh%dm%ds",&fh,&fm,&fs)<3){ puts("SCAN-ERROR: FINAL"); }// FINAL A expressão com if puts < 3 que registra entradas de formato inválido é quase sempre uma excrescência quando são entradas ideais|perfeitas (em geral, de exercícios). Logo, será algo semelhante à scanf("%dh%dm%ds",&ih,&im,&is); // INICIAL scanf("%dh%dm%ds",&fh,&fm,&fs); // FINAL Mas, logo abaixo, tu especificas Formato que admite octal|hexadecimal|decimal separados por dois pontos (:) e também ignora a unidade de segundos, com variável short int para armazenamento. Fonte: https://www.cplusplus.com/reference/cstdio/scanf/ Quase conforme os exemplos, porém é menos|mais que esperado. A sua operação de subtração de horários não está intuitiva. Se deixa sua construção simples sem simplificar, notará ser um problema de subtração|adição de base60 (para minutos e segundos) e o uso da técnica "empresta 1".
  24. Olá, tudo bem? Espero que esteja bem. Para auxiliar a discussão na melhor forma, descreva seu objetivo, exponha quais eram|são as etapas|rotinas|operações do programa e os valores ideais|perfeitos de entrada e saída. No caso de ser um exercício escolar, compartilhe o 'print screen' do enunciado (completo), descreva quais pensa ser as etapas de uma solução e os assuntos que estudou, @Estudando Alg GaR No caso de uma dúvida, compartilhe sua versão do código-fonte, tecnologia|ambiente de construção|programação e a dúvida.
  25. Olá tudo bem? Espero que esteja bem. (jquery 3.6.0) O evento é click e ainda pode ser on("click", ...) essa expressão acima fica deste jeito: $("input[type='submit']").click(...) OU $("input[type='submit']").on("click",...) Verifique se esqueceu de fechar os parenteses nos selectorS Aqui E nesse também!

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!