-
Posts
3.284 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Livros
Cursos
Análises
Fórum
Tudo que Ansi C postou
-
@LuisOPsum Olá, tudo bem? Então o seu código está 98% corrigido porque você desconsidera o último quesito. Ok!? Tchau.
-
... acho que você não me entendeu. Naquele raciocínio, nós não precisamos alocar toda memória necessária de uma vez, basicamente, nós passaremos os dados das duas listas para uma terceira dinamicamente usando para isso a função ´insere´. Não quero dar mais detalhes, pois vou se não acaberei te dando uma resposta. Mas fica aproximadamente assim: A e B, C são listas. C = insere (C, A->dado); C = insere (C, B->dado); A = A->prox; B = B->prox; Comentário: Nesse caso, preservamos a integridade as listas ( A, B ), no mesmo tempo criamos uma lista C com todos os dados de A e B, sem com isso sabermos ao certo o tamanho de A e B. Quando falei do tamanho era apenas uma argumente secundário. Esqueça o tamanho, concentre-se em o como usar a função ´insere´ no problema da função ´intercala´. R: Sim, e mais, não necessitamos alocar tudo de uma vez, para aos poucos, já existe a função: ´insere´. Ok!? Tchau.
-
Olá, tudo bem? Então, você precisa definir a lista 'li' como tendo a soma da quantidade de dados nas duas listas. Por exemplo se uma lista A tem 4 elementos e outra lista B tem 8 elementos a lista C, que terá os elemento interpolados de A e B, terá 12 elementos. Dica: Use a função ´insere´ na implementação da função ´intercala´, pois o princípio é o mesmo; Pense em como adicionar um a um dos dados de cada uma das listas ( A, B ) em uma terceira lista ( C ). Atenção: Você precisa somente copias o valor do dado. Dica extra: Os identificadores (nomes de: funções, struct e variáveis) estão péssimos, mas isso é o menos importante, por hora. OK!? Tchau.
-
Olá, tudo bem? Então, eu acho (preconceito) que basta somar as strings. System.Diagnostics.Process.Start("CMD.exe", "/c netsh advfirewall firewall add rule name=" + IPBlock + " dir =in interface=any action=block remoteip=xx.xxx.xx.xx/32"); Ok!? Tchau.
-
kkkkkkkkk Então, C/C++ mais Sertanejo; combinação complicada. É preciso muito criatividade para unir esses dois universos; quintinventions.com Então, se você conhece um bom artesão com certeza ele consegue fazer essa obra de barro ou madeira. Pintando as notas músicas de sua música predileta mais um versão binária das notas essa caneca vai ficar muito linda. Ok!? Tchau.
-
C++ Atividade sobre Pilha/Desempilha (sistema de pallets)
Ansi C respondeu ao tópico de Celso Augusto Gomes em C/C#/C++
Olá, tudo bem? Então, esse é um exercício intermediário. Tens alguma tentativa de solução? Qual parte do problema (não todo ele) tem maior dificuldade de compreensão? Caso o enunciado não tenha ficado claro é apenas uma estrutura: descrição e quantidade (número). Mais os conceitos genéricos de pilha dinâmica, nada muito complicado. A linguagem (C++) tem implementações que facilita a construção de estrutura de dados (ED), contudo, você mesmo pode implementar uma solução mais leve usando tipos abstratos que no geral é strutc para C11, e class para C++11. Depende do que o professor "ensinou". Ok!? Tchau. -
Olá, tudo bem? Então, estou também examinando o código e encontrei algo que me fez parar. Observe: #include <stdio.h> /**< as rotinas de entrada & saída. */ /** Função principal do programa. É a primeira rotina do sistema */ int main (int argc, const char *argv[]){ int m[5][2] = {0}; /* matriz principal */ int ma[10][2] = {0}; /* matriz auxiliar */ int l, c, contL, repetiu, valor = 0; /* Percorrendo a matriz */ for (l = 0; l < 5; l ++){ for (c = 0; c < 2; c ++){ printf ("Informe um valor para linha " "[%d] e coluna [%d]: \n", l, c); scanf ("%d", &m[l][c]); /* Utilizando a matriz auxiliar "ma" */ repetiu = 0; for (contL = 0; contL < 10; contL ++){ if (ma[contL][0] == m[l][c]) /*[ ! ] Qual o sentido nisso? */ ... return 0; } Qual o sentido desse comparação? Imagine que você acabou de entrar com a primeira informação (1 / 10 números). Por que é importante buscar esse único número agora? O que você acha que existe nas posições contL = {9...0}, pois o vetor percorre esse mesmo índice para todas as entradas, inclusive quando existe apenas uma informação. Recomendação: Divida a tarefa em três instâncias (Captura de dados, Processamento e Relatório), pois nesse momento de aprendizado é muito importante não fazer tudo de uma só vez, e dividir a tarefa de maneira mais digamos procedural. Enfim acho que por conta do prazo você esta deixando de testar todas as partes do código. Eu fui até esse ponto, e nada mais. UPDATE: Ok!? Tchau.
-
... Ainda complementando esse exemplo @iHollyZinhO , onde temos apenas funções + declaração IF, e nada mais. Poderias substitui o operador-símbolo (;) por operador-símbolo (,) e finalizar com operador-símbolo (;), vai perceber o mesmo efeito do uso de chaves. Isso é interessante porque a maioria dos programadores reconhece o uso de vírgula apenas na declaração de variáveis de um mesmo tipo, e nunca viram blocos formatados com vírgula. if (numero == 1) numero *= 2, printf ("O número era 1 e foi multiplicado por 2!\n"), printf ("Digite um novo número: "), scanf ("%d", &numero); /* fim do comando if(...){...} */ Entretanto, prefiro seguir as recomendações do PhD. McCann, e também usar blocos sempre: em todas ocasiões até mesmo naquelas mais ingenuas. Ok!? Tchau.
-
Olá, tudo bem? Então, eu entendi quase nada. Você disse que o professor te mostrou, pois então nos mostre também para que entendamos melhor a situação. Ok!?
-
C Existem funçoes parecidas com sleep(),porém que
Ansi C respondeu ao tópico de Alexandre Espejo em C/C#/C++
Olá, tudo bem? Então, se entendi bem, desejas adicionar uma pausa no procedimento e não para tarefa inteira (que naturalmente fazem com uso da ratina sleep). Assim sendo; digamos que ao solicitar uma pausa entre o incremente e o decremento de x gostaríamos que se verificar o tempo (delay: atraso) de maneira que, quando não alcançado: decrementa x, quando sim alcançado: incrementa x? Para esse problema a biblioteca time, ou time.h fornece rotinas de tempo com as quais poderá verificar o tempo decorrido entre dois marcos temporais. Clique Aqui, e caso precise de mais informações; é só falar. Ok!? Tchau. -
Olá, tudo bem? Então, olhe mais uma vez o estrutura e o seu campo em funcionário. Continue olhando e comparando agora em suas ocorrências na função Por tudo isso, uma correção depende é, o campo salário ser um arranjo ou uma variável. OK!? Tchau.
-
Exercicio de linguagem c estrutura de repetição
Ansi C respondeu ao tópico de Petrus de Oliveira Barreto em C/C#/C++
Olá, tudo bem? Então, o que tem realizado? Em termos de código até o momento para esse problema. É muito importante para você, caso não já saiba, ter um iniciativa de resolução. Conte conosco, para ajudar-te. Ok!? Tchau! -
Olá, tudo bem? Então, se tudo que você tem a dizer se encontra na imagem dos post posso te informar que, a linguagem não é C, mas sim Portugol, neste caso minha recomendação é que revise a matéria re-leia as anotações e somente depois que terminar as duas recomendações tente/ou/resolva teu problema. Caso sinta vontade de submeter o que vem tendado tentando em código até o momento; faça isso antes com para seu professor, caso não haja por parte dele (o professor) um acompanhamento efetivo extra-sala, ficarei feliz em ajuda-te, se for com C de fato, evidente. Ok!? Tchau.
-
Olá todos! Então, por razões que desconheço, a memória de variáveis automáticas quando declaradas em variáveis não é zerada sem que antes indiquemos que sejam zeradas, assim vale para vetores e para todos os tipos incluído estruturas. Outra coisa muito importante, esse operador de desigualdade (!=) opera naturalmente com tipos primitivos (char, int, long ...), e não com tipos implementados pelo usuário, como é o caso de estruturas (struct). Bem de um só vez para darmos cabo do problema que é comparar estruturas, opera-se os membros da estrutura individualmente por meio de uma expressão lógica, aninhando em cadeia, segundo a sua preferência. Essa é apenas uma das formas de resolver, e a mais comum. /** Exemplo do uso de operador binário na comparação dos membros da estrutura Autor: Ansic -> colaboração 88games16 draft.c 25 ago 2018 */ struct Aluno{ char nome[20]; int idade; }; #include <stdio.h> /**< as rotinas de entrada & saída. */ /** Função principal do programa em dialeto c. É a primeira rotina do sistema */ int main (int argc, const char *argv[]){ struct Aluno cadastro[50] = {0}; /**< com apenas uma indicação de 0 zeramos todo o arranjo automático */ int i = 0; int c = 0; /* primeiro se a string é vazia. segundo se o valor da idade está zerada ... ops!!! pessoas tem idade de valor: 0, então para este caso, nulo lógicamente é um cadastro sem nome. */ while(i < 50){ if (cadastro[i].nome[0] != '\0'){ c ++; } i ++; } printf ("o valor do contantor e: %u\n\n", c); /**< se todos os nomes são vazios então o valor de c: 0 */ return 0; } Ok!? Tchau.
-
Olá tudo bem? Então, de cara encontrei um erro na definição dos parâmetro formal da função. Pois onde você vê isto: int maior_inte() { int num1,num2,num3,maior; O que serve para os convencionados parâmetros na linguagem é isto: int maior_inte(int num1, int num2, int num3, int maior){ Não sei ao certo, se isso será o bastante para concerta, mas com certeza é um problema. Ok!? Tchau!
-
C Tem como o printf ler mais de uma linha de uma só vez ?
Ansi C respondeu ao tópico de Alexandre Espejo em C/C#/C++
Olá, tudo bem? Se bem entendo você, o que estais querendo é adicionar na saída algumas quebras de linhas ('\n'). Basta usar o sinal acima no fim em cada saída desejada e terá adicionado tantas quebras quiseres. Ex 01.: printf( " 111111\n" " 222222222\n" "3333333333333\n"); * Essas strings literais serão unificadas e reduzidas a única string em tempo de compilação, algo congruente no exemplo 02: Ex 02.: printf(" 111111\n 222222222\n3333333333333\n"); Então, essas que são algumas formas legais de se escrever a saída nas aproximações do que você predendia. Ok!? Tchau. -
C++ como manipular data e hora sem bibliotecas?
Ansi C respondeu ao tópico de RockMagicRevived em C/C#/C++
Sim há! Use switch case: seletor terá o efeito (com mais linhas) de arranjo com mais linhas sem arranjo. char data__mes_pra_dias, data__mes_corrente; data__mes_corrente = 1; /* 1- janeiro */ switch (data__mes_corrente){ case 1 : data__mes_pra_dias = 31; break; /* mês de janeiro está 30 dias */ ... } /switchtutorialspoint.com/ -
@giu_d Olá, bom dia! C é uma linguagem de programação incrível, essa é minha a opinião, e todos os finais de semana aprendoemos algo novo, ontem foi este protótipo que @isrnick nos mostrou na função do problema de @Josesousa , lindo protótipo de sintaxe bonita e confusa que representa o retorno de um ponteiro. O C tem uma bela sintaxe, elegante e izas. C em termos de Sintaxe, só perda para o que vejo em Object-C. Para mim, ponteiro é marca registrada do C não existe C sem ponteiro, isso é uma questão valorativa. Nessa categoria vem a dupla sertaneja malloc & calloc, cujo as diferença realmente significativas é nenhuma. Sintaticamente é a mesma coisa, com uma pequena diferença que conseguimos apreciar do lado de fora em seus protótipos. Não faço a menor ideia do que existe no lado de dentro dessas funções, suponho que varias chamadas para API do sistema operacional exclusivamente que libere memória para o processo corrente. E respondo que SIM, de certo com preconceito, pois não li em lugar algum coisa do gênero, daí o motivo do meu preconceito. Muito possivelmente tirando o algoritmo de zero-inicialização de bytes, não há nada no comportamento de calloc que a faça diferente de malloc. Inclusive supor que um é interna da outra, também vem a ser perfeitamente lógico SIM. Eu inclusive, predileto o uso canônico de malloc, e deixo a calloc ao acaso.
-
É mais recorrente na maioria dos bons exemplos, e eu concordo.
-
@giu_d Osh que nada foi até bom mesmo! Além dos motivos mencionados, é mais elegante. Agora leia mais uma vez enunciado da lista, e diz se é do jeito que você pensa @isrnick .
-
Pois é, aguardei ele mesmo percebe principalmente o último problema liberar a memória, pensei que quando se usasse nomenclatura de ponteiros e não de vetores fosse perceber. Enfim @Josesousa , resolvido! Tchau!
-
Então Vejamos! void criapilha (void) { t = 0; } void empilha (char y) { pilha[t++] = y; } char desempilha (void) { return pilha[--t]; } int pilhavazia (void) { return t <= 0; } O primeiro elemento na pilha é o elemento do índice 0, quando empilhado o índice soube para 1, quando desempilhado o índice cai para 0, contudo o elemento 0 já não deveria está mais na pilha, pois forá desempilhado, ainda sim permanece na memória. Para concerta o erro conceitual ainda o programador implementa t <= 0 ou sejam t pode assumir valores negativos. Porque seguramente deveria ter colocado só t == 0. E para a logística que a instituição procura ensina t == 0 é o bastante. Ainda sim temos outras implementações análogas que trate de usar t == -1 ao invés de t <= 0. Claro que não quis dizer que a USP a 5 melhor Universidade do país esteja errada, mas o fato é que esse conceito muda de lugar para lugar, assim como as linguagens humanas o C tem suas gírias e isso não tem nada ver com normas ou lado técnico, tem tudo aver com criatividade. Ok? Tchau!
-
@giu_d Os melhores códigos já coloquei olhos sim. E você o que pensa? adicionado 0 minutos depois Legal!
-
Eu não faço a menor ideia de onde vocês tiram isso, porque NULL é o mesmo que 0, e zero é um dos índices do vetor. Mas se faz sentido para você vai em frente.
-
Correto! Essa é a nomenclatura certa para ponteiros. Acertou! Porém se alocou parte a parte, vai ter que desalocar parte a parte do mesmo jeito, caso não faça assim, ai terá errado. Essa função de desalocar é "análoga" a de alocar. A função que fiz para aloca memória de um arranjo é igual a sua. int ** novo_arranjo (int largura, int comprimento){ int **arr = malloc (largura * sizeof(int *)); for (int l = 0; l < largura; l ++){ *(arr + l) = malloc (comprimento * sizeof(int)); } return arr; } Ok? aguardando!
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