Ege în informatică. B3: matrice de greutate grafică. Pregătirea pentru examen

Decizia de UTILIZARE Informatica

1. Sarcină. Câte sunt în notație binară pentru numărul hexazecimal 12F0 16 ?

Explicaţie.

Să traducem numărul 12F0 16 la sistemul de numere binar: 12F0 16 = 1001011110000 2 .

Să numărăm numărul de unități: sunt 6 dintre ele.

Raspuns: 6.

2. Sarcină Funcția booleană F este dat de expresia (¬ z ) ∧ x ∨ x ∧ y . Determinați ce coloană a tabelului de adevăr al funcției F corespunde fiecăreia dintre variabile x, y, z.

Variabil 1

Variabil 2

Variabil 3

Funcţie

Scrieți literele din răspunsul dvs. x, y, z în ordinea în care apar coloanele lor corespunzătoare (întâi - litera corespunzătoare coloanei 1; apoi - litera corespunzătoare coloanei a 2-a; apoi - litera corespunzătoare coloanei a 3-a). Scrieți literele din răspuns într-un rând, nu trebuie să puneți niciun separator între litere. Exemplu. Lasă expresia x → y , în funcție de două variabile x și y , și tabelul de adevăr:

Variabil 1

Variabil 2

Funcţie

Apoi, prima coloană corespunde variabilei y , iar coloana a 2-a corespunde variabilei X . În răspunsul tău, scrie: yx.

Explicaţie.

Această expresie este o disjuncție a două conjuncții. Putem observa că în ambii termeni există un factor X . Adică pentru x = 0 suma va fi egală cu 0. Deci, pentru variabilă X se potrivește doar a treia coloană.

În al optulea rând al tabelului X = 1, iar valoarea funcției este 0. Acest lucru este posibil numai atunci când z = 1, y = 0, adică variabila1 − z , și variabila2 − y .

Răspuns: zyx

3. Sarcină În figura din dreapta, harta rutieră a districtului N-sky este prezentată sub formă de grafic; tabelul conține informații despre lungimile acestor drumuri (în kilometri).

Deoarece tabelul și diagrama au fost desenate independent una de cealaltă, numerotarea așezărilor din tabel nu este în niciun fel legată de denumirile literelor de pe grafic. Determinați lungimea drumului de la punctul B la punctul E. În răspunsul dvs., notați un număr întreg - așa cum este indicat în tabel.

Explicaţie.

Punctul B este singurul punct cu cinci drumuri, deci corespunde lui P6, iar punctul E este singurul cu patru drumuri, deci corespunde lui P4.

Lungimea drumului de la P6 la P4 este de 20.

Raspuns: 20.

4. Sarcină Fragmentul de bază de date oferă informații despre relații de familie. Pe baza datelor date, determinați câți descendenți direcți (adică copii și nepoți) Pavlenko A.K. sunt menționate în tabelul 1.

tabelul 1

Nume_I.O.

Podea

2146

Krivich L.P.

2155

Pavlenko A.K.

2431

Khitruk P. A.

2480

Krivich A. A.

2302

Pavlenko E. A.

2500

Sokol N. A.

3002

Pavlenko I.A.

2523

Pavlenko T. Kh.

2529

Khitruk A.P.

2570

Pavlenko P.I.

2586

Pavlenko T. I.

2933

Simonyan A. A.

2511

Sokol V. A.

3193

Biba S. A.

masa 2

Parent_ID

Child_ID

2146

2302

2146

3002

2155

2302

2155

3002

2302

2431

2302

2511

2302

3193

3002

2586

3002

2570

2523

2586

2523

2570

2529

2431

2529

2511

2529

3193

SAU

Pentru operațiuni în lot cu fișiere, sunt utilizate măști de nume de fișiere. Masca este o secvență de litere, numere și alte caractere permise în numele fișierelor, care poate conține, de asemenea, următoarele caractere:

Simbolul „?” ( semnul întrebării) înseamnă exact un caracter arbitrar.

Simbolul „*” (asterisc) înseamnă orice secvență de caractere de lungime arbitrară, inclusiv „*” poate specifica și o secvență goală.

Directorul conține 6 fișiere:

maverick.hartă

maverick.mp3

taverna.mp4

revolver.mp4

vera.mp3

zveri.mp3

Mai jos sunt opt ​​măști. Câte dintre ele corespund exact patru fișiere din directorul dat?

*ver*.mp*

**?ver?*.mp?

?*ver*.mp?*

*v*r*?.m?p*

???*???.mp*

???*???.m*

*a*.*a*

*a*.*p*

Explicaţie.

Din tabelul 2 vedem că Pavlenko A.K. (ID 2155) are doi copii, ID-urile lor sunt 2302 și 3002.

Pavlenko E. A. (ID 2302) are trei copii, iar Pavlenko I. A. (ID 3002) are doi.

Astfel, Pavlenko A.K. are șapte descendenți direcți: doi copii și cinci nepoți.

Raspuns: 7.

SAU

Luați în considerare fiecare mască:

1. Prin masca *ver*.mp* vor fi selectate cinci fișiere:

maverick.mp3

taverna.mp4

revolver.mp4

vera.mp3

zveri.mp3

2. Prin masca *?ver?*.mp? vor fi selectate trei fișiere:

maverick.mp3

taverna.mp4

zveri.mp3

3. Prin mască?*ver*.mp?* vor fi selectate patru fișiere:

maverick.mp3

taverna.mp4

revolver.mp4

zveri.mp3

4. Prin mască *v*r*?.m?p* va fi selectat un fișier:

maverick.hartă

5. Prin masca???*???.mp* vor fi selectate trei fisiere:

maverick.mp3

taverna.mp4

revolver.mp4

6. Masca ???*???.m* va selecta patru fișiere:

maverick.hartă

maverick.mp3

taverna.mp4

revolver.mp4

7. Prin mască *a*.*a* va fi selectat un fișier:

maverick.hartă

8. Prin mască *a*.*p* vor fi selectate patru fișiere:

maverick.hartă

maverick.mp3

taverna.mp4

vera.mp3

Adică trei măști care corespund exact patru fișiere din directorul dat.

Raspuns: 3.

Răspuns: 7|3

5. Sarcină Mesajele care conțin doar patru litere sunt transmise prin canalul de comunicare: P, O, S, T; pentru transmisie se foloseste un cod binar care permite decodarea fara ambiguitate. Pentru literele T, O, P se folosesc următoarele cuvinte de cod: T: 111, O: 0, P: 100.

Specificați cel mai scurt cuvânt de cod pentru litera C, la care codul va permite decodarea fără ambiguități. Dacă există mai multe astfel de coduri, indicați codul cu cea mai mică valoare numerică.

Explicaţie.

Litera C nu poate fi codificată ca 0 deoarece 0 este deja luat.

Litera C nu poate fi codificată ca 1, deoarece codificarea literei T începe cu 1.

Litera C nu poate fi codificată ca 10, deoarece codificarea literei P începe cu 10.

Litera C nu poate fi codificată ca 11, deoarece codificarea literei T începe cu 11.

Litera C poate fi codificată ca 101, care este cea mai mică valoare posibilă.

Raspuns: 101.

6. Căutare Intrarea algoritmului este un număr natural N. Algoritmul construiește un nou număr R din acesta, după cum urmează.

1. Se construiește o reprezentare binară a numărului N.

2. Încă două cifre sunt adăugate la această înregistrare din dreapta conform următoarei reguli:

A) se adună toate cifrele notației binare, iar restul împărțirii sumei la 2 se adaugă la sfârșitul numărului (în dreapta). De exemplu, intrarea 11100 este convertită în intrarea 111001;

B) aceleași acțiuni sunt efectuate pe această înregistrare - restul împărțirii sumei cifrelor la 2 se adaugă la dreapta.

Înregistrarea obținută în acest fel (conține două cifre mai mult decât în ​​înregistrarea numărului original N) este o înregistrare binară a numărului necesar R.

Specificați cel mai mic număr N pentru care rezultatul algoritmului este mai mare de 125. În răspunsul dvs., scrieți acest număr în notație zecimală.

SAU

Calculatorul performer are două echipe cărora li se atribuie numere:

1. adauga 2,

2. înmulțiți cu 5.

La efectuarea primei dintre ele, Calculatorul adaugă 2 la numărul de pe ecran, iar la efectuarea celui de-al doilea, îl înmulțește cu 5.

De exemplu, programul 2121 este program

inmultiti cu 5

adauga 2,

inmultiti cu 5

adauga 2,

care transformă numărul 1 în numărul 37.

Scrieți ordinea comenzilor într-un program care convertește numărul 2 în numărul 24 și nu conține mai mult de patru comenzi. Specificați numai numere de comandă.

Explicaţie.

Acest algoritm atribuie la sfârșitul numărului fie 10 dacă inițial avea un număr impar de unități în notația sa binară, fie 00 dacă era par.

126 10 = 1111110 2 poate fi obținut ca urmare a algoritmului de la numărul 11111 2 .

11111 2 = 31 10 .

Raspuns: 31.

SAU

Să rezolvăm problema din sens invers și apoi să notăm comenzile primite de la dreapta la stânga.

Dacă numărul nu este divizibil cu 5, atunci primit prin comanda 1, dacă este divizibil, atunci prin comanda 2.

22 + 2 = 24 (echipa 1)

20 + 2 = 22 (echipa 1)

4 * 5 = 20 (echipa 2)

2 + 2 = 4 (echipa 1)

Răspuns: 1211.

Răspuns: 31|1211

7. Sarcină. Este dat un fragment dintr-o foaie de calcul. O formulă a fost copiată din celula E4 în celula D3. Când copiați adresele celulelor din formulă, acestea s-au schimbat automat. Care este valoarea numerică a formulei din celula D3?

=$B2 *C$3

Notă: semnul $ indică adresarea absolută.

SAU

Este dat un fragment dintr-o foaie de calcul.

=(A1-3)/(B1-1)

=(A1-3)/(C1-5)

C1/(A1 – 3)

Ce număr întreg ar trebui scris în celula A1, astfel încât graficul construit pe valorile celulelor din intervalul A2:C2 să se potrivească cu cifra? Se știe că toate valorile celulelor din intervalul considerat nu sunt negative.

Explicaţie.

Formula, atunci când este copiată în celula D3, s-a schimbat în =$B1 * B$3.

B1 * B3 = 4 * 2 = 8.

Raspuns: 8.

SAU

Înlocuiți valorile lui B1 și C1 în formulele A2:C2:

A2 = (A1-3)/5

B2 = (A1-3)/5

C2 = 10/(A1-3)

Deoarece A2 = B2, atunci С2 = 2 * A2 = 2 * B2

Substitui:

10/(A1-3) = 2*(A1-3)/5

A1 - 3 = 5

A1 = 8.

Raspuns: 8.

8. Sarcină Notați numărul care va fi tipărit ca urmare a executării programul următor. Pentru confortul dumneavoastră, programul este prezentat în cinci limbaje de programare.

DE BAZĂ

Piton

DIM S, N CA INTEGER

S=0

N=0

ÎN CAZUL S

S=S+8

N=N+2

MERGE ÎNCET

PRINT N

s = 0

n=0

în timp ce s

s = s + 8

n = n + 2

print(n)

Limbajul algoritmic

Pascal

alg

din timp

întreg n, s

n:=0

s:= 0

nc pa s

s:= s + 8

n:= n + 2

kts

ieșire n

con

var s, n: întreg;

ÎNCEPE

s:= 0;

n:=0;

în timp ce s

ÎNCEPE

s:= s + 8;

n:= n + 2

Sfârşit;

scrie(n)

Sfârşit.

Xi

#include

int main()

( int s = 0, n = 0;

în timp ce (s

printf("%d\n", n);

returnează 0;

Explicaţie.

Bucla while este executată atâta timp cât condiția s este adevărată

Raspuns: 28.

9. Sarcină. Care este cantitatea minimă de memorie (în KB) care trebuie rezervată pentru a putea stoca orice bitmap de 64×64 pixeli, presupunând că în imagine pot fi utilizate 256 de culori diferite? În răspuns, notați doar un număr întreg, nu trebuie să scrieți o unitate de măsură.

SAU

Fragmentul muzical a fost înregistrat în format mono, digitizat și salvat ca fișier fără a utiliza compresia de date. Dimensiunea fișierului rezultat este de 24 MB. Apoi aceeași piesă muzicală a fost reînregistrată în stereo (înregistrare pe două canale) și digitalizată cu o rezoluție de 4 ori mai mare și o rată de eșantionare de 1,5 ori mai mică decât prima dată. Comprimarea datelor nu a fost efectuată. Specificați dimensiunea fișierului în MB rezultat din rescrire. În răspuns, notați doar un număr întreg, nu trebuie să scrieți o unitate de măsură.

Explicaţie.

Un pixel este codificat cu 8 biți de memorie.

Total 64 * 64 = 2 12 pixeli.

Cantitatea de memorie ocupată de imagine 2 12 * 8 = 2 15 biți = 2 12 octeți = 4 KB.

Raspuns: 4.

SAU

La înregistrarea aceluiași fișier în format stereo, volumul acestuia crește de 2 ori. 24 * 2 = 48

Când rezoluția sa este mărită cu un factor de 4, volumul său crește și cu un factor de 4. 48 * 4 = 192

Când rata de eșantionare este redusă de 1,5 ori, volumul acesteia este redus de 1,5 ori. 192 / 1,5 = 128.

Raspuns: 128.

Răspuns: 4|128

10. Sarcina Igor face un tabel de cuvinte de cod pentru transmiterea mesajelor, fiecare mesaj are propriul cuvânt de cod. Igor folosește drept cuvinte de cod cuvinte din 5 litere, în care sunt doar litere P, I, R, iar litera P apare exact 1 dată. Fiecare dintre celelalte litere valide poate apărea de orice număr de ori în cuvântul de cod, sau deloc. Câte cuvinte de cod diferite poate folosi Igor?

Explicaţie.

Igor poate face 2 4 cuvinte punând litera P pe primul loc. În mod similar, îl puteți pune pe locul doi, al treilea, al patrulea și al cincilea. Obținem 5*2 4 = 80 de cuvinte.

Raspuns: 80.

11. Sarcina Mai jos, în cinci limbaje de programare, două funcții recursive(proceduri): F și G.

DE BAZĂ

Piton

DECLARE SUB F(n)

DECLARE SUB G(n)

SUB F(n)

DACĂ n > 0 atunci G(n - 1)

TERMINAT SUB

SUB G(n)

IMPRIMARE "*"

DACA n > 1 ATUNCI F(n - 3)

TERMINAT SUB

def F(n):

Dacă n > 0:

G(n - 1)

def G(n):

Imprimare("*")

Dacă n > 1:

F(n - 3)

Limbajul algoritmic

Pascal

alg F(întreg n)

din timp

Dacă n > 0 atunci

G(n - 1)

Toate

con

alg G(întreg n)

din timp

Concluzie „*”

Dacă n > 1 atunci

F(n - 3)

Toate

con

procedura F(n: întreg); redirecţiona;

procedura G(n: întreg); redirecţiona;

procedura F(n: întreg);

ÎNCEPE

Dacă n > 0 atunci

G(n-1);

Sfârşit;

procedura G(n: întreg);

ÎNCEPE

writeln("*");

Dacă n > 1 atunci

F(n-3);

Sfârşit;

Xi

void F(int n);

void G(int n);

void F(int n)(

Dacă (n > 0)

G(n-1);

void G(int n)(

printf("*");

Dacă (n > 1)

F(n-3);

Câte asteriscuri vor fi tipărite pe ecran la apelarea F(11)?

Explicaţie.

Să simulăm activitatea programului:

F(11)

G(10): *

F(7)

G(6): *

F(3)

G(2): *

F(-1)

Raspuns: 3.

12. Căutare În terminologia de rețea TCP/IP, o mască de rețea este un număr binar care determină care parte a adresei IP a unei gazde se referă la adresa de rețea și care parte se referă la adresa gazdei în acea rețea. De obicei, masca este scrisă după aceleași reguli ca și adresa IP - sub formă de patru octeți, fiecare octet fiind scris ca număr zecimal. În același timp, în mască, mai întâi (în cifrele cele mai înalte) există unu, iar apoi dintr-o anumită cifră - zerouri. Adresa de rețea este obținută prin aplicarea unei conjuncții pe biți la adresa IP a gazdei și masca date.

De exemplu, dacă adresa IP a gazdei este 231.32.255.131 și masca este 255.255.240.0, atunci adresa de rețea este 231.32.240.0.

Pentru o gazdă cu o adresă IP de 111.81.208.27, adresa de rețea este 111.81.192.0. Care este cea mai mică valoare posibilă a celui de-al treilea octet din stânga măștii? Scrieți răspunsul ca număr zecimal.

Explicaţie.

Să scriem al treilea octet al adresei IP și al adresei de rețea în notație binară:

208 10 = 11010000 2

192 10 = 11000000 2

Vedem că primii doi biți ai măștii din stânga sunt unul, ceea ce înseamnă că pentru ca valoarea să fie cea mai mică, biții rămași trebuie să fie zero. Obținem că al treilea octet al măștii din stânga este 11000000 2 = 192 10

Răspuns: 192.

13. Sarcina La înregistrarea într-un sistem informatic, fiecărui utilizator i se dă o parolă formată din 15 caractere și care conține doar caractere din setul de 12 caractere: A, B, C, D, E, F, G, H, K, L, M, N. Baza de date pentru stocarea informațiilor despre fiecare utilizator are același și cel puțin număr întreg posibil de octeți. În acest caz, se utilizează codarea parolelor caracter cu caracter, toate caracterele sunt codificate cu același și cu numărul minim posibil de biți. Pe lângă parola în sine, în sistem sunt stocate informații suplimentare pentru fiecare utilizator, pentru care este alocat un număr întreg de octeți; acest număr este același pentru toți utilizatorii. A fost nevoie de 400 de octeți pentru a stoca informații despre 20 de utilizatori. Câți octeți sunt alocați pentru a stoca informații suplimentare despre un utilizator? În răspuns, notați doar un număr întreg - numărul de octeți.

Explicaţie.

În funcție de condiție, în număr pot fi folosite 12 litere. Se știe că cu ajutorul a N biți este posibilă codificarea a 2N variante diferite. Din 2 3 4 , atunci sunt necesari 4 biți pentru a scrie fiecare dintre cele 12 caractere.

Pentru a stoca toate cele 15 caractere ale parolei, aveți nevoie de 4 15 = 60 de biți și, deoarece pentru înregistrare este utilizat un număr întreg de octeți, luăm cea mai apropiată valoare, nu mai puțin, un multiplu de opt, acest număr este 64 = 8 8 biți (8 octeți).

Fie cantitatea de memorie alocată pentru sesiuni suplimentare x, atunci:

20 * (8+x) = 400

x=12

Raspuns: 12.

14. Căutare Executor Editor primește un șir de numere ca intrare și îl convertește. Editorul poate executa două comenzi, în ambele comenzi v și w reprezintă șiruri de numere.

A) înlocuiți (v, w).

Această comandă înlocuiește prima apariție a lui v din stânga într-un șir cu w. De exemplu, executarea comenzii

înlocuiți (111, 27)

convertește șirul 05111150 în șirul 0527150. Dacă șirul nu conține apariții ale șirului v, atunci executarea comenzii înlocuire (v, w) nu modifică șirul.

B) găsit (v).

Această comandă verifică dacă șirul v apare în linia editorului executor. Dacă apare, atunci comanda returnează valoarea logică „adevărat”, în caz contrar, returnează valoarea „falsă”. Linia

interpretul nu este schimbat.

Ciclu

starea BYE

Secvență de comandă

TERMINAT LA REA

Se execută în timp ce condiția este adevărată.

În proiectare

starea IF

TO echipa1

ELSE echipa2

TERMINAT DACA

Comanda 1 (dacă condiția este adevărată) sau comanda 2 (dacă condiția este falsă) este executată.

Ce șir va rezulta din aplicarea următoarelor

program într-un șir format din 68 de cifre consecutive 8? In raspuns

notează șirul rezultat.

START

Încă găsit (222) SAU găsit (888)

DACA a fost gasit (222)

A înlocui (222, 8)

ELSE înlocuiește (888, 2)

TERMINAT DACA

TERMINAT LA REA

Sfârşit

Explicaţie.

În 68 de numere consecutive 8 sunt 22 de grupe de trei opt, care vor fi înlocuite cu 22 de doi și vor rămâne doi opt.

68(8) = 22(2) + 2(8)

22(2) + 2(8) = 1(2) + 9(8)

1(2) + 9(8) = 4(2)

4(2) = 1(2) + 1(8) = 28

Raspuns: 28.

15. Căutare Figura prezintă o diagramă a drumurilor care leagă orașele A, B, C, D, D, E, G, H, I, K, L, M.

Pe fiecare drum, vă puteți deplasa doar într-o singură direcție, indicată de săgeată.

Câte moduri diferite există de la orașul A la orașul M?

Explicaţie.

Să începem să numărăm numărul de căi de la sfârșitul traseului - din orașul M. Fie N X este numărul de căi diferite de la orașul A la orașul X, N este numărul total de căi. Orașul M se poate ajunge din L sau K, deci N = N M \u003d N L + N K. (*)

În mod similar:

N K \u003d N Și;

N L \u003d N Și;

N I \u003d N E + N F + N Z

N K \u003d N E \u003d 1.

Să adăugăm mai multe vârfuri:

N B \u003d N A \u003d 1;

N B \u003d N B + N A + N G \u003d 1 + 1 + 1 \u003d 3;

N E \u003d N G \u003d 1;

N G \u003d N A \u003d 1.

Înlocuiți în formula (*): N = N M = 4 + 4 + 4 + 1 = 13.

Raspuns: 13.

Raspuns: 56

16. Căutare Valoarea expresiei aritmetice: 9 8 + 3 5 - 9 - înregistrate în sisteme numerice cu baza 3. Câte cifre „2” sunt cuprinse în această intrare?

Explicaţie.

Să transformăm expresia:

(3 2 ) 8 + 3 5 - 3 2

3 16 + 3 5 - 3 2

3 16 + 3 5 = 100...00100000

100...00100000 - 3 2 = 100...00022200

Există trei 2 în numărul rezultat.

Raspuns: 3

17. Sarcina În limbajul de interogare al motorului de căutare, simbolul „|” este folosit pentru a desemna operația logică „SAU”, iar simbolul „&” este folosit pentru a desemna operația logică „ȘI”. Tabelul arată interogările și numărul de pagini găsite de aceștia pentru un anumit segment de internet.

Câte pagini (în mii) vor fi găsite pentru interogareHomer și Odiseea și Iliada?Se crede că toate cererile au fost executate aproape simultan, astfel încât setul de pagini care conțineau toate cuvintele căutate nu s-a modificat în timp.

executarea cererilor.

Explicaţie.

Numărul de cereri din această zonă va fi notat cu Ni. Ținta noastră este N5.

Apoi din tabel găsim că:

N5 + N6 = 355,

N4 + N5 = 200,

N4 + N5 + N6 = 470.

Din prima și a doua ecuație: N4 + 2N5 + N6 = 555.

Din ultima ecuație: N5 = 85.

Raspuns: 85

18. Sarcina Indicați prin m&n conjuncție pe biți a numerelor întregi nenegative m și n . Deci, de exemplu, 14&5 = 1110 2 &0101 2 = 0100 2 = 4.

Care este cel mai mic număr întreg nenegativȘi formula

x&25 ≠ 0 → (x&17 = 0 → x&A ≠ 0)

este identic adevărat (adică ia valoarea 1 pentru orice valoare întreagă nenegativă a variabilei X )?

Explicaţie.

Să introducem notația:

(x ∈ A) ≡ A; (x ∈ P) ≡ P; (x ∈ Q) ≡ Q.

Transformând, obținem:

¬P ∨ ¬(Q ∧ ¬A) ∨ ¬P = ¬P ∨ ¬Q ∨ A.

SAU logic este adevărat dacă cel puțin una dintre afirmații este adevărată. Stare ¬P∨ ¬Q = 1 satisface razele (−∞, 40) și (60, ∞). Deoarece expresia ¬P∨ ¬Q ∨ A trebuie să fie identic adevărată, expresia A trebuie să fie adevărată în intervalul . Lungimea sa este de 20.

Raspuns: 20.

Raspuns: 8

19. Căutare Programul folosește un tablou întreg unidimensional A cu indici de la 0 la 9. Valorile elementelor sunt 4, 7, 3, 8, 5, 0, 1, 2, 9, 6, respectiv, i.e. A=4, A=7 etc.

Determinați valoarea unei variabile c după executarea următorului fragment al acestui program(scris mai jos în cinci limbaje de programare).

DE BAZĂ

Piton

C=0

PENTRU i = 1 LA 9

DACA A(i)

C=c+1

T = A(i)

A(i) = A(0)

A(0) = t

ENDIF

Apoi eu

C=0

Pentru i în interval (1,10):

Dacă A[i]

C=c+1

t = A[i]

A[i] = A

A=t

Limbajul algoritmic

Pascal

c:= 0

nc pentru i de la 1 la 9

dacă A[i]

c:= c + 1

t:= A[i]

A[i] := A

A := t

Toate

kts

c:=0;

pentru i:= 1 la 9 do

dacă A[i]

ÎNCEPE

c:= c + 1;

t:= A[i];

A[i] := A;

A := t;

Sfârşit;

Xi

c = 0;

pentru (i = 1;i

dacă (A[i]

{

c++;

t = A[i];

A[i] = A;

A=t;

}

Explicaţie.

Dacă A[i] este un element de matrice mai mic decât A, atunci programul le schimbă și crește valoarea variabileicde 1. Programul va fi executat de două ori, prima dată schimbând A și A, de la 3 Cudevine egal cu 2.

Raspuns: 2.

20. CăutareAlgoritmul este scris în cinci limbaje de programare mai jos. După ce a primit un numărX, acest algoritm tipărește un numărM. Se știe căX> 100. Indicați cel mai mic astfel de număr (adică mai mare de 100).X, la introducerea căruia algoritmul imprimă 26.

DE BAZĂ

Piton

DIM X, L, M CA INTEGER

INTRARE X

L=X

M=65

DACA L MOD 2 = 0 ATUNCI

M=52

ENDIF

ÎN CAZUL L M

DACA L > M ATUNCI

L=L-M

ALTE

M=M-L

ENDIF

MERGE ÎNCET

PRINT M

x = int(input())

L=x

M=65

dacă L % 2 == 0:

M=52

în timp ce L != M:

dacă L > M:

L=L-M

altceva:

M=M-L

imprimare (M)

Limbajul algoritmic

Pascal

alg

din timp

întreg x, L, M

intrare x

L:= x

M:= 65

dacă mod(L,2)=0

Acea

M:= 52

Toate

nc în timp ce L M

dacă L > M

Acea

L:= L - M

in caz contrar

M:= M - L

Toate

kts

terminalul M

con

var x, L, M: întreg;

ÎNCEPE

readln(x);

L:=x;

M:= 65;

dacă L mod 2 = 0 atunci

M:= 52;

în timp ce L M face

dacă L > M atunci

L:= L - M

altfel

M:= M - L;

scrieln(M);

Sfârşit.

Xi

#include

void main()

{

intx, L, M;

scanf("%d", &x);

L=x;

M=65;

dacă (L % 2 == 0)

M=52;

în timp ce (L != M)(

dacă (L > M)

L = L - M;

altfel

M = M - L;

}

printf("%d", M);

}

Explicaţie.

În corpul buclei, numerele M și L scad până devin egale. Pentru a imprima 26 la sfârșit, ambele numere trebuie să fie la un moment dat egale cu 26. Să mergem de la sfârșit la început: la pasul anterior, un număr era 26, iar celălalt 26 + 26 = 52. Cu un pas mai devreme, 52 + 26 = 78 și 52. Înainte de asta, 78 + 213 0 și cel mai mic număr posibil. numărul găsit este par, apoi lui M i se va atribui valoarea 52, ceea ce va duce la rezultatul dorit.

Raspuns: 130.

21. CăutareScrieți în răspuns cea mai mică valoare a variabilei de intrarek, la care programul produce același răspuns ca și cu valoarea de intrarek= 10. Pentru confortul dumneavoastră, programul este prezentat în cinci limbaje de programare.

DE BAZĂ

Piton

DIM K, I ATÂTÂT

INTRARE K

I = 1

WHILE F(I)

I = I + 1

MERGE ÎNCET

TIPARI I

FUNCȚIA F(N)

F=N*N*N

FUNCȚIE DE sfârșit

FUNCȚIA G(N)

G = 2*N + 3

FUNCȚIE DE sfârșit

def f(n):

întoarce n*n*n

def g(n):

returnează 2*n+3

k = int(input())

i = 1

în timp ce f(i)

i+=1

print(i)

Limbajul algoritmic

Pascal

alg

din timp

întreg i, k

intrare k

eu:= 1

nc în timp ce f(i)

i:= i + 1

kts

ieșire i

con

alg întreg f(int n)

din timp

val:= n * n * n

con

alg întreg g(int n)

din timp

valoare:= 2*n + 3

con

var

k, i: longint;

funcția f(n: longint): longint;

ÎNCEPE

f:= n * n * n;

Sfârşit;

funcția g(n: longint): longint;

ÎNCEPE

g:= 2*n + 3;

Sfârşit;

ÎNCEPE

readln(k);

i:= 1;

în timp ce f(i)

i:=i+1;

scrie(i)

Sfârşit.

Xi

#include

lung f(n lung) (

returnează n*n*n;

}

g lung (n lung) (

întoarce 2*n + 3;

}

int main()

{

k lung, i;

scanf("%ld", &k);

i = 1;

în timp ce(f(i)

i++;

printf("%ld", i);

returnează 0;

}

Explicaţie.

Acest program compară Și si adauga laiunitate până când . Și imprimă prima valoare a variabileiisub care

Cu k = 10, programul va tipări numărul 3.

Să notăm inegalitatea: prin urmare obținem cea mai mică valoarek = 3.

Raspuns: 3.

22. CăutareInterpretul May15 convertește numărul de pe ecran. Artistul are două echipe cărora li se atribuie numere:

1. Adăugați 1

2. Înmulțiți cu 2

Prima comandă mărește numărul de pe ecran cu 1, a doua îl înmulțește cu 2. Programul pentru interpretul May15 este o secvență de comenzi. Câte programe există pentru care, cu numărul inițial 2, rezultatul este numărul 29 și traiectoria calculelor conține numărul 14 și nu conține numărul 25?

Traiectoria unui program este succesiunea rezultatelor

executarea tuturor comenzilor programului. De exemplu, pentru programul 121, cu numărul inițial 7, traiectoria va consta din numerele 8, 16, 17.

Explicaţie.

În plus, legea comutativă (comutativă) este valabilă, ceea ce înseamnă că ordinea instrucțiunilor din program nu contează pentru rezultat.

Toate comenzile măresc numărul inițial, astfel încât numărul de comenzi nu poate depăși (30 − 21) = 9. În acest caz, numărul minim de comenzi este 3.

Astfel, pot exista 3, 4, 5, 6, 7, 8 sau 9 comenzi. Prin urmare, ordinea comenzilor nu contează, fiecărui număr de comenzi corespunde unui set de comenzi, care poate fi aranjat în orice ordine.

Să luăm în considerare toate seturile posibile și să calculăm numărul de opțiuni pentru plasarea comenzilor în ele. Setul 133 are 3 locații posibile. Setul 1223 - 12 aranjamente posibile: acesta este numărul de permutări cu repetări (1+2+1)!/(1! · 2! · 1!). Set 12222 - 5 opțiuni. Set 111222 - 20 de opțiuni posibile. Set 11123 - 20 de opțiuni. Set 111113 - 6 opțiuni, set 1111122 - 21 opțiuni, set 11111112 - 8 opțiuni, set 111111111 - o opțiune.

În total avem 3 + 12 + 5 + 20 + 20 + 6 + 21 + 8 + 1 = 96 de programe.

Raspuns: 96.

Raspuns: 96.

Raspuns: 13

23. CăutareCâte seturi diferite de valori booleene existăX1 , X2 , ... X9 ,y1 ,y2 , ... y9 care îndeplinesc toate următoarele condiții?

(¬ (X1 y1 )) ≡ (X2 y2 )

(¬ (X2 y2 )) ≡ (X3 y3 )

(¬ (X8 y8 )) ≡ (X9 y9 )

Răspunsul nu trebuie să enumere toate seturile diferite de valori variabileX1 , X2 , ... X9 ,y1 ,y2 , ... y9 , sub care este valabil acest sistem de egalități. Ca răspuns, trebuie să indicați numărul de astfel de seturi.

Explicaţie.

Din ultima ecuație, aflăm că există trei valori posibile pentru x8 și y8: 01, 00, 11. Să construim un arbore de opțiuni pentru prima și a doua pereche de valori.

Astfel, avem 16 seturi de variabile.

Arborele de opțiuni pentru perechea de valori 11:

Avem 45 de opțiuni. Astfel, sistemul va avea 45 + 16 = 61 de seturi diferite de soluții.

Raspuns: 61.

Răspuns: 1024

24. CăutareEste procesat un număr întreg pozitiv care nu depășește 10.9 . Trebuie să scrieți un program care să afișeze suma cifrelor acestui număr mai mică de 7. Dacă nu există cifre mai mici de 7 în număr, trebuie să afișați pe ecran 0. Programatorul a scris programul incorect. Mai jos acest program pentru confortul dumneavoastră este oferit în cinci limbaje de programare.

DE BAZĂ

Piton

DIM N, CIFRE, SUMA CA LUNGA

INTRARE N

SUMA = 0

CÂND N > 0

CIFRE=NMOD 10

DACA CIFRE

SUMA = SUMA + 1

TERMINAT DACA

N=N\10

MERGE ÎNCET

IMPRIMARE CIFRE

N = int(input())

suma = 0

în timp ce N > 0:

cifra = N% 10

dacă cifră

suma = suma + 1

N = N // 10

print(cifra)

Limbajul algoritmic

Pascal

alg

din timp

întreg N, cifră, sumă

intrare N

suma:= 0

nc în timp ce N > 0

cifra:= mod(N,10)

dacă cifră

suma:= suma + 1

Toate

N:=div(N,10)

kts

ieșire cu cifre

con

var N, cifra, suma: longint;

ÎNCEPE

readln(N);

suma:= 0;

în timp ce N > 0 fac

ÎNCEPE

cifra:= N mod 10;

dacă cifră

suma:= suma + 1;

N:= N div 10;

Sfârşit;

writeln(cifra)

Sfârşit.

Xi

#include

int main()

{

int N, cifră, sumă;

scanf("%d", &N);

suma = 0;

în timp ce (N > 0)

{

cifra = N% 10;

dacă (cifră

suma = suma + 1;

N = N/10;

}

printf("%d",cifra);

return0;

}

Faceți următoarele în secvență.

1. Scrieți ce va afișa acest program când introduceți numărul 456.

2. Dați un exemplu de astfel de număr din trei cifre, când este introdus, programul oferă răspunsul corect.

3. Găsiți toate erorile din acest program (pot fi una sau mai multe). Se știe că fiecare eroare afectează doar o linie și poate fi remediată fără a schimba alte linii. Pentru fiecare eroare:

1) scrieți rândul în care a fost făcută eroarea;

2) indicați cum să remediați eroarea, de ex. dați versiunea corectă a șirului.

Este suficient să indicați erorile și modul de corectare a acestora pentru un singur limbaj de programare. Vă rugăm să rețineți că trebuie să găsiți erori în programul existent și nu să scrieți propriile erori, eventual folosind un alt algoritm de soluție. Corectarea unei erori ar trebui să afecteze numai linia care conține eroarea.

Explicaţie.

Soluția folosește o intrare de program Pascal. Puteți utiliza programul în oricare dintre celelalte patru limbi.

1. Programul va tipări numărul 4.

2. Un exemplu de număr, când este introdus, programul oferă răspunsul corect: 835.

Notă pentru recenzent. Programul nu funcționează corect din cauza variabilei afișate greșit și a creșterii greșite a cantității. În consecință, programul va funcționa corect dacă cea mai mare cifră (cea mai din stânga) din număr este egală cu suma cifrelor mai mică de 7.

3. Există două erori în program.

Prima greseala. Creștere greșită a sumei.

Linie de eroare:

suma:= suma + 1;

Remedierea corectă:

suma:= suma + cifra;

A doua greseala. Afișare incorectă a răspunsului pe ecran.

Linie de eroare:

writeln(cifra)

Remedierea corectă:

scrie (sumă)

25. CăutareAvând în vedere un tablou întreg de 20 de elemente. Elementele matricei pot lua valori întregi de la -10000 la 10000 inclusiv. Descrieți în limbaj natural sau într-unul dintre limbajele de programare un algoritm care vă permite să găsiți și să afișați numărul de perechi de elemente de matrice în care cel puțin un număr este divizibil cu 3. În această problemă, o pereche înseamnă două elemente de matrice consecutive. De exemplu, pentru o matrice de cinci elemente: 6; 2; 9; -3; 6 - răspuns: 4.

Datele inițiale sunt declarate așa cum se arată mai jos în exemple pentru unele limbaje de programare și limbaj natural. Este interzisă utilizarea variabilelor care nu sunt descrise mai jos, dar este permisă neutilizarea unora dintre variabilele descrise.

DE BAZĂ

Piton

CONST N CA INTEGER = 20

DIM A (1 TO N) CA INTEGER

DIM I CA INTEGER,

J CA INTREG,

K CA INTEGER

PENTRU I = 1 LA N

INTRARE A(I)

APOI EU

...

Sfârşit

# permis, de asemenea

# folosiți două

# variabile întregi j și k

a =

n=20

pentru i în intervalul (0, n):

a.append(int(input()))

...

Limbajul algoritmic

Pascal

alg

din timp

întreg N = 20

celtab a

numere întregi i, j, k

nc pentru i de la 1 la N

introduceți a[i]

kts

...

con

const

N = 20;

var

a: matrice de numere întregi;

i, j, k: întreg;

ÎNCEPE

pentru i:= 1 la N do

readln(a[i]);

...

Sfârşit.

Xi

limbaj natural

#include

#definiți N 20

int main() (

int a[N];

int i, j, k;

pentru (i = 0; i

scanf("%d", &a[i]);

...

returnează 0;

}

Declarăm un tablou A de 20 de elemente.

Declarăm variabile întregi I, J, K.

Într-o buclă de la 1 la 20, introducem elementele matricei A de la 1 la 20.

Ca răspuns, trebuie să furnizați un fragment de program (sau o descriere a algoritmului în limbaj natural), care ar trebui să fie în locul punctelor de suspensie. De asemenea, puteți scrie soluția într-un alt limbaj de programare (specificați numele și versiunea limbajului de programare folosit, de exemplu Free Pascal 2.6) sau sub formă de diagramă. În acest caz, trebuie să utilizați aceleași date și variabile inițiale care au fost propuse în condiție (de exemplu, într-un eșantion scris în limbaj natural).

k:=k+1

Toate

kts

ieșire k

Pascal

k:= 0;

pentru i:= 1 la N-1 do

dacă (a[i] mod 3=0) sau (a[i] mod 3=0) atunci

inc(k);

scrieln(k);

Xi

k = 0;

pentru (i = 0; i

dacă (a[i]%3 == 0 || a%3 == 0)

k++;

printf("%d", k);

limbaj natural

Scriem valoarea inițială egală cu 0 variabilei K. În bucla de la primul element la penultimul, găsim restul din împărțirea elementului curent și următor al tabloului la 3. Dacă primul sau al doilea dintre resturile rezultate este 0, măriți variabila K cu unu. După ce bucla este finalizată, afișăm valoarea variabilei K

26. CăutareDoi jucători, Petya și Vanya, joacă următorul joc. În fața jucătorilor sunt două mormane de pietre. Jucătorii se mișcă pe rând, Petya face prima mișcare. Într-o singură mișcare, jucătorul poate adăuga o piatră la unul dintre grămezi (la alegere) sau poate dubla numărul de pietre din grămadă. De exemplu, să fie 10 pietre într-o grămadă și 7 pietre în alta; o astfel de poziție în joc va fi notată cu (10, 7). Apoi, într-o singură mișcare, puteți obține oricare dintre cele patru poziții: (11, 7), (20, 7), (10, 8), (10, 14). Pentru a face mișcări, fiecare jucător are un număr nelimitat de pietre.

Jocul se termină în momentul în care numărul total de pietre din grămezi devine cel puțin 73. Câștigătorul este jucătorul care a făcut ultima mutare, adică. primul care a obținut o astfel de poziție încât să fie un total de 73 de pietre sau mai mult în grămezi.

Vom spune că un jucător are o strategie câștigătoare dacă poate câștiga pentru orice mișcare a adversarului. A descrie strategia unui jucător înseamnă a descrie ce mișcare trebuie să facă în orice situație pe care o poate întâlni când joc diferit dusman. De exemplu, cu pozițiile inițiale (6, 34), (7, 33), (9, 32), Petya are o strategie câștigătoare. Pentru a câștiga, trebuie doar să dubleze numărul de pietre din a doua grămadă.

Exercitiul 1.Pentru fiecare dintre pozițiile inițiale (6, 33), (8, 32) indicați care dintre jucători are o strategie câștigătoare. În fiecare caz, descrieți strategia câștigătoare; explicați de ce această strategie duce la o victorie și indicați numărul maxim de mișcări pe care câștigătorul le poate face pentru a câștiga cu această strategie.

Sarcina 2.Pentru fiecare dintre pozițiile inițiale (6, 32), (7, 32), (8, 31) indicați care dintre jucători are o strategie câștigătoare. În fiecare caz, descrieți strategia câștigătoare; explicați de ce această strategie duce la o victorie și indicați numărul maxim de mișcări pe care câștigătorul le poate face pentru a câștiga cu această strategie.

Sarcina 3.Pentru poziția inițială (7, 31), indicați care dintre jucători are o strategie câștigătoare. Descrieți o strategie câștigătoare; explicați de ce această strategie duce la o victorie și indicați numărul maxim de mișcări pe care câștigătorul le poate face pentru a câștiga cu această strategie. Construiește un arbore cu toate jocurile posibile cu strategia câștigătoare pe care ai specificat-o. Prezentați copacul sub forma unei imagini sau a unui tabel.

(7,31)

Total 38

(7,31+1)=(7,32)

Total 39

(7+1,32)=(8,32)

Total 40

(8+1,32)=(9,32)

Total 41

(9,32*2)=(9,64)

Total 73

(8,32+1)=(8,33)

Total 41

(8,33*2)=(8,66)

Total 74

(8*2,32)=(16,32)

Total 48

(16,32*2)=(16,64)

Total80

(8,32*2)=(8,64)

Total 72

(8,64*2)=(8,128)

Total 136

(7+1,31)=(8,31)

Total 39

(8,31+1)=(8,32)

Total 40

(8+1,32)=(9,32)

Total 41

(9,32*2)=(9,64)

Total 73

(8,32+1)=(8,33)

Total41

(8,33*2)=(8,66)

Total 74

(8*2,32)=(16,32)

Total 48

(16,32*2)=(16,64)

Total 80

(8,32*2)=(8,64)

Total 72

(8,64*2)=(8,128)

Total 136

(7*2,31)=(14,31)

Total 45

(14,31*2)=(14,62)

Total 76

(7,31*2)=(7,62)

Total 69

(7,62*2)=(7,124)

Total 131

Exercitiul 1.În pozițiile inițiale (6, 33), (8, 32) Vanya are o strategie câștigătoare. Cu poziția inițială (6, 33), după prima mutare a lui Petya, se poate obține una dintre următoarele patru poziții: (7, 33), (12, 33), (6, 34), (6, 66). Fiecare dintre aceste poziții conține mai puțin de 73 de pietre. Mai mult, din oricare dintre aceste poziții Vanya poate obține o poziție care conține cel puțin 73 de pietre dublând numărul de pietre din a doua grămadă. Pentru poziția (8, 32), după prima mutare a lui Petya, se poate obține una dintre următoarele patru poziții: (9, 32), (16, 32), (8, 33), (8, 64). Fiecare dintre aceste poziții conține mai puțin de 73 de pietre. Mai mult, din oricare dintre aceste poziții Vanya poate obține o poziție care conține cel puțin 73 de pietre dublând numărul de pietre din a doua grămadă. Astfel, Vanya, pentru orice mișcare a lui Petya

câștigă la prima sa mutare.

Sarcina 2.În pozițiile inițiale (6, 32), (7, 32) și (8, 31) Petya are o strategie câștigătoare. Cu poziția inițială (6, 32) trebuie mai întâi să se deplaseze pentru a obține poziția (6, 33), din pozițiile inițiale (7, 32) și (8, 31). Petya după prima mișcare ar trebui să obțină poziția (8, 32). Pozițiile (6, 33) și (8, 32) au fost luate în considerare la analiza sarcinii 1. În aceste poziții, jucătorul care se va muta pe al doilea (acum este Petya) are o strategie câștigătoare. Această strategie a fost descrisă în analiza sarcinii 1. Astfel, în orice joc pe care îl joacă Vanya, Petya câștigă cu a doua sa mutare.

Sarcina 3.În poziția inițială (7, 31), Vanya are o strategie câștigătoare. După prima mutare a lui Petya, poate apărea una dintre cele patru poziții: (8, 31), (7, 32), (14, 31) și (7, 62). În pozițiile (14, 31) și (7, 62) Vanya poate câștiga într-o singură mișcare dublând numărul de pietre din a doua grămadă. Pozițiile (8, 31) și (7, 32) au fost luate în considerare în analiza sarcinii 2. În aceste poziții, jucătorul care trebuie să facă o mișcare (acum este Vanya) are o strategie câștigătoare. Această strategie a fost descrisă în analiza sarcinii 2. Astfel, în funcție de jocul lui Petya, Vanya câștigă la prima sau a doua mișcare.

27. CăutareUn experiment pe termen lung pentru a studia câmpul gravitațional al Pământului se desfășoară în laboratorul de fizică. În fiecare minut, un număr întreg pozitiv este transmis laboratorului prin canalul de comunicare - citirea curentă a dispozitivului Sigma 2015. Numărul de numere transmise în serie este cunoscut și nu depășește 10 000. Toate numerele nu depășesc 1 000. Timpul în care are loc transmisia poate fi neglijat.

Este necesar să se calculeze „valoarea beta” a unei serii de citiri de instrument - produsul minim par a două citiri, între momentele de transmitere a cărora au trecut cel puțin 6 minute. Dacă un astfel de produs nu poate fi obținut, răspunsul este considerat egal cu -1.

Vi se oferă două sarcini legate de această sarcină: sarcina A și sarcina B. Puteți rezolva ambele sarcini sau una dintre ele în funcție de alegerea dvs. Nota finală se stabilește ca maxim de note pentru sarcinile A și B. Dacă nu se prezintă soluția uneia dintre sarcini, atunci se consideră că nota la această sarcină este 0 puncte. Sarcina B este o versiune complicată a sarcinii A, conține cerințe suplimentare pentru program.

A. Scrieți un program în orice limbaj de programare pentru a rezolva problema, în care datele de intrare vor fi stocate într-o matrice, după care vor fi verificate toate perechile posibile de elemente. Specificați versiunea limbajului de programare înainte de program.

INDICAȚI că programul este o soluție pentru SARCINA A.

Punctajul maxim pentru îndeplinirea sarcinii A este de 2 puncte.

B. Scrieți un program pentru a rezolva problema care este eficient atât în ​​timp, cât și în memorie (sau cel puțin una dintre aceste caracteristici).

Un program este considerat eficient din punct de vedere al timpului dacă timpul de rulare

programul este proporțional cu numărul de citiri primite de instrument N, adică când N crește de k ori, timpul de rulare al programului ar trebui să crească de cel mult de k ori.

Un program este considerat eficient de memorie dacă dimensiunea memoriei utilizate în programul pentru stocarea datelor nu depinde de numărul N și nu depășește 1 kilobyte.

Înainte de program, indicați versiunea limbajului de programare și descrieți pe scurt algoritmul utilizat.

Indicați faptul că programul este o soluție pentru SARCINA B.

Punctajul maxim pentru un program corect care este eficient în timp și memorie este de 4 puncte.

Scorul maxim pentru un program corect care este eficient în timp, dar ineficient în memorie este de 3 puncte. ADUCERE AMINTE! Nu uitați să indicați pentru ce sarcină se aplică fiecare dintre programele pe care le trimiteți.

Datele de intrare sunt prezentate după cum urmează. Prima linie conține numărul N - numărul total de citiri ale instrumentului. Este garantat că N > 6. Fiecare dintre următoarele N linii conține un număr întreg pozitiv - următoarea citire a instrumentului.

Exemplu de intrare:

11

12

45

5

3

17

23

21

20

19

18

17

Programul ar trebui să afișeze un număr - produsul descris în condiție sau -1 dacă un astfel de produs nu poate fi obținut.

Exemplu de ieșire pentru exemplul de intrare de mai sus:

54

Explicaţie.

Sarcina B (soluția pentru sarcina A este dată mai jos, vezi programul 4). Pentru ca produsul să fie par, cel puțin un factor trebuie să fie par, prin urmare, atunci când se caută produse potrivite, citirile pare ale instrumentului pot fi luate în considerare în tandem cu oricare altele, iar cele impare doar cu cele pare.

Pentru fiecare indicație cu număr k, începând de la k = 7, considerăm admisibile toate perechile în condițiile problemei, în care această indicație se obține în al doilea rând. Produsul minim al tuturor acestor perechi se va obtine daca citirea minima potrivita se ia mai intai in perechea dintre toate primite de la inceputul receptiei si pana la citirea cu cifra k - 6. Daca urmatoarea citire este par, minimul dintre cele anterioare poate fi oricare, daca impar - doar par.

Pentru a obține o soluție eficientă în timp, pe măsură ce introduceți date, amintiți-vă citirile minime absolute și minime uniforme pentru fiecare punct de timp, înmulțiți fiecare citire nou obținută cu minimul corespunzător care a fost disponibil cu 6 elemente mai devreme și selectați minimul tuturor acestor produse.

Deoarece fiecare citire curentă scăzută este utilizată după ce sunt introduse încă 6 elemente și devine inutilă după aceea, este suficient să stocați doar ultimele 6 valori scăzute. Pentru a face acest lucru, puteți utiliza o matrice de 6 elemente și puteți parcurge prin el pe măsură ce introduceți datele. Mărimea acestei matrice nu depinde de numărul total de citiri introduse, așa că această soluție va fi eficientă nu numai din punct de vedere al timpului, ci și din punct de vedere al memoriei. Pentru a stoca minime absolute și uniforme, trebuie să utilizați două astfel de matrice. Mai jos este un exemplu de astfel de program scris într-un limbaj algoritmic.

Exemplul 1. Un exemplu de program corect într-un limbaj algoritmic. Programul este eficient atat din punct de vedere al timpului cat si al memoriei.

alg

din timp

întreg s = 6 | distanța necesară între citiri

întreg amax = 1001 | mai mult decât lectura maximă posibilă

întreg N

intrare N

întreg a | un alt instrument de citire

celtab mini | minimele curente ale ultimelor elemente

celtab minichet | chiar minime ale ultimelor elemente

tinta i

| introduceți primele citiri, fixați minimele

ma intreaga; ma:= amax | citire minimă

toata graba; grabnic:= amax | lectură minimă uniformă

nc pentru i de la 1 la s

intrare a

ma:= imin(ma, a)

mini := ma

minichet := rush

kts

întreg mp = amax*amax | valoarea minima a produsului

p. întreg

nc pentru i de la s+1 la N

intrare a

dacă mod(a,2)=0

atunci n:= a * mini

altfel dacă se grăbeşte

atunci n:= a * minieven

altfel n:= amax*amax;

Toate

Toate

mp:= imin(mp, n)

ma:= imin(ma, a)

dacă mod(a,2) = 0, atunci flicker:= imin(flash,a) all

mini := ma

minichet := rush

kts

dacă mp = amax*amax atunci mp:=-1 all

ieșire mp

con

Sunt posibile și alte implementări. De exemplu, în loc să umpleți ciclic o matrice, puteți muta elementele acesteia de fiecare dată. În exemplul de mai jos, nu minimele sunt stocate și deplasate, ci valorile originale. Acest lucru necesită puțin mai puțină memorie (o matrice este suficientă în loc de două), dar soluția cu schimburi este mai puțin eficientă în timp decât cu umplerea ciclică. Totuși, timpul de rulare rămâne proporțional cu N, astfel încât punctajul maxim pentru această soluție este și el de 4 puncte.

Programul 2. Un exemplu de program Pascal corect.

Programul folosește schimburi, dar este eficient în timp și memorie

var

N: întreg

a: matrice de numere întregi; (stocarea citirilor instrumentului)

a_: întreg; (introducerea următoarei indicații)

p: întreg;

i, j: întreg;

ÎNCEPE

readln(N);

(Introducerea primelor numere s)

pentru i:=1 la s do readln(a[i]);

(Introducerea altor valori, găsirea produsului minim)

ma:= amax; eu:= amax;

mp:=amax*amax;

pentru i:= s + 1 la N începe

readln(a_);

în cazul în care o

dacă (a mod 2 = 0) și (a

dacă a_ mod 2 = 0 atunci p:= a_ * ma

altfel daca eu

else p:= amax* amax;

dacă (pag

(deplasați elementele matricei auxiliare la stânga)

pentru j:= 1 la s - 1 do

a[j] := a;

a[s] := a_

Sfârşit;

dacă mp = amax*amax atunci mp:=-1;

scrieln(mp)

Sfârşit.

Dacă în loc de o matrice mică de dimensiune fixă ​​(ciclică sau deplasată) sunt stocate toate datele originale (sau toate minimele curente), programul rămâne eficient în timp, dar devine ineficient de memorie, deoarece memoria necesară crește proporțional cu N. Mai jos este un exemplu de astfel de program Pascal. Programele similare (și similare în esență) sunt evaluate nu mai mult de 3 puncte.

Programul 3. Un exemplu de program Pascal corect. Programul este eficient în timp, dar ineficient în memorie

const s = 6; (distanța necesară între citiri)

amax = 1001; (mai mare decât citirea maximă posibilă)

var

N, p, i: întreg;

ma: întreg; (număr minim fără ultimii s)

eu: întreg; (număr par minim fără ultimul s)

mp: întreg; (valoarea minimă a produsului)

ÎNCEPE

readln(N);

(Introducerea tuturor citirilor instrumentului)

pentru i:=1 la N face readln(a[i]);

ma:= amax;

eu:= amax;

mp:= amax*amax;

pentru i:= s + 1 la N do

ÎNCEPE

în cazul în care o

dacă (a mod 2 = 0) și (a

eu:= a;

dacă a[i] mod 2 = 0 atunci p:= a[i] * ma

altfel daca eu

else p:= amax * amax;

dacă (pag

Sfârşit;

dacă mp = amax*amax atunci mp:= -1;

scrieln(mp)

Sfârşit.

Este posibilă și o soluție de enumerare, în care se găsesc produsele tuturor perechilor posibile și se selectează minimul dintre ele. Mai jos (vezi programul 4) este un exemplu de astfel de soluție. Această soluție (și similară) nu este eficientă nici în timp, nici în memorie. Este o soluție pentru sarcina A, dar nu o soluție pentru sarcina B. Scorul pentru o astfel de soluție este de 2 puncte.

Programul 4. Un exemplu de program Pascal corect. Programul nu este eficient nici în timp, nici în memorie

const s = 6; (distanța necesară între citiri)

var

N: întreg

a: matrice de numere întregi; (toate citirile instrumentului)

mp: întreg; (valoarea minimă a produsului)

i, j: întreg;

ÎNCEPE

readln(N);

(Introduceți valorile instrumentului)

pentru i:=1 la N do

readln(a[i]);

p.t.:= 1000 * 1000 + 1;

pentru i:= 1 la N-s încep

pentru j:= i+s la N începe

dacă (a[i]*a[j] mod 2 = 0) și (a[i]*a[j]

atunci mp:= a[i]*a[j]

Sfârşit;

Sfârşit;

dacă mp = 1000 * 1000 + 1 atunci mp:= -1;

scrieln(mp)

K.Yu. Poliakov
UTILIZARE în informatică:
2016 și mai departe...
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

Modificări structurale în 2015-2016


2
Modificări structurale în 2015-2016
1) îndepărtarea piesei A
2) reducerea numărului de sarcini
3) combinarea sarcinilor simple (4, 6, 7, 9)
Scop: lăsați mai mult timp pentru decizie
sarcini complexe.
4) limbajul Python
!
K.Yu. Polyakov, 2015
Variabilitate!
http://kpolyakov.spb.ru

UTILIZARE în informatică: 2016 și mai departe...
3

Câte unități în notație binară
număr hexazecimal 12F016.
1
2
12 102
F
11112
0
1+1+4=6
Specificați cel mai mic număr a cărui notație binară
conține exact trei zerouri semnificative și trei unu.
Scrieți răspunsul în zecimală
1000112 = 35
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B1: sistem de numere binar

UTILIZARE în informatică: 2016 și mai departe...
4
B1: sistem binar socoteala

numerele 1025?
1) „pe frunte” - traduceți ...
2) 1025 = 1024 + 1
1024 = 100000000002
1025 = 100000000012
Raspuns: 2
511?
511 = 512 - 1
= 10000000002 - 1 = 1111111112
Raspuns: 9
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B1: sistem de numere binar

UTILIZARE în informatică: 2016 și mai departe...
5
B1: sistem de numere binar
Câte unități sunt în notația binară a zecimalelor
numărul 999?
1) „pe frunte” - traduceți ...
2) 999 = 1023 – 16 – 8
1023 = 1024 – 1 = 11111111112
minus două unități: 8
519?
519 = 512 + 7
512 = 10000000002
7 = 1112
plus trei unități: 4
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B1: sisteme numerice

UTILIZARE în informatică: 2016 și mai departe...
6
B1: sisteme numerice
În care dintre următoarele numere pot fi scrise
sistem de numere binar sub forma 1xxx10, unde x poate
înseamnă atât 0 cât și 1?
1) 74
2) 38
3) 60
4) 47
1) 1000102 = 34 N 1111102 = 62
2) 1xxx10 este divizibil cu 2
3) 1xxx10 nu este divizibil cu 4
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B2: funcții logice

UTILIZARE în informatică: 2016 și mai departe...
7
B2: funcții logice
x1
1
!
x2
0
x3
x4
0
1
x5
x6
x7
x8
1
1
F
0
1
1
Toate opțiunile sunt simple ȘI sau SAU!
1) "pe frunte" - înlocuiți în formule ...
2) dacă toate „SAU” un zero
verificați linia unde F = 0
x2 fără inversare, x8 cu inversare
3) dacă toate „Și” o unitate
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B2: funcții logice

UTILIZARE în informatică: 2016 și mai departe...
8
B2: funcții logice
Tabelul de funcții z x x

?z
0
0
0
0
1
1
1
1
?y
0
0
1
1
0
0
1
1
K.Yu. Polyakov, 2015
?X
0
1
0
1
0
1
0
1
F
0
1
0
1
0
0
0
1
y.
zxxy
x (z y)
x 0 F 0
x 1
z1
F0
y 0
Răspuns: zyx
http://kpolyakov.spb.ru

B2: funcții logice

UTILIZARE în informatică: 2016 și mai departe...
9
B2: funcții logice
Tabelul de funcții x y z x
Determinați în ce coloane se află x, y și z.
?z
0
0
0
0
1
1
1
1
?X
0
0
1
1
0
0
1
1
K.Yu. Polyakov, 2015
?y
0
1
0
1
0
1
0
1
F
0
0
1
0
1
1
1
1
yz.
x y z x y z
z 0 F x y
z 1 F x y x y
(x x) (y x) y
y x y 1
z0
x 1 Răspuns: zxy
F1
y 0
http://kpolyakov.spb.ru

B3: matrice de greutate grafică

UTILIZARE în informatică: 2016 și mai departe...
10
B3: matrice de greutate grafică
A
A
B
C
D
E
F
Z
B
4
C
6
3
D
E
F
11
4
5
7
4
Z
30
27
10
8
2
29
1) matrice asimetrică (digraf)
2) două drumuri cu sens unic
3) „câte drumuri sunt care trec prin N
puncte?
4) "... nu mai puțin decât în ​​N puncte?"
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B3: matrice de greutate grafică

UTILIZARE în informatică: 2016 și mai departe...
11
B3: matrice de greutate grafică
1
1
2
2
3
45
4
5
6
6
45
55
3
15 60
2
10 40
15
20 35
4
55
2
55 60 20 55
35
45
45
E
A
5
2
grad
culmi
K.Yu. Polyakov, 2015
D
2
40
7
B
7
10
3
4
5
LA
ÎN
gradul 4
gradul 5
G
Raspuns: 20
http://kpolyakov.spb.ru

B4-1: Baze de date tabelare

UTILIZARE în informatică: 2016 și mai departe...
12
B4-1: Baze de date tabelare
1) câți descendenți (copii, nepoți, strănepoți...) are X?
2) câți strămoși ai lui X sunt în tabel?
3) Găsește-ți bunicul matern
23
24
25
K.Yu. Polyakov, 2015
34
57
35
42
http://kpolyakov.spb.ru

UTILIZARE în informatică: 2016 și mai departe...
13

Mesajele conțin literele P, O, C, T; folosit
cod binar care permite clarificarea
decodare. Cuvinte cod:
T: 111, O: 0, P: 100.
Introduceți cel mai scurt cuvânt de cod pentru litera C, cu
unde codul va permite o lipsă de ambiguitate
decodare. Dacă există mai mult de un astfel de cod, vă rugăm să indicați
codul cu cea mai mică valoare numerică.
1
0
0x10
0xx
DESPRE
11
101
P
K.Yu. Polyakov, 2015
0
0
110
1
1
1
0
1
T
http://kpolyakov.spb.ru

B5: codificare și decodare

UTILIZARE în informatică: 2016 și mai departe...
14
B5: codificare și decodare
Mesajele conțin trei vocale: A, E, I - și cinci
consoane: B, C, D, D, K. Literele sunt codificate
cod prefix. Se știe că toate cuvintele cod pentru
consoanele au aceeași lungime și
A -1, E - 01, I - 001.
Pentru ce este cea mai mică lungime posibilă a cuvintelor cod
consoane?
0
5 consoane 3 biți 4 biți 5 biți
4:1xx
0
1
2:01x
0
1
A
1: 001
1
E
disponibil: 000
000x 000xx
1
2
4
ȘI
K.Yu. Polyakov, 2015
6 biți
000xxx
8
http://kpolyakov.spb.ru

B6-1: automat

UTILIZARE în informatică: 2016 și mai departe...
15
B6-1: automat
paritatea restabilită!
Intrare: număr natural N.
1. Bitul de paritate este adăugat la sfârșitul înregistrării binare
(suma cifrelor mod 2).
2. Un alt bit de paritate este adăugat la șirul primit.
Specificați cel mai mic număr pentru care rezultă
executarea acestui algoritm va avea ca rezultat un număr
mai mult de 125.
!
Pasul 2 adaugă 0 2!
Ar trebui să fie par = 126 sau 128
După div 2, paritatea trebuie păstrată!
126 / 2 = 63 = 1111112: - 6 unități, par
Răspuns:
K.Yu. Polyakov, 2015
31
http://kpolyakov.spb.ru

B10: combinatorică

UTILIZARE în informatică: 2016 și mai departe...
16
B10: combinatorică
Câte cuvinte din 5 litere sunt care conțin numai
literele P, I, R, iar litera P apare exact o dată.
P****
*P***
**P**
***P*
****P
K.Yu. Polyakov, 2015
24 = 16 cuvinte
Răspuns: 16 5 = 80.
http://kpolyakov.spb.ru

B12: adresarea rețelei

UTILIZARE în informatică: 2016 și mai departe...
17
B12: adresarea rețelei
Adresa IP 224.128.112.142
Adresa de rețea este 224.128.64.0.
Care este al treilea octet al măștii din stânga?
nu uita de
*.*.112.*
unitati seniori!
*.*.64.0
masca: 110000002 = 192
192
112 = 011100002
64 = 010000002
!
K.Yu. Polyakov, 2015
Conjuncție pe biți!
http://kpolyakov.spb.ru

B12: adresarea rețelei

UTILIZARE în informatică: 2016 și mai departe...
18
B12: adresarea rețelei
Adresa IP 111.81.208.27
Adresa de rețea este 111.81.192.0.
Care este valoarea minimă a treilea din stânga
masca octet?
*.*.208.*
*.*.192.0
208 =
192 =
masca:
masca:
110100002
110000002
111000002
110000002
192
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B14: Destinator

UTILIZARE în informatică: 2016 și mai departe...
19
B14: Destinator
deplasare cu (–3, –3) 1)
REPEȚI DE N ORI
2)
treceți la (a, b) 3)
mutați la (27, 12) 4)
TERMINAT REPETARE
deplasare cu (–22, -7)
3N x 220
3 N și 7 0
cel mai mic N > 1
cel mai mare N
tot posibilul N
suma tuturor N
N x 25
N y 10
N = divizor comun (25,10)
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B14: Editor

UTILIZARE în informatică: 2016 și mai departe...
20
B14: Editor
1) înlocuiți (v,w)
2) găsit(v)
Încă găsit (222) SAU găsit (888)
DACA a fost gasit (222)
A înlocui (222, 8)
ELSE înlocuiește (888, 2)
Care este rezultatul procesării șirului 88888…8?
888888888…8
2 2 2
8
K.Yu. Polyakov, 2015
!
În 4 pași
îndepărtat
8 opt!
68 - 8 8 = 4
68
8888 28
http://kpolyakov.spb.ru

UTILIZARE în informatică: 2016 și mai departe...
21


orașul A către orașul L, care nu trece prin B?
D
B
ȘI
ÎN
A
G
K.Yu. Polyakov, 2015
ȘI
E
L
LA
http://kpolyakov.spb.ru

B15: numărul de căi în coloane

UTILIZARE în informatică: 2016 și mai departe...
22
B15: numărul de căi în coloane
Câte căi diferite există
orașul A către orașul L trecând prin D?
D
B
ȘI
ÎN
A
G
K.Yu. Polyakov, 2015
ȘI
E
L
LA
http://kpolyakov.spb.ru

B16: sisteme numerice

UTILIZARE în informatică: 2016 și mai departe...
23
B16: sisteme numerice
Câte unități sunt în binar
(ternară, ...) notarea numărului X?
10N = 100…0
10N-1 = 99…9
N
N
2N = 100…02
N
3N = 100…03
N
K.Yu. Polyakov, 2015
2N-1 = 11…1
N
3N-1 = 22…2
N
http://kpolyakov.spb.ru

B16: sisteme numerice

UTILIZARE în informatică: 2016 și mai departe...
24
B16: sisteme numerice
2N - 2M = 2M (2N-M - 1)
= 100…02 11…12
N-M
M
= 11…100…02
N-M
K.Yu. Polyakov, 2015
M
http://kpolyakov.spb.ru

B16: sisteme numerice

UTILIZARE în informatică: 2016 și mai departe...
25
B16: sisteme numerice

numere (24400–1) (42200+2)?
(24400–1) (42200+2) = (24400–1) (24400+1+1)
= (24400–1) (24400+1) + 24400–1
= 28800 – 1 + 24400–1
= 28800 + 24400 – 21
1
4399
1 + 4399 = 4400
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B16: sisteme numerice

UTILIZARE în informatică: 2016 și mai departe...
27
B16: sisteme numerice
Câte unități există în notație binară
valorile numărului 8148 - 4123 + 2654 - 17?
8148 = 2444
4123 = 2246
2654
17 = 16 + 1
= 24 + 2 0
2654 + 2444 – 2246 – 24 – 20
444 – 2246 – 24 – 20
2
1
444 – 2
1 + 444 – 2 = 443
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B16: sisteme numerice

UTILIZARE în informatică: 2016 și mai departe...
28
B16: sisteme numerice
Câte două sunt în notație ternară
valorile numărului 9118 + 3123 - 27?
9118 = 3236
27 = 33
K.Yu. Polyakov, 2015
3236 + 3123 – 33
1
120 de zeci
http://kpolyakov.spb.ru

B16: sisteme numerice

UTILIZARE în informatică: 2016 și mai departe...
29
B17: interogări în motoarele de căutare
Cerere
SUA | Japonia | China
Japonia | China
(SUA și Japonia) | (SUA și China)
STATELE UNITE ALE AMERICII
A=SUA
Cerere
A|B
B
A&B
A
Pagini
450
260
50
?
B = Japonia | China
Pagini
450
260
50
?
A
A&B
B
NA | B = NA + NB - NA și B
NA = 450 - 260 + 50 = 240
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B17: interogări în motoarele de căutare

UTILIZARE în informatică: 2016 și mai departe...
30
P = și Q = . Specificați cel mai mic
lungimea posibilă a unui astfel de segment A încât expresia
(x P) (((x Q) (x A)) (x P))
identic adevărat, adică egal cu 1 pentru oricare
valoarea lui x.
P(xP),
Q(x Q),
A (x A)
P (Q A P)
P (Q A P)
P Q A P P Q A
PQ A
P
Q
K.Yu. Polyakov, 2015
P
37
40
60
77
X
20
Q
http://kpolyakov.spb.ru

B18: operații logice, mulțimi

UTILIZARE în informatică: 2016 și mai departe...
31

Setul A: numere naturale. Expresie
(x(2, 4, 6, 8, 10, 12)) → (((x(4, 8, 12, 116))
¬(x A)) → ¬(x (2, 4, 6, 8, 10, 12)))
adevărat pentru orice valoare a lui x. A determina
cea mai mică valoare posibilă a sumei elementelor
seturile A.
P x (2, 4, 6, 8, 10, 12),
Q x (4, 8, 12, 116),
A x A
P (Q A P)
PQ A
Amin P Q P Q (4, 8, 12)
K.Yu. Polyakov, 2015
= 24
http://kpolyakov.spb.ru

B18: operații logice, mulțimi

UTILIZARE în informatică: 2016 și mai departe...
32
B18: operații logice, mulțimi

(x și 49<>0) ((x & 33 = 0) (x & A<> 0))


P x & 49 0,
A x și A 0
P(QA)
Q x & 33 0,
P (Q A) P Q A
P Q A (P Q) A
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B18: operații logice, mulțimi

UTILIZARE în informatică: 2016 și mai departe...
33
B18: operații logice, mulțimi
„&” este o conjuncție pe biți (ȘI). Expresie
(x și 49<>0) ((x & 33 = 0) (x & A<> 0))
adevărat pentru orice x natural. A determina
cea mai mică valoare posibilă a lui A.
x&49
număr de biți
5 4 3 2 1 0
49 = 110001
X = abcdef
X&49=ab000f
x & 49 = 0 toți biții (5, 4, 0) sunt zero
x&49<>
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B18: operații logice, mulțimi

UTILIZARE în informatică: 2016 și mai departe...
34
B18: operații logice, mulțimi
„&” este o conjuncție pe biți (ȘI). Expresie
(x și 49<>0) ((x & 33 = 0) (x & A<> 0))
adevărat pentru orice x natural. A determina
cea mai mică valoare posibilă a lui A.
(PQ)A
P:x și 49<>0 biți (5, 4, 0) sunt non-zero
Î: x & 33 = 0 toți biții (5, 0) sunt zero
număr de biți
5 4 3 2 1 0
33 = 100001
!
?
Bit 4 este diferit de zero!
K.Yu. Polyakov, 2015
Ce rezultă din asta?
Amin = 24 = 16
http://kpolyakov.spb.ru

B18: operații logice, mulțimi

UTILIZARE în informatică: 2016 și mai departe...
35
B18: operații logice, mulțimi
„&” este o conjuncție pe biți (ȘI). Expresie
(x&A<>0) ((x & 20 = 0) (x & 5<> 0))
adevărat pentru orice x natural. A determina

P x & 20 0,
A x și A 0
A (PQ)
Q x & 5 0,
A (P Q) A P Q
P Q A (P Q) A
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B18: operații logice, mulțimi

UTILIZARE în informatică: 2016 și mai departe...
36
B18: operații logice, mulțimi
„&” este o conjuncție pe biți (ȘI). Expresie
(x&A<>0) ((x & 20 = 0) (x & 5<> 0))
adevărat pentru orice x natural. A determina
cea mai mare valoare posibilă a lui A.
(PQ)A
P: x & 20 = 0 toți biții (4, 2) sunt zero
Î: x & 5 = 0 toți biții (2, 0) sunt zero
!
Biții (4, 2, 0) din x sunt zero!
Amax = 24 + 22 + 20 = 21
K.Yu. Polyakov, 2015
Se vor reseta
biți numeric
la &!
http://kpolyakov.spb.ru

B18: operații logice, mulțimi

UTILIZARE în informatică: 2016 și mai departe...
37
B19: manipularea matricei

c:=0;
pentru i:= 1 la 9 do
în cazul în care o< A[i] then begin
c:= c + 1;
t:= A[i];
permutarea perechii
A[i]:= A; la sortare
A:= t
bule
Sfârşit;

K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B19: manipularea matricei

UTILIZARE în informatică: 2016 și mai departe...
38
B19: manipularea matricei
1)
2)
3)
4)
5)
6)
6
9
9
9
9
9
9
9
6
7
7
7
7
7
7
7
6
6
6
6
6
2
2
2
2
2
2
2
1
1
1
5
5
5
5
5
5
5
1
1
1
1
0
0
0
0
3
3
3
3
3
3
3
0
4
4
4
4
4
4
4
0
8
8
8
8
8
8
8
0
c=6
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B19: manipularea matricei

UTILIZARE în informatică: 2016 și mai departe...
39
B19: manipularea matricei
O matrice cu indici de la 0 la 9.
c:=0;
pentru i:= 1 la 9 do
dacă A[i]< A then begin
c:= c + 1;
t:= A[i];
A[i]:= A;
permutarea perechii
A:= t
Sfârşit;
Ce valoare va avea variabila „c”?
4 7 3 8 5 0 1 2 9 6
4 7 3 8 5 0 1 2 9 6
4 7 3 8 5 0 1 2 9 6
K.Yu. Polyakov, 2015
c=2
http://kpolyakov.spb.ru

B19: manipularea matricei

UTILIZARE în informatică: 2016 și mai departe...
40
B19: manipularea matricei

s:=0;
n:=10;
pentru i:=0 până la n-1 începe
s:=s+A[i]-A
Sfârşit;


s:=A-A+A-A+A-...
+A-A+A-A+A-A
max = 999 - 100 = 899
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B19: manipularea matricei

UTILIZARE în informatică: 2016 și mai departe...
41
B19: manipularea matricei
O matrice cu indici de la 0 la 10.
s:=0;
n:=10;
pentru i:=0 până la n-2 începe
s:=s+A[i]-A
Sfârşit;
Matricea conținea numere naturale din trei cifre.
Care este cea mai mare valoare pe care o poate avea „s”?
s:=A-A+A-A+A-...
+A-A+A-A+A-A
max = 999 + 999 - 100 - 100 = 1798
1798
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B19: manipularea matricei

UTILIZARE în informatică: 2016 și mai departe...
42
B20: bucle și condiții („învățați algoritmul”)
Indicați cel mai mic număr de cinci cifre x pentru care
6 va fi imprimat mai întâi, apoi 3.
a:=0;
Minim si maxim!
b:= 10;
readln(x);
în timp ce x > 0 începe
y:= x mod 10;
x:= x div 10;
33336
dacă y > a atunci a:= y;
daca eu< b then b:= y;
Sfârşit;
scrieln(a); (cifra maxima)
scrieln(b); (cifra minima)
!
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B20: bucle și condiții („învățați algoritmul”)

UTILIZARE în informatică: 2016 și mai departe...
43
B20: cicluri și condiții
Care este cel mai mic număr x mai mare decât 100 pentru care
26 vor fi tipărite.
var x, L, M: întreg;
ÎNCEPE
x impar: mcd(x,65) = 26
readln(x);
x par: mcd(x,52) = 26
L:=x; M:= 65;
dacă L mod 2 = 0 atunci x este divizibil cu 26,
M:= 52;
nu este divizibil cu 52!
în timp ce L<>M fac
mcd(104,52) = 52
104
dacă L > M atunci
L:= L - M
Raspuns: 130
altfel
M:= M - L;
scrieln(M);
Algoritmul lui Euclid!
Sfârşit.
!
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B20: cicluri și condiții

UTILIZARE în informatică: 2016 și mai departe...
44
B21: cicluri și proceduri



ÎNCEPE
i
f(i)
f:= n*(n-1)+10
1
10
Sfârşit;

2
12
readln(k);
3
16
i:= 0;
4
22
în timp ce f(i)< k do
5
30
36
i:= i + 1;
scrieln(i);
6
40
Oprire: k<= f(i)
31 … 40
10
K.Yu. Polyakov, 2015
?
Pentru k = 30?
23 … 30
8
http://kpolyakov.spb.ru

B21: cicluri și proceduri

UTILIZARE în informatică: 2016 și mai departe...
45
B21: cicluri și proceduri
Aflați numărul de valori diferite ale lui k pentru care
programul dă același răspuns ca pentru k = 36.
funcția f(n: longint): longint;
ÎNCEPE
Stop:
f:= n*(n-1)+10
f(i-1)< k <= f(i)
Sfârşit;
(i-1)*(i-2)+10< k <= i*(i-1)+10

i2-3i+12< k <= i2-i+10
readln(k);
i:= 0;
i=6: 30< k <= 40
în timp ce f(i)< k do
31 … 40
i:= i + 1;
scrieln(i);
Raspuns: 10
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B21: cicluri și proceduri

UTILIZARE în informatică: 2016 și mai departe...
46
B21: cicluri și proceduri
Aflați cea mai mică valoare a lui k pentru care
programul dă același răspuns ca pentru k = 10.
def f(n):
Stop:
întoarce n*n*n
f(i-1)< g(k) <= f(i)
def g(n):
(i-1)3< 2k+3 <= i3
returnează 2*n+3
3 < 23 <= i3
k=10:
(i-1)
k = int(input())
i=3
i = 1
în timp ce f(i)< g(k):
8 < 2k+3 <= 27
i+=1
3 … 12
print(i)
Raspuns: 3
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

B21: cicluri și proceduri

UTILIZARE în informatică: 2016 și mai departe...
47
B22: programe pentru interpreți
1) adăugați 1
2) înmulțiți cu 2
Câte programe există pentru care din 2
se obtine numarul 29 si in acelasi timp traiectoria calculelor
conține numărul 14 și nu conține numărul 25?
Nu ciudat
K N 1
Formula recurentă: K N
K N 1 K N / 2 N par
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
1
1
2
2
3
3
5
5
7
7
10
10
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
13
13
13
13
13
13
13
13
13
13
13
0
0
0
13
13
început proaspăt
K.Yu. Polyakov, 2015
nu poți veni aici
http://kpolyakov.spb.ru

B22: programe pentru interpreți

UTILIZARE în informatică: 2016 și mai departe...
48
C24: corectarea erorilor
Se citește un număr natural x, trebuie să găsiți
numărul de cifre semnificative din notația sa binară.
readln(x);
c:=0;
în timp ce x > 0 începe
c:= c + x mod 2;
x:= x div 10
Sfârşit;
scrie(c)
1)
2)
3)
4)
?
?
Ce crede el?
Când funcționează
dreapta?
Doar pentru x=1
valoare inițială nevalidă
condiție de buclă invalidă
modificarea incorectă a variabilelor
ieșire greșită
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

C24: corectarea erorilor

UTILIZARE în informatică: 2016 și mai departe...
49
C24: corectarea erorilor
Trebuie să scriem un program care să afișeze
cifra maximă a unui număr care este multiplu de 3. Dacă numărul nu conține
cifre divizibile cu 3, este necesar să se afișeze „NU” pe ecran.
-1
readln(N);
maxDigit:= N mod 10;
Când funcționează
în timp ce N > 0 începe
dreapta?
cifra:= N mod 10;
dacă digit mod 3 1)=ultimul
0, atunci cifra este divizibilă cu 3
dacă cifră > maxDigit
apoi
2) ultimul
număr mai mic decât
maxDigit:= dorit
cifră;rezultat
N:= N div 10;
-1
Sfârşit;
dacă maxDigit = 0 atunci scrieți("NU")
else writeln(maxDigit);
?
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

C24: corectarea erorilor

UTILIZARE în informatică: 2016 și mai departe...
50

Pentru o secvență dată de non-negative
întregi, trebuie să găsiți maximul
produsul a două dintre elementele sale, ale căror numere
diferă cu cel puţin 8. Numărul de elemente
secvența nu depășește 10000.
Sarcina A (2 puncte). O(N2) în timp, O(N) în memorie.
Sarcina B (3 puncte). O(N) în timp, O(N) în memorie.
Sarcina B (4 puncte). O(N) în timp, O(1) în memorie.
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

UTILIZARE în informatică: 2016 și mai departe...
51
C27: problemă dificilă de programare
Sarcina A (2 puncte). Datele sunt stocate într-o matrice.
var N: întreg;
a: matrice de numere întregi;
i, j, max: întreg;
ÎNCEPE
readln(N);
pentru i:=1 la N face citi(a[i]);
max:= -1;
pentru i:= 9 la N do
pentru j:= 1 la i-8 do
dacă (a[j]*a[i] > max) atunci
max:= a[j]*a[i];
scrie (max.)
Sfârşit.
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

C27: problemă dificilă de programare

UTILIZARE în informatică: 2016 și mai departe...
52
C27: problemă dificilă de programare
Sarcina B (3 puncte). Date în matrice, timp O(N).
i-8
i
a[i]
m
acumula!
max a[ j ] a[i] max a[ j ] a[i]
j
j
max:= 0;
m:= 0;
pentru i:= 9 la N începe
dacă a > m atunci m:= a;
dacă m*a[i] > max atunci max:= m*a[i];
Sfârşit;
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

C27: problemă dificilă de programare

UTILIZARE în informatică: 2016 și mai departe...
53
C27: problemă dificilă de programare

i-8
i
stocați într-o matrice
var a: matrice de întreg;
X
Umplerea inițială a matricei:
pentru i:=1 la 8 nu citesc(a[i]);
Promovare:
pentru i:=1 la 7 do
a[i]:=a;
a:=x;
K.Yu. Polyakov, 2015
!
Este coada!
http://kpolyakov.spb.ru

C27: problemă dificilă de programare

UTILIZARE în informatică: 2016 și mai departe...
54
C27: problemă dificilă de programare
Sarcina B (4 puncte). Memoria O(1), timpul O(N).
A
X
const d = 8; (schimb)
... ( citeste deja primele d piese )
max:= 0;
m:= 0;
pentru i:=d+1 la N începe
citeste(x);
dacă a > m atunci m:= a;
dacă m*x > max atunci max:= m*x;
pentru j:=1 la d-1 do
a[j]:= a;
a[d]:= x;
Sfârşit;
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

C27: problemă dificilă de programare

UTILIZARE în informatică: 2016 și mai departe...
55
C27: problemă dificilă de programare
Sarcina B (4 puncte). Fără tură (sel de coadă).
eu 0
1
2
3
9
1
5
6
7
k
0
A
4
10
2 11
3 12
4 5
8
9
N-1
10 11 12 13 14 15 16 17 18
7
6
7
8
a:=date[i];
pentru i:=0 la d-1 do read(a[i]);
pentru i:=d la N-1 începe
citeste(x);
k:= i mod d;
dacă a[k] > m atunci m:= a[k];
dacă m*x > max atunci max:= m*x;
a[k]:=x;
Sfârşit;
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

C27: problemă dificilă de programare

UTILIZARE în informatică: 2016 și mai departe...
56
C27: problemă dificilă de programare
Calculați produsul par maxim al doi
indicaţii, între momentele de transmitere a cărora
au trecut cel puțin 8 minute.
X
a sustine
1) maximul tuturor
2) maxim par
X
chiar chiar * oricare
chiar orice * chiar
K.Yu. Polyakov, 2015
stocați într-o matrice
(coadă)
http://kpolyakov.spb.ru

C27: problemă dificilă de programare

UTILIZARE în informatică: 2016 și mai departe...
57
C27: problemă dificilă de programare
pentru i:=d la N-1 începe
citeste(x);
k:= i mod d;
maxim
chiar
dacă a[k] > m atunci m:= a[k];
dacă ((a[k] mod 2 = 0) și
(a[k] > mEven)) apoi mEven:= a[k];
dacă x mod 2 = 1 atunci începe
primit
ciudat
dacă mEven*x > max atunci
max:= mEven*x;
Sfârşit
primit
chiar
altfel
dacă m*x > max atunci max:= m*x;
a[k]:=x;
Sfârşit;
K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

C27: problemă dificilă de programare

UTILIZARE în informatică: 2016 și mai departe...
58
concluzii
!
K.Yu. Polyakov, 2015
Variabilitate!
http://kpolyakov.spb.ru

concluzii

UTILIZARE în informatică: 2016 și mai departe...
59
Sfârșitul filmului
POLYAKOV Konstantin Iurievici
Doctor în științe tehnice, profesor de informatică
Școala secundară GBOU nr. 163, Sankt Petersburg

K.Yu. Polyakov, 2015
http://kpolyakov.spb.ru

Pentru absolvenții de liceu. Trebuie să fie luat de cei care intenționează să intre în universități pentru cele mai promițătoare specialități, cum ar fi securitatea informațiilor, automatizarea și controlul, nanotehnologia, analiza și controlul sistemelor, sistemele de rachete și astronautica, fizica și tehnologia nucleară și multe altele.

Citiți informațiile generale despre examen și începeți să vă pregătiți. Practic nu există modificări față de anul trecut în noua versiune a KIM USE 2019. Singurul lucru este că fragmente de programe scrise în limbajul C au dispărut din sarcini: au fost înlocuite cu fragmente scrise în limbajul C++. Și de la sarcina numărul 25, au eliminat oportunitatea de a scrie un algoritm în limbaj natural ca răspuns.

USE scor

Anul trecut, pentru a promova Examenul Unificat de Stat în Informatică, cel puțin pentru primii trei, a fost suficient să obțină 42 de puncte primare. Acestea au fost date, de exemplu, pentru primele 9 sarcini corect finalizate ale testului.

Cum va fi în 2019 încă nu se știe cu siguranță: trebuie să așteptați o comandă oficială de la Rosobrnadzor cu privire la corespondența scorurilor primare și ale testelor. Cel mai probabil va apărea în decembrie. Având în vedere că punctajul maxim primar pentru întregul test a rămas același, cel mai probabil nici punctajul minim nu se va modifica. Să aruncăm o privire la aceste tabele:

UTILIZAȚI structura de testare

Informatica este cel mai lung examen (la fel este si durata examenului la matematica si literatura), durata este de 4 ore.

În 2019, testul constă din două părți, inclusiv 27 de sarcini.

  • Partea 1: 23 de sarcini (1-23) cu un răspuns scurt, care este un număr, o secvență de litere sau numere.
  • Partea 2: 4 sarcini (24–27) cu un răspuns detaliat, solutie completa sarcinile sunt înregistrate pe foaia de răspuns 2.

Toate sarcinile sunt conectate într-un fel sau altul cu un computer, dar nu este permisă utilizarea acestuia pentru a scrie un program în sarcinile grupului C în timpul examenului. În plus, sarcinile nu necesită calcule matematice complexe și nici folosirea unui calculator nu este permisă.

Pregătirea pentru examen

  • Treci testele de USE online gratuit, fără înregistrare și SMS. Testele prezentate sunt identice ca complexitate și structură cu examenele reale susținute în anii corespunzători.
  • Descărcați versiunile demonstrative ale Examenului de stat unificat în informatică, care vă vor permite să vă pregătiți mai bine pentru examen și să îl promovați mai ușor. Toate testele propuse au fost dezvoltate și aprobate pentru pregătirea pentru examenul de stat unificat de către Institutul Federal de Măsurători Pedagogice (FIPI). În același FIPI, toate versiunile oficiale ale examenului sunt în curs de dezvoltare.
    Sarcinile pe care le vei vedea, cel mai probabil, nu se vor regăsi la examen, dar vor fi sarcini asemănătoare cu cele demo, pe aceeași temă sau pur și simplu cu numere diferite.

Cifre de UTILIZARE generală

An Min. USE scor Scor mediu Numărul de solicitanți Nu a trecut, % Cant
100 de puncte
Durată-
lungimea examenului, min.
2009 36
2010 41 62,74 62 652 7,2 90 240
2011 40 59,74 51 180 9,8 31 240
2012 40 60,3 61 453 11,1 315 240
2013 40 63,1 58 851 8,6 563 240
2014 40 57,1 235
2015 40 53,6 235
2016 40 235
2017 40 235
2018

SPECIFICAȚIE
controlul materialelor de măsurare
examen unificat de stat 2016
în Informatică și TIC

1. Numirea lui KIM USE

Examenul Unificat de Stat (denumit în continuare USE) este o formă de evaluare obiectivă a calității pregătirii persoanelor care au însușit programele educaționale din învățământul secundar general, folosind sarcini în formă standardizată (materiale de măsurare de control).

Examenul se susține în conformitate cu lege federala din 29 decembrie 2012 Nr. 273-FZ „Despre educația în Federația Rusă”.

Control materiale de măsurare permit stabilirea nivelului de dezvoltare de către absolvenții componentei federale a standardului de stat al învățământului secundar (complet) general în informatică și TIC, niveluri de bază și de profil.

Rezultatele examenului unificat de stat la informatică și TIC sunt recunoscute de instituțiile de învățământ de învățământ secundar profesional și de instituțiile de învățământ de învățământ profesional superior ca rezultate ale examenelor de admitere în informatică și TIC.

2. Documente care definesc conținutul KIM USE

3. Abordări ale selecției conținutului, dezvoltarea structurii KIM USE

Conținutul sarcinilor este dezvoltat pe temele principale ale cursului de informatică și TIC, combinate în următoarele blocuri tematice: „Informația și codificarea acesteia”, „Modelare și experiment pe calculator”, „Sisteme numerice”, „Logica și algoritmi”, „Elemente de teoria algoritmilor”, „Programare”, „Arhitectura calculatoarelor și retele de calculatoare”, „Prelucrarea informațiilor numerice”, „Tehnologii de căutare și stocare a informațiilor”.
Conținutul lucrării de examen acoperă conținutul principal al cursului de informatică și TIC, subiectele sale cele mai importante, cel mai semnificativ material din acestea, care este interpretat fără ambiguitate în majoritatea variantelor cursului de informatică și TIC predat la școală.

Lucrarea conține atât sarcini ale nivelului de bază de complexitate, testarea cunoștințelor și abilităților prevăzute de standardul nivelului de bază și
și sarcini de nivel crescut și ridicat de complexitate, testând cunoștințele și abilitățile oferite de standard nivel de profil. Numărul de sarcini din varianta KIM ar trebui, pe de o parte, să ofere o evaluare cuprinzătoare a cunoștințelor și abilităților absolvenților dobândite pe întreaga perioadă de studiu în materie și, pe de altă parte, să îndeplinească criteriile de complexitate, stabilitatea rezultatelor și fiabilitatea măsurării. În acest scop, în KIM sunt utilizate două tipuri de sarcini: cu un răspuns scurt și cu un răspuns detaliat. Structura lucrării de examinare oferă un echilibru optim al sarcinilor de diferite tipuri și soiuri, trei niveluri de complexitate, testarea cunoștințelor și abilităților la trei niveluri diferite: reproducere, aplicare într-o situație standard, aplicare într-o situație nouă. Conținutul lucrării de examen reflectă o parte semnificativă a conținutului materiei. Toate acestea asigură validitatea rezultatelor testelor și fiabilitatea măsurării.

4. Structura KIM USE

Fiecare versiune a lucrării de examinare constă din două părți și include 27 de sarcini care diferă ca formă și nivel de complexitate.

Partea 1 conține 23 de sarcini cu răspuns scurt.

ÎN munca de examinare Sunt oferite următoarele tipuri de sarcini cu un răspuns scurt:

  • sarcini de alegere și înregistrare a unuia sau mai multor răspunsuri corecte din lista de răspunsuri propusă;
  • sarcini pentru calcularea unei anumite valori;
  • sarcini de stabilit succesiunea corectă, reprezentat ca un șir de caractere conform unui anumit algoritm.

Răspunsul la sarcinile din partea 1 este dat de intrarea corespunzătoare sub forma unui număr natural sau a unei secvențe de caractere (litere și cifre), scrisă fără spații și alți separatori.

Partea 2 conține 4 sarcini cu un răspuns detaliat.

Partea 1 conține 23 de sarcini de nivel de dificultate de bază, avansat și ridicat. Această parte conține sarcini cu un răspuns scurt, care implică formularea independentă și înregistrarea răspunsului sub forma unui număr sau a unei secvențe de caractere. Sarcinile verifică materialul tuturor blocurilor tematice. În partea 1, 12 sarcini aparțin nivelului de bază, 10 sarcini la un nivel crescut de complexitate, 1 sarcină la un nivel ridicat de complexitate.

Partea 2 conține 4 sarcini, dintre care prima nivel avansat dificultate, restul de 3 sarcini nivel inalt dificultăți. Sarcinile acestei părți implică scrierea unui răspuns detaliat într-o formă arbitrară.