Sleep

From Rosetta Code
Revision as of 12:26, 15 April 2008 by rosettacode>Waldorf (→‎{{header|Ada}}: added syntax highlighting)
Task
Sleep
You are encouraged to solve this task according to the task description, using any language you may know.

Write a program that does the following in this order:

  • Input an amount of time to sleep in whatever units are most natural for your language (milliseconds, seconds, ticks, etc.). This unit should be noted in comments or in a description.
  • Print "Sleeping..."
  • Sleep the main thread for the given amount of time.
  • Print "Awake!"
  • End.

Ada

The Ada delay statement takes an argument of type Duration, which is a real number counting the number of seconds to delay. Thus, 2.0 will delay 2.0 seconds, while 0.001 will delay 0.001 seconds.

<ada>with Ada.Text_Io; use Ada.Text_Io; with Ada.Float_Text_Io; use Ada.Float_Text_Io;

procedure Sleep is

  In_Val : Float;

begin

  Get(In_Val);
  Put_Line("Sleeping...");
  delay Duration(In_Val);
  Put_Line("Awake!");

end Sleep;</ada>

BASIC

Works with: QuickBasic version 4.5
INPUT sec 'the SLEEP command takes seconds
PRINT "Sleeping..."
SLEEP sec
PRINT "Awake!"

"SLEEP" with no argument will sleep until a button is pressed on the keyboard (including modifier keys such as shift or control). Also, pressing a key while SLEEP is waiting for a specific amount of time (as above) will end the SLEEP.

C++

Note: Not actually tested!

#include <unistd.h>
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
    useconds_t microseconds;
    cin >> microseconds;
    cout << "Sleeping..." << endl;
    usleep(microseconds);
    cout << "Awake!" << endl;
    return 0;
}

Java

import java.util.Scanner;

public class Sleep{
	public static void main(String[] args) throws InterruptedException{
		Scanner input = new Scanner(System.in);
		int ms = input.nextInt(); //Java's sleep method accepts milliseconds
		System.out.println("Sleeping...");
		Thread.sleep(ms);
		System.out.println("Awake!");
	}
}

Toka

This makes use of the sleep() function from libc which suspends execution for a specified number of seconds.

 1 import sleep as sleep()
 [ ." Sleeping...\n" sleep() drop ." Awake!\n" bye ] is sleep
 
 45 sleep