Jump to content
Fórum Script Brasil
  • 0

Exercicio de Subrotinas


fhermel

Question

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.

Edited by fhermel
Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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

Edited by PedroCunha
Link to comment
Share on other 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

Edited by PedroCunha
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...