Как вычислить объем коробки. Сочетания с повторениями. Какая самая оптимальная стратегия для заключенных

Документ

20? Во сколько раз километр больше миллиметра? ... два сосуда емкостью 3 и 5 литров, набрать 4 литра воды? 7) Дан ... радиус ) 78. Утверждение, которое надо доказать (теорема) 79. Самое меньшее ... окружности циркуль Объём одного... различитель Граница шара сфера Независимая...

  • Загадки, связанные е физическими явлениями в природе

    Документ

    Нужно два снаряда; два однопалубных... Во сколько раз площадь большого поршня больше ... с центром (радиус ) Масса 1 ... чтобы получилось число больше 2 и меньше 3? (запятая) ... объём ) Множество точек плоскости, равноудалённых от данной ... , надувной шар , бумажная коробка...

  • Полый шар (внешний радиус R1, внутренний R2), сделанный из...

    Документ

    По этим данным постоянную Больцмана604 28064 604 28064 Два одинаковых баллона соединены... . 909 317032 Во сколько раз энергия заряда, распределенного равномерно по поверхности шара с радиусом , больше (или меньше ) энергии...

  • Методическая разработка для организации самостоятельной работы по дисциплине «Математика»

    Методическая разработка

    ... шар . Сколько процентов материала сточено? 8. Если радиусы трёх шаров относятся как 1: 2: 3, то объём большего шара в три раза больше суммы объёмов меньших шаров ...

  • Расчетно-графическое задание №1

    Документ

    ... радиусом R = 10 см относительно оси, касательной к кольцу. 3. Во сколько раз релятивистская масса протона больше ... , описанной около данного шестиугольника. 4. Шарик... в точке пересечения высот. 8. Два шара массами m и 2m (m ... почти в 10 раз меньше , чем у...

  • Комбинаторные задачи

    1 . Катя, Маша и Ира играют с мячом. Каждая из них должна по одному разу бросить мяч в сторону каждой подруги. Сколько раз каждая из девочек должна бросать мяч? Сколько всего раз будет подбрасываться мяч? Определите, сколько раз будет подбрасываться мяч, если в игре примут участие: четверо детей; пятеро детей.

    2 . Даны три фасада и две крыши, имеющие одинаковую форму, но раскрашенные в различные цвета: фасады - в желтый, синий и красный цвета, а крыши - в синий и красный цвета. Какие домики можно построить? Сколько всего комбинаций?

    3 . Даны три одинаковых по форме фасада домика: синий, желтый и красный - и три крыши: синяя, желтая и красная. Какие домики можно построить? Сколько всего комбинаций?

    4 . Рисунки на флажках могут иметь вид круга, квадрата, треугольника или звезды, причем их можно раскрасить в зеленый или красный цвет. Сколько всего может быть разных флажков?

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

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

    7. Сколькими способами можно рассадить в ряд на стулья трех учеников? Выписать все возможные случаи.

    8 . Сколькими способами могут четыре (пять) человек стать в ряд?

    9 . С разных сторон на холм поднимаются три тропинки и сходятся на вершине. Составьте множество маршрутов, по которым можно подняться на холм и спуститься с него. Решите ту же задачу, если вверх и вниз надо идти по разным тропинкам.

    10 . Из Акулово в Рыбницу ведут три дороги, а из Рыбницы в Китово - четыре дороги. Сколькими способами можно проехать из Акулово в Китово через Рыбницу?

    11 . Слог называется открытым, если он начинается с согласной буквы, а заканчивается гласной. Сколько открытых двухбуквенных слогов можно написать, используя буквы «а», «б», «в», «г», «е», «и», «о»? Выпишите эти слоги.

    12. Сколько различных вариантов костюмов из блузки и юбки можно составить, если имеется 4 блузки и 4 юбки?

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

    14 . Записать все возможные двузначные числа, используя цифры 7 и 4.

    15 . Миша запланировал купить: карандаш, линейку, блокнот и тетрадь. Сегодня он купил только два разных предмета. Что мог купить Миша, если считать, что в магазине были все нужные ему учебные принадлежности?

    16 . Четыре человека обменялись рукопожатиями. Сколько было всего рукопожатий?

    17 . Сколько существует двузначных чисел, в записи которых отсутствует цифра 0?

    18 . Записать все возможные трехзначные числа, которые можно составить из цифр 1 и 2.

    19 . Выписать все возможные четные трехзначные числа, составленные из цифр 1 и 2.

    20 . Записать все возможные двузначные числа, при записи которых используются цифры 2, 8 и 5.

    21 . Сколько существует различных двузначных чисел, все цифры которых нечетные?

    22 . Какие трехзначные числа можно записать с помощью цифр 3, 7 и 1 при условии, что в записи числа не должно быть одинаковых цифр? Сколько таких чисел?

    23 . Сколько трехзначных чисел можно составить из цифр 1, 2, 4, 6, если никакую цифру не использовать более одного раза? Сколько среди этих чисел будет четных? Сколько нечетных?

    24 . В автомашине пять мест. Сколькими способами пять человек могут усесться в эту машину, если занять место водителя могут только двое из них?

    25. В классе 5 одноместных парт. Сколькими способами можно рассадить на них двух (трех) вновь прибывших школьников?

    26 . Вспомните басню И. Крылова «Квартет»:

    Проказница Мартышка, Осел, Козел да косолапый Мишка затеяли сыграть Квартет. Ударили в смычки, дерут, а толку нет. «Стой, братцы, стой! - кричит Мартышка. - Погодите! Как музыке идти? Ведь вы не так сидите». Сколькими различными способами могут попытаться сесть эти музыканты? Может ли это улучшить качество их игры?

    27 . Мальчиков и девочек рассаживают в ряд на подряд расположенные места, причем мальчики садятся на нечетные места, а девочки - на четные. Сколькими способами можно это сделать, если:

    а) на 6 мест рассаживают 3 мальчиков и 3 девочек;

    б) на 10 мест рассаживают 5 мальчиков и 5 девочек?

    28 . На пустую шашечную доску надо поместить две шашки - черную и белую. Сколько различных положений могут они занимать на доске?

    29. Пусть номер автомобиля составляется из двух букв, за которыми следуют две цифры, например АВ-53. Сколько разных номеров можно составить, если использовать 5 букв и 6 цифр?

    30 . Номер автомобиля состоит из трех букв и четырех цифр. Сколько существует различных автомобильных номеров (три буквы берутся из 29 букв русского алфавита)?

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

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

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

    34 . Имеется пять кубиков, которые отличаются друг от друга только цветом: 2 красных, 1 белый и 2 черных. Есть два ящика А и Б, причем в А помещается 2 кубика, а в Б - 3. Сколькими различными способами можно разместить эти кубики в ящиках А и Б?

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

    1) иди сейчас по правой тропинке;

    2) на следующей развилке не выбирай правую тропинку;

    3) на третьей развилке не ходи по левой тропинке.

    Пролетавший мимо голубь шепнул Ивану-царевичу, что только один совет ворона верный и что обязательно надо пройти по тропинкам разных направлений. Наш герой выполнил задание и попал в волшебный сад. Каким маршрутом он воспользовался?

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

      Введите два целых числа и нажмите 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() и алгоритм обмена переменных местами.

    Комбинаторика - это наука, с который каждый встречается в повседневной жизни: сколько способов выбрать 3 дежурных для уборки класса или сколько способов составить слово из данных букв. В целом, комбинаторика позволяет вычислить, сколько различных комбинаций, согласно некоторым условиям, можно составить из заданных объектов (одинаковых или разных).

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

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



    Калькуляторы онлайн и примеры

    Задачи по комбинаторике с решениями онлайн

    Задача 1. У мамы 2 яблока и 3 груши. Каждый день в течение 5 дней подряд она выдает по одному фрукту. Сколькими способами это может быть сделано?

    Задача 2. Предприятие может предоставить работу по одной специальности 4 женщинами, по другой - 6 мужчинам, по третьей - 3 работникам независимо от пола. Сколькими способами можно заполнить вакантные места, если имеются 14 претендентов: 6 женщин и 8 мужчин?

    Задача 3. В пассажирском поезде 9 вагонов. Сколькими способами можно рассадить в поезде 4 человека, при условии, что все они должны ехать в различных вагонах?

    Задача 4. В группе 9 человек. Сколько можно образовать разных подгрупп при условии, что в подгруппу входит не менее 2 человек?

    Задача 5. Группу из 20 студентов нужно разделить на 3 бригады, причем в первую бригаду должны входить 3 человека, во вторую - 5 и в третью - 12. Сколькими способами это можно сделать.

    Задача 6. Для участия в команде тренер отбирает 5 мальчиков из 10. Сколькими способами он может сформировать команду, если 2 определенных мальчика должны войти в команду?

    Задача 7. В шахматном турнире принимали участие 15 шахматистов, причем каждый из них сыграл только одну партию с каждым из остальных. Сколько всего партий было сыграно в этом турнире?

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

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

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

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

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

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

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

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

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

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

    • Основания 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 .