Pascal Abc Сборник Задач

Pascal Abc Сборник Задач.rar
Закачек 3354
Средняя скорость 4775 Kb/s

Pascal Abc Сборник Задач

Документы в архиве:

Название документа Чолокоглы_Программирование.doc

Сборник задач по программированию на языке Паскаль

Автор: Чолокоглы Алина Олеговна, учитель информатики и ИКТ МАОУ СОШ №44 г.Томска

Описание материала: Сборник задач посвящен вопросам программирования на языке программирования Pascal 7.0. В нем подробно рассматриваются решения большого количества задач, от простых до достаточно сложных.

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

Сборник содержит условия задач и одно или два варианта их решения на языке программирования Pascal 7.0.

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

var k, i, n, p:integer;

r:array [1..3] of longint;

write(‘ количество роботов k=’); readln(k);

write (‘количество лет n =’); readln ( n );

else if p=1 then begin x:=x-3; y:=2 end

else begin x:=x-1; y:=1 end;

writeln (‘Количество роботов — ’, s );

Суточный рацион коровы составляет a кг сена, b кг силоса и c кг комбикорма. В хозяйстве, содержащем стадо из k голов, осталось x центнеров сена, y тонн силоса и z мешков комбикорма по 50 кг. Сколько еще дней хозяйство сможет кормить коров по полному рациону.

if (x>=r) and (y>=r) and (z>=r) then

if (x 0) and (kol =50 then writeln (‘no’) else writeln (kol);

Дано два целых положительных числа: a и b. Требуется написать программу, которая находит цифру, на которую оканчивается число a^b.

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 01102, а это палиндром), 129 (129 = 1000 00012) и т. д.

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 -ой – в первую. Составить программу, определяющую количество змей в каждой коробке через М минут.

Итак, с сегодняшнего дня мы начинаем вести новую рубрику: «Решение задач», в которой будем рассматривать задачи, взятые из сборника М.Э.Абрамяна «1000 ЗАДАЧ ПО ПРОГРАММИРОВАНИЮ».

Открыв задачник и прочитав аннотацию, Вы, скорее всего, озадачитесь тем, что данное пособие предназначено для студентов механико-математического, физического и экономического факультетов, но смею Вас заверить, что это весьма универсальная книга, которая подходит как студентам, так и школьникам. Возможно, задачи из первых разделов книги покажутся Вам простыми — в этом случае используйте наш разбор только для проверки своих решений; но если же по каким-либо причинам решить задачи Вы не в состоянии, то тогда присоединяйтесь к нам.

Begin1. Дана сторона квадрата a. Найти его периметр P = 4·a.

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

  • Read (Readln) — ввод значений с клавиатуры;
  • Write (Writeln) — вывод результата (и вообще чего-либо) на экран.

Блок-схема

Таким образом, решение задачи становится очевидным.


Статьи по теме