Interaktiivsed ülesanded

по-русски | in English

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.

Lehekülg viimati muudetud October 13, 2016, at 11:53 AM