Co potřebujete vědět k dokončení úkolu. Podrobné řešení úloh OGE v informatice Tabulka dat uvádí údaje o počtu

Zpracování dat:

  • Algoritmus, vlastnosti algoritmů, způsoby zápisu algoritmů. Vývojové diagramy. Úvod do programování.
  • Algoritmické návrhy.

To jsou témata, pro která jsou vytvořeny testové úlohy č. 10 hlavní státní zkoušky (OGE) z informatiky.

10 (B) (1. část, pokročilá úroveň - úkol spočívá v tom, že zkoušený samostatně formuluje a zaznamenává odpověď ve formě sekvence symbolů, doba dokončení - 6 minut, maximální bodové hodnocení za splnění úkolu - 1). Požadavky na úroveň výcviku, jehož zvládnutí se ověřuje při zkoušce při zodpovězení tohoto úkolu: zhodnotit numerické parametry informačních objektů a procesů, schopnost provádět kruhový algoritmus zpracování pole čísel v jednom z programovacích jazyků.

Co potřebujete vědět k dokončení úkolu:

  • pole- jedná se o množinu (pojmenovanou kolekci) prvků stejného typu, uspořádaných podle indexů, které určují pozici prvku v poli;
  • Před použitím v programu je nutné pole popsat, tzn. musí být uveden název, počet prvků pole a jejich typ;

var<имя_массива>:array[<мин_знач_индекса>. . <макс_знач_индекса> ] z<тип_элементов>;

Například: záznam
var A: pole celého čísla;
znamená, že je dáno pole s názvem A, které se skládá z 10 celočíselných prvků.

  • Pole můžete vyplnit zadáním hodnoty každého prvku z klávesnice nebo přiřazením některých hodnot prvkům:
  • Chcete-li odkazovat na prvek pole, použijte hranaté závorky, zápis A[i] označuje prvek pole A s číslem (indexem) i;
  • matice (dvourozměrné pole) je obdélníková tabulka prvků stejného typu;
  • pokud je matice pojmenována A, pak inverzní A označuje prvek umístěný na průsečíku řádku i a sloupce k.

Příklad řešení problému:
V tabulce Dat jsou uloženy údaje o počtu žáků ve třídách (Dat - počet žáků na prvním stupni, Dat - na druhém atd.). Určete, jaké číslo bude vytištěno jako výsledek následujícího programu. Text programu je poskytován ve třech programovacích jazycích.

Algoritmický jazyk ZÁKLADNÍ Pascal

alg
začátek
celtab Dat
celé číslo k, m
Datum := 20; Datum:= 25
Datum := 19; Datum:= 25
Datum := 26; Datum:= 22
Datum := 24; Datum:= 28
Datum := 26; Datum:= 21
Datum:= 27
m:= 0
nc pro k od 1 do 11
pokud Dat[k] > 22 pak
m:= m + 1
Všechno
kts
výstup m
ošidit

DIM DAT(11) JAKO CELÉ ČÍSLO
DIM k,m JAKO CELÉ ČÍSLO
Dat(1) = 20: Dat(2) = 25
Dat(3) = 19: Dat(4) = 25
Dat(5) = 26: Dat(6) = 22
Dat(7) = 24: Dat(8) = 28
Dat(9) = 26: Dat(10) = 21
Datum(11) = 27
m = 0
PRO k = 1 AŽ 11
POKUD Dat(k) > 22 POTOM
m = m + 1
KONEC POKUD
DALŠÍ k
TISKNOUT m

Var k, m: celé číslo; Dat: pole celých čísel; Počáteční datum := 20; Datum := 25; Datum := 19; Datum := 25; Datum := 26; Datum := 22; Datum := 24; Datum := 28; Datum := 26; Datum := 21; Dat > 22 pak začátek m:= m + 1 konec; writeln(m) Konec.

Řešení (1 cesta):

  1. Podívejme se na program krok za krokem. Nejprve jsou deklarovány proměnné, které budou použity (proměnné k a m), a také pole Dat obsahující 11 prvků (prvky jsou číslovány od 1 do 11).

POZOR: V poli Dat, které je popsáno v Základní jazyk bude 12 prvků, protože číslování nezačíná od prvního prvku, ale od nuly.

  1. Následuje vyplnění pole. Například prvku pole s indexem 1 je přiřazena hodnota 20, prvku s indexem 2 je přiřazena hodnota 25 atd. Výsledné pole může být tedy reprezentováno následovně:

Array Dat

Index

Význam

  1. proměnné m je přiřazena hodnota 0. Poté začíná smyčka s parametrem k, přičemž k se mění z 1 na 11 v krocích po 1.

V těle smyčky se kontroluje podmínka:

  1. Hodnota prvku pole na indexu k se porovná s číslem 22. Pokud je prvek pole větší než 22, pak se proměnná m zvýší o 1. Jinak se nic nestane.
  2. Na samém konci programu se na obrazovce zobrazí hodnota proměnné m.
  3. Pojďme určit, co se stane po spuštění programu. Hodnota proměnné m se mění ve smyčce. Před smyčkou je jeho hodnota nulová. Dále program iteruje všechny prvky pole a porovná je s číslem 22. A pokud je prvek pole větší než 22, pak se proměnná m zvýší o 1. Musíme tedy spočítat všechny prvky pole. pole, které jsou větší než 22 - jejich počet se bude rovnat hodnotě proměnné m. Těchto prvků je 7 – jedná se o prvky s indexy 2, 4, 5, 7, 8, 9 a 11.

POZOR: Prvek číslo 6, který se rovná 22. Ale jelikož... Protože je naše srovnání striktní (znak „>“), nebereme ho v úvahu.

Odpověď: 7

Řešení (2 způsoby ruční rolování):

V duchu si představte výsledné pole:
Array Dat

Index

Význam

Federální institut pedagogických měření / Demo verze, specifikace, kodifikátory OGE 2015 - 2019 // Počítačová věda a ICT - (http://fipi.ru)

  • Dracheva E. R., Grishina I. A. Preparing for the GIA in computer science / E. R. Dracheva, I. A. Grishina // Part B - (http://giainformatika.ru/)
  • k dat[k](pro BASIC Dat(k)) Kontrola stavu Dat[k] > 22(pro BASIC Dat(k) > 22) m
    0
    1 20 Ne
    2 25 Ano 1
    3 19 Ne
    4 25 Ano 2
    5 26 Ano 3
    6 22 Ne
    7 24 Ano 4

    Tabulka Dat uvádí údaje o počtu odevzdaných hlasů pro 10 interpretů lidových písní (Dat - počet odevzdaných hlasů pro prvního interpreta; Dat - pro druhého atd.). Určete, jaké číslo bude vytištěno jako výsledek následujícího programu. Text programu je poskytován ve třech programovacích jazycích. Algoritmický jazyk BASIC Pascal alg nach celtab Dat celé číslo k, m Dat := 16 Dat := 20 Dat := 20 Dat := 41 Dat := 14 Dat := 21 Dat := 28 Dat := 12 Dat := 1 = 35 m:= 0 nc pro k od 1 do 10 if Dat[k]gt;m pak m:= Dat[k] vše kc výstup m con DIM Dat(10) AS INTEGER DIM k,m AS INTEGER Dat(1 ) = 16: Dat(2) = 20 Dat(3) = 20: Dat(4) = 41 Dat(5) = 14: Dat(6) = 21 Dat(7) = 28: Dat(8) = 12 Dat (9) = 15:Dat(10) = 35 m = 0 PRO k = 1 AŽ 10 POKUD Dat(k)gt;m THEN m = Dat(k) ENDIF NEXT k PRINT m Var k, m: celé číslo; Dat: pole celých čísel; Datum zahájení := 16; Datum := 20; Datum := 20; Datum := 41; Datum := 14; Datum := 21; Datum := 28; Datum := 12; Datum := 15; Datum := 35; m:= 0; pro k:= 1 až 10 do if Dat[k]gt;m then begin m:= Dat[k] end; writeln(m); Konec.

    Podobné otázky

    • Doplňte kolonky. Pomozte mi, prosím:)
    • Hrdina, který osvobodil Promethea
    • Sestav problém, vyřeš problém a zapiš řešení
    • Kluci, pomoc: (lg(x+√3)+lg(x-√3)=0
    • Prosím, pomozte mi rozhodnout se. Vypočítejte obsah trojúhelníku, pokud je 9krát menší než obsah čtverce o délce strany 12 cm
    • Vyřešte rovnici (8 5/27 - x) - 2 25/27 = 1 25/27
    • Jak se jmenovali rolníci, kteří byli prodáni?
    • Dívka začala krmit kotě. Přinesla ovesnou kaši, on se odvrátil od hrnku. Když dostal ředkvičky, odvrátil se od mísy. Přinesl jsem kousek slaniny, kotě říká, že to nestačí. Najděte v textu slova s ​​pravopisem „nepřízvučná samohláska...

    Představuji řešení úlohy 10 OGE-2016 v informatice z projektu demoverze. Ve srovnání s demem z roku 2015 se úkol 10 nezměnil. Jedná se o úkol o schopnosti provádět cyklický algoritmus pro zpracování pole čísel zapsaných v algoritmickém jazyce (Algoritmus, vlastnosti algoritmů, způsoby zápisu algoritmů. Vývojové diagramy. Úvod do programování. Algoritmické konstrukce). Jedná se o úkol se zvýšenou úrovní složitosti, odpověď na něj je celé číslo, které musí být zapsáno do pole odpovědi.

    Snímek obrazovky úkolu 10.

    Cvičení:

    Tabulka Dat uvádí údaje o počtu odevzdaných hlasů pro 10 interpretů lidových písní (Dat - počet odevzdaných hlasů pro prvního interpreta; Dat - pro druhého atd.). Určete, jaké číslo bude vytištěno jako výsledek následujícího programu. Text programu je poskytován ve třech programovacích jazycích.

    Příklad v Pascalu

    Var k, m: celé číslo;
    Dat: pole celých čísel;
    Začít
    Datum := 16; Datum := 20;
    Datum := 20; Datum := 41;
    Datum := 14; Datum := 21;
    Datum := 28; Datum := 12;
    Datum := 15; Datum := 35;
    m:= 0;
    pro k:= 1 až 10 do
    pokud Dat[k]>m pak
    začít
    m:=Dat[k]
    konec;
    writeln(m);
    Konec.

    Tento program vytvoří pole 10 čísel. Ve smyčce od 1 do 10 včetně se porovnává hodnota prvku pole s hodnotou proměnné m. Pokud se ukáže, že hodnota prvku pole je striktně větší než hodnota proměnné m, pak je proměnné m přiřazena hodnota prvku pole (zpočátku, před smyčkou, byla hodnota proměnné m rovna 0).

    Abychom to parafrázovali, dostaneme následující. U každého interpreta lidových písní od 1 do 10 včetně se porovnává počet hlasů s hodnotou m. Pokud je počet hlasů větší než m, pak je proměnné m přiřazena hodnota rovnající se počtu hlasů. V důsledku provedení cyklu získáme číslo m, které ukazuje největší počet hlasů udělených jednomu z účastníků, tzn. m=41.

    Pole v našem chápání je obyčejná tabulka. Hodnoty v tabulce musí být stejného typu: celá čísla nebo reálná čísla nebo řetězce nebo booleovské hodnoty. Problémy s celočíselnými tabulkami jsou zpravidla probírány ve školním kurzu. Prvky tabulky jsou umístěny poblíž paměti a lze k nim přistupovat prostřednictvím jejich sériového čísla (indexu) v tabulce.

    A
    1 2 3 4 5
    55 36 134 75 100

    Nechť A je tabulka pěti prvků. Potom A = 55, A = 36, A = 134, A = 75, A = 100

    Chcete-li pracovat s tabulkami v Idolu, musíte alokovat paměť pro její uložení:

    Alg nach celtab A

    Tabulku lze vyplnit ručně:

    A := 55 A := 36 A := 134 A := 75 A := 100

    Pokud existuje mnoho prvků, je lepší použít smyčku ( smyčková proměnná i musí být deklarováno na začátku programu):

    nc pro i od 1 do 5 vstup A[i] cc

    Pokud potřebujete změnit hodnoty všech prvků tabulky (například je zvýšit 2krát), je opět lepší použít smyčku:

    NC pro i od 1 do 5 A[i] := A[i]*2 kc

    Provádíme také výstup všech hodnot prvků tabulky ve smyčce:

    nc pro i od 1 do 5 pinů A[i],ns cc

    Zjištění hodnoty maximálního prvku a jeho čísla v tabulce

    Poznámka: úkol najít minimální prvek se liší pouze ve znaku porovnání

    Úkol je rozdělen do několika etap:

    1. Pro počáteční maximum vezměte úplně první prvek v tabulce a zapamatujte si jeho číslo

    Imax:= 1

    2. Zkontrolujeme všechny ostatní prvky (od 2. do posledního): pokud je aktuální kontrolovaný prvek větší než maximum, pak si pamatujeme číslo aktuálního prvku v imax

    Nts pro i od 2 do 5 pokud A[i] > A pak imax:= i všechny kts

    3. Pomocí nalezeného čísla prvku maxima zobrazíme samotné maximum:

    Pin A

    Zde je plné znění programu:

    Alg SearchMax start celtab A int imax, i nc pro i od 1 do 5 vstup A[i] kts imax:= 1 nts pro i od 2 do 5 pokud A[i] > A pak imax:= i všechny kts výstup A kts

    Zjištění sumy a průměrná hodnota všechny prvky tabulky

    Nejprve musíte nastavit počáteční hodnotu částky:

    Poté ve smyčce přidáme hodnoty prvků k součtu:

    nc pro i od 1 do 5 s:= s + A[i] cc

    Zjistíme průměrnou hodnotu všech prvků tabulky jako poměr součtu k počtu prvků:

    Sr:= s/5

    Zde je plné znění programu:

    Alg SumAvg začátek celtab Celá i, s věcmi sr | průměrné číslo bude reálné nc pro i od 1 do 5 vstup A[i] kc s:= 0 nc pro i od 1 do 5 s:= s + A[i] kc sr:= s/5 výstup “Součet všechny prvky: ",s,ns výstup "Průměrná hodnota všech prvků:",sr kts

    Příklady řešení problémů

    Příklad 1

    Tabulka Dat uvádí údaje o počtu odevzdaných hlasů pro 10 interpretů lidových písní (Dat – počet odevzdaných hlasů pro prvního interpreta; Dat – pro druhého atd.). Určete, jaké číslo bude vytištěno jako výsledek následujícího programu.

    Alg start celtab Dat int k, m Dat := 16 Dat := 20 Dat := 20 Dat := 41 Dat := 14 Dat := 21 Dat := 28 Dat := 12 Dat := 15 Dat := 35 m: = 0 nc pro k od 1 do 10 pokud Dat[k]>m pak m:= Dat[k] všechny kc výstup m konec

    Na začátku programu je do buněk tabulky zaznamenán počet odevzdaných hlasů pro účinkující.

    Zvažte následující fragment programu:

    M:= 0 nc pro k od 1 do 10, pokud Dat[k]>m, pak m:= Dat[k] všechny kc

    Je vidět, že ve smyčce je každý prvek porovnáván s proměnnou m, která byla před smyčkou rovna nule. Pokud je aktuální kontrolovaný prvek větší než m, pak se do proměnné m zapíše hodnota aktuálního prvku. Po provedení cyklu bude proměnná m ukládat hodnotu největšího prvku.

    Jinými slovy, program najde maximální hodnotu mezi všemi buňkami tabulky. Hodnota tohoto prvku je Dat = 41

    Odpovědět: 41

    Příklad 2:

    Alg start celtab Dat int k, m Dat := 7; Dat := 9 Dat := 10;Dat := 5 Dat := 6; Dat := 7 Dat := 9; Dat := 8 Dat := 6; Dat:= 9 m:= 0 nc pro k od 1 do 10, pokud Dat[k]< 7 то m:= m + 1 все кц вывод m кон

    Na začátku programu se vyplní tabulka obsahující počet splněných úkolů.
    Poté je zavedena proměnná m s nulovou hodnotou.

    Ve smyčce Na od 1 do 10 se kontroluje: je-li očíslován počet splněných úkolů pro žáka Na je méně než 7, pak je takových studentů o jednoho více (m:= m +1).

    Jinými slovy, program počítá počet studentů, kteří dokončili méně než 7 úkolů.

    Máme tři takové studenty: Dat, Dat, Dat

    Odpovědět: 3

    Příklad 3:

    V tabulce Dat jsou uloženy údaje o počtu splněných úkolů studenty (úlohy Dat splnil první žák, Dat druhý atd.). Určete, jaké číslo bude vytištěno jako výsledek následujícího programu.

    Alg start celtab Dat int k, m Dat := 20; Dat := 25 Dat := 19; Dat := 25 Dat := 26; Dat := 22 Dat := 24; Dat := 28 Dat := 26; Dat := 21 Dat := 27 m:= 0 nc pro k od 1 do 11 pokud k > 9 pak m:= m + Dat[k] vše kc výstup m konec

    Uvnitř smyčky pro čísla prvků Na od 1 do 11 (pro všechny studenty) se kontroluje: pokud je číslo prvku (studenta) větší než 9, pak do proměnné m Sčítá se počet dokončených studentských úkolů.

    Je vidět, že podmínku splní pouze student číslo 10 (Dat) a student číslo 11 (Dat). V souladu s tím proměnná m uloží součet počtů splněných úkolů těchto žáků, 0+21+27=48

    Odpovědět: 48

    Příklad 4:

    V tabulce Dat jsou uloženy údaje o počtu splněných úkolů studenty (úlohy Dat splnil první žák, Dat druhý atd.). Určete, jaké číslo bude vytištěno jako výsledek následujícího programu.

    Alg start celtab Dat int k, m, n Dat := 7; Dat := 9 Dat := 10; Dat := 5 Dat := 6; Dat := 7 Dat := 5; Dat := 8 Dat := 6; Dat := 9 m:= 10; n:= 0 nc pro k od 1 do 10, pokud Dat[k]<= m то m:= Dat[k] n:= k все кц вывод n кон

    Hodnoty prvků nepřesahují 10.

    Čára nts pro k od 1 do 10 znamená, že jsou iterovány všechny prvky pole (máme jich 10).

    Stav Li dat[k]<= m bude true, když je hodnota aktuálního prvku menší nebo rovna m Pokud je tato podmínka pravdivá, pak do proměnné m zapíše se hodnota aktuálního prvku a proměnná n- jeho číslo.

    Smyslem problému je najít číslo minimální prvek! (program vypíše hodnotu na konci n).

    Protože podmínka není přísná dat[k]<= m, то будет найден nejnovější minimální prvek a jeho počet (Dat).

    Pokud by byla podmínka přísná, pak první ze stejných minim (Dat)