fhermel Postado Novembro 6, 2012 Denunciar Share Postado Novembro 6, 2012 (editado) Olá pessoal, :wacko: Estou aqui pedindo novamente a ajuda dos amigos, pois estou com este trabalho de faculdade e não estou sabendo por onde começar! seque abaixo a descrição do exercício. EXERCÍCIOS SOBRE SUBROTINASEscreva um programa em C que leia do teclado um horário do dia (horas, minutos e segundos), evalide se a entrada é coerente. O programa deve ler um segundo horário (também validando), ecaso este seja maior do que o primeiro, calcular e imprimir o tempo que decorreu entre os doishorários informados (caso contrário, informar que o segundo horário informado é anterior aoprimeiro). O tempo decorrido deve ser informado na forma <H> horas, <M> minutos, <S>segundos. Caso algum dos campos tenha valor nulo, a respectiva unidade de tempo não deve serinformada. Por exemplo, se o tempo decorrido for de 1 minuto e 45 segundos, a mensagemimpressa deve ser apenas “1 minuto, 45 segundos” (ou seja, o numero de horas não deve serinformado).O programa deve conter obrigatoriamente as seguintes subrotinas:a) void ler_horario (int *hora, int *minuto, int *segundo) // solicita ao usuário a leitura dohorário (e efetua a leitura)B) bool valida_horario (int hora, int minuto, int segundo) // valida o horario, retornandotrue se for valido, ou false se for invalidoc) int calcula_tempo_decorrido (int hora1, int minuto1, int segundo1, int hora2, intminuto2, int segundo2 ) // verifica se o segundo horário é posterior ao primeiro. Casoseja, retorna o tempo decorrido (em segundos). Caso não seja, retorna o valor -1d) void imprime_tempo_decorrido (int tempo_segundos) // imprime o tempo decorrido noformado especificado no enunciado (assumindo que a entrada fornecida é o tempodecorrido em segundos)No programa, defina os protótipos da funções (antes do main), e deixe a declaração das subrotinaspara o final do arquivo. Editado Novembro 6, 2012 por fhermel Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fhermel Postado Novembro 7, 2012 Autor Denunciar Share Postado Novembro 7, 2012 Olá pessoal, já dei inicio a este cod C++ como citado no exercicio acima.Agora so valta calcular a diferença das horas as opções a e b já esta pronto agora so falta c e o d.#include <cstdlib>#include <iostream>#include <stdio.h>#include <math.h>using namespace std;void ler_horario(int *hora, int *minuto, int *segundo);//prototipo da funcaobool valida_horario(int hora, int minuto, int segundo);//prototipo da funcaoint calcula_tempo_decorrido (int hora1, int minuto1, int segundo1, int hora2, int minuto2, int segundo2 );//prototipo da funcaoint main(){ int hora, minuto, segundo; //char teste[1000]; printf("\t...::: SUBROTINAS :::...\n\n"); cout << "Digite as horas, minutos e segundos: \n"; ler_horario(&hora, &minuto, &segundo); if(valida_horario(hora, minuto, segundo)==true) cout << "\nO horario e valido.\n" << endl << "A hora digitada e: " << hora << ":" << minuto << ":" << segundo << endl; else cout << "\nO horario não e valido!!\n" << endl << "A hora digitada e: " << hora << ":" << minuto << ":" << segundo << endl; //cin.getline(teste, 1000, 'v');printf("\n\n\n");system("PAUSE");return 0;}void ler_horario(int *h, int *m, int *s){cin >> *h >> *m >> *s;}bool valida_horario(int h, int m, int s){ if((h>=0 && h<=23) && (m>=0 && m<=59) && (s>=0 && s<=59)){ return true; }else{ return false; }} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PedroCunha Postado Novembro 8, 2012 Denunciar Share Postado Novembro 8, 2012 (editado) Para fazer a letra C basta pegar o segundo valor e subtrair dele o primeiro, caso ele seja o maior valor. Caso não seja, retornar -1.A letra D é só você jogar o valor que você conseguiu na letra C na tela.Att.,Pedro Editado Novembro 8, 2012 por PedroCunha Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fhermel Postado Novembro 8, 2012 Autor Denunciar Share Postado Novembro 8, 2012 Olá amigo, voce poderia me mostra como pois não estou entendendo ?!?!?!?waleu!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 PedroCunha Postado Novembro 9, 2012 Denunciar Share Postado Novembro 9, 2012 (editado) c) int calcula_tempo_decorrido (int hora1, int minuto1, int segundo1, int hora2, intminuto2, int segundo2 ) // verifica se o segundo horário é posterior ao primeiro. Casoseja, retorna o tempo decorrido (em segundos). Caso não seja, retorna o valor -1Se o segundo horário for posterior ao primeiro, o valor a ser retornado é a diferença de tempo - em segundos - dos dois horários. Caso contrário, retorne -1.Ex.1:Horario1: 22:20:00; Horario2: 21:20:00; Horario1 > Horario2 | | Diferença entre eles: 1 hora - 60 minutos - 3600 segundos. return 3600; Ex.2: Horario1: 21:20:00. Horario2: 22:20:00 Horario1 < Horario2 | | return -1;Att.,Pedro Editado Novembro 9, 2012 por PedroCunha Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Dan Oliveira Postado Novembro 9, 2012 Denunciar Share Postado Novembro 9, 2012 Já que você tá trabalhando com subrotinas, acho que devia criar uma função que converte horas para segundo e vice versa aí você poderá calcularas horas Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
fhermel
Olá pessoal, :wacko:
Estou aqui pedindo novamente a ajuda dos amigos, pois estou com este trabalho de faculdade e não estou sabendo por onde começar!
seque abaixo a descrição do exercício.
EXERCÍCIOS SOBRE SUBROTINAS
Escreva um programa em C que leia do teclado um horário do dia (horas, minutos e segundos), e
valide se a entrada é coerente. O programa deve ler um segundo horário (também validando), e
caso este seja maior do que o primeiro, calcular e imprimir o tempo que decorreu entre os dois
horários informados (caso contrário, informar que o segundo horário informado é anterior ao
primeiro). O tempo decorrido deve ser informado na forma <H> horas, <M> minutos, <S>
segundos. Caso algum dos campos tenha valor nulo, a respectiva unidade de tempo não deve ser
informada. Por exemplo, se o tempo decorrido for de 1 minuto e 45 segundos, a mensagem
impressa deve ser apenas “1 minuto, 45 segundos” (ou seja, o numero de horas não deve ser
informado).
O programa deve conter obrigatoriamente as seguintes subrotinas:
a) void ler_horario (int *hora, int *minuto, int *segundo) // solicita ao usuário a leitura do
horário (e efetua a leitura)
B) bool valida_horario (int hora, int minuto, int segundo) // valida o horario, retornando
true se for valido, ou false se for invalido
c) int calcula_tempo_decorrido (int hora1, int minuto1, int segundo1, int hora2, int
minuto2, int segundo2 ) // verifica se o segundo horário é posterior ao primeiro. Caso
seja, retorna o tempo decorrido (em segundos). Caso não seja, retorna o valor -1
d) void imprime_tempo_decorrido (int tempo_segundos) // imprime o tempo decorrido no
formado especificado no enunciado (assumindo que a entrada fornecida é o tempo
decorrido em segundos)
No programa, defina os protótipos da funções (antes do main), e deixe a declaração das subrotinas
para o final do arquivo.
Editado por fhermelLink para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.