Условия всех задач из категории B14
Историческая справка и теоретические сведения
Структурное программирование - методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом.
В соответствии с данной методологией
Любая программа представляет собой структуру, построенную из трёх типов базовых конструкций:
последовательное исполнение — однократное выполнение операций в том порядке, в котором они записаны в тексте программы;
ветвление — однократное выполнение одной из двух или более операций, в зависимости от выполнения некоторого заданного условия;
цикл — многократное исполнение одной и той же операции до тех пор, пока выполняется некоторое заданное условие (условие продолжения цикла).
В программе базовые конструкции могут быть вложены друг в друга произвольным образом, но никаких других средств управления последовательностью выполнения операций не предусматривается.
Повторяющиеся фрагменты программы (либо не повторяющиеся, но представляющие собой логически целостные вычислительные блоки) могут оформляться в виде т. н. подпрограмм (процедур или функций). В этом случае в тексте основной программы, вместо помещённого в подпрограмму фрагмента, вставляется инструкция вызова подпрограммы. При выполнении такой инструкции выполняется вызванная подпрограмма, после чего исполнение программы продолжается с инструкции, следующей за командой вызова подпрограммы.
Разработка программы ведётся пошагово, методом «сверху вниз».
Компьютерная программа – конечная последовательность инструкций, предназначенная для исполнения устройством выполнения персонального компьютера. Назначение любой программы – реализация определенного алгоритма.
Программная процедура – независимая часть общей программы, выполняющая определенные действия, которую после однократной декларации можно многократно вызывать по присвоенному ей имени.
Пример объявления процедуры для языка программирования Pascal:
procedure getSum (pa : integer; ps : string);
данная процедура принимает на вход два параметра:
целое число;
строковую величину.
Программная функция – независимая часть общей программы, выполняющая определенные действия, способная возвращать конкретное значение, которую после однократной декларации можно многократно вызывать по присвоенному ей имени.
Пример объявления функции для языка программирования Pascal:
function setName(px : real, pb : boolean) : char;
данная функция принимает на вход два параметра:
вещественное число;
логическое значение.
и в качестве ответа возвращает символьное значение.
Множество - структурированный тип данных, представляющий собой набор взаимосвязанных по какому-либо признаку или группе признаков объектов, которые можно рассматривать как единое целое. Каждый объект в множестве называется элементом множества.
Английский алфавит - алфавит, основанный на латинском алфавите, и состоящий из 26 букв.
5 букв обозначают гласные звуки и 21 буква — согласные звуки.
Гласные | A | E | I | O | U | (Y также иногда рассматривается как гласная) | |||||||||||||||
Согласные | B | C | D | F | G | H | J | K | L | M | N | P | Q | R | S | T | V | W | X | Y | Z |
Простое число - натуральное число, делящееся без остатка только на единицу и на само себя.
Пример:17, 3, 13.
Цикл - специальная программная конструкция, способная повторять исполнение заданных инструкций нужное количество раз. Современные языки программирования, как правило, поддерживают в штатном режиме три типа циклических конструкций:
цикл с предусловием (while - do);
цикл с постусловием (do - while);
цикл со счетчиком (for - to - do).
Методические указания
Для успешного решения задач из данной категории вы должны:
провести дифференцированное исследование заданного программного кода (как функции, так и главного блока);
понять приведенный алгоритм и ответить на вопрос, поставленный в условии задачи.
Задача №1
Дано:
дан следующий программный код (для удобства, код программы приведен на самом популярном языке программирования высокого уровня – Turbo Pascal)
Найти:
определите, что будет напечатано в результате выполнения представленного алгоритма
Задача №2
Дано:
дан следующий программный код (для удобства, код программы приведен на самом популярном языке программирования высокого уровня – Turbo Pascal)
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)
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)
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.
Найти:
определите, что будет напечатано в результате выполнения приведенного алгоритма