britivaldo

Membros
  • Content Count

    91
  • Joined

  • Last visited

Community Reputation

0 Neutro

2 Followers

About britivaldo

  • Rank
    Estudante
  • Birthday November 7

Perfil

  • Gender
    Male

Recent Profile Visitors

776 profile views
  1. @iagoomarques boa tarde. Qual o método que escolheu e que dificuldade ou problema tem?
  2. @ARSaraiva Bom Dia. Seu problema não é de linguagem e sim de lógica. O que você precisa é calcular o módulo do índice em um ou em ambos os vetores simulando sua restrição de alcance (range). Exemplo // INCLUSOES #include <iostream> // using namespace std; // main ---Função principal do programa int main(void) { int my_array0 [5] = {0 , 1 , 2 , 3 , 4 ,}; int my_array1 [9] = {0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ,}; for (int index = 0 ; index < 10 ; ++index) { std::cout <<(my_array0 [index%5])<<(my_array1 [index%9])<<(" , "); } std::cout <<("\b\b ")<< std::endl; return 0; }
  3. britivaldo

    linguagem c++

    Bom dia @kelcione O que você já implementou?
  4. Boa dia @ezbueno O número de espaços antes da informação é igual ao numero (índice) da linha na informação.
  5. @ezbueno, @Hazzu Boa Tarde! MEMORIA LINEAR Tempo médio de leitura: 2 minutos O problema não é de caractere branco na entrada da função scanf que lê 1x caractere, porém é na função scanf sim na da chamada posterior que está gravando no espaço maior que a capacidade da variável e sobrescrevendo na memória variável posterior. Ordem linear de Declaração ( sobrescrevendo-se variável posterior ) Exemplo int a = 5; /* (4) na ordem de criação */ float b = 2.5; /* (3) na ordem de criação */ char c = 'a'; /* (2) na ordem de criação */ bool d = true; /* (1) na ordem de criação */ As variáveis do sistema são "criadas" na ordem inversa de sua declaração; prove essa afirmação estudando seus ponteiros. No caso do exemplo a variável bool d terá o menor índice das variáveis na memória (referência), enquanto que a variável int a tem o maior índice delas. Ainda com relação as variáveis, observe que a variável bool d tem menos memória (1 byte) que uma variável int qualquer (4 bytes). E se somarmos a variável que vem depois dela (na ordem de criação: char c) ou antes dela (na ordem de declaração: char c) teremos uma equivalente variável do tipo short int (2 bytes). Conclusão Pois então é justamente o que acontece quando escreve-se scanf ("%d", &d); ao que sabemos de ("%d", ...) essa string de formatação lê 1x inteiro decimal do tipo int (4 bytes). Logicamente que o ponteiro da variável bool d, por conta da string "%d", é visto pela função como um ponteiro para tipo int e acaba por alcançar os bytes da variável char c que vem logo depois (na ordem de criação) zerando-a no início. Obrigado
  6. @Murilo Soares, olá! O que você consegue implementar?
  7. Nesse expressão não há valores reais, apenas inteiros. Exite diferença na estrutura de uma variável real e inteiro. O resultada da expressão é um valor 0 < x < 1 que em inteiro é 0
  8. Olá @RAILSON DE JESUS DINIZ ROSExiste um erro, os índices não atribuídos necessários para acessar e gravas informações nos espaços dos vetores. Corrigindo funcionou struct dicionario { char palavra[20]; char definicao[50]; }; //** compara duas palavras. */ bool compararStrings(const char palavra1[], const char palavra2[]){ int i = 0; while(palavra1[i] == palavra2[i] && palavra1[i] != '\0' && palavra2[i] != '\0'){ ++i; } if (palavra1[i] == '\0' && palavra2[i] == '\0'){ return true; }else{ return false; } } // procura String. int procurarStrings(const struct dicionario lingua[], const char procurar[], const int numDePalavras){ bool compararStrings(const char palavra1[], const char palavra2[]); int i = 0; while(i < numDePalavras){ if (compararStrings(procurar, lingua[i].palavra)){ return i; }else{ ++i; } } return -1; } int main(void){ const int N = 7; char palavraI[20] = {'\0'}; int resultadoPesquisa; const struct dicionario portugues[7] = { {"pao","comida de farinha."}, {"mortadela","comida de carne."}, {"feijao","comida basileiria."}, {"tropero","tipo de feijao."}, {"queijo","derivado do leite."}, {"macaronada","de macarrao."}, {"pizza","tipico da Italia."} }; // interação com o usuário. printf("Digite uma palavra: "); scanf(" %s",palavraI); resultadoPesquisa = procurarStrings(portugues, palavraI, N); if(resultadoPesquisa != -1){ printf("%s\n", portugues[resultadoPesquisa].definicao); } else { printf("palavra não encontrada!\n"); } getchar(); return 0; } Dessa maneira funciona tudo como esperado!?
  9. Olá @RAILSON DE JESUS DINIZ ROS , estou tentando uma resposta para sua dúvida, mas preciso que, por favor, re-post o código dentro do CODETAG apropriado; para isso use o botão [<>] logo acima na barra de ferramentas da caixa de texto. Obrigado.
  10. Equívocos fatais comprometem todo o sistema, observe com atenção os comentários para função de cadastramento, recomento também breve revisão sobre tipos de escopo de variáveis. Revisão int cadConta(){ struct Conta add[MAX]; /*< Esse aparente vetor é a base de dados do sistema, seu escopo de função é temporário, nele persiste suas informações até o instante em que a função retorna, logo depois desse evento seram 'apagados' do sistema. */ ... }
  11. Sim porque o inteiro 1 e o caractere '1' possuem magnitudes diferentes, porém a sua lógica pode vir a ser corrigida; para corrigir basta fazer a conversão do tipo caractere da tabela para inteiro. Buffer[] = {'1','2','3'};  /* Declaração */ unsigned char var_uc= 0;  /* Declaração */ unsigned char buffer_string[]= "123";  /* Conversão */ var_uc= 100 * ((buffer_string[ 0 ] - '0') + 10 * (buffer_string[ 1 ] - '0') + (buffer_string[ 2 ] - '0'));
  12. Para o tipo de dados que é RU, você precisa de uma variável e só. Então ao invés de declara int ru[ 7 ] declare apenas int ru. A função printf do jeito que está imprime o número que é referência (local) do primeiro elemento do seguimento RU quando RU é um vetor. struct Aluno { char nome[45]; int RU; } /** Tipo de dados aluno */ struct Aluno me; /** Variável do tipo Aluno */ printf( "Entre com seu nome: " ); scanf( "%s", me.nome ); /** Solicita e captura o nome do aluno */ printf( "%s entre com seu RU: ", me.nome ); scanf( "%d", (& me.RU) ); /** Solicita e captura as dezenas do RU */ printf( "Nome: %s RU: %d \n\n", me.nome, me.RU ): /** Imprimi nome e RU */ Perceba que quando fazemos leitura e gravação de seguimentos (vetores) não precisamos solicitar o local na memória (&), isso acontece no caso do vetor nome[ 45 ]
  13. britivaldo

    cancelado

    Qual parte do enunciado você precisa ou que uma explicação mais detalhada ?
  14. Olá, a lógica é primária; Vejamos, dados dois números inteiros quaisquer defina: quais e quantos valores existem no intervalo aberto onde o valor inicial se encontra na variável inteira inicio e o valor final na variável inteira fim. Todos os valores do intervalo também são outros inteiros. Faça isso de duas maneiras Iterativamente, neste primeiro caso use uma instrução de repetição, mais precisamente, um loop FOR por exemplo. Recursivamente, neste último caso vai ter que implementar uma função que internamente chama a si mesma para simular uma iteração, ou os mesmo efeitos de um loop FOR. Observação @João Paulo Scopel: Seu algoritmo até o momento não satisfaz nenhum dos quesitos no enunciado, pior, pois sem necessidade o usou de estrutura de dados, o que só deixa o código ainda mais difícil de entender. Update: Surgiu um agravante, o que acontece se o inicio é numericamente maior que o fim? Pois o intervalo ainda existiria.
  15. Olá, td certo? Então... A função tem um parâmetro formal do tipo char, seu limite para inteiros positivos é 127. Logo o valor no argumento da fn está corretamente em seu limiar. Depois, no corpo da função, o parâmetro x é logicamente avaliando usado o operador bitwise, o operador & (E) opera bit a bit retornando a sequencia se e quando pelo menor dois bits são igualmente 1. No exemplo em questão a sequencia de bits comparada é: 001 0100 & 101 0010, disso vemos que apenas o bit que se encontra na 5ª casa binária são iguais, assim sendo a função retorna: 001 0000, logo a resposta correta é a C) Contudo para essa resposta acontece é necessário que a função estivesse retornando o valor r, só que ela não está. Ou seja, faltou a instrução de retorno, o código corrigido deveria ser esse. Código no final da funcao; /* ------------------------------- */ #include <stdio.h> int funcao(char x) { int r; r = x & 20; return r; } void main() { printf("%d", funcao(82)); } /* ------------------------------- */ Por essa razão a resposta correta é nenhuma das alternativas acima.