Ir ao conteúdo
  • Cadastre-se

brunozanicheli

Membro Júnior
  • Posts

    14
  • Cadastrado em

  • Última visita

  1. Bom dia pessoal... tenho a seguinte estrutura de dados: struct aluno{float pontos;int RA;}alunos[100]; Que fica armazenada no arquivo arquivo pontos.txt, e tenho os seguintes dados: 0.5725910.5774080.4774080.372591 Quero criar uma função pontosFinais(); que faça uma comparação de cada RA e some suas respectivas notas, e que também Agrupe esses RA's, ficando desse jeito: 0.8725910.977408 Atualmente, minha função está assim: void PontosFinais(){ofstream arquivo;arquivo.open("Pontos_finais.txt");for(int i=0; i<cont; i++){ arquivo << alunos[i].RA << " - " << alunos[i].pontos << endl; cout << alunos[i].RA << " - " << alunos[i].pontos << endl; }arquivo.close();system("Pause>>Null");} Existe algum tipo de função, como a SUM() do SQL para fazer esse tipo de operação?? Obrigado desde já...
  2. beleza, entendi o que quis dizer... Mas onde ficaria a parte final da função SUM ? SUM() AS '' Para eu poder informar o nome do campo em que será guardado.. Já tentei: CONVERT(VARCHAR, DATEADD(s, SUM(contagem) AS 'CONT_TOTAL', 0), 108); //Não deu certo SUM(TIME_TO_SEC(contagem)) AS 'CONT_TOTAL', CONVERT(VARCHAR, DATEADD(s, CONT_TOTAL, 0), 108); //também não deu certo. Aí eu fiz da seguinte forma: No SQL eu deixei simplesmente assim: SUM(TIME_TO_SEC(contagem)) AS 'CONT_TOTAL'; //Ele pega os valores e transforma em um número inteiro (Segundos) Aí na Query, eu criei um campo calculado chamado "calculated" do tipo String, e no evento OnCalcFields coloquei o seguinte código: var seconds: integer;beginseconds:= STRTOINT(dm.q_prodOperCONT_TOTAL.AsString);dm.q_prodOpercalculated.AsString := FormatDateTime('hh:nn:ss', Seconds / SecsPerDay);end; Com isso, o campo "calculated" recebe os valores que eu preciso, mas o problema agora é que, se um Operador produziu (por exemplo) 25 horas e 10 minutos, No registro ao invés de ficar 25:10:00, está retornando: 01:10:00. Tem alguma solução pra isso ? Já consegui cara !!! A solução foi a seguinte: No meu DataModule, criei uma função seg_hora: function Seg_Hora( Seg:LongInt ):string;Var Hora,Min:LongInt; Tmp : Double;begin Tmp := Seg / 3600; Hora := Round(Int(Tmp)); Seg := Round(Seg - (Hora*3600)); Tmp := Seg / 60; Min := Round(Int(Tmp)); Seg := Round(Seg - (Min*60)); Result := FormatFloat( '00', Hora )+ ':' + FormatFloat( '00', Min ) + ':' + FormatFloat( '00', Seg );end; E dentro do evento OnCalcFields da Query, fiz assim: var seconds: integer;beginseconds:= STRTOINT(dm.q_prodOperCONT_TOTAL.AsString);dm.q_prodOpercalculated.AsString := seg_hora(seconds);end; Obrigado pela ajuda !!! RESOLVIDO
  3. Bom dia galera... Estou desenvolvendo um programa de controle de produção, e em cada registro inserido, um Operador inicia e termina uma operação em determinada CNC. Nesse meio tempo, tenho um campo "contagem" do tipo TIME, que recebe o tempo entre o inicio e o fim dessa produção, que está no formato hh:mm:ss. Pois bem, fiz um formulário para mostrar o histórico de cada Operador (Operador mais Produtivo). Antes de abrir este formulário, eu informo o período de datas que quero que filtre, mas o problema é o seguinte. Nesse mesmo filtro, estou fazendo um select, cujo o mesmo também está agrupando (GROUP BY) por operador, mas preciso também da somatória da: - Quantidade Produzida - Contagem total Para a quantidade produzida estou usando: SUM(qtdde_produzida) AS 'Qtde Produzida' Até aí tudo bem, o problema é que não estou conseguindo somar as contagens, exemplo: Operador contagem Qtde ProduzidaBruno 03:05:10 1000Bruno 01:55:20 2000 Quero que no meu grid apareça assim Operador contagem Qtde ProduzidaBruno 05:00:30 3000 Se eu faço SUM(contagem) AS 'CONT_TOTAL', ele retorna somente o numero de segundos... Alguém pode me ajudar ? Grato.
  4. Na verdade esse código que postei foi somente a função... Logo abaixo, dentro do programa mesmo, a variável p da função "vogais", recebe o valor de outra variável declarada: int main(){ char nome [50]; // Essa variável é a que irá receber a função "vogais" cout<<"Digite seu nome: "; gets(nome); cout<<"Seu nome contem " <<vogais(nome) <<" vogais"; system("PAUSE>Null"); return EXIT_SUCCESS;} Obrigado pela ajuda, com seu código postado consegui resolver as outras questões !! Valeu.
  5. Perfeito, obrigado pela resposta, deu certo !! E quanto ao código anterior foi eu quem fiz mesmo. Nesse exercício que precisei de ajuda não estava entendendo o enunciado, achei que deveria informar um valor pra variável antes do usuário digitar os valores do vetor... Mas analisando o seu código deu pra entender perfeitamente! Obrigado !!!
  6. Eu conheço a linguagem, programo já faz um tempo. Só pedi uma ajuda para realizar 1 exercício, pois faltei na aula anterior, e estou sem o programa no momento para tentar fazer. No exercício anterior, se eu não me engano, foi pedido para criar uma função que contasse as vogais do texto digitado pelo usuário: int vogais (char p []) { int t = strlen (p); int cont=0; // Strlen conta o numero de caracteres de determinada variável declarada for (int i=0; i < t; i++) // Para i de 0 até t (nº de caracteres digitados) faça { if (p=='a' || p=='e' || p=='i' || p=='o' || p=='u') // Se na posição i do texto digitado conter alguma vogal, então... { cont ++; // A variável "cont" acrescenta 1 no contador. } } return cont; // Após o término do for, a função retorna o número de vogais contadas } Agora para o exercício pedido não tenho a mínima noção de como começar... Mas obrigado, pela grande ajuda!
  7. Pois bem... Como transformo o código abaixo para a linguagem C++ algoritmo "Buscar elemento" var v: vetor [1..6] de inteiro i, x: inteiro inicio para i de 1 ate 6 faca leia (v) fimpara leia(x) para i de 1 ate 6 faca se (x=v) então escreval("O valor ", x, " está no vetor.") interrompa fimse fimpara fimalgoritmo
  8. Tenho uns exercícios para entregar hoje, e estou sem tempo para fazer, preciso da ajuda de vocês... Preciso que meu programa leia um vetor de 6 posições, e em seguida um valor X qualquer. Nesse programa, deve conter uma função que deverá fazer uma busca do valor de X no vetor lido e informar a posição em que foi encontrado ou se não foi encontrado. Obrigado.

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