Даны две коробки имеющие форму правильной. Примеры решений задач по комбинаторике. Так почему же стратегия работает

Жизнь людей в пустыне

Многие люди сейчас ощущают просто не поддающуюся объяснению, но, тем не менее, настоятельную потребность того, чтобы испытать себя дикой природой, например, морем или горами, а также пустыней или льдами. Поэтому они отправляются в тяжелые, дальние походы на лыжах, на байдарках, а то и просто пешком или на велосипедах. Чем труднее преодолеть, тем в итоге лучше, и желательно, чтобы это было для них впервые, то есть, первым чего-то достичь, первым куда-то подняться, первым нечто преодолеть. Все знают, что жизнь людей в пустыне невозможна, но, тем не менее, людей тянет в такие края. Тянет, чтобы испытать себя.

Испытание жарой

Пустыни представляют собой один из, пожалуй, сложнейших регионов нашей планеты. Их недра очень богаты такими сокровищами, как нефть и газ, а также уголь, цветные металлы и фосфаты, не говоря уже об уникальных минеральных солях. Но это не меняет того факта, что человек в пустыне не выживет. Там вообще мало кто живет. Тем не менее, из года в год не сотни, а тысячи людей самых различных специальностей, как геологи или нефтяники, мелиораторы или строители, а также изыскатели вместе с животноводами как-то умудряются работать в пустыне. Ослепительное и нереально жгучее солнце раскаляет тут почву до 70-80 градусов. В тени, конечно, температура чуть ниже, но тоже до прохлады далеко, речь примерно о 50°. Знойные и пыльные ветра иссушают буквально все живое. Но главная пустынная трудность – это недостаток воды. Водные источники тут очень редки и в основном ненадежны, в то время как осадков выпадает всего 20-200 миллиметров за год.

Нелегко приходится человеку в пустыне. Ведь его организм постоянно подвергается воздействию не просто тепла, но не реальной жары. Она воздействует вместе с разящими лучами особенно жаркого тут солнца и со знойным дыханием ветров, с излучением, которое отражается от неба и от почвы, а также от буквально дышащих огнем барханов. При средней температуре воздуха в 43 градуса организм человека получает за час примерно 300 тепловых килокалорий. Чтоб не перегреться, не получить тепловой удар и сохранить более или менее терпимое постоянство своей внутренней среды, иными словами, гомеостаз, организм вынужден включать на полную мощность всю систему терморегулирования. Да уж, в пустыне жизнь людей больше напоминает борьбу за выживание причем, не между собой или с иными живыми существами, а борьбу с природой.

Дорога в пустыне

Но, как уже упоминалось выше, пустыня манит к себе тех, кто хочет испытать себя. Например, по пустыне Кызылкум на сегодня проходит один из самых протяженных участков туристского маршрута, протянувшегося между Бухарой и Хивой, он в длину составляет около 450 километров.

Между Бухарой, а также Ургенчем, имеется и воздушное сообщение, и автомобильная магистраль, следующая через Газли. Вначале дорога будет вести мимо полей, а также садов оазиса Бухары, и только потом взгляду открывается пустыня, бескрайний простор, ширь которой растянулась до линии горизонта.

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

Складывается такое впечатление, что с каждым годом лето становится все жарче и жарче. Но все не так страшно, мы можем спрятаться от жары в своей квартире, включить кондиционер, выпить прохладный напиток или съесть мороженное. Вот проблема и решена. Трудно представить, как обходятся без всех этих благ цивилизации обитатели пустыни, и речь ведь идет не только о животных, но и о людях. Сейчас я расскажу о коренных жителях пустыни.

Кто живет в пустыне

Пустыни разбросаны практически по всем континентам нашей планеты . Каждая из них будет иметь множество отличий по размеру, рельефу местности, количеству дождей и температуре воздуха. Главный фактор, который характерен для любой пустыни – это ограниченное количество воды и очень сложные условия выживания.

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

  • верблюд;
  • лисица Фенек;
  • капская земляная белка и другие.

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


Лисица Фенек обитает в северной части Африки. В глаза сразу бросаются ее большие уши , именно они помогают избавиться от избыточного тепла тела .


Капская земляная белка родом из самых засушливых районов Южной Африки. Их пушистый хвост помогает им спрятаться от жарких солнечных лучей.

Бедуины – люди пустыни

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

Примерно этот кочевой народ насчитывает около 150 тысяч человек . Они очень выносливы и хорошо приспособились ко всем тяготам пустынной жизни. Живут бедуины в шатрах , которые объединяются в деревни. Во главе каждой деревни находится шейх. А примерно полсотни деревень полностью подчиняются кади . Сложно представить, что в 21 веке в этих поселениях до сих пор есть кровная месть, а серьезные конфликты между племенами встречаются довольно часто.

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

    Введите два целых числа и нажмите Enter.
    -> 34 67
    34 меньше 67

    with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; procedure main is A, B: Integer; begin Put_Line("Введите в одной строке два целых числа и нажмите Enter."); Put("-> "); Get(A); Get(B); --Вводим 2 числа if A > B then Put(Item =>; A, Width =>; 1); Put(" больше "); Put(Item => B, Width => 1); elsif A < B then Put(Item => A, Width => 1); Put(" меньше "); Put(Item => B, Width => 1); else Put("Введённые числа равны!"); end if; end main;

    Даны три целых числа. Найдите наибольшее из них (программа должна вывести ровно одно целое число). Под наибольшим в этой задаче понимается число, которое не меньше, чем любое другое.


  • -> 1 2 3
    Максимальное из трёх чисел: 3
  • with Ada.Text_IO ; use Ada.Text_IO ; with Ada.Integer_Text_IO ; use Ada.Integer_Text_IO ; procedure main is A, B, C: Integer; max: Integer; begin Put_Line("Введите в одной строке три целых числа и нажмите Enter." ) ; Put("-> " ) ; Get(A) ; Get(B) ; Get(C) ; --Вводим три целых числа max:= A; --по умолчанию считаем, что число A - максимальное if B > max then --Если B больше максимального, то max:= B; --максимальное число равно B end if ; if C > max then --Если C больше максимального, то max:= C; --максимальное число равно C end if ; Put("Максимальное из трёх чисел:" & Integer"image(max) ) ; end main;

    with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; procedure main is A, B, C: Integer; max: Integer; begin Put_Line("Введите в одной строке три целых числа и нажмите Enter."); Put("-> "); Get(A); Get(B); Get(C); --Вводим три целых числа max:= A; --по умолчанию считаем, что число A - максимальное if B > max then --Если B больше максимального, то max:= B; --максимальное число равно B end if; if C > max then --Если C больше максимального, то max:= C; --максимальное число равно C end if; Put("Максимальное из трёх чисел:" & Integer"image(max)); end main;

    Даны три натуральных числа A, B, C. Определите, существует ли треугольник с такими сторонами. Если треугольник существует, выведите сообщение, что треугольник с такими сторонам существует, иначе выведите, что треугольник не существует.

  • Введите три стороны треугольника и нажмите Enter.
    -> 3 4 5
    Треугольник со сторонами 3, 4, 5 существует.
  • Треугольник - это три точки, не лежащие на одной прямой. Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей.

  • with Ada.Integer_Text_IO ; use Ada.Integer_Text_IO ; --Для чтения целых чисел with Ada.Text_IO ; use Ada.Text_IO ; --Для вывода строк procedure main is a, b, c: Integer; begin Put_Line("Введите три стороны треугольника и нажмите Enter.Enter." ) ; Put("-> " ) ; Get(a) ; Get(b) ; Get(c) ; --Считываем стороны треугольника if a + b > c and then b + c > a and then c + a > b then --Проверка всех условий в одной строке Put("Треугольник со сторонами" & Integer"image(a) & "," & Integer"image(b) & "," & Integer"image(c) & " существует" ) ; else Put("Треугольник со сторонами" & Integer"image(a) & "," & Integer"image(b) & "," & Integer"image(c) & " не существует" ) ; end if ; end main;

    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; --Для чтения целых чисел with Ada.Text_IO; use Ada.Text_IO; --Для вывода строк procedure main is a, b, c: Integer; begin Put_Line("Введите три стороны треугольника и нажмите Enter.Enter."); Put("-> "); Get(a); Get(b); Get(c); --Считываем стороны треугольника if a + b > c and then b + c > a and then c + a > b then --Проверка всех условий в одной строке Put("Треугольник со сторонами" & Integer"image(a) & "," & Integer"image(b) & "," & Integer"image(c) & " существует"); else Put("Треугольник со сторонами" & Integer"image(a) & "," & Integer"image(b) & "," & Integer"image(c) & " не существует"); end if; end main;

    Даны три целых числа. Определите, сколько среди них совпадающих. Программа должна вывести одно из чисел: 3 (если все совпадают), 2 (если два совпадает) или 0 (если все числа различны).

  • Введите три целых числа и нажмите Enter.
    -> 1 2 3
    0
  • with Ada.Text_IO ; use Ada.Text_IO ; with Ada.Integer_Text_IO ; use Ada.Integer_Text_IO ; procedure Main is A, B, C: Integer; begin Put_Line("Введите три целых числа и нажмите Enter." ) ; Put("-> " ) ; Get(A) ; Get(B) ; Get(C) ; if A = B and then A = C then --Если совпадают все три числа Put(Item => 3 , Width => 1 ) ; elsif A = B or A = C or B = C then --Если совпадают два числа Put(Item => 2 , Width => 1 ) ; else --Если одинаковых чисел нет Put(Item => 0 , Width => 1 ) ; end if ; end Main;

    with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; procedure Main is A, B, C: Integer; begin Put_Line("Введите три целых числа и нажмите Enter."); Put("-> "); Get(A); Get(B); Get(C); if A = B and then A = C then --Если совпадают все три числа Put(Item => 3, Width => 1); elsif A = B or A = C or B = C then --Если совпадают два числа Put(Item => 2, Width => 1); else --Если одинаковых чисел нет Put(Item => 0, Width => 1); end if; end Main;

    Шахматная ладья ходит по горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ладья попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести "ДА" если из первой клетки ходом ладьи можно попасть во вторую или "НЕТ" в противном случае.


  • 4 4
    5 5
    НЕТ
  • ) ; Put() ; Get(A) ; Get(B) ; Put() ; Get(C) ; Get(D) ; if A = C or B = D then Put("ДА" ) ; else Put("НЕТ" ) ; end if ; end Main;

    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; with Ada.Text_IO; use Ada.Text_IO; procedure Main is subtype checkBoard is Integer range 1..8; A, B, C, D: checkBoard; begin Put_Line("Введите номера столбцов и строк для двух клеток:"); Put("Введите номера столбца и строки для первой клетки и нажмите: "); Get(A); Get(B); Put("Введите номера столбца и строки для второй клетки и нажмите: "); Get(C); Get(D); if A = C or B = D then Put("ДА"); else Put("НЕТ"); end if; end Main;

    Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести "ДА", если из первой клетки ходом короля можно попасть во вторую или "НЕТ" в противном случае.

  • Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите: 4 4
    Введите номера столбца и строки для второй клетки и нажмите: 5 5
    ДА
  • "Введите номера столбцов и строк для двух клеток:" ) ; Put("Введите номера столбца и строки для первой клетки и нажмите: " ) ; Get(A) ; Get(B) ; Put("Введите номера столбца и строки для второй клетки и нажмите: " ) ; Get(C) ; Get(D) ; if abs (A - C) <= 1 and then abs (B - D) <= 1 then -- команда abs() возвращает абсолютное --значение (модуль) числа Put("ДА" ) ; else Put("НЕТ" ) ; end if ; end main;

    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; with Ada.Text_IO; use Ada.Text_IO; procedure main is subtype checkBoard is Integer range 1..8; A, B, C, D: checkBoard; begin Put_Line("Введите номера столбцов и строк для двух клеток:"); Put("Введите номера столбца и строки для первой клетки и нажмите: "); Get(A); Get(B); Put("Введите номера столбца и строки для второй клетки и нажмите: "); Get(C); Get(D); if abs(A - C) <= 1 and then abs(B - D) <= 1 then -- команда abs() возвращает абсолютное --значение (модуль) числа Put("ДА"); else Put("НЕТ"); end if; end main;

    Шахматный слон ходит по диагонали. Даны две различные клетки шахматной доски, определите, может ли слон попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести "ДА", если из первой клетки ходом слона можно попасть во вторую или "Нет" в противном случае.

  • Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите: 4 4
    Введите номера столбца и строки для второй клетки и нажмите: 5 5
    ДА
  • with Ada.Integer_Text_IO ; use Ada.Integer_Text_IO ; with Ada.Text_IO ; use Ada.Text_IO ; procedure main is subtype checkBoard is Integer range 1 ..8 ; A, B, C, D: checkBoard; begin Put_Line("Введите номера столбцов и строк для двух клеток:" ) ; Put("Введите номера столбца и строки для первой клетки и нажмите: " ) ; Get(A) ; Get(B) ; Put("Введите номера столбца и строки для второй клетки и нажмите: " ) ; Get(C) ; Get(D) ; if abs (a - c) = abs (b - d) then Put("ДА" ) ; else Put("НЕТ" ) ; end if ; end main;

    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; with Ada.Text_IO; use Ada.Text_IO; procedure main is subtype checkBoard is Integer range 1..8; A, B, C, D: checkBoard; begin Put_Line("Введите номера столбцов и строк для двух клеток:"); Put("Введите номера столбца и строки для первой клетки и нажмите: "); Get(A); Get(B); Put("Введите номера столбца и строки для второй клетки и нажмите: "); Get(C); Get(D); if abs(a - c) = abs(b - d) then Put("ДА"); else Put("НЕТ"); end if; end main;

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

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

    Пример 1:
    Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите: 1 1
    Введите номера столбца и строки для второй клетки и нажмите: 2 2
    ДА

    Пример 2:
    Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите: 1 1
    Введите номера столбца и строки для второй клетки и нажмите: 2 3
    НЕТ

  • with Ada.Integer_Text_IO ; use Ada.Integer_Text_IO ; with Ada.Text_IO ; use Ada.Text_IO ; procedure Main is subtype checkBoard is Integer range 1 ..8 ; A, B, C, D: checkBoard; begin Put_Line("Введите номера столбцов и строк для двух клеток:" ) ; Put("Введите номера столбца и строки для первой клетки и нажмите: " ) ; Get(A) ; Get(B) ; Put("Введите номера столбца и строки для второй клетки и нажмите: " ) ; Get(C) ; Get(D) ; if abs (A - C) = abs (B - D) or A = D or B = C then Put("ДА" ) ; else Put("НЕТ" ) ; end if ; end Main;

    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; with Ada.Text_IO; use Ada.Text_IO; procedure Main is subtype checkBoard is Integer range 1..8; A, B, C, D: checkBoard; begin Put_Line("Введите номера столбцов и строк для двух клеток:"); Put("Введите номера столбца и строки для первой клетки и нажмите: "); Get(A); Get(B); Put("Введите номера столбца и строки для второй клетки и нажмите: "); Get(C); Get(D); if abs(A - C) = abs(B - D) or A = D or B = C then Put("ДА"); else Put("НЕТ"); end if; end Main;

    Шахматный конь ходит буквой “Г” - на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести YES, если из первой клетки ходом коня можно попасть во вторую или NO в противном случае.

    Пример 1:
    Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите: 1 1
    Введите номера столбца и строки для второй клетки и нажмите: 1 4
    НЕТ

    Пример 2:
    Введите номера столбцов и строк для двух клеток:
    Введите номера столбца и строки для первой клетки и нажмите: 1 1
    Введите номера столбца и строки для второй клетки и нажмите: 8 8
    НЕТ

  • with Ada.Text_IO ; use Ada.Text_IO ; with Ada.Integer_Text_IO ; use Ada.Integer_Text_IO ; procedure main is subtype checkBoard is Integer range 1 ..8 ; A, B, C, D: Integer; begin Put_Line("Введите номера столбцов и строк для двух клеток:" ) ; Put("Введите номера столбца и строки для первой клетки и нажмите: " ) ; Get(A) ; Get(B) ; Put("Введите номера столбца и строки для второй клетки и нажмите: " ) ; Get(C) ; Get(D) ; if abs (A - C) = 2 and then abs (B - D) = 1 then Put("ДА" ) ; elsif abs (A - C) = 1 and then abs (B - D) = 2 then Put("ДА" ) ; else Put("НЕТ" ) ; end if ; end main;

    with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; procedure main is subtype checkBoard is Integer range 1..8; A, B, C, D: Integer; begin Put_Line("Введите номера столбцов и строк для двух клеток:"); Put("Введите номера столбца и строки для первой клетки и нажмите: "); Get(A); Get(B); Put("Введите номера столбца и строки для второй клетки и нажмите: "); Get(C); Get(D); if abs(A - C) = 2 and then abs(B - D) = 1 then Put("ДА"); elsif abs(A - C) = 1 and then abs(B - D) = 2 then Put("ДА"); else Put("НЕТ"); end if; end main;

    Шоколадка имеет вид прямоугольника, разделенного на N×M долек. Шоколадку можно один раз разломить по прямой на две части. Определите, можно ли таким образом отломить от шоколадки ровно K долек. Программа получает на вход три числа: N, M, K. Программа должна вывести одно из двух слов: "ДА" или "Нет".

    Пример 1:
    4
    2
    6
    ДА

    Пример 2:
    Количество долек по горизонтали: 2
    Количество долек по вертикали: 10
    Сколько долек нужно отделить: 7
    НЕТ

  • with Ada.Text_IO ; use Ada.Text_IO ; with Ada.Integer_Text_IO ; use Ada.Integer_Text_IO ; procedure Main is N, M, K: Integer; begin Put("Количество долек по горизонтали: " ) ; Get(N) ; Put("Количество долек по вертикали: " ) ; Get(M) ; Put("Сколько долек нужно отделить: " ) ; Get(K) ; if K > M * N then --Если от шоколадки просят отломить больше, чем сама шоколадка Put("НЕТ" ) ; elsif K rem N = 0 and then K >= N then --Отламываем по горизонтали Put("ДА" ) ; elsif K rem M = 0 and then K >= M then --Отламываем по вертикали Put("ДА" ) ; else Put("НЕТ" ) ; end if ; end Main;

    with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; procedure Main is N, M, K: Integer; begin Put("Количество долек по горизонтали: "); Get(N); Put("Количество долек по вертикали: "); Get(M); Put("Сколько долек нужно отделить: "); Get(K); if K > M * N then --Если от шоколадки просят отломить больше, чем сама шоколадка Put("НЕТ"); elsif K rem N = 0 and then K >= N then --Отламываем по горизонтали Put("ДА"); elsif K rem M = 0 and then K >= M then --Отламываем по вертикали Put("ДА"); else Put("НЕТ"); end if; end Main;

    Яша плавал в бассейне размером N×M метров и устал. В этот момент он обнаружил, что находится на расстоянии X метров от одного из длинных бортиков (не обязательно от ближайшего) и Y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, чтобы выбраться из бассейна на бортик? Программа получает на вход числа N, M, X, Y. Программа должна вывести число метров, которое нужно проплыть Яше до бортика.

  • Ширина бассейна: 23
    Длина бассейна: 52
    Расстояние от Яши до длинного бортика: 8
    Расстояние от Яши до короткого бортика: 43
    Нужно проплыть минимум, чтобы выбраться из бассейна: 8
  • Возможно, что для решения задачи Вам нужно будет поменять местами 2 переменные. Этот алгоритм выглядит примерно так:

    a, b, tmp: Integer; --Объявление переменных. Две основных и одна вспомогательная a:= 3; --Инициализация переменной a b:= 5; --Инициализация переменной b --Непосредственно сам алгоритм: tmp:= a; --Теперь tmp = 3 и a = 3 a:= b; --Теперь a = 5 и b = 5; b:= tmp; --Теперь b = 3

  • with Ada.Text_IO ; use Ada.Text_IO ; with Ada.Integer_Text_IO ; use Ada.Integer_Text_IO ; procedure Main is N, M, X, Y: Integer; -- N - короткий бортик, M - длинный бортик: -- X - Расстояние до одного из длинных бортиков -- Y - Расстояние до одного из коротких бортиков Tmp: Integer; begin Put("Ширина бассейна: " ) ; Get(N) ; Put("Длина бассейна: " ) ; Get(M) ; Put("Расстояние от Яши до длинного бортика: " ) ; Get(X) ; Put("Расстояние от Яши до короткого бортика: " ) ; Get(Y) ; if N > M then --Если при вводе перепутаны бортики, то меняем их местами: Tmp:= M; --Сохраняем длину M во временную переменную M:= N; --Присваиваем переменной M новое значение N:= Tmp; --Восстанавливаем длину M в переменной N end if ; Tmp:= X; --Предположим, что минимальное расстояние равно X if abs (N - X) < X then --Если до второго длинного бортика расстояние меньше X, то Tmp:= N - X; --минимальное расстояние равно расстоянию до второго длинного бортика end if ; if Y < Tmp then --Если до короткого бортика расстояние меньше найденного выше --минимального, то Tmp:= Y; --Минимальное расстояние равно Y end if ; if abs (M - Y) < Tmp then --Если до второго короткого бортика плыть ближе, то Tmp:= abs (M - Y) ; --минимальное расстояние равно расстоянию до второго короткого бортика end if ; Put("Нужно проплыть минимум, чтобы выбраться из бассейна: " ) ; Put(Item => Tmp, Width => 1 ) ; end Main;

    with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; procedure Main is N, M, X, Y: Integer; -- N - короткий бортик, M - длинный бортик: -- X - Расстояние до одного из длинных бортиков -- Y - Расстояние до одного из коротких бортиков Tmp: Integer; begin Put("Ширина бассейна: "); Get(N); Put("Длина бассейна: "); Get(M); Put("Расстояние от Яши до длинного бортика: "); Get(X); Put("Расстояние от Яши до короткого бортика: "); Get(Y); if N > M then --Если при вводе перепутаны бортики, то меняем их местами: Tmp:= M; --Сохраняем длину M во временную переменную M:= N; --Присваиваем переменной M новое значение N:= Tmp; --Восстанавливаем длину M в переменной N end if; Tmp:= X; --Предположим, что минимальное расстояние равно X if abs(N - X) < X then --Если до второго длинного бортика расстояние меньше X, то Tmp:= N - X; --минимальное расстояние равно расстоянию до второго длинного бортика end if; if Y < Tmp then --Если до короткого бортика расстояние меньше найденного выше --минимального, то Tmp:= Y; --Минимальное расстояние равно Y end if; if abs(M - Y) < Tmp then --Если до второго короткого бортика плыть ближе, то Tmp:= abs(M - Y); --минимальное расстояние равно расстоянию до второго короткого бортика end if; Put("Нужно проплыть минимум, чтобы выбраться из бассейна: "); Put(Item => Tmp, Width => 1); end Main;

    Электронные часы показывают время в формате h:mm:ss (от 0:00:00 до 23:59:59), то есть сначала записывается количество часов, потом обязательно двузначное количество минут, затем обязательно двузначное количество секунд. Количество минут и секунд при необходимости дополняются до двузначного числа нулями. С начала суток прошло N секунд. Выведите, что покажут часы. На вход дается натурально число N, не превосходящее 10 7 (10000000). Выведите ответ на задачу.

    Пример ввода 1:
    3602
    Пример вывода 1:
    1:00:02

    Пример ввода 2:
    129700
    Пример вывода 2:
    12:01:40

  • with Ada.Long_Integer_Text_IO ; use Ada.Long_Integer_Text_IO ; with Ada.Text_IO ; use Ada.Text_IO ; procedure Main is subtype Sub_LI is Long_Integer range 1 ..10000000 ; N: Sub_LI; h, m, s: Long_Integer; begin Get(N) ; h:= N / 3600 ; --Получаем часы. Остаток от деления отбрасывается N:= N - h * 3600 ; --Получаем оставшиеся секунды (за вычетом часов) if h > 24 then --Так как часы не могут показывать > 24, приводим всё в удобочитаемый вид h:= h rem 24 ; --Остаток от деления на 24 даст точное количество часов elsif h = 24 then h:= 0 ; end if ; m:= N / 60 ; --Получаем минуты s:= N rem 60 ; --Получаем секунды Put(Item => h, Width => 1 ) ; Put(":" ) ; --Вывод часов и ":" if m < 10 then --Если количество минут меньше 10, выводим ведущий 0 Put(Item => 0 , Width => 1 ) ; end if ; Put(Item => m, Width => 1 ) ; Put(":" ) ; --Вывод минут и ":" if s < 10 then --Если количество секунд меньше 10, выводим ведущий 0 Put(Item => 0 , Width => 1 ) ; end if ; Put(Item => s, Width => 1 ) ; --Вывод секунд end Main;

    with Ada.Long_Integer_Text_IO; use Ada.Long_Integer_Text_IO; with Ada.Text_IO; use Ada.Text_IO; procedure Main is subtype Sub_LI is Long_Integer range 1..10000000; N: Sub_LI; h, m, s: Long_Integer; begin Get(N); h:= N / 3600; --Получаем часы. Остаток от деления отбрасывается N:= N - h * 3600; --Получаем оставшиеся секунды (за вычетом часов) if h > 24 then --Так как часы не могут показывать > 24, приводим всё в удобочитаемый вид h:= h rem 24; --Остаток от деления на 24 даст точное количество часов elsif h = 24 then h:= 0; end if; m:= N / 60; --Получаем минуты s:= N rem 60; --Получаем секунды Put(Item => h, Width => 1); Put(":"); --Вывод часов и ":" if m < 10 then --Если количество минут меньше 10, выводим ведущий 0 Put(Item => 0, Width => 1); end if; Put(Item => m, Width => 1); Put(":"); --Вывод минут и ":" if s < 10 then --Если количество секунд меньше 10, выводим ведущий 0 Put(Item => 0, Width => 1); end if; Put(Item => s, Width => 1); --Вывод секунд end Main;

  • Дано три числа. Расположите их в порядке возрастания.
  • Пример ввода:
    1 2 1
    Пример вывода:
    1 1 2
  • with Ada.Integer_Text_IO ; use Ada.Integer_Text_IO ; with Ada.Text_IO ; use Ada.Text_IO ; procedure Main is A, B, C: Integer; min, mid, max: Integer; begin Get(A) ; Get(B) ; Get(C) ; --Ищем минимальное значение min:= A; if B < min then min:= B; end if ; if C < min then min:= C; end if ; --Ищем максимальное значение max:= A; if B > max then max:= B; end if ; if C > max then max:= C; end if ; --Ищем среднее значение mid:= A; if B > min and B < max then mid:= B; end if ; if C > min and C < max then mid:= C; end if ; Put(Item => min, Width => 1 ) ; Put(" " ) ; Put(Item => mid, width => 1 ) ; Put(" " ) ; Put(Item => max, Width => 1 ) ; end Main;

    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; with Ada.Text_IO; use Ada.Text_IO; procedure Main is A, B, C: Integer; min, mid, max: Integer; begin Get(A); Get(B); Get(C); --Ищем минимальное значение min:= A; if B < min then min:= B; end if; if C < min then min:= C; end if; --Ищем максимальное значение max:= A; if B > max then max:= B; end if; if C > max then max:= C; end if; --Ищем среднее значение mid:= A; if B > min and B < max then mid:= B; end if; if C > min and C < max then mid:= C; end if; Put(Item => min, Width => 1); Put(" "); Put(Item => mid, width => 1); Put(" "); Put(Item => max, Width => 1); end Main;

    Есть две коробки, первая размером A1×B1×C1, вторая размером A2×B2×C2. Определите, можно ли разместить одну из этих коробок внутри другой, при условии, что поворачивать коробки можно только на 90 градусов вокруг ребер. Программа получает на вход числа A1, B1, C1, A2, B2, C2. Программа должна вывести одну из следующих строчек:
    - "Коробки равны", если коробки одинаковые,
    - "Первая коробка меньше второй", если первая коробка может быть положена во вторую,
    - "Первая коробка больше второй", если вторая коробка может быть положена в первую.

    Пример 1:
    Размеры первой коробки: 1 2 3
    Размеры второй коробки: 3 2 1
    Коробки равны

    Пример 2:
    Размеры первой коробки: 2 2 3
    Размеры второй коробки: 3 2 1
    Первая коробка больше второй

  • with Ada.Integer_Text_IO ; use Ada.Integer_Text_IO ; with Ada.Text_IO ; use Ada.Text_IO ; procedure main is A1, B1, C1, A2, B2, C2: Integer; min, max, mid, tmp: Integer; begin Get(A1) ; Get(B1) ; Get(C1) ; Get(A2) ; Get(B2) ; Get(C2) ; --Приводим грани в соответствие по длинам A1 => A2, B1 => B2, C1 => C2: --A1 и A2 - самые длинные, C1 и C2 - самые короткие -- "Крутим" первый ящик: min:= A1; mid:= B1; max:= C1; if B1 < min then mid:= min; min:= B1; end if ; if C1 < min then max:= min; min:= C1; end if ; if mid > max then tmp:= mid; mid:= max; max:= tmp; end if ; A1:= min; B1:= mid; C1:= max; -- "Крутим" второй ящик: min:= A2; mid:= B2; max:= C2; if B2 < min then mid:= min; min:= B2; end if ; if C2 < min then max:= min; min:= C2; end if ; if mid > max then tmp:= mid; mid:= max; max:= tmp; end if ; A2:= min; B2:= mid; C2:= max; --Проверка соответствия ящиков и вывод результата: if A1 = A2 and then B1 = B2 and then C1 = C2 then Put_Line("Коробки равны" ) ; elsif A1 >= A2 and then B1 >= B2 and then C1 >= C2 then Put_Line("Первая коробка больше второй" ) ; elsif A1 <= A2 and then B1 <= B2 and then C1 <= C2 then Put_Line("Первая коробка меньше второй" ) ; end if ; end main;

    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; with Ada.Text_IO; use Ada.Text_IO; procedure main is A1, B1, C1, A2, B2, C2: Integer; min, max, mid, tmp: Integer; begin Get(A1); Get(B1); Get(C1); Get(A2); Get(B2); Get(C2); --Приводим грани в соответствие по длинам A1 => A2, B1 => B2, C1 => C2: --A1 и A2 - самые длинные, C1 и C2 - самые короткие -- "Крутим" первый ящик: min:= A1; mid:= B1; max:= C1; if B1 < min then mid:= min; min:= B1; end if; if C1 < min then max:= min; min:= C1; end if; if mid > max then tmp:= mid; mid:= max; max:= tmp; end if; A1:= min; B1:= mid; C1:= max; -- "Крутим" второй ящик: min:= A2; mid:= B2; max:= C2; if B2 < min then mid:= min; min:= B2; end if; if C2 < min then max:= min; min:= C2; end if; if mid > max then tmp:= mid; mid:= max; max:= tmp; end if; A2:= min; B2:= mid; C2:= max; --Проверка соответствия ящиков и вывод результата: if A1 = A2 and then B1 = B2 and then C1 = C2 then Put_Line("Коробки равны"); elsif A1 >= A2 and then B1 >= B2 and then C1 >= C2 then Put_Line("Первая коробка больше второй"); elsif A1 <= A2 and then B1 <= B2 and then C1 <= C2 then Put_Line("Первая коробка меньше второй"); end if; end main;

    Написать программу, которая вычисляет стоимость междуго­роднего телефонного разговора (цена одной минуты определяется расстоянием до города, в котором находится абонент). Исходными данными для программы являются код города и длительность разговора. Ниже приведены коды некоторых городов и рекомендуемый вид экрана во время работы программы:

  • Вычисление стоимости разговора по телефону.
    Введите исходные данные:
    Код города -> 423
    Длительность (целое количество минут) -> 3
    Город: Владивосток
    Цена минуты: 4 руб.
    Стоимость разговора: 12 руб.
  • with Ada.Integer_Text_IO ; use Ada.Integer_Text_IO ; with Ada.Text_IO ; use Ada.Text_IO ; procedure Main is Code, Len: Integer; begin Put_Line("Вычисление стоимости разговора по телефону." ) ; Put_Line("Введите исходные данные:" ) ; Put("Код города -> " ) ; Get(Code) ; Put("Длительность (целое количество минут) -> " ) ; Get(len) ; case Code is when 423 => Put_Line("Город: Владивосток" ) ; Put_Line("Цена минуты: 4 руб." ) ; Put("Стоимость разговора: " ) ; Put(Item => len * 4 , Width => 1 ) ; Put_Line(" руб." ) ; when 095 => Put_Line("Город: Москва" ) ; Put_Line("Цена минуты: 2 руб." ) ; Put("Стоимость разговора: " ) ; Put(Item => len * 2 , Width => 1 ) ; Put_Line(" руб." ) ; when 815 => Put_Line("Город: Мурманск" ) ; Put_Line("Цена минуты: 3 руб." ) ; Put("Стоимость разговора: " ) ; Put(Item => len * 3 , Width => 1 ) ; Put_Line(" руб." ) ; when 846 => Put_Line("Город: Самара" ) ; Put_Line("Цена минуты: 1 руб." ) ; Put("Стоимость разговора: " ) ; Put(Item => len, Width => 1 ) ; Put_Line(" руб." ) ; when others => Put("Города с таким кодом в базе нет! Попробуйте ещё." ) ; end case ; end Main;

    with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; with Ada.Text_IO; use Ada.Text_IO; procedure Main is Code, Len: Integer; begin Put_Line("Вычисление стоимости разговора по телефону."); Put_Line("Введите исходные данные:"); Put("Код города -> "); Get(Code); Put("Длительность (целое количество минут) -> "); Get(len); case Code is when 423 => Put_Line("Город: Владивосток"); Put_Line("Цена минуты: 4 руб."); Put("Стоимость разговора: "); Put(Item => len * 4, Width => 1); Put_Line(" руб."); when 095 => Put_Line("Город: Москва"); Put_Line("Цена минуты: 2 руб."); Put("Стоимость разговора: "); Put(Item => len * 2, Width => 1); Put_Line(" руб."); when 815 => Put_Line("Город: Мурманск"); Put_Line("Цена минуты: 3 руб."); Put("Стоимость разговора: "); Put(Item => len * 3, Width => 1); Put_Line(" руб."); when 846 => Put_Line("Город: Самара"); Put_Line("Цена минуты: 1 руб."); Put("Стоимость разговора: "); Put(Item => len, Width => 1); Put_Line(" руб."); when others => Put("Города с таким кодом в базе нет! Попробуйте ещё."); end case; end Main;

В разделе кратко описаны операторы if и case , функция abs() и алгоритм обмена переменных местами.

Определение .

Это шестигранник, основаниями которого являются два равных квадрата, а боковые грани представляют собой равные прямоугольники

Боковое ребро - это общая сторона двух смежных боковых граней

Высота призмы - это отрезок, перпендикулярный основаниям призмы

Диагональ призмы - отрезок, соединяющий две вершины оснований, которые не принадлежат к одной грани

Диагональная плоскость - плоскость, которая проходит через диагональ призмы и ее боковые ребра

Диагональное сечение - границы пересечения призмы и диагональной плоскости. Диагональное сечение правильной четырехугольной призмы представляет собой прямоугольник

Перпендикулярное сечение (ортогональное сечение) - это пересечение призмы и плоскости, проведенной перпендикулярно ее боковым ребрам

Элементы правильной четырехугольной призмы

На рисунке изображены две правильные четырехугольные призмы, у которых обозначены соответствующими буквами:

  • Основания ABCD и A 1 B 1 C 1 D 1 равны и параллельны друг другу
  • Боковые грани AA 1 D 1 D, AA 1 B 1 B, BB 1 C 1 C и CC 1 D 1 D, каждая из которых является прямоугольником
  • Боковая поверхность - сумма площадей всех боковых граней призмы
  • Полная поверхность - сумма площадей всех оснований и боковых граней (сумма площади боковой поверхности и оснований)
  • Боковые ребра AA 1 , BB 1 , CC 1 и DD 1 .
  • Диагональ B 1 D
  • Диагональ основания BD
  • Диагональное сечение BB 1 D 1 D
  • Перпендикулярное сечение A 2 B 2 C 2 D 2 .

Свойства правильной четырехугольной призмы

  • Основаниями являются два равных квадрата
  • Основания параллельны друг другу
  • Боковыми гранями являются прямоугольники
  • Боковые грани равны между собой
  • Боковые грани перпендикулярны основаниям
  • Боковые ребра параллельны между собой и равны
  • Перпендикулярное сечение перпендикулярно всем боковым ребрам и параллельно основаниям
  • Углы перпендикулярного сечения - прямые
  • Диагональное сечение правильной четырехугольной призмы представляет собой прямоугольник
  • Перпендикулярное (ортогональное сечение) параллельно основаниям

Формулы для правильной четырехугольной призмы

Указания к решению задач

При решении задач на тему "правильная четырехугольная призма " подразумевается, что:

Правильная призма - призма в основании которой лежит правильный многоугольник, а боковые ребра перпендикулярны плоскостям основания. То есть правильная четырехугольная призма содержит в своем основании квадрат . (см. выше свойства правильной четырехугольной призмы) Примечание . Это часть урока с задачами по геометрии (раздел стереометрия - призма). Здесь размещены задачи, которые вызывают трудности при решении. Если Вам необходимо решить задачу по геометрии, которой здесь нет - пишите об этом в форуме . Для обозначения действия извлечения квадратного корня в решениях задач используется символ √ .

Задача.

В правильной четырёхугольной призме площадь основания 144 см 2 , а высота 14 см. Найти диагональ призмы и площадь полной поверхности.

Решение .
Правильный четырехугольник - это квадрат.
Соответственно, сторона основания будет равна

144 = 12 см.
Откуда диагональ основания правильной прямоугольной призмы будет равна
√(12 2 + 12 2 ) = √288 = 12√2

Диагональ правильной призмы образует с диагональю основания и высотой призмы прямоугольный треугольник. Соответственно, по теореме Пифагора диагональ заданной правильной четырехугольной призмы будет равна:
√((12√2) 2 + 14 2 ) = 22 см

Ответ : 22 см

Задача

Определите полную поверхность правильной четырехугольной призмы, если ее диагональ равна 5 см, а диагональ боковой грани равна 4 см.

Решение .
Поскольку в основании правильной четырехугольной призмы лежит квадрат, то сторону основания (обозначим как a) найдем по теореме Пифагора:

A 2 + a 2 = 5 2
2a 2 = 25
a = √12,5

Высота боковой грани (обозначим как h) тогда будет равна:

H 2 + 12,5 = 4 2
h 2 + 12,5 = 16
h 2 = 3,5
h = √3,5

Площадь полной поверхности будет равна сумме площади боковой поверхности и удвоенной площади основания

S = 2a 2 + 4ah
S = 25 + 4√12,5 * √3,5
S = 25 + 4√43,75
S = 25 + 4√(175/4)
S = 25 + 4√(7*25/4)
S = 25 + 10√7 ≈ 51,46 см 2 .

Ответ : 25 + 10√7 ≈ 51,46 см 2 .

2017-2018 Тренировочная работа по математике 11 класс

Вариант 2 (базовый)

Ответом к каждому заданию является конечная десятичная дробь, целое число или последовательность цифр. Запишите ответы к заданиям в поле ответа в тексте работы, а затем перенесите в бланк ответов №1 справа от номера соответствующего задания. Если ответом является последовательность цифр, то запишите эту последовательность в бланк ответов № 1 без пробелов, запятых и других дополнительных символов. Каждую цифру, знак «минус» и запятую пишите в отдельной клеточке. Единицы измерений писать не нужно.

1

Ответ: _________________.

2 . Найдите значение выражения:

Ответ: _________________.

3 . В школе девочки составляют 51 % числа всех учащихся. Сколько в этой школе девочек, если их на 8 человек больше, чем мальчиков?

Ответ: _________________.

4 . Среднее гармоническое трёх чисел а , b и с, вычисляется по формулеНайти среднее гармоническое чисел

Ответ: _________________.

5. Вычислите:

Ответ: _________________.

6 . В мужском общежитии института в каждой комнате можно поселить не более трёх человек. Какое наименьшее количество комнат нужно для поселения 79 иногородних студентов?

Ответ: _________________.

7 .Найдите корень уравнения

Ответ: _________________.

8 . Квартира состоит из двух комнат, кухни, коридора и санузла(см. чертёж). Первая комната имеет 4 м на 4 м, вторая – 4 м на 3,5 м, кухня имеет размеры 4 м на 3,5 м, санузел – 1,5 м на 2 м. Найдите площадь коридора. Ответ дайте в квадратных метрах.

Ответ: _________________.

9 . Установите соответствие между величинами и их возможными значениями: к каждому элементу первого столбца подберите соответствующий элемент из второго столбца.

ВЕЛИЧИНЫ ЗНАЧЕНИЯ

А) объём ящика комода 1) 0,75 л

Б) объём воды в Каспийском море 2) 78200 км 3

В) объём пакета ряженки 3) 96 л

Г) объём железнодорожного вагона 4) 90 м 3

В таблице под каждой буквой, соответствующей величине, укажите номер её возможного значения.

Ответ:

Ответ: _________________.

10 . На олимпиаде по русскому языку участников рассаживают по трём аудиториям. В первых двух по 130 человек, оставшихся проводят в запасную аудиторию в другом корпусе. При подсчёте выяснилось, что всего было 400 участников. Найдите вероятность того, что случайно выбранный участник писал олимпиаду в запасной аудитории.

Ответ: _________________.

11 . На рисунке изображён график значений атмосферного давления в некотором городе за три дня. По горизонтали указаны дни недели и время, по вертикали – значения атмосферного давления в миллиметрах ртутного столба. Найдите значение атмосферного давления в среду в 12 часов. Ответ дайте в миллиметрах ртутного столба.

Ответ: ____________.

12. Из пункта А в пункт D ведут три дороги. Через пункт В едет грузовик со средней скоростью 44 км/ч, через пункт С едет автобус со средней скоростью 36 км/ч. Третья дорога - без промежуточных пунктов, и по ней движется легковой автомобиль со средней скоростью 48 км/ч. На схеме указаны расстояние между пунктами в километрах. Автобус, грузовик и автомобиль одновременно выехали из пункта А . Какая машина добралась до D позже других? В ответе укажите, сколько часов она находилась в дороге.

Ответ: _________________.

13. К правильной шестиугольной призме с ребром 1 приклеили правильную шестиугольную пирамиду с ребром 1 так, что грани оснований совпали. Сколько граней у получившего многогранника (невидимые рёбра на рисунке не изображены)?

Ответ: _________________.

14. На рисунке изображён график функции Точки A , B , C , D и E задают на оси х четыре интервала. Пользуясь графиком, поставьте в соответствие каждому интервалу характеристику функции или её производной.

ИНТЕРВАЛЫ ХАРАКТЕРИСТИКИ ФУНКЦИИ ИЛИ ПРОИЗВОДНОЙ

А) (А; В) 1) функция меняет знак с « – » на « +»

Б) (В; С) 2) производная меняет знак с « – » на « +»

В) (С; D ) 3) производная меняет знак с « + » на «–»

Г) ( D ; Е) 4) функция положительна и возрастает

В таблице под каждой буквой, укажите соответствующий номер.

15 . На окружности с центром О отмечены точки А и В так, что Длина меньшей дуги АВ равна 3. Найдите длину большей дуги.

Ответ: _________________.

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

Ответ: _________________.

17. Каждому из четырёх неравенств в левом столбце соответствует одно из решений в правом столбце. Установите соответствие между неравенствами и их решениями.

НЕРАВЕСТВА РЕШЕНИЯ

А)

Б)

В)

Г)

Впишите в приведённую в ответе таблицу под каждой буквой соответствующий номер решения.

Ответ:

18 . На зимней Олимпиаде сборная России завоевала медалей больше, чем сборная Канады, сборная Канады – больше, чем сборная Германии, а сборная Норвегии – меньше, чем сборная Канады.

Выберите утверждения, которые верны при указанных условиях.

1) Из названных сборных команда Канады заняла второе место по числу медалей.

2) Среди названных сборных есть три, завоевавшие равное количество медалей.

3) Сборная Германии завоевала больше медалей, чем сборная России.

4) Сборная России завоевала больше медалей, чем каждая из остальных трёх сборных.

В ответе укажите номера верных утверждений в порядке возрастания.

Ответ: _________________.

19 . Четы рёхзначное число А состоит из цифр 3; 4; 8; 9, а четы рёхзначное число В - из цифр 6; 7; 8; 9. Известно, что В = 2 А. Найдите число А. В ответе укажите какое – нибудь одно такое число, кроме числа 3489.

Ответ: _________________.

20 . Прямоугольник разбит на четыре маленьких прямоугольника двумя прямолинейными разрезами. Периметры трёх из них начиная с левого верхнего и далее по часовой стрелке равны 17, 15 и 18. Найдите периметр четвёртого прямоугольника.

17

15

?

18