Спасибо всем, кто присылает нам свои задачи с
решениями на Turbo Pascal. Потомки вас не забудут!;)
Перестановки
(3 уровень)
Условие:
Даны n чисел в произвольном порядке. Вывести
на экран всевозможные их перестановки.
Решение:(by
Pavel [prog_mail@ukr.net])
type mn=set of 1..200;
var m,d,n,i: integer;
s: mn;
a,b: array[1..200] of integer;
procedure View;
var i: integer;
begin
writeln;
for i:=1 to n do
write(b[a[i]],' ');
end;
procedure Per(s: mn; k: integer);
var i: integer;
begin
for i:=1 to n do
If i in s then
begin
a[k]:=i;
per(s-[i],k+1);
end;
if s=[] then view;
end;
BEGIN
writeln('Введите кол-во чисел');
readln(n);
writeln('Введите числа');
for i:=1 to n do
read(b[i]);
writeln('Перестановки :');
per([1..n],1)
END.
Ёжик
(3 уровень)
Условие:
План прямоугольного сада размером mxn состоит
из квадратных зон. В каждой зоне растёт по дереву.
С каждого дерева любой зоны могут упасть
несколько яблок.
В левом верхнем квадратике находится ёжик,
который должен дойти до правого нижнего
квадратика. В саду существуют ограничения
относительно способа передвижения: ёжик может
двигаться из текущего квадратика только в один
из двух соседних правый либо нижний.
Составьте программу, которая вычисляет
максимальное количество яблок, которое может
собрать ёжик, передвигаясь к нужному квадратику.
Технические
условия: План сада
задан таблицей apples содержащей m строк и n
столбиков. Элемент apples[i,j] таблицы указывает
количество яблок, упавших с дерева в зону с
координатами i,j.
Текстовый файл "input.txt" содержит в первой
строке числа m,n разделённые пробелом. В каждой из
следующих m строк содержится по n чисел apples[i,j]
разделённых пробелами.
Файл "output.txt" должен содержать одно
натуральное число.
Примеры
файлов:
Input.txt
Output.txt
3 3
1 2 3
1 2 3
1 2 3
12
Решение:(by
Sergey Lungy [_pva3000_@mail.ru])
var apples:array [1..10,1..10] of byte;
max,s:integer;
m,n,i,j:byte;
f:text;
procedure calc(i,j:byte);
begin
s:=s+apples[i,j];
if i<m then calc(i+1,j);
if j<n then calc(i,j+1);
if s>max then max:=s;
s:=s-apples[i,j];
end;
BEGIN
assign(f,'input.txt');
reset(f);
read(f,m,n);
for i:=1 to m do
begin
for j:=1 to n do
read(f,apples[i,j]);
end;
close(f);
calc(1,1);
assign(f,'output.txt');
rewrite(f);
write(f,max);
close(f);
END.
Рассылки проекта Sapisoft:
Всегда
рады видеть Вас на нашем сайте. Жду ваших
предложений и замечаний, Шамис Алексей