Interaktiivsed ülesanded
Interaktiivsetes ülesannetes suhtleb lahendus testimiskeskkonnaga failide asemel standardsisendi ja standardväljundi kaudu. See on failide kasutamisele üsna sarnane, põhiline erinevus on, et standardvoogudele vastavad muutujad on kirjeldatud ja vood avatud keskkonna poolt ning programm võib hakata kohe sisendist lugema ja väljundisse kirjutama.
C
Standardsisendist lugemine: kõik nagu tavaliselt, ainult failimuutujaks on stdin
. Näiteks ühe täisarvu lugemine:
fscanf(stdin, "%d", &n);
Standardväljundisse väljastamine: kõik nagu tavaliselt, ainult failimuutujaks on stdout
. Interaktiivses ülesandes tuleb lisaks hoolitseda selle eest, et väljastatud andmed ei jääks puhvrisse ootama, vaid need funktsiooni fflush
abil kohe välja saata:
fprintf(stdout, "%d\n", n); fflush(stdout);
Muutujad stdin
ja stdout
ning funktsioon fflush
on kõik deklareeritud päisfailis stdio.h
.
C++
Standardsisendist lugemine: kõik nagu tavaliselt, ainult failimuutujaks on cin
. Näiteks ühe täisarvu lugemine:
std::cin >> n;
Standardväljundisse väljastamine: kõik nagu tavaliselt, ainult failimuutujaks on cout
. Interaktiivses ülesandes tuleb lisaks hoolitseda selle eest, et väljastatud andmed ei jääks puhvrisse ootama; selleks on kõige lihtsam kasutada rea lõpetajana "\n"
asemel endl
:
std::cout << n << std::endl;
Objektid cin
, cout
ja endl
on kõik deklareeritud päisfailis iostream
.
C#
Standardsisendist lugemine: kõik nagu tavaliselt, ainult failimuutujaks on Console.In
. Näiteks ühe rea lugemine:
string s = Console.In.ReadLine();
Standardväljundisse väljastamine: kõik nagu tavaliselt, ainult failimuutujaks on Console.Out
. Interaktiivses ülesandes tuleb lisaks hoolitseda selle eest, et väljastatud andmed ei jääks puhvrisse ootama; selleks on kõige lihtsam kasutada meetodit Flush
:
Console.Out.WriteLine(s); Console.Out.Flush();
Objekt Console
on deklareeritud System
nimeruumis.
Java
Standardsisendist lugemine: kõik nagu tavaliselt, ainult failimuutujaks on System.in
. Reakaupa lugemiseks on mugav kasutada seda BufferedReader
abil. Näiteks ühe rea lugemine:
BufferedReader in = new BufferedReader(System.in); String s = in.readLine();
Standardväljundisse väljastamine: kõik nagu tavaliselt, ainult failimuutujaks on System.out
. Interaktiivses ülesandes tuleb lisaks hoolitseda selle eest, et väljastatud andmed ei jääks puhvrisse ootama; selleks on kõige lihtsam kasutada meetodit flush
:
System.out.println(s); System.out.flush();
Klass System
on deklareeritud nimeruumis java
ja klass BufferedReader
nimeruumis java.io
.
Pascal
Standardsisendist lugemine: kõik nagu tavaliselt, ainult failimuutujaks on input
. Näiteks ühe täisarvu lugemine:
read(input, n);
Standardväljundisse väljastamine: kõik nagu tavaliselt, ainult failimuutujaks on output
. Interaktiivses ülesandes tuleb lisaks hoolitseda selle eest, et väljastatud andmed ei jääks puhvrisse ootama, vaid need funktsiooni flush
abil kohe välja saata:
writeln(output, n); flush(output);
Python
Standardsisendist lugemine: kõik nagu tavaliselt, ainult failimuutujaks on sys.stdin
. Näiteks ühe rea lugemine:
s = sys.stdin.readline()
Standardväljundisse väljastamine: kõik nagu tavaliselt, ainult failimuutujaks on sys.stdout
. Interaktiivses ülesandes tuleb lisaks hoolitseda selle eest, et väljastatud andmed ei jääks puhvrisse ootama, vaid need meetodi flush
abil kohe välja saata:
sys.stdout.write(s + "\n") sys.stdout.flush()
Objekt sys
tuleb enne kasutamist oma programmi importida.