Условия всех задач из категории B14

Проверяемые элементы содержания: умение анализировать программу, использующую процедуры и функции
 
 
 
 

Историческая справка и теоретические сведения

Структурное программирование - методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.

В соответствии с данной методологией

  1. Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:

  • последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;

  • ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;

  • цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).

В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается.

  1. Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы.

  2. Разработка программы ведётся пошагово, методом «сверху вниз».

 

Компьютерная программа – конечная последовательность инструкций, предназначенная для исполнения устройством выполнения персонального компьютера. Назначение любой программы – реализация определенного алгоритма.

Программная процедура – независимая часть общей программы, выполняющая определенные действия, которую после однократной декларации можно многократно вызывать по присвоенному ей имени.

Пример объявления процедуры для языка программирования Pascal:

procedure getSum (pa : integer; ps : string);

данная процедура принимает на вход два параметра:

  • целое число;

  • строковую величину.

Программная функция – независимая часть общей программы, выполняющая определенные действия, способная возвращать конкретное значение, которую после однократной декларации можно многократно вызывать по присвоенному ей имени.

Пример объявления функции для языка программирования Pascal:

function setName(px : real, pb : boolean) : char;

данная функция принимает на вход два параметра:

  • вещественное число;

  • логическое значение.

и в качестве ответа возвращает символьное значение.

 

Множество - структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков объектов, которые можно рассматривать как единое целое. Каждый объект в множестве называется элементом множества.

Английский алфавит - алфавит, основанный на латинском алфавите, и состоящий из 26 букв.

5 букв обозначают гласные звуки и 21 буква — согласные звуки.

ГласныеAEIOU(Y также иногда рассматривается как гласная)
СогласныеBCDFGHJKLMNPQRSTVWXYZ

Простое число - натуральное число, делящееся без остатка только на единицу и на само себя.
Пример:17, 3, 13.

Цикл - специальная программная конструкция, способная повторять исполнение заданных инструкций нужное количество раз. Современные языки программирования, как правило, поддерживают в штатном режиме три типа циклических конструкций:

  • цикл с предусловием (while - do);

  • цикл с постусловием (do - while);

цикл со счетчиком (for - to - do).

 

Методические указания

Для успешного решения задач из данной категории вы должны:

  1. провести дифференцированное исследование заданного программного кода (как функции, так и главного блока);

  2. понять приведенный алгоритм и ответить на вопрос, поставленный в условии задачи.

 
 
 
 

Задача №1

Дано:
дан следующий программный код (для удобства, код программы приведен на самом популярном языке программирования высокого уровня – Turbo Pascal)

 

Найти:
определите, что будет напечатано в результате выполнения представленного алгоритма

 
 
 
 
 
 

Задача №2

Дано:
дан следующий программный код (для удобства, код программы приведен на самом популярном языке программирования высокого уровня – Turbo Pascal)

function f(pa, pb, pc : integer) : integer;
begin
    if((pa + pc) >= pb) then
        f := 1
else
    f := 0;
end;
{-------------------------------------------------------------------}
const
    N = 9;
    V : array[1..N] of integer = (1, 2, -5, 4, 3, 16, -7, -2, 9);
var
    i : byte;
begin
    i := 2;
    while(i <= (N - 1)) do
    begin
        V[i] := f(V[i - 1], V[i], V[i + 1]);
        i := i + 3;
    end;
    writeln(V[5] + V[8]);
end.

 

Найти:
определите, что будет напечатано в результате выполнения приведенного алгоритма

 
 
 
 
 
 

Задача №3

Дано:
дан следующий программный код (для удобства, код программы приведен на самом популярном языке программирования высокого уровня – Pascal)

function f(pn : integer) : boolean;
var
    i : integer;
begin
    f := true;
    for i := 2 to pn div 2 do
        if(pn mod i = 0) then
            f := false;
end;
var
    n : integer;
    k : integer;
begin
    k := 0;
    for n := 2 to 20 do
        if(f(n) = true) then
            k := k + 1;
    writeln(k);
end.

 

Найти:
определите, что будет напечатано в результате выполнения приведенного алгоритма

 
 
 
 
 
 

Задача №4

Дано:
дан следующий программный код (для удобства, код программы приведен на самом популярном языке программирования высокого уровня – Pascal)

function processingString(ps : string) : string;
const
    SYMBOL = ['a', 'e', 'i', 'o', 'u', 'y'];
var
    i : integer;
begin
    i := 1;
    while(i <= length(ps)) do
    begin
        if(ps[i] in SYMBOL) then
        begin
            insert(ps[i], ps, i);
            i := i + 1;
        end;
        i := i + 1;
    end;
    processingString := ps;
end;
var
    inputString  : string;
    outputString : string;
begin
    inputString := 'Pascal is good!';
    outputString := processingString(inputString);
    writeln(‘Выходная строка имеет вид: ', outputString);
end.

 

Найти:
определите, что будет напечатано в результате выполнения приведенного алгоритма

 
 
 
 
 
 
© 2011-2022 ООО "СтадиМен". Все права сохранены.
Перепечатка и использование материалов с данного сайта, разрешена только по согласию с владельцем.
Владелец оставляет за собой право воспользоваться 146 статьей УК РФ при нарушении авторских и смежных прав.
 
 
 
 
Авторизация на сайте
 
 
 
Обнаружили
ошибку на сайте?