Олимпиада - Turbo Pascal (247891)

Узнай цену своей работы

Формулировка задачи:

Помогите решить задания с олимпиады, срочно!!! Все написано на украинском, если не понятно то переведите через гугл переводчик. Задача 1 Петрик П’яточкін часто любив складати різноманітні фігури із сірників. Він висипав на стіл деяку кількість сірників та, переміщуючи їх, будував усілякі чудернацькі зображення. Одного разу він вирішив побудувати із заданого набору цілих сірників прямокутник максимальної площі. Вимоги до програми: Програма повинна зчитувати вхідні дані із файлу INPUT.DAT. В першому рядку цього файлу міститься одне ціле число N – кількість сірників одиничної довжини на столі (1 ≤ N ≤ 10 000). Результат виконання програми повинен записуватися у вихідний файл OUTPUT.REZ. У першому рядку цього файлу виводиться два цілих числа, що розділені пропуском: перше – це максимальна площа прямокутника, побудованого із сірників, друге – це кількість сірників, що не використані при побудові. Приклади: INPUT.DAT OUTPUT.REZ 1 \ 0 1 2 \ 0 2 4\ 1 0 5 \ 1 1 Задача 2 Петрик П’яточкін часто навідувався до шкільної хімічної лабораторії. Перш за все вчитель вимагав від хлопця знання правил техніки безпеки при проведенні хімічних реакцій. В лабораторії було багато різних хімічних реактивів, і природно, що реакцій з ними можна було провести багато. Однак серед хімічних сполук були такі пари речовин, які не можна сполучати в одній реакції, хоча окремо з іншими речовинами їх взаємодія була цілком нормальною. Петрик вирішив встановити загальну кількість усіх можливих хімічних реакцій з наперед заданим числом сумісних компонентів. Вимоги до програми: Програма повинна зчитувати вхідні дані із файлу INPUT.DAT. В першому рядку цього файлу міститься три цілих числа, що розділені пропусками: перше – загальна кількість N усіх хімічних реактивів у лабораторії (1 ≤ N ≤ 100); друге – кількість K реагентів, що приймають участь в реакціях (2 ≤ K ≤ 4); третє – кількість M пар несумісних речовин (0 ≤ M ≤ 9 900). Далі слідує M рядків, у кожному з яких записано два різних цілих числа, що відокремлені пропуском, – номери взаємно несумісних речовин. Результат виконання програми повинен записуватися у вихідний файл OUTPUT.REZ. У першому рядку цього файлу виводиться одне ціле число – кількість усіх можливих нормальних хімічних реакцій. Приклади: INPUT.DAT OUTPUT.REZ 4 2 0 \ 6 4 2 4 \ 2 1 2 2 3 3 4 4 1 4 3 3 \ 1 1 2 1 3 1 4 4 3 3 \ 0 1 2 2 3 3 1 Задача 3 Петрик П’яточкін віднедавна зайнявся конструюванням радіосхем. Як завжди до кожної справи він береться творчо і по-дослідницькому. Якось хлопчик навмання повставляв у друковану плату різні деталі так, щоб на її зворотній стороні у певних точках виступали кінці контактів і лише по одному. Потім, не переймаючись тим, які деталі і у якій композиції з’єднаються, Петрик за допомогою паяльника сполучив їх контакти провідниками. Головне, що він вирішив сполучити кожен контакт хоча б з одним іншим, але обов’язково із найменшою сумарною витратою провідників. Всі з’єднання проводилися акуратно без провисання провідників точно по відстані між контактами. Цікаво, що побудована радіосхема виявилася робочою. Правда Петрик, ще довго ламав собі голову, що саме він сконструював. Але це вже зовсім інша задача. Вимоги до програми: Програма повинна зчитувати вхідні дані із файлу INPUT.DAT. В першому рядку цього файлу міститься одне ціле число – кількість N контактів на платі (1 ≤ N ≤ 1 000). Далі слідує N рядків, у кожному з яких записано по два цілих числа, що відокремлені пропусками, – координати контактів. Результат виконання програми повинен записуватися у вихідний файл OUTPUT.REZ. У першому рядку цього файлу виводиться одне дійсне число – мінімальна сумарна довжина всіх використаних провідників, обчислена з точністю 0.001. Приклади: INPUT.DAT OUTPUT.REZ 3 \ 2.000 0 0 0 1 1 0 4 \ 2.000 0 0 0 1 1 0 1 1 5 \ 11.000 -5 0 0 0 3 0 4 0 9 0

Решение задачи: «Олимпиада»

textual
Листинг программы
program sirniki;
var
   a,b,n,j,s,i,max,d,e:integer;
   f,f1:text;
begin
    assign(f,'INPUT.DAT.TXT');
    reset(f);
    readln(f,n);
    close(f);
    max:=0;
    for i:=1 to n div 4 do
        begin
        j:=(n-2*i) div 2;
        a:=i;
        b:=j;
        end;
        d:=a*b;
        e:=n-(2*a+2*b);
    assign (f1,'OUTPUT.REZ.TXT');
    rewrite(f1);
    write(f1,d,' ',e);
    close(f1);
    end.

Объяснение кода листинга программы

В данном коде выполняется следующая последовательность действий:

  1. Открывается файл INPUT.DAT.TXT для чтения.
  2. Из файла считывается значение переменной n, которое представляет собой количество строк в матрице.
  3. Закрывается файл INPUT.DAT.TXT.
  4. Инициализируется переменная max равной 0.
  5. Запускается цикл, который выполняется столько раз, сколько ячеек в первой половине матрицы (n div 4).
  6. Внутри цикла определяются значения переменных j, a и b, которые соответствуют номеру строки, столбца и диагонали.
  7. Вычисляется произведение a и b и сохраняется в переменной d.
  8. Вычисляется количество ячеек во второй половине матрицы и сохраняется в переменной e.
  9. Открывается файл OUTPUT.REZ.TXT для записи.
  10. Записывается значение d в файл OUTPUT.REZ.TXT.
  11. Записывается значение e в файл OUTPUT.REZ.TXT.
  12. Закрывается файл OUTPUT.REZ.TXT.
  13. Завершается основной блок программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы