Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Олимпиадные задачи с решениями на Turbo Pascal


Служба Рассылок Subscribe.Ru
Олимпиадные задачи c решениями на Turbo Pascal

Олимпиадные задачи с решениями на Turbo Pascal


Рассылка проекта Sapisoft.By.Ru [#009]


Подписчиков на 02.02.2002 - 2398


Главная Программы Задачи Рассылки Гостевая книга Контакты

Здравствуйте!


  Спасибо всем, кто присылает нам свои задачи с решениями на 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:


Новости проекта Sapisoft
Информация о выходе новых версий программ и прочих обновлений на сайте.

Олимпиадные задачи с решениями на Turbo Pascal
Пишете программы на Turbo Pascal? Эта рассылка для Вас! Каждую неделю по одной новой задаче с олимпиад по информатике. Теория, методы решения задач, много полезной информации.

Уроки программирования на Turbo Pascal
Хотите стать Великим Программистом? Начните свой путь к вершине славы с изучения языка Turbo Pascal. Он как нельзя лучше подходит для начинающих программистов и в то же время используется для разработки сложных "профессиональных" программ.


Всегда рады видеть Вас на нашем сайте. Жду ваших предложений и замечаний, Шамис Алексей

Copyright © 2001-2002 by Shamis Alex.




http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное