Как решать подобные задачи по ИВТ(Паскаль, подготовка к ЕГЭ)(см.)?







+5 +/-
Профиль пользователя Iranian Спросил: Iranian   (рейтинг 5386) Категория: образование

Ответов: 2

2 +/-

Данные задачи относятся к заданиям ЕГЭ по информатике, суть которых - анализ кода программы, содержащей циклы и ветвления. От решающего задачу требуется проанализировать ход выполнения программы, для этого необходимо знать особенности выполнения циклов, а так же суть работы операторов div и mod.

Оператор div выполняет целочисленное деление (без остатка), например, значением выражения 56 div 10 будет 5. Другой пример: 5 div 10 даёт 0, поскольку делимое меньше делителя.

Оператор mod выдаёт остаток от целочисленного деления, например, значением выражения 56 mod 10 будет 6. Другой пример: 5 mod 10 равно 5.

Теперь рассмотрим первый из предложенных алгоритмов.

  1. Цикл while выполняется до тех пор, пока число x остаётся большим 10. В конце каждого этапа выполнения цикла число х нацело делится на 10, то есть от него отсекается последняя цифра. Таким образом, если x - однозначное число, большее нуля, то цикл выполнится однократно, если x - двузначное - то двукратно и т. д. Таким образом, цикл предназначен для перебора цифр в числе x.
  2. Переменная c является вспомогательной, и на каждом шаге выполнения цикла представляет собой последнюю цифру числа x, значение которого меняется в цикле (см. пункт 1).
  3. Переменная a предназначена для суммирования всех цифр числа x: перед началом цикла она обнулена, на каждом шаге выполнения цикла к её значению прибавляется последняя цифра числа x.
  4. Переменная b предназначена для сохранения значения наименьшей цифры в числе x: перед началом цикла ей присвоено значение 10, далее, если текущее значение переменной c меньше b, то b присваивается значение c.

Итак, нужно, чтобы на выходе мы в качестве значения a получили бы 13, а значения b - 5 при наименьшем возможном x. В таком случае нам известно, что число x - двузначное, одна из его цифр - 5, а сумма цифр числа равняется 13. Очевидно, что данному условию удовлетворяет число 85: вторая цифра числа - это 8, а 85 больше 58.

Ответ: 58.

Теперь рассмотрим второй код.

  1. Цикл выполняется до тех пор, пока число x остаётся большим 100. После выполнения очередного шага цикла число x нацело делится на 100.
  2. Переменная a, обнуленная вначале, хранит количество выполненных шагов цикла, то есть мы знаем, что цикл должен выполниться дважды. То есть число x является четырехзначным, поскольку мы ищем наибольшее число.
  3. Переменная b, обнуленная вначале, хранит сумму остатков от целочисленного деления b на 100. Такая операция отсекает от цисла две его последние цифры.

Что это значит? Допустим, было введено число 1234. На первом шаге цикла получим:

b=0+(1234 mod 100)=34. То есть b - это число - последние две цифры числа x.

На втором шаге выполнения цикла число x будет равно 12 (1234 div 100=12). b=45+(12 mod 100)=34+12=46. То есть на втором шаге выполнения цикла мы к предыдущему значению прибавляем число - первые две цифры числа x, и полученная сумма выводится на печать.

Итак, мы знаем, что x - четырёхзначное число, сумма двух чисел - первых двух и последних двух цифр которого должна равняться 26). Надо разбить число 26 на подходящие слагаемые так, чтобы одно из них было максимально возможным. Получаем: 26=26+0

Наибольшим числом будет 2600.

Ответ: 2600

Подборка ссылок по решению таких задач:

Множество разобранных примеров похожих задач можно найти тут и тут.

Видеоурок с разбором типовой задачи

Презентация с типовыми алгоритмами

Ответил на вопрос: Modesty  
1 +/-

В решении используется элементарная математика и понимание кода программы. В разделе "Var" задаются все переменные, которые используются в коде задачи. Так "integer" - это целые числа, "real" - действительные числа. Конструкция "Begin....end." это "тело" программы. Оператор "Div" - целая часть от деления, "mod" - остаток от деления. Так в первой задачи мы сначала присваиваем а и b значение 0 и 10 соответственно. Потом если введенное значение Х>0 значение а увеличивается на целую часть деления X на 10. Если значение целой части меньше чем значение b, то значению b присваивается значение целой части. В конце цикла значению x присваивается значение остатка от деления Х на 10. После чего снова запускается цикл от сравнения X c нулём. Как только значение X станет меньше или равен нулю программа завершится и выведет полученные значение a и b. Чтобы значение b стало равно 5, необходимо, чтобы в последний заход цикла целая часть от деления была равна 5. Ну а чтобы а=13, необходимо, чтобы в первый прогон цикла целая часть была, такова, чтобы при последующем добавлении значения "5" получилось 13, то есть в первый раз целая часть равна 8. Таким образом, минимальное значение X=85.

Ответил на вопрос: Amandus  

Похожие вопросы

Спросил
1 Отв.
Как понять информатику?
Ответ: Информатика это разносторонняя наука о современных технологиях. У нее есть множество аспектов. Чтобы лучше в ней разобраться больше времени проводите за ... Читать далее...
Автор вопроса: Orthicon, в категории
Спросил Orthicon
1 Отв.
Как называется набор всех установленных программ на компьютере?
Ответ: В подавляющем большинстве случаев этот набор называется бардак. Так как установлены нужные и ненужные, для посмотреть, программы, а так же всякие вирусы, ... Читать далее...
Автор вопроса: Mcarron, в категории | | | |
Спросил Mcarron
1 Отв.
Как зашифровать свое имя в двоичном коде?
Ответ: Если вы любитель мозговых штурмов и у вас масса свободного времени, то можно, используя Коды символов ASCII выразить своё имя, к примеру, в десятеричном ... Читать далее...
Автор вопроса: Burnier, в категории | | |
Спросил Burnier
2 Отв.
Что такое «класс» в программировании?
Ответ: Классами программисты описывают некие абстрактные типы данных. В классе также определяются свойства, данные и методы обработки данных. Классы можно объявлять ... Читать далее...
Автор вопроса: Carita, в категории | |
Спросил Carita
1 Отв.
Как решить эти задачи?
Ответ: 3. Дано: N=128 N=2^I I = 7 Найти V Решение: V=K*I=8192*7=57344 bit = 7КВ 4.Переводит 3,5 КБ в биты. 3,5*1024*8=28672 бит весит текст ... Читать далее...
Автор вопроса: Modesta, в категории |
Спросил Modesta
1 Отв.
Как получить оповещение о появлении на чужом сайте определенной фразы?
Ответ: Закажите у веб-программиста Парсер который будет постоянно проверять контентна сайте и проверять в нем наличие той самой ... Читать далее...
Автор вопроса: Crankpin, в категории | | | | |
Спросил Crankpin
3 Отв.
Как научиться писать компьютерные программы и зарабатывать на этом?
Ответ: Советую углубиться немного в другую отрасль - веб-программирования. Это очень выгодно и прибыльно. В среднем цена за сайт составляет от 3 до 5 тысяч рублей. ... Читать далее...
Автор вопроса: Contraction, в категории | |
Спросил Contraction
1 Отв.
Каково основное преимущество, получаемое при использовании функции?
Ответ: Функции позволяют делать одно и то же действие много раз подряд одинаково хорошо, в этом главное преимущество как функций, так и компьютеров в целом :) автор ... Читать далее...
Автор вопроса: Garboils, в категории |