Orologio con misurazione di Primo Ordine

di il
11 risposte

Orologio con misurazione di Primo Ordine

Buonasera, mi ritrovo a dover eseguire un programma che data l'ora locale del pc e dati un numero di secondi in input calcoli l'ora nuova( ovvero quella del pc + quella dei secondi dati in input) ,mi e stato chiesto di dividere , un giorno in 36 ore, ogni ora in 60 minuti, ogni minuto è diviso in 100 secondi. Ho impostato il programma in questo modo ma adesso ho alcuni problemi nell'andare avanti, potete aiutarmi?
#include <stdio.h>
#include <time.h>

int main()
{
    int sec;
    scanf("%d",&sec);
    time_t rawtime;
    time (&rawtime);
    struct tm* orario;
    orario = ctime(&rawtime);
    printf("%s",orario);


    return 0;
}

11 Risposte

  • Re: Orologio con misurazione di Primo Ordine

    un giorno in 36 ore, ogni ora in 60 minuti, ogni minuto è diviso in 100 secondi
    Ma perché 36 e 100?
  • Re: Orologio con misurazione di Primo Ordine

    oregon ha scritto:


    un giorno in 36 ore, ogni ora in 60 minuti, ogni minuto è diviso in 100 secondi
    Ma perché 36 e 100?
    Emh non so, questo e richiesto dal testo
  • Re: Orologio con misurazione di Primo Ordine

    Posta il testo esatto dell'esercizio o dove l'hai trovato.
  • Re: Orologio con misurazione di Primo Ordine

    oregon ha scritto:


    Posta il testo esatto dell'esercizio o dove l'hai trovato.
    Il Generale Hux, comandante dell’esercito del Primo Ordine, deve presentarsi tutti i giorni a rapporto dal Supremo Leader Snoke, per riferire l’andamento delle operazioni contro la resistenza. Per allenarlo ad eseguire con precisione gli ordini, a mezzanotte Snoke comunica ad Hux il numero di secondi esatto che devono trascorrere prima di presentarsi a rapporto. scrivere un programma C che stampi ora, minuto e secondo in cui Hux deve presentarsi a rapporto, dopo aver letto da standard input il numero di secondi che devono trascorrere a partire dalla mezzanotte.


    Nota
    Nel sistema di misurazione del tempo del Primo Ordine, un giorno è diviso in 36 ore, ogni ora è divisa in 60 minuti, ogni minuto è diviso in 100 secondi. Il numero di secondi comunicato da Snoke è sempre minore del numero totale di secondi che formano un giorno.
  • Re: Orologio con misurazione di Primo Ordine

    Ok ... quindi precisa "a partire dalla mezzanotte" quindi da 0:0:0 e non dall'ora attuale, quindi tutta la parte dopo la scanf non ti serve (a parte che era sbagliata). Quindi parti da
    
    int main()
    {
        int sec;
    
        printf("Numero di secondi: ");
        scanf("%d",&sec);
    
    
        return 0;
    }
    
    e poi comincia a fare i calcoli (semplici) che ti chiede il programma per ottenere l'ora, i minuti e i secondi da visualizzare.
    Dato che è tutto minore di un giorno, dovrai assicurarti anche che nell'input non vengano inseriti più di 36*60*100 --> 216000 secondi.

    Prima di scrivere il codice, scrivi su carta come faresti questi calcoli, ad esempio, se ti dicessero che i secondi in input sono

    14736

    Se sai usare l'operatore resto % è meglio

    Comincia a calcolare le ore, poi passa ai minuti e poi ai secondi (le regole sono le stesse di quelle per l'orario normale)
  • Re: Orologio con misurazione di Primo Ordine

    oregon ha scritto:


    Ok ... quindi precisa "a partire dalla mezzanotte" quindi da 0:0:0 e non dall'ora attuale, quindi tutta la parte dopo la scanf non ti serve (a parte che era sbagliata). Quindi parti da
    
    int main()
    {
        int sec;
    
        printf("Numero di secondi: ");
        scanf("%d",&sec);
    
    
        return 0;
    }
    
    e poi comincia a fare i calcoli (semplici) che ti chiede il programma per ottenere l'ora, i minuti e i secondi da visualizzare.
    Dato che è tutto minore di un giorno, dovrai assicurarti anche che nell'input non vengano inseriti più di 36*60*100 --> 216000 secondi.

    Prima di scrivere il codice, scrivi su carta come faresti questi calcoli, ad esempio, se ti dicessero che i secondi in input sono

    14736

    Se sai usare l'operatore resto % è meglio

    Comincia a calcolare le ore, poi passa ai minuti e poi ai secondi (le regole sono le stesse di quelle per l'orario normale)
    Mi sembra di aver capito questo ,giusto?
        int sec;
        int ore, minuti, secondi;
        scanf("%d",&sec);
         if (sec <216000 )
         {
             ore=sec/6000;
             minuti=(sec%6000)/100;
             secondi=(sec%6000)%100;
    
             printf("Orario: %d %d %d", ore, minuti, secondi);
         } else 
        return 0;
    }
  • Re: Orologio con misurazione di Primo Ordine

    Giusto ma non usare una if ma un ciclo per chiedere i secondi e accettali solo se sono < 216000
  • Re: Orologio con misurazione di Primo Ordine

    oregon ha scritto:


    Giusto ma non usare una if ma un ciclo per chiedere i secondi e accettali solo se sono < 216000
    uno switch case?
  • Re: Orologio con misurazione di Primo Ordine

    Ti ho scritto "un ciclo"
  • Re: Orologio con misurazione di Primo Ordine

    oregon ha scritto:


    Ti ho scritto "un ciclo"
    Ok, scusa ma lo faccio per hobby perchè vorrei imparare non so tutto
  • Re: Orologio con misurazione di Primo Ordine

    Se vuoi imparare comincia da quello che ti si scrive, no?

    Non serve perdere la pazienza...
Devi accedere o registrarti per scrivere nel forum
11 risposte