Esempi di compiti di informatica dell'Esame di Stato Unificato. Raccolta di saggi ideali di studi sociali

Per una preparazione efficace in informatica, per ciascun compito viene fornito un breve materiale teorico per lo svolgimento del compito. Sono stati selezionati oltre 10 compiti formativi con analisi e risposte, sviluppati sulla base della versione demo degli anni precedenti.

Non ci sono modifiche all'Esame di Stato Unificato KIM 2019 in informatica e ICT.

Aree in cui verranno testate le conoscenze:

  • Programmazione;
  • Algoritmizzazione;
  • strumenti TIC;
  • Attività di informazione;
  • Processi informativi.

Azioni necessarie quando preparazione:

  • Ripetizione del corso teorico;
  • Soluzione test nell'informatica in linea;
  • Conoscenza dei linguaggi di programmazione;
  • Migliorare la matematica e la logica matematica;
  • Utilizzare una gamma più ampia di letteratura - il curriculum scolastico per superare l'esame di stato unificato - non è sufficiente.

Struttura dell'esame

La durata dell'esame è di 3 ore e 55 minuti (255 minuti), di cui si consiglia un'ora e mezza da dedicare al completamento dei compiti della prima parte dei KIM.

Le attività nei ticket sono divise in blocchi:

  • Parte 1- 23 compiti con risposta breve.
  • Parte 2- 4 compiti con risposte dettagliate.

Dei 23 compiti proposti per la prima parte della prova d'esame, 12 sono al livello base della verifica delle conoscenze, 10 sono di maggiore complessità, 1 è di alto livello di complessità. Tre compiti della seconda parte hanno un alto livello di complessità, uno è di livello superiore.

Quando si prende una decisione, è necessario registrare una risposta dettagliata (forma libera).
In alcuni compiti, il testo della condizione viene presentato contemporaneamente in cinque linguaggi di programmazione, per comodità degli studenti.

Punti per compiti di informatica

1 punto - per 1-23 attività
2 punti - 25.
3 punti - 24, 26.
4 punti - 27.
Totale: 35 punti.

Per entrare in un'università tecnica di medio livello, devi ottenere almeno 62 punti. Per entrare nell'università della capitale, il numero di punti deve corrispondere a 85-95.

Per scrivere con successo un documento d'esame, una chiara conoscenza di teoria e costante esercitarsi nella risoluzione compiti.

La tua formula per il successo

Lavora + lavora sugli errori + leggi attentamente la domanda dall'inizio alla fine per evitare errori = punteggio massimo all'Esame di Stato Unificato di Informatica.

L'Esame di Stato Unificato di Informatica non è una prova obbligatoria per tutti i diplomati, ma è necessario per l'ammissione ad alcuni istituti tecnici. Questo esame viene sostenuto raramente, poiché sono pochi gli istituti di istruzione superiore in cui è richiesto. Un caso comune quando si accede a una serie di specialità nelle università politecniche è l'opportunità di scegliere tra fisica e informatica. In una situazione del genere, molti scelgono la seconda, poiché la fisica è giustamente considerata una disciplina più complessa. La conoscenza dell'informatica sarà utile non solo per l'ammissione, ma anche nel processo di padronanza di una specialità presso un istituto di istruzione superiore.


La caratteristica principale della materia scolastica "Informatica" è il suo volume ridotto, quindi una preparazione di qualità richiede meno tempo rispetto ad altre materie. È possibile prepararsi da zero! Per compensare la piccola quantità di materiale, gli autori di domande e compiti offrono ai soggetti compiti complessi, compiti che provocano errori e richiedono una conoscenza di alta qualità delle informazioni e il loro utilizzo competente. Il contenuto dell'esame contiene un numero significativo di compiti strettamente correlati alla conoscenza della matematica e della logica. Una parte significativa è costituita da un blocco di compiti per l'algoritmo, compiti e programmazione. Guardare
Tutti i compiti possono essere suddivisi in 2 blocchi: test (compiti sulla conoscenza teorica, è richiesta una risposta breve), compiti dettagliati. Si consiglia di dedicare circa un'ora e mezza alla prima parte, più di due ore alla seconda. Prenditi il ​​tempo necessario per verificare la presenza di errori e inserisci le risposte nel modulo.
Per imparare come superare facilmente gli ostacoli sotto forma di compiti complessi, utilizzare la risorsa "Risolvi l'esame di stato unificato". Questa è una grande opportunità per metterti alla prova, consolidare le conoscenze e analizzare i tuoi errori. Effettuare regolarmente test online allevierà l'ansia e la preoccupazione per la mancanza di tempo. I compiti qui sono per lo più più difficili che nell'esame.


  • Si consiglia di leggere attentamente il programma di preparazione all'Esame di Stato Unificato: ciò renderà sistematico il processo di ripetizione e assimilerà la teoria in modo strutturato.
  • Oggi sono stati sviluppati molti strumenti di preparazione: usali per esercitarti e studiare il materiale.
  • Impara a risolvere diversi tipi di problemi: è più facile farlo con l'aiuto di un tutor. Se hai un alto livello di conoscenza, puoi gestirlo da solo.
  • Risolvi per un momento in cui hai padroneggiato i dati necessari e hai imparato a risolvere i problemi. I test online ti aiuteranno in questo.
Cosa fare se la conoscenza iniziale è debole?
  • È importante non perdere occasioni di preparazione: corsi, scolarizzazione, didattica a distanza, tutoraggio, autoformazione. Delinea la gamma di problemi che causano il maggior numero di domande e difficoltà.
  • Esercitati a risolvere i problemi: più sono, meglio è.
  • Distribuire correttamente il tempo per lavorare su compiti di vari livelli di difficoltà.
  • Trova un tutor professionista che ti aiuti a colmare le tue lacune di conoscenza.

Soluzione Esame di Stato Unificato (informatica)

1. Compito. Quanti uno ci sono nella notazione binaria del numero esadecimale 12F0 16 ?

Spiegazione.

Convertiamo il numero 12F0 16 al sistema di numerazione binario: 12F0 16 = 1001011110000 2 .

Contiamo il numero di unità: sono 6.

Risposta: 6.

2. Compito Funzione logica F è data dall'espressione (¬ z) ∧ x ∨ x ∧ y . Determina quale colonna della tabella di verità della funzione F ciascuna delle variabili corrisponde x, y, z.

AC 1

AC 2

AC 3

Funzione

Scrivi le lettere nella tua risposta x, y, z nell'ordine in cui appaiono le colonne corrispondenti (prima - la lettera corrispondente alla 1a colonna; poi - la lettera corrispondente alla 2a colonna; quindi - la lettera corrispondente alla 3a colonna). Scrivi le lettere della risposta in fila; non è necessario inserire alcun separatore tra le lettere. Esempio. Sia data l'espressione x → y , in funzione di due variabili x e y e la tavola di verità:

AC 1

AC 2

Funzione

Quindi la prima colonna corrisponde alla variabile sì e la seconda colonna corrisponde alla variabile X . Nella tua risposta devi scrivere: yx.

Spiegazione.

Questa espressione è una disgiunzione di due congiunzioni. Possiamo notare che entrambi i termini hanno un moltiplicatore X. Cioè, in x = 0 la somma sarà uguale a 0. Quindi, per la variabile X Solo la terza colonna è adatta.

Nell'ottava riga della tabella X = 1 e il valore della funzione è 0. Ciò è possibile solo se z = 1, y = 0, cioè variabile1 − z e variabile2 − sì.

Risposta: zyx.

3. Compito Nella figura a destra è mostrata sotto forma di grafico la cartina stradale del comprensorio N; la tabella contiene informazioni relative alla lunghezza di tali strade (in chilometri).

Poiché la tabella e il diagramma sono stati disegnati indipendentemente l'uno dall'altro, la numerazione degli insediamenti nella tabella non è in alcun modo collegata alle designazioni delle lettere sul grafico. Determina la lunghezza della strada dal punto B al punto E. Scrivi un numero intero nella tua risposta, come indicato nella tabella.

Spiegazione.

Il punto B è l'unico punto con cinque strade, il che significa che P6 corrisponde ad esso, e il punto E è l'unico punto con quattro strade, il che significa che P4 corrisponde ad esso.

La lunghezza della strada da P6 a P4 è 20.

Risposta: 20.

4. Compito Un frammento del database fornisce informazioni sui rapporti familiari. Sulla base dei dati forniti, determinare quanti discendenti diretti (cioè figli e nipoti) di Pavlenko A.K. sono menzionati nella tabella 1.

Tabella 1

Cognome_I.O.

Pavimento

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.

Tavolo 2

ID genitore

ID_Bambino

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

O

Per le operazioni di gruppo con i file, vengono utilizzate le maschere dei nomi dei file. La maschera è una sequenza di lettere, numeri e altri caratteri consentiti nei nomi dei file, che può contenere anche i seguenti caratteri:

Simbolo "?" (punto interrogativo) indica esattamente un carattere arbitrario.

Il simbolo “*” (asterisco) indica qualsiasi sequenza di caratteri di lunghezza arbitraria, incluso “*” può anche specificare una sequenza vuota.

Ci sono 6 file nella directory:

maveric.map

maveric.mp3

taverna.mp4

rivoltella.mp4

vera.mp3

zveri.mp3

Di seguito sono riportate otto maschere. Quanti di essi corrispondono esattamente a quattro file di una determinata directory?

*ver*.mp*

*?ver?*.mp?

?*ver*.mp?*

*v*r*?.m?p*

???*???.mp*

???*???.M*

*aa*

*a*.*p*

Spiegazione.

Dalla tabella 2 vediamo che Pavlenko A.K. (ID 2155) ha due figli, i loro ID: 2302 e 3002.

Pavlenko E. A. (ID 2302) ha tre figli e Pavlenko I. A. (ID 3002) ne ha due.

Pertanto, Pavlenko A.K. ha sette discendenti diretti: due figli e cinque nipoti.

Risposta: 7.

O

Diamo un'occhiata a ciascuna maschera:

1. Verranno selezionati cinque file in base alla maschera *ver*.mp*:

maveric.mp3

taverna.mp4

rivoltella.mp4

vera.mp3

zveri.mp3

2. Per maschera *?ver?*.mp? Verranno selezionati tre file:

maveric.mp3

taverna.mp4

zveri.mp3

3. Per maschera?*ver*.mp?* verranno selezionati quattro file:

maveric.mp3

taverna.mp4

rivoltella.mp4

zveri.mp3

4. Un file verrà selezionato utilizzando la maschera *v*r*?.m?p*:

maveric.map

5. Verranno selezionati tre file in base alla maschera???*???.mp*:

maveric.mp3

taverna.mp4

rivoltella.mp4

6. Verranno selezionati quattro file in base alla maschera???*???.m*:

maveric.map

maveric.mp3

taverna.mp4

rivoltella.mp4

7. Un file verrà selezionato utilizzando la maschera *a*.*a*:

maveric.map

8. Verranno selezionati quattro file in base alla maschera *a*.*p*:

maveric.map

maveric.mp3

taverna.mp4

vera.mp3

Cioè tre maschere che corrispondono esattamente a quattro file di una determinata directory.

Risposta: 3.

Risposta: 7|3

5. Compito Attraverso il canale di comunicazione vengono trasmessi messaggi contenenti solo quattro lettere: P, O, S, T; Per la trasmissione viene utilizzato un codice binario che consente una decodifica univoca. Per le lettere T, O, P vengono utilizzate le seguenti parole in codice: T: 111, O: 0, P: 100.

Specificare la parola in codice più breve per la lettera C, in cui il codice consentirà una decodifica inequivocabile. Se esistono più codici di questo tipo, indicare il codice con il valore numerico più basso.

Spiegazione.

La lettera C non può essere codificata come 0, poiché 0 è già preso.

La lettera C non può essere codificata come 1, poiché la codifica della lettera T inizia con 1.

La lettera C non può essere codificata come 10, poiché la codifica della lettera P inizia con 10.

La lettera C non può essere codificata come 11, poiché la codifica della lettera T inizia con 11.

La lettera C può essere codificata come 101, che è il valore più piccolo possibile.

Risposta: 101.

6. Compito L'input dell'algoritmo è un numero naturale N. Da esso l'algoritmo costruisce un nuovo numero R come segue.

1. Viene costruita una rappresentazione binaria del numero N.

2. A questa voce a destra vengono aggiunte altre due cifre secondo la seguente regola:

A) tutte le cifre della notazione binaria vengono sommate e il resto della divisione per 2 viene aggiunto alla fine del numero (a destra). Ad esempio, il record 11100 viene convertito nel record 111001;

B) le stesse azioni vengono eseguite su questa voce: il resto della divisione della somma delle cifre per 2 viene aggiunto a destra.

Il record così ottenuto (ha due cifre in più rispetto al record del numero originale N) è un record binario del numero R desiderato.

Indica il numero N più piccolo per il quale il risultato dell'algoritmo è maggiore di 125. Nella tua risposta, scrivi questo numero nel sistema di numerazione decimale.

O

L'esecutore del Calcolatore ha due squadre, a cui vengono assegnati i numeri:

1. aggiungi 2,

2. moltiplicare per 5.

Eseguendo la prima, la Calcolatrice aggiunge 2 al numero sullo schermo, mentre eseguendo la seconda lo moltiplica per 5.

Ad esempio, il programma 2121 è un programma

moltiplicare per 5,

aggiungi 2,

moltiplicare per 5,

aggiungi 2,

che converte il numero 1 nel numero 37.

Annotare l'ordine dei comandi in un programma che converta il numero 2 nel numero 24 e contenga non più di quattro comandi. Immettere solo i numeri dei comandi.

Spiegazione.

Questo algoritmo aggiunge 10 alla fine del numero se la sua notazione binaria inizialmente conteneva un numero dispari di unità, oppure 00 se c'era un numero pari.

126 10 = 1111110 2 può risultare dal funzionamento dell'algoritmo dal numero 11111 2 .

11111 2 = 31 10 .

Risposta: 31.

O

Risolviamo il problema al contrario, quindi scriviamo i comandi ricevuti da destra a sinistra.

Se il numero non è divisibile per 5, ottenuto tramite il comando 1, se divisibile, quindi tramite il comando 2.

22 + 2 = 24(squadra 1)

20 + 2 = 22(squadra 1)

4 * 5 = 20(squadra 2)

2 + 2 = 4(comando 1)

Risposta: 1211.

Risposta: 31|1211

7. Incarico. Viene fornito un frammento di un foglio di calcolo. La formula è stata copiata dalla cella E4 alla cella D3. Durante la copia, gli indirizzi delle celle nella formula vengono modificati automaticamente. Qual è il valore numerico della formula nella cella D3?

=$B2 * C$3

Nota: il segno $ indica un indirizzamento assoluto.

O

Viene fornito un frammento di un foglio di calcolo.

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

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

C1/(A1 – 3)

Quale numero intero deve essere scritto nella cella A1 affinché il diagramma costruito dai valori delle celle nell'intervallo A2:C2 corrisponda all'immagine? È noto che tutti i valori delle celle dell'intervallo considerato non sono negativi.

Spiegazione.

La formula, una volta copiata nella cella D3, è cambiata in =$B1 * B$3.

B1 * B3 = 4 * 2 = 8.

Risposta: 8.

O

Sostituiamo i valori di B1 e C1 nelle formule A2:C2:

A2 = (A1-3)/5

B2 = (A1-3)/5

C2 = 10/(A1-3)

Poiché A2 = B2, allora C2 = 2 * A2 = 2 * B2

Sostituiamo:

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

A1-3 = 5

A1 = 8.

Risposta: 8.

8. Compito Annotare il numero che verrà stampato come risultato del seguente programma. Per tua comodità, il programma è presentato in cinque linguaggi di programmazione.

DI BASE

Pitone

DIM S, N COME INTERO

S = 0

N=0

MENTRE S

S = S + 8

N=N+2

VENDO

STAMPA N

s = 0

n=0

mentre s

s = s + 8

n = n + 2

stampa(n)

Linguaggio algoritmico

Pascal

alg

inizio

intero n, s

n:= 0

s:= 0

ciao ciao s

s:= s + 8

n:=n+2

kts

uscita n

con

var s, n: intero;

inizio

s:= 0;

n:= 0;

mentre s

inizio

s:= s + 8;

n:=n+2

FINE;

scrivi(n)

FINE.

#includere

int principale()

(int s = 0, n = 0;

mentre(s

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

restituire 0;

Spiegazione.

Il ciclo while viene eseguito finché la condizione s è vera

Risposta: 28.

9. Incarico. Qual è la quantità minima di memoria (in KB) che deve essere riservata per poter archiviare qualsiasi immagine bitmap da 64x64 pixel, presupponendo che l'immagine possa contenere 256 colori diversi? Nella risposta scrivi solo un numero intero, non è necessario scrivere un'unità di misura.

O

Il frammento musicale è stato registrato in formato mono, digitalizzato e salvato come file senza utilizzare la compressione dei dati. La dimensione del file risultante è 24 MB. Successivamente lo stesso brano musicale è stato nuovamente registrato in formato stereo (registrazione a due canali) e digitalizzato con una risoluzione 4 volte superiore e una frequenza di campionamento 1,5 volte inferiore rispetto alla prima volta. Non è stata eseguita alcuna compressione dei dati. Specificare la dimensione del file in MB della riscrittura risultante. Nella risposta scrivi solo un numero intero, non è necessario scrivere un'unità di misura.

Spiegazione.

Un pixel è codificato da 8 bit di memoria.

Totale 64 * 64 = 2 12 pixel.

Memoria occupata dall'immagine 2 12 * 8 = 2 15 bit = 2 12 byte = 4 KB.

Risposta: 4.

O

Quando si registra lo stesso file in formato stereo, il suo volume aumenta di 2 volte. 24*2 = 48

Quando la sua risoluzione aumenta di 4 volte, anche il suo volume aumenta di 4 volte. 48*4 = 192

Quando la frequenza di campionamento viene ridotta di 1,5 volte, il suo volume diminuisce di 1,5 volte. 192/1,5 = 128.

Risposta: 128.

Risposta: 4|128

10. Compito Igor compila una tabella di parole in codice per l'invio dei messaggi; ogni messaggio ha la propria parola in codice. Come parole in codice, Igor usa parole di 5 lettere, che contengono solo le lettere P, I, R e la lettera P appare esattamente 1 volta. Ciascuna delle altre lettere valide può apparire nella parola in codice un numero qualsiasi di volte o non comparire affatto. Quante parole in codice diverse può usare Igor?

Spiegazione.

Igor può farne 2 4 parole mettendo la lettera P al primo posto. Allo stesso modo, puoi metterlo al secondo, terzo, quarto e quinto posto. Otteniamo 5 * 2 4 = 80 parole.

Risposta: 80.

11. Compito Di seguito, due funzioni ricorsive (procedure) sono scritte in cinque linguaggi di programmazione: F e G.

DI BASE

Pitone

DICHIARARE SUB F(n)

DICHIARARE SUB G(n)

SUB F(n)

SE n > 0 ALLORA G(n - 1)

FINE SOTTO

SUB SOL(n)

STAMPA "*"

SE n > 1 ALLORA F(n - 3)

FINE SOTTO

def F(n):

Se n > 0:

G(n-1)

def G(n):

Stampa("*")

Se n > 1:

F(n - 3)

Linguaggio algoritmico

Pascal

alg F(intero n)

inizio

Se n > 0 allora

G(n-1)

Tutto

con

alg G(intero n)

inizio

Conclusione "*"

Se n > 1 allora

F(n - 3)

Tutto

con

procedura F(n: intero); inoltrare;

procedura G(n: intero); inoltrare;

procedura F(n: intero);

inizio

Se n > 0 allora

G(n-1);

FINE;

procedura G(n: intero);

inizio

Writeln("*");

Se n > 1 allora

F(n-3);

FINE;

vuoto F(int n);

vuoto G(int n);

vuoto F(int n)(

Se(n>0)

G(n-1);

vuoto G(int n)(

Printf("*");

Se(n>1)

F(n-3);

Quanti asterischi verranno stampati sullo schermo quando si chiama F(11)?

Spiegazione.

Simuliamo il funzionamento del programma:

F(11)

SOL(10): *

F(7)

SOL(6): *

F(3)

G(2): *

F(-1)

Risposta: 3.

12. Incarico Nella terminologia delle reti TCP/IP, una maschera di rete è un numero binario che determina quale parte dell'indirizzo IP di un host di rete si riferisce all'indirizzo di rete e quale parte si riferisce all'indirizzo dell'host stesso su questa rete. In genere, la maschera viene scritta secondo le stesse regole dell'indirizzo IP, sotto forma di quattro byte, dove ogni byte è scritto come numero decimale. In questo caso, la maschera contiene prima gli uno (nelle cifre più alte), quindi da una certa cifra ci sono gli zeri. L'indirizzo di rete si ottiene applicando una congiunzione bit a bit all'indirizzo IP e alla maschera dell'host specificati.

Ad esempio, se l'indirizzo IP dell'host è 231.32.255.131 e la maschera è 255.255.240.0, l'indirizzo di rete sarà 231.32.240.0.

Per un nodo con indirizzo IP 111.81.208.27, l'indirizzo di rete è 111.81.192.0. Qual è il valore più piccolo possibile del terzo byte da sinistra della maschera? Scrivi la tua risposta come numero decimale.

Spiegazione.

Scriviamo il terzo byte dell'indirizzo IP e dell'indirizzo di rete nel sistema numerico binario:

208 10 = 11010000 2

192 10 = 11000000 2

Vediamo che i primi due bit della maschera a sinistra sono uno, il che significa che affinché il valore sia il più piccolo, i bit rimanenti devono essere zero. Otteniamo che il terzo byte della maschera da sinistra è 11000000 2 = 192 10

Risposta: 192.

13. Compito Al momento della registrazione in un sistema informatico, a ciascun utente viene assegnata una password composta da 15 caratteri e contenente solo caratteri del set di 12 caratteri: A, B, C, D, E, F, G, H, K, L, M, N. Nel database Ai dati per la memorizzazione delle informazioni su ciascun utente viene assegnato lo stesso e minimo numero intero possibile di byte. In questo caso, viene utilizzata la codifica carattere per carattere delle password, tutti i caratteri sono codificati con lo stesso e minimo numero possibile di bit. Oltre alla password stessa, nel sistema vengono archiviate informazioni aggiuntive per ciascun utente, per le quali viene assegnato un numero intero di byte; questo numero è lo stesso per tutti gli utenti. Per memorizzare informazioni su 20 utenti, sono stati necessari 400 byte. Quanti byte vengono allocati per memorizzare informazioni aggiuntive su un utente? Nella tua risposta, scrivi solo un numero intero: il numero di byte.

Spiegazione.

A seconda delle condizioni, nel numero possono essere utilizzate 12 lettere. È noto che utilizzando N bit è possibile codificare 2N opzioni diverse. Dal 2 3 4 , allora sono necessari 4 bit per registrare ciascuno dei 12 caratteri.

Per memorizzare tutti i 15 caratteri di una password, sono necessari 4 · 15 = 60 bit e poiché per la registrazione viene utilizzato un numero intero di byte, prendiamo il più vicino non inferiore a un multiplo di otto, questo numero è 64 = 8 · 8 bit (8 byte).

Lascia che la quantità di memoria allocata per l'archiviazione aggiuntiva sia uguale a x, quindi:

20 * (8+ x ) = 400

x = 12

Risposta: 12.

14. Cessione Executor Editor riceve una stringa di numeri come input e la converte. L'editor può eseguire due comandi, in entrambi i comandi v e w rappresentano stringhe di numeri.

A) sostituire (v, w).

Questo comando sostituisce la prima occorrenza a sinistra della stringa v con la stringa w. Ad esempio, eseguendo il comando

sostituire (111, 27)

converte la stringa 05111150 nella stringa 0527150. Se non sono presenti occorrenze di v nella stringa, l'esecuzione del comando di sostituzione (v, w) non modifica la stringa.

B) trovato (v).

Questo comando controlla se la stringa v ricorre nella riga Editor dell'esecutore. Se viene riscontrato, il comando restituisce il valore booleano “true”, altrimenti restituisce il valore “false”. Linea

l'esecutore non cambia.

Ciclo

Condizione BYE

Sequenza di comandi

FINE, CIAO

Viene eseguito finché la condizione è vera.

Nella progettazione

Condizione SE

ALLA squadra1

ELSE comando2

FINISCI SE

Viene eseguito Comando1 (se la condizione è vera) o comando2 (se la condizione è falsa).

Quale stringa risulterà dall'applicazione di quanto segue

programmi in una stringa composta da 68 cifre consecutive 8? In risposta

annotare la stringa risultante.

INIZIO

finora trovato (222) OPPURE trovato (888)

SE trovato (222)

PER sostituire (222, 8)

ALTRIMENTI sostituisci (888, 2)

FINISCI SE

FINE, CIAO

FINE

Spiegazione.

In 68 numeri consecutivi 8 ci sono 22 gruppi di tre otto, che saranno sostituiti da 22 due e rimarranno due otto.

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

Risposta: 28.

15. Incarico La figura mostra un diagramma delle strade che collegano le città A, B, C, D, D, E, F, Z, I, K, L, M.

Su ogni strada puoi muoverti solo in una direzione, indicata dalla freccia.

Quanti percorsi diversi ci sono dalla città A alla città M?

Spiegazione.

Iniziamo a contare il numero di sentieri dalla fine del percorso - dalla città M. Lasciamo N X - il numero di percorsi diversi dalla città A alla città X, N - il numero totale di percorsi. Puoi arrivare alla città M da L o K, quindi N = N M = N L + N K. (*)

Allo stesso modo:

N K = N I;

N L = N I;

N I = N E + N F + N O

N K = N E = 1.

Aggiungiamo più vertici:

N B = N A = 1;

N B = N B + N A + N G = 1 + 1 + 1 = 3;

N E = N G = 1;

N Ã = N A = 1.

Sostituisci nella formula (*): N = N M = 4 + 4 + 4 + 1 = 13.

Risposta: 13.

Risposta: 56

16. Cessione Valore dell'espressione aritmetica: 9 8 + 3 5 – 9 – scritto nel sistema numerico in base 3. Quante cifre “2” sono contenute in questa notazione?

Spiegazione.

Trasformiamo l'espressione:

(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

Il numero risultante contiene tre due.

Risposta: 3

17. Incarico Nel linguaggio delle query dei motori di ricerca, il simbolo “|” viene utilizzato per denotare l'operazione logica “OR” e il simbolo “&” viene utilizzato per denotare l'operazione logica “AND”. La tabella mostra le query e il numero di pagine trovate per un determinato segmento di Internet.

Quante pagine (in migliaia) verranno trovate per la query?Omero, Odissea e Iliade?Si ritiene che tutte le query siano state eseguite quasi contemporaneamente, in modo che l'insieme delle pagine contenenti tutte le parole cercate non sia cambiato nel tempo

soddisfare le richieste.

Spiegazione.

Indicheremo il numero di richieste in quest'area come Ni. Il nostro obiettivo è N5.

Quindi dalla tabella troviamo che:

N5 + N6 = 355,

N4 + N5 = 200,

N4 + N5 + N6 = 470.

Dalla prima e dalla seconda equazione: N4 + 2N5 + N6 = 555.

Dall'ultima equazione: N5 = 85.

Risposta: 85

18. Compito Indichiamo con m&n congiunzione bit a bit di interi non negativi m e n . Quindi, ad esempio, 14&5 = 1110 2 &0101 2 = 0100 2 = 4.

Per qual è il più piccolo numero intero non negativo E la formula

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

è identicamente vero (vale a dire assume il valore 1 per qualsiasi valore intero non negativo della variabile X )?

Spiegazione.

Introduciamo la seguente notazione:

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

Trasformando otteniamo:

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

L'OR logico è vero se almeno un'affermazione è vera. Condizione ¬P∨ ¬Q = 1 è soddisfatto dai raggi (−∞, 40) e (60, ∞). Poiché l'espressione ¬P∨ ¬Q ∨ A deve essere identicamente vero, l'espressione A deve essere vera nell'intervallo . La sua lunghezza è 20.

Risposta: 20.

Risposta: 8

19. Compito Il programma utilizza un array di numeri interi unidimensionali A con indici da 0 a 9. I valori degli elementi sono rispettivamente 4, 7, 3, 8, 5, 0, 1, 2, 9, 6, ad es. A = 4, A = 7, ecc.

Determinare il valore di una variabile C dopo aver eseguito il frammento successivo di questo programma(scritto sotto in cinque linguaggi di programmazione).

DI BASE

Pitone

C=0

PER i = DA 1 A 9

SE A(i)

C = c + 1

T = A(i)

A(i) = A(0)

A(0) = t

FINISCI SE

AVANTI i

C=0

Per i nell'intervallo(1,10):

Se A[i]

C = c + 1

t = A[i]

A[i] = A

A = t

Linguaggio algoritmico

Pascal

c:= 0

nc per i da 1 a 9

se A[i]

c:= c + 1

t:= A[i]

A[i] := A

A:=t

Tutto

kts

c:= 0;

per i:= da 1 a 9 do

se A[i]

inizio

c:= c+1;

t:= A[i];

A[i] := A;

A := t;

FINE;

c = 0;

per (i = 1;i

se (A[i]

{

c++;

t = A[i];

A[i] = A;

A = t;

}

Spiegazione.

Se l'elemento dell'array A[i] è inferiore ad A, il programma li scambia e aumenta il valore della variabileCper 1. Il programma verrà eseguito due volte, la prima volta scambiando A e A, a partire da 3 Condiventerà uguale a 2.

Risposta: 2.

20. IncaricoL'algoritmo è scritto di seguito in cinque linguaggi di programmazione. Dopo aver ricevuto un numero come inputX, questo algoritmo stampa il numeroM. È risaputo cheX> 100. Specificare il numero più piccolo (ovvero maggiore di 100).X, una volta inserito, l'algoritmo stampa 26.

DI BASE

Pitone

DIM X, L, M COME INTERO

INGRESSO X

L=X

M=65

SE L MOD 2 = 0 ALLORA

M=52

FINISCI SE

MENTRE L.M

SE L>M ALLORA

L = L – M

ALTRO

M = M-L

FINISCI SE

VENDO

STAMPA M

x = int(input())

L = x

M=65

se L % 2 == 0:

M=52

mentre L!= M:

se L > M:

L = L-M

altro:

M = M-L

stampa(M)

Linguaggio algoritmico

Pascal

alg

inizio

intero x, L, M

ingressox

L:=x

M:= 65

se mod(L,2)=0

Quello

M:= 52

Tutto

ciao ciao L M

se L > M

Quello

L:= L – M

Altrimenti

M:=M-L

Tutto

kts

perno M

con

var x, L, M: intero;

inizio

leggiln(x);

L:=x;

M:= 65;

se L mod 2 = 0 allora

M:= 52;

mentre L M lo fa

se L > M allora

L:= L-M

altro

M:= M – L;

scriviln(M);

FINE.

#includere

vuoto principale()

{

intero x, L, M;

scanf("%d", &x);

L = x;

M = 65;

se (L % 2 == 0)

M = 52;

mentre (L != M)(

se(L > M)

L = L-M;

altro

M = M-L;

}

printf("%d", M);

}

Spiegazione.

Nel corpo del ciclo, i numeri M e L diminuiscono fino a diventare uguali. Affinché alla fine venga stampato 26, entrambi i numeri devono essere uguali a 26 ad un certo punto Andiamo dalla fine all'inizio: nel passaggio precedente, un numero era 26 e l'altro era 26 + 26 = 52. Uno. passo precedente, 52 + 26 = 78 e 52. Prima di ciò, 78 + 52 = 130 e 52. Cioè, il numero più piccolo possibile è 130. E poiché il numero trovato è pari, a M verrà assegnato il valore 52, che porterà al risultato desiderato.

Risposta: 130.

21. CompitoScrivi nella tua risposta il valore più piccolo della variabile di inputK, in cui il programma produce la stessa risposta del valore di inputK= 10. Per comodità, il programma è fornito in cinque linguaggi di programmazione.

DI BASE

Pitone

DIM K, I AS LUNGO

INGRESSO K

io = 1

MENTRE F(I)

Io = Io + 1

VENDO

STAMPA I

FUNZIONE F(N)

F=N*N*N

FINE FUNZIONE

FUNZIONE G(N)

G = 2*N + 3

FINE FUNZIONE

def f(n):

ritorno n*n*n

def g(n):

restituisce 2*n+3

k = int(input())

io=1

mentre f(i)

io+=1

stampa(i)

Linguaggio algoritmico

Pascal

alg

inizio

int i, k

ingresso k

io:= 1

per ora f(i)

io:= io + 1

kts

uscita i

con

alg intero f(intero n)

inizio

valore:= n * n * n

con

alg intero g(intero n)

inizio

valore:= 2*n + 3

con

var

k, i: longint;

funzione f(n: longint): longint;

inizio

f:= n*n*n;

FINE;

funzione g(n: longint): longint;

inizio

g:= 2*n + 3;

FINE;

inizio

leggiln(k);

io:= 1;

mentre f(i)

io:= io+1;

scrivi(i)

FINE.

#includere

lungo f(lungo n) (

restituire n * n * n;

}

lungo g(lungo n) (

restituisce 2*n + 3;

}

int principale()

{

lungo k, i;

scanf("%ld", &k);

io = 1;

mentre(f(i)

io++;

printf("%ld", i);

restituire 0;

}

Spiegazione.

Questo programma confronta E e aggiunge aiounità fino al . E restituisce il primo valore della variabileioal quale

Se k = 10, il programma stamperà il numero 3.

Scriviamo la disuguaglianza: da qui otteniamo il valore più piccoloK = 3.

Risposta: 3.

22. IncaricoPerformer May15 converte il numero sullo schermo. L'esecutore ha due squadre, a cui vengono assegnati i numeri:

1. Aggiungi 1

2. Moltiplicare per 2

Il primo comando aumenta di 1 il numero sullo schermo, il secondo lo moltiplica per 2. Il programma per l'esecutore May15 è una sequenza di comandi. Quanti sono i programmi per i quali, dato il numero iniziale 2, il risultato è il numero 29 e contemporaneamente la traiettoria di calcolo contiene il numero 14 e non contiene il numero 25?

La traiettoria di calcolo di un programma è una sequenza di risultati

esecuzione di tutti i comandi del programma. Ad esempio, per il programma 121 con il numero iniziale 7, la traiettoria sarà composta dai numeri 8, 16, 17.

Spiegazione.

Inoltre vale la legge commutativa, ciò significa che l'ordine dei comandi nel programma non ha importanza per il risultato.

Tutte le squadre aumentano il numero iniziale, quindi il numero di squadre non può superare (30 − 21) = 9. In questo caso, il numero minimo di squadre è 3.

Pertanto, il numero di comandi può essere 3, 4, 5, 6, 7, 8 o 9. Pertanto, l'ordine dei comandi non ha importanza; per ogni numero di comandi esiste una serie di comandi che possono essere organizzati qualsiasi ordine.

Consideriamo tutti i set possibili e calcoliamo il numero di opzioni per inserire i comandi in essi. Il set 133 ha 3 possibili opzioni di layout. Insieme 1223 - 12 possibili disposizioni: questo è il numero di permutazioni con ripetizioni (1+2+1)!/(1! · 2! · 1!)). Imposta 12222 - 5 opzioni. Set 111222 - 20 possibili opzioni. Imposta 11123 - 20 opzioni. Set 111113 - 6 opzioni, set 1111122 - 21 opzioni, set 11111112 - 8 opzioni, set 111111111 - una opzione.

In totale abbiamo 3+12+5+20+20+6+21+8+1 = 96 programmi.

Risposta: 96.

Risposta: 96.

Risposta: 13

23. CessioneQuanti insiemi diversi di valori di variabili booleane esistono?X1 , X2 , ... X9 , sì1 , sì2 , ... sì9 , che soddisfano tutte le condizioni elencate di seguito?

(¬ (X1 1 )) ≡ (X2 2 )

(¬ (X2 2 )) ≡ (X3 3 )

(¬ (X8 8 )) ≡ (X9 9 )

Non è necessario che la risposta elenchi tutti i diversi insiemi di valori variabili.X1 , X2 , ... X9 , sì1 , sì2 , ... sì9 , per cui questo sistema di uguaglianze è soddisfatto. Come risposta, è necessario indicare il numero di tali set.

Spiegazione.

Dall'ultima equazione troviamo che ci sono tre possibili opzioni per i valori di x8 e y8: 01, 00, 11. Costruiamo un albero di opzioni per la prima e la seconda coppia di valori.

Pertanto, abbiamo 16 insiemi di variabili.

Albero delle opzioni per la coppia di valori 11:

Otteniamo 45 opzioni. Pertanto, il sistema avrà 45 + 16 = 61 insiemi di soluzioni diverse.

Risposta: 61.

Risposta: 1024

24. CessionePer l'elaborazione viene ricevuto un numero intero positivo non superiore a 109 . È necessario scrivere un programma che visualizzi la somma delle cifre di questo numero inferiore a 7. Se il numero non contiene cifre inferiori a 7, è necessario visualizzare 0. Il programmatore ha scritto il programma in modo errato. Di seguito questo programma è presentato in cinque linguaggi di programmazione per tua comodità.

DI BASE

Pitone

DIM N, CIFRA, SOMMA LUNGO

INGRESSO N

SOMMA = 0

MENTRE N > 0

CIFRA = N MOD 10

SE CIFRE

SOMMA = SOMMA + 1

FINISCI SE

N=N\10

VENDO

STAMPA CIFRA

N = int(input())

somma = 0

mentre N > 0:

cifra = N% 10

se cifra

somma = somma + 1

N = N // 10

stampa(cifra)

Linguaggio algoritmico

Pascal

alg

inizio

intero N, cifra, somma

ingresso n

somma:= 0

nts mentre N > 0

cifra:= mod(N,10)

se cifra

somma:= somma + 1

Tutto

N:=div(N,10)

kts

uscita delle cifre

con

var N, cifra, somma: longint;

inizio

leggiln(N);

somma:= 0;

mentre N > 0 lo fa

inizio

cifra:= N mod 10;

se cifra

somma:= somma + 1;

N:= N div 10;

FINE;

writeln(cifra)

FINE.

#includere

int principale()

{

int N, cifra, somma;

scanf("%d", &N);

somma = 0;

mentre (N > 0)

{

cifra = N% 10;

se (cifra

somma = somma + 1;

N = N/10;

}

printf("%d",cifra);

ritorno0;

}

Effettuare le seguenti operazioni in sequenza.

1. Scrivi cosa produrrà questo programma quando inserisci il numero 456.

2. Fornire un esempio di numero a tre cifre; una volta inserito, il programma produrrà la risposta corretta.

3. Trova tutti gli errori in questo programma (potrebbero essercene uno o più). È noto che ogni errore interessa solo una riga e può essere corretto senza modificare le altre righe. Per ogni errore:

1) annotare la riga in cui è stato commesso l'errore;

2) indicare come correggere l'errore, ad es. fornire la versione corretta della riga.

È sufficiente indicare gli errori e come correggerli per un linguaggio di programmazione. Tieni presente che devi trovare errori in un programma esistente e non scriverne di tuoi, possibilmente utilizzando un algoritmo di soluzione diverso. La correzione dell'errore dovrebbe interessare solo la riga in cui si trova l'errore.

Spiegazione.

La soluzione utilizza una notazione di programma Pascal. È possibile utilizzare il programma in una qualsiasi delle altre quattro lingue.

1. Il programma stamperà il numero 4.

2. Un esempio di numero, quando inserito, il programma dà la risposta corretta: 835.

Nota per il revisore. Il programma non funziona correttamente perché la variabile visualizzata non è corretta e l'importo viene incrementato in modo errato. Di conseguenza, il programma funzionerà correttamente se la cifra più alta del numero (quella più a sinistra) è uguale alla somma delle cifre inferiori a 7.

3. Ci sono due errori nel programma.

Primo errore. Aumento importo errato.

Riga di errore:

somma:= somma + 1;

Correzione corretta:

somma:= somma + cifra;

Secondo errore. Sullo schermo viene visualizzata una risposta errata.

Riga di errore:

writeln(cifra)

Correzione corretta:

writeln(somma)

25. IncaricoDato un array intero di 20 elementi. Gli elementi dell'array possono assumere valori interi compresi tra –10.000 e 10.000 inclusi. Descrivi in ​​linguaggio naturale o in uno dei linguaggi di programmazione un algoritmo che ti permette di trovare e visualizzare il numero di coppie di elementi di un array in cui almeno un numero è divisibile per 3. In questo problema, una coppia significa due array consecutivi elementi. Ad esempio, per una matrice di cinque elementi: 6; 2; 9; –3; 6 – risposta: 4.

I dati di input vengono dichiarati come mostrato di seguito negli esempi per alcuni linguaggi di programmazione e linguaggio naturale. È vietato utilizzare variabili non descritte di seguito, ma è consentito non utilizzare alcune delle variabili descritte.

DI BASE

Pitone

COST N COME INTERO = 20

DIM A (1 TO N) COME INTERO

DIM I COME INTERO,

J COME INTERO,

K COME INTERO

PER I = 1 A N

INGRESSO A(I)

AVANTI I

...

FINE

# è consentito anche

# usane due

# variabili intere j e k

un =

n = 20

per i nell'intervallo(0, n):

a.append(int(input()))

...

Linguaggio algoritmico

Pascal

alg

inizio

intero N = 20

celtab a

int i, j, k

nc per i da 1 a N

ingresso a[i]

kts

...

con

cost

N = 20;

var

a: array di numeri interi;

i, j, k: intero;

inizio

per i:= da 1 a N fai

readln(a[i]);

...

FINE.

Linguaggio naturale

#includere

#definire N 20

int principale() (

int a[N];

int i, j, k;

per (i = 0; i

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

...

restituire 0;

}

Dichiariamo un array A di 20 elementi.

Dichiariamo le variabili intere I, J, K.

In un ciclo da 1 a 20, inseriamo gli elementi dell'array A da 1 a 20.

Come risposta, è necessario fornire un frammento del programma (o una descrizione dell'algoritmo in linguaggio naturale), che dovrebbe trovarsi al posto dei puntini di sospensione. Puoi anche scrivere la soluzione in un altro linguaggio di programmazione (indicare il nome e la versione del linguaggio di programmazione utilizzato, ad esempio Free Pascal 2.6) o sotto forma di diagramma di flusso. In questo caso, è necessario utilizzare gli stessi dati di input e variabili proposti nella condizione (ad esempio, in un campione scritto in linguaggio naturale).

k:= k+1

Tutto

kts

uscita k

Pascal

k:= 0;

per i:= da 1 a N-1 do

se (a[i] mod 3=0) oppure (a mod 3=0) allora

inc(k);

scriviln(k);

k = 0;

per (i = 0; i

se (a[i]%3 == 0 || a%3 == 0)

k++;

printf("%d", k);

Linguaggio naturale

Scriviamo il valore iniziale uguale a 0 nella variabile K. In un ciclo dal primo elemento al penultimo, troviamo il resto della divisione dell'elemento corrente e successivo dell'array per 3. Se il primo o il secondo dell'elemento risultante resto è uguale a 0, aumentiamo la variabile K di uno. Una volta completato il ciclo, stampa il valore della variabile K

26. CessioneDue giocatori, Petya e Vanya, giocano al gioco seguente. Davanti ai giocatori ci sono due mucchi di pietre. I giocatori si alternano, Petya fa la prima mossa. Durante un turno, il giocatore può aggiungere una pietra a una delle pile (a sua scelta) o raddoppiare il numero di pietre nella pila. Ad esempio, supponiamo che ci siano 10 pietre in una pila e 7 pietre in un'altra; Indicheremo tale posizione nel gioco con (10, 7). Quindi con una mossa puoi ottenere una qualsiasi delle quattro posizioni: (11, 7), (20, 7), (10, 8), (10, 14). Per effettuare le mosse, ogni giocatore ha un numero illimitato di pietre.

Il gioco termina quando il numero totale di pietre nelle pile raggiunge almeno 73. Il vincitore è il giocatore che ha effettuato l'ultima mossa, cioè il primo a ricevere una posizione tale che le pile conterranno 73 pietre o più.

Diremo che un giocatore ha una strategia vincente se riesce a vincere con qualsiasi mossa dell'avversario. Descrivere la strategia di un giocatore significa descrivere quale mossa dovrebbe fare in ogni situazione che potrebbe incontrare con giocate diverse da parte dell'avversario. Ad esempio, con le posizioni iniziali (6, 34), (7, 33), (9, 32), Petya ha una strategia vincente. Per vincere gli basta raddoppiare il numero di pietre della seconda pila.

Esercizio 1.Per ciascuna delle posizioni di partenza (6, 33), (8, 32), indicare quale giocatore ha la strategia vincente. In ogni caso, descrivi la strategia vincente; spiegare perché questa strategia porta alla vittoria e indicare il maggior numero di mosse di cui un vincitore potrebbe aver bisogno per vincere con questa strategia.

Compito 2.Per ciascuna delle posizioni di partenza (6, 32), (7, 32), (8, 31), indicare quale giocatore ha la strategia vincente. In ogni caso, descrivi la strategia vincente; spiegare perché questa strategia porta alla vittoria e indicare il maggior numero di mosse di cui un vincitore potrebbe aver bisogno per vincere con questa strategia.

Compito 3.Per la posizione iniziale (7, 31), indicare quale giocatore ha la strategia vincente. Descrivere una strategia vincente; spiegare perché questa strategia porta alla vittoria e indicare il maggior numero di mosse di cui un vincitore potrebbe aver bisogno per vincere con questa strategia. Costruisci un albero di tutti i giochi possibili con la strategia vincente che hai specificato. Immagina l'albero come un quadro o un tavolo.

(7,31)

Totale 38

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

Totale 39

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

Totale 40

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

Totale 41

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

Totale 73

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

Totale 41

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

Totale 74

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

Totale 48

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

Totale80

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

Totale 72

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

Totale 136

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

Totale 39

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

Totale 40

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

Totale 41

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

Totale 73

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

Totale41

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

Totale 74

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

Totale 48

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

Totale 80

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

Totale 72

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

Totale 136

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

Totale 45

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

Totale 76

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

Totale 69

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

Totale 131

Esercizio 1.Nelle posizioni iniziali (6, 33), (8, 32), Vanya ha una strategia vincente. Con la posizione iniziale (6, 33), dopo la prima mossa di Petya, può risultare una delle seguenti quattro posizioni: (7, 33), (12, 33), (6, 34), (6, 66). Ognuna di queste posizioni contiene meno di 73 pietre. Inoltre, da una qualsiasi di queste posizioni Vanya può ottenere una posizione contenente almeno 73 pietre, raddoppiando il numero di pietre nella seconda pila. Per la posizione (8, 32), dopo la prima mossa di Petya, può risultare una delle seguenti quattro posizioni: (9, 32), (16, 32), (8, 33), (8, 64). Ognuna di queste posizioni contiene meno di 73 pietre. Inoltre, da una qualsiasi di queste posizioni Vanya può ottenere una posizione contenente almeno 73 pietre, raddoppiando il numero di pietre nella seconda pila. Quindi, Vanja, ad ogni mossa di Petya

vince con la prima mossa.

Compito 2.Nelle posizioni iniziali (6, 32), (7, 32) e (8, 31), Petya ha una strategia vincente. Con la posizione iniziale (6, 32), deve prima muoversi per ottenere la posizione (6, 33), dalle posizioni iniziali (7, 32) e (8, 31). Dopo la prima mossa, Petya deve ottenere la posizione (8, 32). Le posizioni (6, 33) e (8, 32) sono state prese in considerazione durante l'analisi dell'attività 1. In queste posizioni, la strategia vincente è per il giocatore che andrà per secondo (ora questo è Petya). Questa strategia è stata descritta nell'analisi del compito 1. Pertanto, Petya vince con la sua seconda mossa in qualsiasi gioco di Vanya.

Compito 3.Nella posizione iniziale (7, 31), Vanya ha una strategia vincente. Dopo la prima mossa di Petit, può formarsi una delle quattro posizioni: (8, 31), (7, 32), (14, 31) e (7, 62). Nelle posizioni (14, 31) e (7, 62) Vanya può vincere in una mossa raddoppiando il numero di pietre nella seconda pila. Nell'analizzare l'attività 2 sono state prese in considerazione le posizioni (8, 31) e (7, 32). In queste posizioni, il giocatore che deve effettuare una mossa (ora Vanya) ha una strategia vincente. Questa strategia è descritta nell'analisi del compito 2. Pertanto, a seconda del gioco, Petya Vanya vince alla prima o alla seconda mossa.

27. CessioneIn un laboratorio di fisica viene condotto un esperimento a lungo termine per studiare il campo gravitazionale della Terra. Ogni minuto, attraverso il canale di comunicazione, viene trasmesso al laboratorio un numero intero positivo: la lettura corrente del dispositivo Sigma 2015. Il numero di numeri trasmessi nella serie è noto e non supera 10.000. Tutti i numeri non superano 1000. Il tempo durante il quale avviene la trasmissione può essere trascurato.

È necessario calcolare il "valore beta" di una serie di letture dello strumento - il prodotto minimo pari di due letture, tra i momenti di trasmissione di cui sono trascorsi almeno 6 minuti. Se non è possibile ottenere tale prodotto la risposta è considerata pari a –1.

Ti vengono offerti due compiti relativi a questo compito: compito A e compito B. Puoi risolvere entrambi i compiti o uno di essi a tua scelta. Il voto finale è dato come il massimo dei voti per i compiti A e B. Se la soluzione di uno dei compiti non viene presentata, il voto per questo compito viene considerato pari a 0 punti. L'attività B è una versione più complicata dell'attività A; contiene requisiti aggiuntivi per il programma.

A. Scrivere un programma in qualsiasi linguaggio di programmazione per risolvere il problema, in cui i dati di input verranno memorizzati in un array, dopodiché verranno controllate tutte le possibili coppie di elementi. Prima del programma, indicare la versione del linguaggio di programmazione.

ASSICURARSI di indicare che il programma è una soluzione al COMPITO A.

Il punteggio massimo per il completamento dell'attività A è di 2 punti.

B. Scrivere un programma per risolvere il problema dato che sia efficiente sia in termini di tempo che di memoria (o almeno una di queste caratteristiche).

Un programma è considerato efficiente in termini di tempo se il tempo di funzionamento

programma è proporzionale al numero di letture ricevute dal dispositivo N, cioè Quando N aumenta di un fattore k, il tempo di esecuzione del programma non dovrebbe aumentare di più di k volte.

Un programma è considerato efficiente in termini di memoria se la dimensione della memoria utilizzata nel programma per archiviare i dati non dipende dal numero N e non supera 1 kilobyte.

Prima del programma indicare la versione del linguaggio di programmazione e descrivere brevemente l'algoritmo utilizzato.

ASSICURARSI di indicare che il programma è una soluzione al COMPITO B.

Il punteggio massimo per un programma corretto ed efficace nel tempo e nella memoria è di 4 punti.

Il punteggio massimo per un programma corretto che sia efficiente in termini di tempo ma inefficace in termini di memoria è 3 punti. PROMEMORIA! Non dimenticare di indicare a quale attività si riferisce ciascuno dei programmi inviati.

I dati di input sono presentati come segue. La prima riga specifica il numero N – il numero totale di letture dello strumento. È garantito che N > 6. Ciascuna delle N righe successive contiene un numero intero positivo: la lettura successiva del dispositivo.

Dati di input di esempio:

11

12

45

5

3

17

23

21

20

19

18

17

Il programma deve emettere un numero: il prodotto descritto nella condizione o -1 se non è possibile ottenere tale prodotto.

Output di esempio per l'input di esempio sopra:

54

Spiegazione.

Compito B (la soluzione per il compito A è riportata di seguito, vedere programma 4). Affinché il prodotto sia pari, almeno un fattore deve essere pari, quindi, quando si cercano prodotti adatti, le letture pari del dispositivo possono essere considerate in coppia con tutte le altre e quelle dispari - solo con quelle pari.

Per ogni lettura con il numero k, a partire da k = 7, consideriamo tutte le coppie ammissibili nelle condizioni del problema, in cui questa lettura è stata ottenuta per seconda. Il prodotto minimo di tutte queste coppie sarà ottenuto se al primo della coppia viene presa la lettura minima idonea tra tutte quelle ricevute dall'inizio della ricezione fino alla lettura con il numero k - 6. Se la lettura successiva è pari, il minimo tra le i precedenti possono essere qualsiasi, se dispari, solo pari.

Per ottenere una soluzione efficace in termini di tempo, quando si immettono i dati, è necessario ricordare le letture minime assolute e minime pari in ogni momento, moltiplicare ciascuna lettura appena ottenuta per il minimo corrispondente che esisteva 6 elementi prima e selezionare il minimo di tutti questi prodotti.

Poiché ogni lettura minima corrente viene utilizzata dopo l'inserimento di altri 6 elementi e non è più necessaria, è sufficiente memorizzare solo gli ultimi 6 minimi. Per fare ciò è possibile utilizzare un array di 6 elementi e riempirlo ciclicamente man mano che vengono immessi i dati. La dimensione di questo array non dipende dal numero totale di letture immesse, quindi questa soluzione sarà efficiente non solo in termini di tempo, ma anche di memoria. Per memorizzare i minimi assoluti e pari, è necessario utilizzare due di questi array. Di seguito è riportato un esempio di tale programma scritto in un linguaggio algoritmico.

Esempio 1. Un esempio di programma corretto in un linguaggio algoritmico. Il programma è efficiente sia in termini di tempo che di memoria.

alg

inizio

intero s = 6 | distanza richiesta tra le letture

intero amax = 1001 | maggiore della lettura massima possibile

intero N

ingresso n

int a | successiva lettura dello strumento

celtab mini | minimi correnti degli ultimi elementi s

minichet celtab | anche i minimi degli ultimi elementi

intero io

| inserire le prime letture, fissare i minimi

tutta la mamma; ma:= amax | lettura minima

si precipita intatto; corre:= amax | minimo anche la lettura

nc per i da 1 a s

ingresso a

ma:= imin(ma, a)

mini := mamma

minichet := fretta

kts

int mp = amax*amax | valore minimo del prodotto

intero n

nc per i da s+1 a N

ingresso a

se mod(a,2)=0

allora p:= a * mini

altrimenti se ha fretta

allora p:= a * minieven

altrimenti p:= amax*amax;

Tutto

Tutto

mp:= imin(mp, n)

ma:= imin(ma, a)

se mod(a,2) = 0 allora rushes:= imin(rushes,a) all

mini := mamma

minichet := fretta

kts

se mp = amax*amax allora mp:=-1 all

Uscita MP

con

Sono possibili altre implementazioni. Ad esempio, invece di riempire ciclicamente un array, puoi spostare i suoi elementi ogni volta. Nell'esempio seguente, non sono i minimi ad essere memorizzati e spostati, ma i valori originali. Ciò richiede un po' meno memoria (un array è sufficiente invece di due), ma la soluzione con turni è meno efficiente in termini di tempo rispetto al riempimento ciclico. Il tempo di funzionamento resta però proporzionale a N, per cui anche per questa soluzione il punteggio massimo è pari a 4 punti.

Programma 2. Un esempio di programma corretto in Pascal.

Il programma utilizza i turni, ma è efficiente in termini di tempo e memoria

var

N: intero;

a: array di numeri interi; (memorizzazione delle letture dello strumento)

a_:intero; (entrando nella lettura successiva)

p:intero;

i, j: intero;

inizio

leggiln(N);

(Inserimento dei primi numeri)

for i:=1 to s esegui readln(a[i]);

(Inserisci i valori rimanenti, cerca il prodotto minimo)

ma:= amax; io:= amax;

mp:=amax*amax;

per i:= s + 1 fino a N iniziano

leggiln(a_);

se un

se (a mod 2 = 0) e (a

se a_ mod 2 = 0 allora p:= a_ * ma

altrimenti se io

altrimenti p:= amax* amax;

se (pag

(sposta gli elementi dell'array ausiliario a sinistra)

per j:= da 1 a s - 1 do

a[j] := a;

a[s] := a_

FINE;

se mp = amax*amax allora mp:=-1;

scrivi(mp)

FINE.

Se, invece di un piccolo array di dimensione fissa (circolare o con turni), vengono memorizzati tutti i dati originali (o tutti i minimi correnti), il programma rimane efficiente in termini di tempo, ma diventa inefficiente in termini di memoria, poiché la memoria richiesta cresce proporzionalmente a N. Di seguito è riportato un esempio di tale programma nel linguaggio Pascal. Programmi simili (e sostanzialmente simili) hanno un punteggio non superiore a 3 punti.

Programma 3. Un esempio di programma corretto in Pascal. Il programma è efficiente in termini di tempo, ma la memoria è inefficiente

cost s = 6; (distanza richiesta tra le letture)

amax = 1001; (più della lettura massima possibile)

var

N, p, i: intero;

ma:intero; (numero minimo senza l'ultima s)

io:intero; (minimo numero pari senza l'ultima s)

mp:intero; (valore minimo del prodotto)

inizio

leggiln(N);

(Inserimento di tutte le letture dello strumento)

for i:=1 to N esegui readln(a[i]);

ma:= amax;

io:= amax;

mp:= amax*amax;

per i:= s + 1 a N do

inizio

se un

se (a mod 2 = 0) e (a

io:= un;

se a[i] mod 2 = 0 allora p:= a[i] * ma

altrimenti se io

altrimenti p:= amax * amax;

se (pag

FINE;

se mp = amax*amax allora mp:= -1;

scrivi(mp)

FINE.

È anche possibile una soluzione di ricerca esaustiva, in cui si trovano i prodotti di tutte le coppie possibili e da essi viene selezionata quella minima. Di seguito (vedi programma 4) è riportato un esempio di tale soluzione. Questa (e simili) soluzioni non sono né efficienti in termini di tempo né di memoria. È una soluzione al compito A, ma non una soluzione al compito B. Il punteggio per tale soluzione è 2 punti.

Programma 4. Un esempio di programma corretto in Pascal. Il programma non è efficiente né in termini di tempo né di memoria

cost s = 6; (distanza richiesta tra le letture)

var

N: intero;

a: array di numeri interi; (tutte le letture dello strumento)

mp:intero; (valore minimo del prodotto)

i, j: intero;

inizio

leggiln(N);

(Inserimento dei valori del dispositivo)

per i:=1 a N fai

readln(a[i]);

mp:= 1000 * 1000 + 1;

per i:= da 1 a N-s iniziano

per j:= da i+s a N iniziano

se (a[i]*a[j] mod 2 = 0) e (a[i]*a[j]

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

FINE;

FINE;

se mp = 1000 * 1000 + 1 allora mp:= -1;

scrivi(mp)

L'Esame di Stato Unificato in Informatica consiste di 27 compiti. Ogni compito è dedicato a uno degli argomenti studiati come parte del curriculum scolastico. L'informatica è una materia specialistica, quindi la frequentano solo gli studenti che ne avranno bisogno in futuro. Qui puoi imparare come risolvere i compiti dell'Esame di Stato Unificato in informatica, nonché studiare esempi e soluzioni basati su compiti dettagliati.

Tutte le attività USE tutte le attività (107) Attività USE 1 (19) Attività USE 3 (2) Attività USE 4 (11) Attività USE 5 (10) Attività USE 6 (7) Attività USE 7 (3) Attività USE 9 (5) Compito di esame a stato unificato 10 (7) Compito di esame a stato unificato 11 (1) Compito di esame a stato unificato 12 (3) Compito di esame a stato unificato 13 (7) Compito di esame a stato unificato 16 (19) Compito di esame a stato unificato 17 (4) Compito di esame a stato unificato Esame senza numero (9)

L'esecutore Kvadrator ha due comandi: aggiungi 3 e fai quadrato

L'esecutore Kvadrator ha due squadre, a cui vengono assegnati i numeri: 1 - aggiungi 3; 2 - squadrarlo. Il primo aumenta di 3 il numero sullo schermo, il secondo lo eleva alla seconda potenza. L'esecutore lavora solo con i numeri naturali. Scrivi un algoritmo per ottenere il numero B dal numero A, contenente non più di K comandi. Nella tua risposta, scrivi solo i numeri dei comandi. Se esiste più di un algoritmo di questo tipo, annotane uno qualsiasi.

Vasya compone parole contenenti solo lettere

Vasya compone parole di N lettere in cui compaiono solo le lettere A, B, C e la lettera A appare esattamente 1 volta. Ciascuna delle altre lettere valide può comparire in una parola un numero qualsiasi di volte o non comparire affatto. Una parola è una qualsiasi sequenza valida di lettere, non necessariamente significativa. Quante parole ci sono che Vasya può scrivere?

Igor compila una tabella di parole in codice per l'invio di messaggi

Igor compila una tabella di parole in codice per l'invio dei messaggi; ogni messaggio ha la propria parola in codice. Come parole in codice, Igor usa parole di N lettere, che contengono solo le lettere A, B, C e la lettera A appare esattamente 1 volta. Ciascuna delle altre lettere valide può apparire nella parola in codice un numero qualsiasi di volte o non comparire affatto. Quante parole in codice diverse può usare Igor?

Il compito è incluso nell'Esame di Stato unificato in informatica per il grado 11 al numero 10.

Algoritmo per il calcolo del valore della funzione F(n)

L'algoritmo per calcolare il valore della funzione F(n), dove n è un numero naturale, è dato dalle seguenti relazioni. Qual è il valore della funzione F(K)? Scrivi solo un numero naturale nella tua risposta.

Il compito è incluso nell'Esame di Stato unificato di informatica per il grado 11 al numero 11.

Quanti secondi impiega il modem per trasmettere i messaggi?

Quanti secondi impiegherà un modem che trasmette messaggi a una velocità di N bit/s per trasmettere un'immagine bitmap a colori di dimensione AxB pixel, a condizione che il colore di ciascun pixel sia codificato in K bit? (Inserisci solo il numero nel modulo.)

Il compito è incluso nell'Esame di Stato unificato in informatica per il grado 11 al numero 9.

Il decifratore deve recuperare il frammento del messaggio danneggiato

Il decryptor deve ripristinare il frammento del messaggio danneggiato, composto da 4 caratteri. Esistono informazioni attendibili secondo cui non sono state utilizzate più di cinque lettere (A, B, C, D, E), con uno dei simboli al terzo posto... Una delle lettere al quarto posto... Una delle lettere in primo posto ... Al secondo - ... Sono apparse ulteriori informazioni secondo cui è possibile una delle quattro opzioni. Quale?

Il compito è incluso nell'Esame di Stato unificato in informatica per il grado 11 al numero 6.

La stazione meteorologica monitora l'umidità dell'aria

La stazione meteorologica monitora l'umidità dell'aria. Il risultato di una misurazione è un numero intero compreso tra 0 e 100%, scritto utilizzando il minor numero possibile di bit. La stazione ha effettuato N misurazioni. Determinare il volume di informazioni dei risultati dell'osservazione.

Che forma assumerà la formula dopo che la cella sarà stata copiata?

La cella contiene una formula. Che forma assumerà la formula dopo che la cella X sarà stata copiata nella cella Y? Nota: il segno $ viene utilizzato per indicare l'indirizzamento assoluto.

Il compito è incluso nell'Esame di Stato unificato di informatica per il grado 11 al numero 7.

Mentre ci si trova nella directory principale di un'unità appena formattata

Mentre si trova nella directory principale del disco appena formattato, lo studente ha creato le directory K. Quindi, in ciascuna delle directory create, ha creato altre N directory. Quante directory ci sono sul disco, inclusa la directory root?

Il compito è compreso nell'Esame di Stato Unificato di Informatica per l'11° grado.

Sulla scena del crimine sono stati rinvenuti quattro pezzi di carta

Sulla scena del crimine sono stati rinvenuti quattro pezzi di carta. L'indagine ha stabilito che contenevano frammenti dello stesso indirizzo IP. Gli scienziati forensi hanno etichettato questi frammenti con le lettere A, B, C e D. Recupera l'indirizzo IP. Nella tua risposta, fornisci la sequenza di lettere che rappresentano i frammenti nell'ordine corrispondente all'indirizzo IP.

Petya ha annotato su un pezzo di carta l'indirizzo IP del server della scuola

Petya annotò l'indirizzo IP del server della scuola su un pezzo di carta e se lo mise nella tasca della giacca. La madre di Petya ha accidentalmente lavato la giacca insieme al biglietto. Dopo essersi lavato, Petya ha trovato in tasca quattro pezzi di carta con frammenti di un indirizzo IP. Questi frammenti sono contrassegnati dalle lettere A, B, C e D. Recupera l'indirizzo IP. Nella tua risposta, fornisci la sequenza di lettere che rappresentano i frammenti nell'ordine corrispondente all'indirizzo IP.

Il compito è incluso nell'Esame di Stato unificato di informatica per il grado 11 al numero 12.

Al momento della registrazione nel sistema informatico, a ciascun utente viene assegnata una password.

Al momento della registrazione in un sistema informatico, a ciascun utente viene assegnata una password composta da 15 caratteri e contenente numeri e lettere maiuscole. Pertanto, vengono utilizzati K simboli diversi. Ciascuna di queste password in un sistema informatico è scritta con il minimo possibile e lo stesso numero intero di byte (viene utilizzata la codifica carattere per carattere e tutti i caratteri sono codificati con lo stesso e minimo numero possibile di bit). Determina la quantità di memoria allocata da questo sistema per la registrazione di N password.

Il compito è incluso nell'Esame di Stato unificato in informatica per il grado 11 al numero 13.

In alcuni paesi le targhe automobilistiche sono composte da lettere maiuscole.

In alcuni paesi, la targa di un'auto lunga K caratteri è composta da lettere maiuscole (M vengono utilizzate lettere diverse) e da eventuali cifre decimali. Lettere e numeri possono apparire in qualsiasi ordine. Ciascuno di questi numeri in un programma per computer viene scritto con il minimo possibile e lo stesso numero intero di byte (in questo caso, viene utilizzata la codifica carattere per carattere e tutti i caratteri sono codificati con lo stesso e minimo numero possibile di bit). Determina la quantità di memoria allocata da questo programma per la registrazione di N numeri.

Il compito è incluso nell'Esame di Stato unificato in informatica per il grado 11 al numero 13.



Pubblicazioni correlate