Ir para conteúdo
Fórum Script Brasil
  • 0

Exercicio de Subrotinas


fhermel

Pergunta

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 fhermel
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

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 funcao

bool valida_horario(int hora, int minuto, int segundo);//prototipo da funcao

int calcula_tempo_decorrido (int hora1, int minuto1, int segundo1, int hora2, int minuto2, int segundo2 );//prototipo da funcao

int 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;

}

}

Link para o comentário
Compartilhar em outros sites

  • 0

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 por PedroCunha
Link para o comentário
Compartilhar em outros sites

  • 0
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

Se 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 por PedroCunha
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...