Sankt-Peterburgskie Olimpiady po Informatike

Zadachi 5-oj Vserossijskoj olimpiady shkol'nikov (1993 god)


Pervyj tur Vtoroj tur
Komp'juternaja set' STO
TRANSIMEDZhINARIZATOR

Zadacha "Komp'juternaja set'"

Komp'juternaja set' sostoit iz svjazannyh mezhdu soboj dvustoronnimi kanalami svjazi N komp'juterov, nomera kotoryh ot 1 do N. Jeta set' prednaznachena dlja rasprostranenija soobschenija ot central'nogo komp'jutera vsem ostal'nym. Komp'juter, poluchivshij soobschenie, vladeet im i mozhet rasprostranjat' ego dal'she po seti. Zapreschaetsja peredavat' soobschenie na odin i tot zhe komp'juter dvazhdy. Vremja peredachi soobschenija po kanalu svjazi zanimaet odnu sekundu, pri jetom peredajuschij i prinimajuschij komp'jutery zanjaty na vse vremja peredachi dannogo soobschenija. Na ris.1 priveden vozmozhnyj variant takoj seti.


Ris.1

V nachal'nyj moment vremeni central'nyj komp'juter mozhet peredat' soobschenie odnomu iz neposredstvenno svjazannyh s nim komp'juterov, t.e. sosedu. Posle okonchanija peredachi jetim soobscheniem budut vladet' oba komp'jutera. Kazhdyj iz nih mozhet peredat' soobschenie odnomu iz svoih sosedej i tak dalee, poka vse komp'jutery ne budut vladet' soobscheniem.

Dlja seti, pokazannoj na ris.1, vozmozhnyj porjadok rasprostranenija soobschenija ot central'nogo komp'jutera s nomerom 6 priveden v primere 1.

PRIMER 1:

Sekunda 1: 6=>4
Sekunda 2: 4=>3
           6=>7
Sekunda 3: 3=>1
           4=>5
Sekunda 4: 3=>2

Napisat' programmu, kotoraja:

  1. Vvodit opisanie seti, proverjaet korrektnost' jetogo opisanija i, v sluchae ego nekorrektnosti, pechataet sootvetstvujuschee soobschenie, zakanchivaja rabotu.
  2. Opredeljaet i pechataet kakoj-libo porjadok rasprostranenija soobschenija.
  3. Opredeljaet i pechataet porjadok peredachi soobschenija za minimal'noe vremja (porjadok rasprostranenija soobschenija dlja seti na ris.1, privedennyj v primere 1, javljaetsja optimal'nym).

TEHNIChESKIE TREBOVANIJa

  1. N ne prevoshodit 50, a kolichestvo kanalov svjazi ne prevoshodit N+5.
  2. Programma dolzhna zaprashivat' imja vhodnogo fajla; v krajnem sluchae dopuskaetsja vvod s klaviatury.
  3. Set' zadaetsja naborom iz N+2 strok v sledujuschem formate:

    stroka 1: chislo komp'juterov v seti (N);
    stroka 2: spisok vseh sosedej komp'jutera 2 (predstavljaetsja naborom chisel, razdelennyh probelami);
    stroka 3: spisok vseh sosedej komp'jutera 2;
    ... ...
    stroka N+1:spisok vseh sosedej komp'jutera N;
    stroka N+2:nomer central'nogo komp'jutera.

    Tak, privedennaja na ris.1 set' mozhet byt' predstavlena sledujuschim obrazom:

    7
    2 3
    1 3
    1 4 2
    6 5 3
    4
    7 4
    6
    6
  4. Vyvod rezul'tatov dolzhen byt' takim, kak v primere 1.

RAZBALLOVKA

Organizacija dialoga s pol'zovatelem 5 ballov
Punkt A 25 ballov
Punkt B 25 ballov
Punkt V 30 ballov
Vypolnenie tehnicheskih trebovanij 15 ballov

Maksimal'naja ocenka za pervyj tur: 100 ballov

Zadacha "STO"

Dan avtobusnyj bilet s nomerom, sostojaschim iz N cifr. Rasstavit' mezhdu ciframi znaki arifmeticheskih operacij ('+', '-', '/', '*') i skobki takim obrazom, chtoby znachenie poluchennogo vyrazhenie bylo ravno 100. Mozhno obrazovyvat' mnogoznachnye chisla iz stojaschih rjadom cifr.

Vyrazhenie dolzhno byt' korrektnym s tochki zrenija arifmetiki. Dopustimy lishnie skobki, ne narushajuschie korrektnosti vyrazhenija.

Trebuetsja napisat' programmu, reshajuschuju jetu zadachachu.

PRIMEChANIJa

  1. Znaki operacij oznachajut:
    '+'slozhenie;
    '-'vychitanie (unarnyj minus ne dopuskaetsja!);
    '*'umnozhenie;
    '/'delenie nacelo;
  2. Ispol'zuetsja standantnyj prioritet operacij, t.e. vyrazhenie

    6*5/7+5-1/3

    interpretiruetsja kak

    ((((6*5)/7)+5)-(1/3))

  3. Chislo cifr N v nomere bileta ne bol'she 6.
  4. Pri vozniknovenii zatrudnenij v reshenii zadachi dopustimo chastnoe reshenie, ispol'zujuschee ne vse znaki arifmeticheskih dejstvij i/ili skobki.

TEHNIChESKIE TREBOVANIJa

  1. Programma vvodit nomer s klaviatury s priglasheniem

    Nomer:

  2. Programma vyvodt poluchennoe vyrazhenie kak jeto pokazano nizhe:

    0+(19+1)*5+0=100

  3. Esli dlja vvedennogo nomera reshenie najti ne udaetsja, programma dolzhna pechatat':

    123456=?

  4. Predpolagaetsja, chto vse vvodimye dannye korrektny

RAZBALLOVKA

1. Organizacija dialoga s pol'zovatelem 2 balla
2. Polnoe reshenie 33 balla
Chastnye reshenija:
- ne ispol'zuetsja '/' 28 ballov
- ne ispol'zuetsja '*', '/' 10 ballov
- ne ispol'zujutsja skobki 11 ballov
- ne ispol'zuetsja skobki i '/' 10 ballov
- ne ispol'zuetsja skobki, '*' i '/' 5 ballov
3. Udalenie iz vyrazhenija lishnih skobok 5 ballov

Zadacha "TRANSIMEDZhINARIZATOR"

Suschestvujut 2 osnovnye formy informacionnyh opisanij - tekstovaja i graficheskaja

Tekstovym predstavleniem operatora prisvaivanija budem schitat' zapis' vida

< Imja peremennoj>:=< Formula>

Zdes' < Formula> sostoit iz celyh desjatichnyh konstant, imen peremennyh, imen proizvol'nyh funkcij odnogo argumenta, a takzhe znakov arifmeticheskih operacij ('+', '-', '*', '/') i kruglyh skobok. Ogranichimsja sluchaem, kogda imena funkcij, peremennyh i konstanty - tol'ko odnosimvol'nye.

Graficheskim predstavleniem operatora prisvaivanija budem schitat' shemu, sostojaschuju iz jelementov vida:

i soedinjajuschih ih linij. Kolichestvo "vhodov" u jelementa ravno kolichestvu argumentov sootvetstvujuschej operacii ili funkcii, < Imja> - znak arifmeticheskoj operacii ili imja funkcii.

PRIMER. Operatoru prisvaivanija "a:=S((b+c)*(d+e))" mozhno sopostavit' takuju shemu:

TREBUETSJa

Razrabotat' dialogovuju programmnuju sredu dlja preobrazovanija vvodimyh s klaviatury tekstovyh predstavlenij operatorov prisvaivanija v graficheskie, otobrazhaemye na jekrane monitora.

Primechanija
  1. Schitat', chto shema, sootvetstvujuschaja vvodimomu operatoru, pri razumnom vyvode zavedomo pomeschaetsja na jekran displeja.
  2. Konkretnye oboznachenija jelementov, ih raspolozhenie i orientacija vsej shemy mogut byt' i drugimi.
  3. Dopuskaetsja razrabotka programmy, rabotajuschej lish' dlja chastnogo vida operatorov prisvaivanija, v kotoryh otsutstvujut funkcii.

Tehnicheskie trebovanija
  1. Programma dolzhna vydavat' na jekran soobschenie o tom, reshaet ona zadachu v obschem sluchae ili pri ukazannyh v primechanii 3 ogranichenijah.
  2. Interfejs po vozmozhnosti dolzhen obespechivat':

    - udobnyj vvod;
    - udobnuju diagnostiku oshibok s vozmozhnost'ju ih operativnogo ispravlenija;
    - kompozicionnoe i cifrovoe oformlenie vyvodimoj na jekran informacii;
    - nalichie na jekrane neobhodimyh dlja raboty podskazok.

RAZBALLOVKA

Programma, vydajuschaja shemu:
- dlja proizvol'nogo operatora prisvaivanija 25 ballov
- tol'ko pri ogranichenii iz primechanija 3 20 ballov
Diagnostika oshibochnogo vyvoda 10 ballov
Interfejs 5 ballov

Dopolnitel'nye bally zhjuri za zadachi vtorogo tura: 20 ballov
Maksimal'naja ocenka za vtoroj tur: 100 ballov

Используются технологии uCoz