Ir ao conteúdo
  • Cadastre-se

Simon Viegas

Moderadores
  • Total de itens

    4.011
  • Registro em

  • Qualificações

    0%

Reputação

2.040

Sobre Simon Viegas

  • Data de Nascimento 22/06/1982 (37 anos)

Informações gerais

  • Cidade e Estado
    Salvador/BA
  • Sexo
    Masculino

Outros

  • Biografia
    Carregando...
  • Ocupação
    Técnico e Analista de Sistemas
  • Interesses
    Tecnologia
  1. @fak3, poste o que já conseguiu fazer e onde está com dúvidas.
  2. Isso entra lá nos conceitos de "Intervalos". O conjunto que o problema envolve são os números entre 0 e 24 (inclusos)... seria algo como: {x Є R / 0 ≤ x ≤ 24} ou [0, 24]. Aí, a classificação estaria dividida em 3 subconjuntos: [0, 1[, [1, 3] e ]3, 24]... então, a união desses subconjuntos devem necessariamente ser igual a conjunto maior, no caso [0, 24]. Entende? ao desenhar lá a reta, todo intervalo deve ter sido "usado" ("toda a linha estará preenchida"). No seu primeiro código, estava assim: ]-∞,0.9], ]0.9, 2,9] e [3,+∞]... a depender, outra forma seria desenhar a reta lá com os pontos abertos ou fechados... Verás que terá parte não preenchida (e também passando do limite do conjunto do enunciado). Então, onde estaria os números maiores que 2.9 e menores que 3? ou seja: não estão fazendo parte da faixa de números (lá nos se, nenhuma condição será verdadeira). Da mesma forma, os números maiores que 0.9 e menores que 1 estão na segunda faixa, mas, de acordo com o enunciado, deveriam está na primeira. Por aí vai. Obs.: se atente que o conjunto dos reais (na matemática) vai de "- infinito" a "+ infinito". No caso do seu programa, você está "verificando" se foi inserido uma quantidade de horas "maiores que 24h", ou seja: se está no limite mínimo e máximo de um dia. Nesse sentido, talvez seria interessante também verificar se o usuário inseriu um valor menor que 0 (já que não existe horas negativas no contexto). (ou seria algo bem próximo disso... quem manjar das matemáticas, fiquem a vontade para me corrigir, rs) SUGESTÕES: - além de validar se cada valor é menor ou igual, também verifique se é maior ou igual a 0; - caso o valor não esteja na faixa acima, exiba uma mensagem de erro, algo como: "insira valores entre 0 e 24 (inclusos)". Daí poste o novo código para analisarmos. Dica: tente fazer uma coisa de casa vez. Ou faz uma coisa ou faz a outra. Após testar, aí implementa a próxima... No aguardo.
  3. @vinesiqueira32, bom dia. Creio que falta ajustar as condições para cada caso de média... alguns contextos: os valores entre 2.9 e 3.0 não estão sendo considerados, ou seja: se a média der, por exemplo, 2.94, não entrará em alguma categoria (não é menor ou igual a 2.9, nem maior ou igual a 3.0). Outro caso é se a média for 0.92, aí passa ser turma aplicada... está certo? Sugiro dar uma revisada no enunciado do problema e se ater a essas faixas limites. Após, tente corrigir e poste o novo código, assim como o enunciado completo para reanalisamos. No aguardo.
  4. Olá @capituamerica. Qual a linguagem de programação que utilizará? Sugiro que inicialmente implemente um programa que simplesmente ordene todo o vetor em ordem crescente. Após, partimos para ajustar esse "detalhe" dos primos virem antes. Poste também enunciado completo para analisarmos melhor...
  5. @MB_, também não consegui entender esse enunciado. Tente descrever melhor o problema, ou poste o texto do enunciado ipsis litteris. obs.: aparentemente esse enunciado é um problema de física (disciplina). Você primeiro precisa entender o problema e saber resolver no papel. A linguagem "C" vai servi, posteriormente, para automatizar o processo de cálculo ou algo do tipo... não adianta tentar implementar um algoritmo que não se entendeu ainda o problema, ou seja: primeiro consiga resolver isso "na mão", depois podemos te ajudar a implementar uma solução em código. No aguardo.
  6. @devair1010, o tipo de pesquisa é específico. O que sugeriu não se enquadraria no enunciado. Então, provavelmente o problema atual está na ordenação da matriz, ou seja: para efetuar uma pesquisa binária, é necessário que a matriz esteja ordenada de determinada forma... mas acontece que justamente o processo de ordenação está errado, logo, a pesquisa binária não vai (não deveria) funcionar bem mesmo.
  7. Esse método de ordenação está errado. Você está meio que utilizando uma estrutura de ordenação de matrizes unidimensionais para uma matriz bidimensional. Para ordenar, é necessário percorrer toda a matriz... coluna a coluna, linha a linha. Resumidamente, nesse contexto, seriam 4 "para/faca".
  8. @Jacqueline Santos, Que bom então. Poste seu código aqui para analisarmos e, também, poder servir de base para outros visitantes. No aguardo.
  9. Olá @Jacqueline Santos. A lógica da sintaxe está correta, mas as versões do VisuAlg em si é que não está aceitando (por limitação? bug das versões?).. nem na "versão padrão" 3.0.6.5, nem na versão mais recente "3.0.7.0". Testei na 2.0, e lá nem aceita a declaração de tipos. Então, no Pascal, que é um dos "pais" do VisuAlg essa estrutura estaria correta. Em fim... Como o VisuAlg não está aceitando declaração de tipos sendo vetores, seu código poderia ficar assim: tipo t_boletim = registro nome :caractere nota :vetor[1..4] de inteiro fimRegistro Só que o VisuAlg também não aceita declaração de vetores dentro de um registro, rs. Aí lenhou tudo!!! (talvez por está na sessão de tipos ainda). Outra forma seria assim: var alunos: vetor[1..20] de registro nome :caractere nota :vetor [1..4] de inteiro fimRegistro Advinha? também não aceita. RESUMINDO: Não vai rolar utilizar essa estrutura de registro / vetores no VisuAg... (a não ser que encontre uma versão do VisuAlg que esteja funcionando... tente ver se no livro aparece qual versão eles usaram) Daí, ou você reformula a lógica do algoritmo, ou parte para outra linguagem... como por exemplo, o Pascal, que é muito semelhante (apenas os comandos são em inglês... vulgo "inglês instrumental"). Ficaria com algo assim: program ExemploXXLivroYYYY; uses CRT; //carrega comandos extras como CrlScr, ReadKey, TextColor, TextoBackground etc type t_Notas = array [1..4] of integer; t_Alunos = record nome :string; nota :t_Notas; end; var alunos :array[1..3] of t_Alunos; contAlunos, i :byte; resp :char; //usei char em vez de string, pois só precisa de uma letra (vai aceitar qqr resposta com "s") op :char; begin contAlunos := 0; writeln('Digite uma opção válida: '); writeln('1 - Cadastrar notas bimestrais'); writeln('2 - Apresentar todos os alunos cadastrados'); writeln('3 - Pesquisar aluno'); readln(op); case op of '1':begin writeln('Cadastrar notas bimestrais'); resp := 's'; while (resp = 's') do begin contAlunos := contAlunos + 1; ClrScr; writeln('ALUNO ', contAlunos); writeln; write ('Nome: '); readln(alunos[contAlunos].nome); writeln; for i := 1 to 4 do begin write (' Nota ', i, ':'); readln(alunos[contAlunos].nota[i]); end; writeln; writeln('Deseja cadastrar outro aluno? (S / N)'); readln(resp); end; end; '2':begin end; '3':begin end; else //caso não seja alguma opção anteirior. obs.: é facultativo begin //esse begin/end aqui tb é facultativo para esse else, mas pode deixar end; end; //fim case op end. Caso queira migrar pro Pascal, como visto, a lógica será muito próxima do VisuAlg, mas com a vantagem do compilador ser mais robusto e flexível. O VisuAlg tem muita limitação boba (como essa de "tipos com vetores").. recomendo. Outra coisa... quando entrar no conceitos de funções e procedimento, lá no VisuAlg NÃO DÁ para passar um vetor por parâmetro, já no Pascal dá... isso é muito útil e irá fazer falta lá. Inicialmente sugeriria utilizar o PascalZim. Qualquer dúvida ou comentários é só postar. No aguardo.
  10. O quê está se pedindo é isso: Aqui tem 2 pontos centrais: Entender o problema; Criar um algoritmo que automatize a resolução desse problema (em outras palavras: criar um programa que atenda aos requisitos do enunciado) A etapa atual é entender o problema. Vamos lá: Então... o enunciado se refere a desenvolver um programa em C++ em que retorne a parte inteira da divisão de um inteiro por outro... no caso utilizando o método anteriormente explicado (que chamaremos de "divisão por subtrações sucessivas"). Primeiro entenda como é feito o cálculo. Pense como sendo um problema do mundo real.. tipo.. você efetuar essa conta na mão. Ex.: - Calcule e retorne a parte inteira da divisão de 46 por 7 utilizando o método de "divisão por subtração sucessiva". Resposta: 46 - 7 = 39 (1) 39 - 7 = 32 (2) 32 - 7 = 25 (3) 25 - 7 = 18 (4) 18 - 7 = 11 (5) 11 - 7 = 4 (6) 4... (é menor que 7, logo não dá para subtrair mais) Parte inteira é 6, pois foram efetuado 6 operações Ou seja: a parte inteira da divisão de 46 por 7 é 6. (o resto é o que sobra, no caso 4). Em outras palavras: 46/7 é igual a 6 (com resto 4). obs.: no contexto não importa o resto, só estou demonstrando que seria ele.. Você precisa desenvolver um código que realize essas operações. Se o usuário inserir 46 e 7 como entrada, o programa deve retornar 6 como resposta (mas sendo que internamente será utilizando o tal método da subtração). obs.: é possível também exibir linha a linha essa subtração na tela, mas não precisa (pelo menos por enquanto). Apenas se preocupe em receber o "numerador" e o "denominador" e retorne a "parte inteira da divisão". Você precisa fazer isso. "Ah, mas como faço isso em C++?". Isso é você que precisa, inicialmente, fazer. Caso tenha ainda dúvidas sobre "o que quer se fazer", é só perguntar (não tente fazer antes, primeiro entenda o problema). A parte que vem depois, "como se fazer", ainda é só com você... tente adiantar algo, aí vai tirando dúvidas sobre qual partes que está com dificuldades, entende? No aguardo.
  11. @programadornovatoc, qual o enunciado completo da questão?
  12. @nickosoft, só pequenos detalhes... Sobre: No caso, seria de 0 até tam-1. Por exemplo, se começasse com 1, diriam-se "de 1 até tam", correto? (e não de 1 até tam+1... como, inclusive, é visto no código do @MB_). Sobre No caso, seria de 0 enquanto menor ou igual ao índice... Ou poderia dizer: "de 0 até maior que o índice". Enquanto tem o sentido de "continuar". Já o até remete a "finalizar".
  13. @Montesuma Oliveira, bom dia. Qual o enunciado completo desse "exercício"? as característica do problema dependem do que foi solicitado. No aguardo. adicionado 35 minutos depois Seguindo a mesma base do código original: algoritmo "Estrutura Indexadas - Vetor(Array)" var i :inteiro qtdVeiculos :inteiro totVeiculos :inteiro nomeVeiculo :vetor [1..3] de caractere inicio qtdVeiculos <- 0 //obs.: no VisuAlg não precisa, pois já estará com 0 enquanto qtdVeiculos <> -1 faca escreval("Digite a Quantidade de Veículos para Cadastrar ou -1 Para Sair: ") leia(qtdVeiculos) para i de 1 ate qtdVeiculos faca totVeiculos <- totVeiculos + 1 escreva ("Digite o Nome do Veículo: ") leia(nomeVeiculo[totVeiculos]) fimPara fimEnquanto para i de 1 ate totVeiculos faca escreval("O Veículo ", nomeVeiculo[i], " tem o índice ", i) fimPara fimAlgoritmo Como citado, as características vão depender do enunciado. Um ponto que acho que já seria interessante tratar é o limite de cadastros. Nesse base acima, para facilitar os testes, deixe apenas com 3 veículos. Outro ponto é: só vai precisar cadastrar o nome do veículo, mesmo?
  14. Um erro está aqui: ... Se (opcao = 6) entao // 25º Se EscrevaL("Reinicializando programa ...Aguarde!") EscrevaL("") EscrevaL("") Escreval("Tecle qulaquer tecla seguida de ENTER para continuar") Leia(tec) {FimSe} //Esse fimSe não tem dono [Simon.Viegas] FimSe // Fim 25º Se FimEnquanto ... Tem outro aqui: FimPara {Enquanto (opcao <> 6) ou (opcao <> 0) faca} //Está usando o operador lógico errado [Simon.Viegas] Enquanto (opcao <> 6) E (opcao <> 0) faca LimpaTela Deixe para você efetuar os novos testes e efetuar os possíveis ajustes. No aguardo. adicionado 4 minutos depois Terceiro erro: se (opcao=0) entao Escreval("Obrigado por usar nosso programa!!! Volte sempre!") EscrevaL("-------------------------------------------------") EscrevaL("------------- FIM -------------------") EscrevaL("-------------------------------------------------") leia(tec) {interrompa} //O programa NÃO deve ser interrompido. Tem que parar pela condição do laço [Simon.Viegas] fimse É resolvido no segundo erro citado acima. adicionado 14 minutos depois PS: agora que eu vi que foi outro que respondeu, . Mas a dica é a mesma!
  15. Olá! @MATEUS GOMES85, sem bem-vindo ao Fórum do Clube do Hardware. Uma dica inicial é reindentar o código. Uma forma seria simplesmente pressionando CTRL+G. Veja, apenas visualmente dá para ver que tem algo errado: obs.: eu removi as linhas centrais para facilitar o print. Esse último FimEnquanto deveria está na mesma direção do primeiro Enquato(). Eu suspeito que provavelmente você inseriu um FimSe a mais. Vou analisar com mais calma e já já eu posto o resultado.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!