Задачи в сборнике классифицированы по основным разделам: линейные алгоритмы, разветвляющиеся алгоритмы, циклические алгоритмы, обработка массивов, обработка строк и создание графических изображений. После каждого раздела предлагаются задачи для самостоятельного решения. Внутри каждого раздела задачи по мере возможности расположены по возрастанию степени трудности.
writeln (‘ Введите a’); readln (a);
writeln (‘ Введите b’); readln (b);
if b=1 then writeln (a)
Из одного порта в другой необходимо перевезти 15 различных грузов. Грузоподъемность судна, на котором будет проходить перевозка, 50 тонн. Грузы пронумерованы, и информация о массах грузов хранится в массиве М(15). Определить, сколько рейсов необходимо сделать судну, если грузы неделимы и могут перевозиться только подряд в порядке их нумерации. (Предполагается, что масса отдельного груза не превышает 50 тонн).
mas=array[1..15] of integer;
for i:=1 to 15 do
writeln (‘ Введите m’,'[‘,i,’]’);
writeln (‘ Потребовалось , k,’ рейсов ‘);
Коммерсант, имея стартовый капитал k рублей, занялся торговлей, которая ежемесячно увеличивает капитал на p % . Через сколько лет он накопит сумму s , достаточную для покупки собственного магазина?
writeln (‘Введите стартовый капитал’);
writeln (‘Введите % увеличения капитала’);
writeln (‘Введите сумму, необходимую для покупки магазина’);
writeln (‘Количество лет -‘, int ( n /12));
Число Цукермана – натуральное число, которое делится на произведение своих цифр, например: 175 делится на 1·7·5=35. Составить программу, которая выводит на экран все трехзначные числа Цукермана.
var i,a,b,c: integer;
for i := 111 to 999 do
b := (i div 10) mod 10;
if (b <> 0) and (c <> 0) and (i mod (a * b * c) = 0) then writeln (i);
На конференцию приехало N человек. Для их перевоза выделили автомобили вместимостью К и М человек (без водителя). К гостинице автомобили подаются в таком порядке: сначала вместимостью К человек, потом – М человек и так далее. В автомобиле можно перевозить не более максимально допустимого количества пассажиров. Определить, сколько необходимо автомобилей для перевозки всех делегатов конференции.
writeln (‘Введите количество участников’);
writeln (‘Введите вместимость первого автомобиля’);
writeln (‘Введите вместимость второго автомобиля’);
if x mod 2<>0 then N:=N-K else N:=N-M;
Имеется четыре коробки спичек и в каждой из них по 15 спичек. Номер коробки, из которой берется очередная спичка, выбирается случайно. Сколько спичек будет сожжено, прежде чем одна из коробок опустеет? Составить программу .
A: array [1..4] of integer;
writeln (‘В коробке’, n , ‘закончились спички’);
writeln (‘Израсходовано спичек’, m );
Сформировать квадратную матрицу следующего вида.
A: array [1..5, 1..5] of byte;
Дано число типа byte . Проверить, является ли палиндромом его двоичное представление с учетом того, что сохранены старшие нули. Пример таких чисел: 102 (т. к. 102 = 0110 0110 2 , а это палиндром), 129 (129 = 1000 0001 2 ) и т. д.
a := 8 * a + 4 * b + 2 * c + d;
Даны два натуральных числа. Найти их наименьшее общее кратное.
Примечание: наименьшим общим кратным двух чисел m и n называется наименьшее натуральное число, которое делится на m и n . Обозначение: НОК( m , n )
while m <> n do begin
if m > n then begin
writeln(prod div m)
Дана последовательность символов длины n ( n >= 1 ). Проверить баланс круглых скобок в этом выражении. Например, при вводе выражения (())() программа должна сообщить о правильности расстановки скобок, а при вводе выражения ((()) – о неправильности.
Примечание: сбалансированной скобочной записью называется символьное выражение, в котором каждой открывающей скобке соответствует закрывающая скобка правее и наоборот, каждой закрывающей скобке соответствует открывающая скобка левее.
for i := 1 to n do begin
if c = ‘(‘ then inc(count);
if c = ‘)’ then dec(count);
if count = -1 then break
writeln ( count = 0)
Сколько существует упорядоченных пар натуральных чисел а и b , для которых известны их наибольший общий делитель d и их наименьшее общее кратное m ?
a, b, i, j, d, m:integer;
function nod(a, b:integer):integer;
if a=b then nod:=a
if a>b then nod:=nod(a-b, b) else nod:=nod(a, b-a)
writeln (‘ Введите НОД двух чисел d’);
writeln (‘ Введите НО K двух чисел m’);
for i:=1 to 100 do
for j:=1 to 100 do
if ((nod(a, b)=d) and ((a*b div nod(a, b))=m)) then writeln (i, j);
Правительство гарантирует, что инфляция в новом году составит р % в месяц. Какого роста цен за год можно ожидать? Составить программу решения задачи.
Сложные проценты вычисляются по формуле .
writeln (‘Введите процент месячной инфляции’);
Факультету выделен стипендиальный фонд в размере f рублей в месяц. Результаты сессии таковы: «отличников», «хорошистов», «троечников». Повышенная стипендия (для отличников) составляет рублей, обычная — рублей; задолжники стипендии лишаются. Составить программу, определяющую сколько студентов каждой категории могут получать стипендию и каков будет остаток фонда на материальную помощь малоимущим студентам?
writeln (‘ Введите размер фонда ’);
writeln (‘Введите количество отличников, хорошистов и троечников’);
readln ( n 1, n 2, n 3);
writeln (‘Введите размер стипендий’);
if f>s1*n1 then k1:=n1 else k1:=f div s1;
if f>s2*n2 then k2:=n2 else k2:=f div s2;
if f>s2*n3 then k3:=n3 else k3:=f div s2;
writeln (‘Количество отличников, получивших стипендию=’, k 1);
if k 2>0 then writeln (‘Количество хорошистов, получивших стипендию= ‘, k 2);
if k 3>0 then writeln (‘Количество троечников, получивших стипендию =’, k 3);
writeln (‘Фонд материальной помощи=’, f );
N коробок стоят по кругу. В i -ой коробке j змей. Каждую минуту змеи переползают в соседнюю коробку (из i -ой в i +1 -ую), а из N -ой – в первую. Составить программу, определяющую количество змей в каждой коробке через М минут.
Этот раздел ? для тех, кто хочет самостоятельно научиться программированию и тех, кто желает закрепить свои начальные навыки программирования. Здесь содержатся небольшие примеры программ для начинающих, раскрывающие основные конструкции языка Паскаль и содержащие различные широко используемые алгоритмы. Кроме этого, приводятся стандартные ошибки, которые совершают учащиеся в начале обучения.
Раздел рекомендуется для самообучения, повторения пройденного материала и в качестве справочника. Школьники могут использовать материалы данного раздела для подготовки к ЕГЭ по информатике.