Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования — ЕГЭ по информатике — страница 2

ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий

Выбрать другую тему

Каталог заданий ЕГЭ

Выберите раздел или тему для подготовки.

Все задания 2475

Типы задач

Учебные подборки по навыкам из каталога «Решу ЕГЭ», включая дополнительные задания.

Графы, таблицы и маршруты · 1, Д1, Д3 175Таблицы истинности · 2, Д2 108Поиск и отбор данных в таблицах · 3, Д3, Д4 84Однозначное кодирование и условие Фано · 4, Д4, Д8 76Преобразование записи числа · 5, Д5 75Черепаха, Чертёжник и Робот · 6, Д5, Д12 50Изображения, звук и передача файлов · 7, Д7 133Подсчёт слов и последовательностей · 8, Д8 81Электронные таблицы и формулы · 9, Д7, Д10 100IP-адреса, маски и адреса файлов · 10, Д28 54Объём информации, пароли и кодировки · 11, 7, Д11 135Редактор и машина Тьюринга · 12 66Подсчёт программ исполнителя · 13 74Системы счисления и арифметика · 14, Д1, Д14 114Логические выражения и уравнения · 15, Д15, Д23 123Рекурсия и рекуррентные зависимости · 16, Д16 74Пары и тройки в числовых данных · 17 37Оптимальный маршрут по клетчатому полю · 18 61Игры и выигрышные стратегии · 19–21, Д26 167Параллельные вычисления · 22 40Подсчёт путей в графе · Д13 38Обработка текстового файла · 24 49Делители, маски и отбор чисел · 25, Д17 43Сортировка, отбор и моделирование · 26 45Эффективная обработка данных и кластеры · 27 45Поиск в текстовом документе · Д29 67Файлы и каталоги · Д7, Д28 4Поисковые запросы и множества · Д14, Д17 33Составление команд исполнителя · Д5 4Выполнение и анализ программы · Д6, Д18, Д21, Д22 145Анализ алгоритмов с массивами · Д16, Д19 62Поиск ошибок в программе · Д24 27Самостоятельное написание алгоритма · Д19, Д25, Д27 86

Темы информатики

Задания с общим условием 133

1. Цифровая грамотность211
Все задания раздела 2111.1 Основные тенденции развития компьютерных технологий. Параллельные вычисления. Многопроцессорные системы. Распределённые вычислительные системы и обработка больших данных 401.2 Принципы построения и аппаратные компоненты компьютерных сетей. Сетевые протоколы. Сеть Интернет. Адресация в сети Интернет. Протоколы стека TCP/IP. Система доменных имён. Разделение IP-сети на подсети с помощью масок подсетей 871.3 Файловая система. Поиск в файловой системе. Принципы размещения и именования файлов в долговременной памяти. Шаблоны для описания групп файлов 41.4 Скорость передачи данных. Зависимость времени передачи от информационного объёма данных и характеристик канала связи 801.5 Шифрование данных. Симметричные и несимметричные шифры. Шифры простой замены. Шифр Цезаря. Шифр Виженера. Алгоритм шифрования RSA 01.6 Коды, позволяющие обнаруживать и исправлять ошибки, возникающие при передаче данных. Расстояние Хэмминга. Кодирование с повторением битов. Коды Хэмминга 0
2. Теоретические основы информатики1127
Все задания раздела 11272.1 Двоичное кодирование. Равномерные и неравномерные коды. Декодирование сообщений, записанных с помощью неравномерных кодов. Условие Фано. Построение однозначно декодируемых кодов с помощью дерева 762.2 Теоретические подходы к оценке количества информации. Единицы измерения количества информации. Алфавитный подход к оценке количества информации. Закон аддитивности информации. Формула Хартли. Информация и вероятность. Формула Шеннона 2162.3 Системы счисления. Развёрнутая запись целых и дробных чисел в позиционной системе счисления. Свойства позиционной записи числа: количество цифр в записи, признак делимости числа на основание системы счисления. Алгоритм перевода целого числа из P-ичной системы счисления в десятичную. Алгоритм перевода конечной P-ичной дроби в десятичную. Алгоритм перевода целого числа из десятичной системы счисления в P-ичную. Перевод конечной десятичной дроби в P-ичную. Двоичная, восьмеричная и шестнадцатеричная системы счисления, связь между ними. Арифметические операции в позиционных системах счисления 1142.4 Троичная уравновешенная система счисления. Двоично-десятичная система счисления 02.5 Кодирование текстов. Кодировка ASCII. Однобайтные кодировки. Стандарт UNICODE. Кодировка UTF-8. Определение информационного объёма текстовых сообщений 1352.6 Кодирование изображений. Оценка информационного объёма графических данных при заданных разрешении и глубине кодирования цвета. Цветовые модели. Кодирование звука. Оценка информационного объёма звуковых данных при заданных частоте дискретизации и разрядности кодирования 772.7 Алгебра логики. Понятие высказывания. Высказывательные формы (предикаты). Кванторы существования и всеобщности. Логические операции. Таблицы истинности. Логические выражения. Логические тождества. Логические операции и операции над множествами. Законы алгебры логики. Эквивалентные преобразования логических выражений. Логические уравнения и системы уравнений. Логические функции. Зависимость количества возможных логических функций от количества аргументов. Канонические формы логических выражений 2642.8 Совершенные дизъюнктивные конъюнктивные нормальные формы, алгоритмы их построения по таблице истинности 02.9 Логические элементы в составе компьютера. Триггер. Сумматор. Многоразрядный сумматор. Построение схем на логических элементах по заданному логическому выражению. Запись логического выражения по логической схеме 02.10 Модели и моделирование. Цели моделирования. Адекватность модели моделируемому объекту или процессу. Формализация прикладных задач. Представление результатов моделирования в виде, удобном для восприятия человеком. Графическое представление данных (схемы, таблицы, графики). 1752.11 Представление целых чисел в памяти компьютера. Ограниченность диапазона чисел при ограничении количества разрядов. Переполнение разрядной сетки. Беззнаковые и знаковые данные. Знаковый бит. Двоичный дополнительный код отрицательных чисел.Побитовые логические операции. Логический, арифметический и циклический сдвиги. Шифрование с помощью побитовой операции «исключающее ИЛИ» 02.12 Представление вещественных чисел в памяти компьютера. Значащая часть и порядок числа. Диапазон значений вещественных чисел. Проблемы хранения вещественных чисел, связанные с ограничением количества разрядов. Выполнение операций с вещественными числами, накопление ошибок при вычислениях 02.13 Графы. Основные понятия. Виды графов. Описание графов с помощью матриц смежности, весовых матриц, списков смежности. Решение алгоритмических задач, связанных с анализом графов (построение оптимального пути между вершинами графа, определение количества различных путей между вершинами ориентированного ациклического графа) 2132.14 Деревья. Бинарное дерево. Деревья поиска. Способы обхода дерева. Представление арифметических выражений в виде дерева. Использование графов и деревьев при описании объектов и процессов окружающего мира 02.15 Дискретные игры двух игроков с полной информацией. Построение дерева перебора вариантов, описание стратегии игры в табличной форме. Выигрышные и проигрышные позиции. Выигрышные стратегии 1672.16 Средства искусственного интеллекта. Идентификация и поиск изображений, распознавание лиц. Использование методов искусственного интеллекта в обучающих системах. Использование методов искусственного интеллекта в робототехнике. Интернет вещей. Нейронные сети 0
3. Алгоритмы и программирование943
Все задания раздела 9433.1 Формализация понятия алгоритма. Машина Тьюринга как универсальная модель вычислений 63.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность 323.3 Определение возможных результатов работы простейших алгоритмов управления исполнителями и вычислительных алгоритмов. Определение исходных данных, при которых алгоритм может дать требуемый результат 4143.4 Алгоритмы обработки натуральных чисел, записанных в позиционных системах счисления: разбиение записи числа на отдельные цифры, нахождение суммы и произведения цифр, нахождение максимальной (минимальной) цифры. Представление числа в виде набора простых сомножителей. Алгоритм быстрого возведения в степень. Поиск простых чисел в заданном диапазоне с помощью алгоритма «решето Эратосфена» 433.5 Многоразрядные целые числа, задачи длинной арифметики 03.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования 1133.7 Рекурсия. Рекурсивные процедуры и функции. Использование стека для организации рекурсивных вызовов 743.8 Численные методы. Точное и приближённое решения задачи. Численное решение уравнений с помощью подбора параметра. Численные методы решения уравнений: метод перебора, метод половинного деления. Приближённое вычисление длин кривых. Вычисление площадей фигур с помощью численных методов (метод прямоугольников, метод трапеций). Поиск максимума (минимума) функции одной переменной методом половинного деления 03.9 Обработка символьных данных. Встроенные функции языка программирования для обработки символьных строк. Алгоритмы обработки символьных строк: подсчёт количества появлений символа в строке, разбиение строки на слова по пробельным символам, поиск подстроки внутри данной строки, замена найденной подстроки на другую строку. Генерация всех слов в некотором алфавите, удовлетворяющих заданным ограничениям. Преобразование числа в символьную строку и обратно 1183.10 Массивы и последовательности чисел. Вычисление обобщённых характеристик элементов массива или числовой последовательности (суммы, произведения, среднего арифметического, минимального и максимального элементов, количества элементов, удовлетворяющих заданному условию). Линейный поиск заданного значения в массиве. Алгоритмы работы с элементами массива с однократным просмотром массива. Сортировка одномерного массива. Простые методы сортировки (метод пузырька, метод выбора, сортировка вставками). Сортировка слиянием. Быстрая сортировка массива (алгоритм QuickSort). Двоичный поиск в отсортированном массиве 2503.11 Двумерные массивы (матрицы). Алгоритмы обработки двумерных массивов: заполнение двумерного числового массива по заданным правилам, поиск элемента в двумерном массиве, вычисление максимума (минимума) и суммы элементов двумерного массива, перестановка строк и столбцов двумерного массива 613.12 Словари (ассоциативные массивы, отображения). Хэш-таблицы. Построение алфавитно-частотного словаря для заданного текста 03.13 Стеки. Анализ правильности скобочного выражения. Вычисление арифметического выражения, записанного в постфиксной форме. Очереди. Использование очереди для временного хранения данных 03.14 Алгоритмы на графах. Построение минимального остовного дерева взвешенного связного неориентированного графа. Количество различных путей между вершинами ориентированного ациклического графа. Алгоритм Дейкстры 03.15 Деревья. Реализация дерева с помощью ссылочных структур. Двоичные (бинарные) деревья. Построение дерева для заданного арифметического выражения. Рекурсивные алгоритмы обхода дерева. Использование стека и очереди для обхода дерева 03.16 Динамическое программирование как метод решения задач с сохранением промежуточных результатов. Задачи, решаемые с помощью динамического программирования: вычисление рекурсивных функций, подсчёт количества вариантов, задачи оптимизации 613.17 Понятие об объектно-ориентированном программировании. Объекты и классы. Свойства и методы объектов. Объектно-ориентированный анализ. Разработка программ на основе объектно-ориентированного подхода. Инкапсуляция, наследование, полиморфизм 0
4. Информационные технологии325
Все задания раздела 3254.1 Анализ данных. Основные задачи анализа данных: прогнозирование, классификация, кластеризация, анализ отклонений. Последовательность решения задач анализа данных: сбор первичных данных, очистка и оценка качества данных, выбор и/или построение модели, преобразование данных, визуализация данных, интерпретация результатов. Программные средства и интернет-сервисы для обработки и представления данных. Большие данные. Машинное обучение 134.2 Анализ данных с помощью электронных таблиц. Вычисление суммы, среднего арифметического, наибольшего (наименьшего) значения диапазона. Вычисление коэффициента корреляции двух рядов данных. Построение столбчатых, линейчатых и круговых диаграмм. Построение графиков функций. Подбор линии тренда, решение задач прогнозирования. Решение задач оптимизации с помощью электронных таблиц 1614.3 Дискретизация при математическом моделировании непрерывных процессов. Моделирование движения. Моделирование биологических систем. Математические модели в экономике. Вычислительные эксперименты с моделями. Обработка результатов эксперимента. Метод наименьших квадратов. Оценка числовых параметров моделируемых объектов и процессов. Восстановление зависимостей по результатам эксперимента 04.4 Вероятностные модели. Методы Монте-Карло. Имитационное моделирование. Системы массового обслуживания 04.5 Табличные (реляционные) базы данных. Таблица – представление сведений об однотипных объектах. Поле, запись. Ключ таблицы. Работа с готовой базой данных. Заполнение базы данных. Поиск, сортировка и фильтрация данных. Запросы на выборку данных. Запросы с параметрами. Вычисляемые поля в запросах. Многотабличные базы данных. Типы связей между таблицами. Внешний ключ. Целостность базы данных. Запросы к многотабличным базам данных 844.6 Текстовый процессор. Средства поиска и автозамены в текстовом процессоре. Структурированные текстовые документы. Сноски, оглавление. Правила цитирования источников и оформления библиографических ссылок 67

Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования — ЕГЭ по информатике. 113 заданий из открытого банка ФИПИ для подготовки в 11 классе. Страница 2 из 10.

Дайте развернутый ответ.

На обработку поступает положительное целое число, не превышающее 109. Нужно написать программу, которая выводит на экран количество цифр числа, делящихся на 3. Если в числе нет цифр, делящихся на 3, требуется на экран вывести «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

Напоминание: 0 делится на любое натуральное число.

Бейсик

Python

DIM N, DIGIT, COUNT AS LONG

INPUT N

COUNT = 0

WHILE N > 0

  DIGIT = N MOD 10

  IF DIGIT MOD 3 = 0 THEN

    COUNT = COUNT + DIGIT

  ENDIF

  N = N \ 10

WEND

IF COUNT = DIGIT THEN

  PRINT COUNT

ELSE

  PRINT "NO"

ENDIF

N = int(input())

count = 0

while N > 0:

  digit = N % 10

  if digit % 3 == 0:

    count = count + digit

  N = N // 10

if count == digit:

  print(count)

else:

  print("NO")

Алгоритмический язык

Паскаль

алг

нач

  цел N, digit, count

  ввод N

  count := 0

  нц пока N > 0

    digit := mod(N,10)

    если mod(digit,3) = 0 то

      count := count + digit

    все

    N := div(N,10)

  кц

  если count = digit то

    вывод count

  иначе

    вывод "NO"

  все

кон

var N, digit, count: longint;

begin

  readln(N);

  count := 0;

  while N > 0 do

  begin

    digit := N mod 10;

    if digit mod 3 = 0 then

      count := count + digit;

    N := N div 10;

  end;

  if count = digit then

    writeln(count)

  else

    writeln('NO')

end.

С++

#include <iostream>

using namespace std;

 

int main()

{

  int N, digit, count;

  cin >> N;

  count = 0;

  while (N > 0)

  {

    digit = N % 10;

    if (digit % 3 == 0)

      count = count + digit;

    N = N / 10;

  }

  if (count == digit)

    cout << count << endl;

  else

    cout << "NO" << endl;

  return 0;

}

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 947.

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

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

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

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


 

i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Развернутый ответ
Номер: F2307A
НЕ РЕШЕНО Изменить статус
Дайте развернутый ответ.

На обработку поступает последовательность из четырёх неотрицательных целых чисел (некоторые числа могут быть одинаковыми). Нужно написать программу, которая выводит на экран количество делящихся нацело на 5 чисел в исходной последовательности и минимальное делящееся нацело на 5 число. Если делящихся нацело на 5 чисел нет, требуется на экран вывести «NO». Известно, что вводимые числа не превышают 1000. Программист написал программу неправильно. Ниже написанная им программа для Вашего удобства приведена на пяти языках программирования.

Бейсик

Python

CONST n = 4

count = 0

minimum = 0

FOR I = 1 TO n

  INPUT x

  IF x mod 5 = 0 THEN

    count = count + 1

    IF x > minimum THEN

      minimum = x

    END IF

  END IF

NEXT I

IF count > 0 THEN

  PRINT count

  PRINT minimum

ELSE

  PRINT "NO"

END IF

n = 4

count = 0

minimum = 0

for i in range(1, n+1):

    x = int(input())

    if x % 5 == 0:

        count += 1

        if x > minimum:

            minimum = x

if count > 0:

    print(count)

    print(minimum)

else:

    print("NO")

Алгоритмический язык

Паскаль

алг

нач

  цел n = 4

  цел i, x

  цел minimum, count

  count := 0

  minimum := 0

  нц для i от 1 до n

    ввод x

    если mod(x, 5) = 0 то

      count := count + 1

      если x > minimum то

        minimum := x

      все

    все

  кц

  если count > 0 то

    вывод count, нс

    вывод minimum

  иначе

    вывод "NO"

  все

кон

const n = 4;

var i, x: integer;

var minimum, count: integer;

begin

  count := 0;

  minimum := 0;

  for i := 1 to n do

  begin

    read(x);

    if x mod 5 = 0 then

    begin

      count := count + 1;

      if x > minimum then

        minimum := x

    end

  end;

  if count > 0 then

  begin

    writeln(count);

    writeln(minimum)

  end

  else

    writeln('NO')

end.

С++

#include <iostream>

using namespace std;

 

int main() {

  const int n = 4;

  int x, minimum, count;

  count = 0;

  minimum = 0;

  for (int i = 1; i <= n; i++) {

    cin >> x;

    if (x % 5 == 0) {

      count++;

      if (x > minimum)

        minimum = x;

    }

  }

  if (count > 0) {

    cout << count << endl;

    cout << minimum << endl;

  }

  else

    cout << "NO" << endl;

  return 0;

}

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе последовательности:

18 15 6 10.

2. Приведите пример такой последовательности, содержащей хотя бы одно делящееся нацело на 5 число, что при её вводе приведённая программа, несмотря на ошибки, выведет правильный ответ.

3. Найдите допущенные программистом ошибки и исправьте их. Исправление ошибки должно затрагивать только строку, в которой находится ошибка. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

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

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

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

Примечание. 0 делится на любое натуральное число.


 

i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Развернутый ответ
Номер: 06F270
НЕ РЕШЕНО Изменить статус
Впишите правильный ответ.

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

Бейсик

Python

DIM A, B, T, M, R AS LONG

A = -20: B = 20
M = A: R = F(A)

FOR T = A TO B

  IF F(T) <= R THEN

    M = T

    R = F(T)

  END IF

NEXT T

PRINT M+R

 

FUNCTION F (x)

  F = 2*(x*x-1)*(x*x-1)+27

END FUNCTION

def F(x):

  return 2*(x*x-1)*(x*x-1)+27

a = -20; b = 20

M = a; R = F(a)

for t in range(a,b+1):

  if (F(t) <= R):

    M = t; R = F(t)

print (M+R)

Алгоритмический язык

Паскаль

алг

нач

  цел a, b, t, M, R

  a:=-20; b:=20

  M:=a; R:=F(a)

  нц для t от a до b

    если F(t) <=  R то

        M := t; R := F(t)

    все

  кц

  вывод M+R

кон

алг цел F(цел x)

нач

  знач := 2*(x*x-1)*(x*x-1)+27

кон

var a, b, t, M, R :longint;

function F(x: longint) : longint;

  begin

    F := 2*(x*x-1)*(x*x-1)+27;

  end;

begin

  a := -20; b := 20;

  M := a; R := F(a);

  for t := a to b do begin

    if (F(t) <= R) then begin

      M := t;

      R := F(t)

    end

  end;

  write(M+R)

end.

Си

#include<stdio.h>

long F(long x)

{

  return 2*(x*x-1)*(x*x-1)+27;

}

int main()

{

  long a, b, t, M, R;

  a = -20; b = 20;

  M = a; R = F(a);

  for (t=a; t<=b; t++) {

    if (F(t) <= R) {

      M = t; R = F(t);

    }

  }

  printf("%ld", M+R);

return 0;

}

 



i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Краткий ответ
Номер: 36077B
НЕ РЕШЕНО Ответить
Дайте развернутый ответ.

На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран минимальную чётную цифру числа. Если в числе нет чётных цифр, требуется вывести на экран «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

Бейсик

Python

DIM N, DIGIT, MINDIGIT AS LONG

INPUT N

MINDIGIT = N MOD 10

WHILE N > 0

  DIGIT = N MOD 10

  IF DIGIT MOD 2 = 0 THEN

    IF DIGIT < MINDIGIT THEN

      MINDIGIT = DIGIT

    END IF

  END IF

  N = N \ 10

WEND

IF MINDIGIT = 0 THEN

  PRINT "NO"

ELSE

  PRINT MINDIGIT

END IF

N = int(input())

minDigit = N % 10

while N > 0:

  digit = N % 10

  if digit % 2 == 0:

    if digit < minDigit:

      minDigit = digit

  N = N // 10

if minDigit == 0:

  print("NO")

else:

  print(minDigit)

Алгоритмический язык

Паскаль

алг

нач

  цел N, digit, minDigit

  ввод N

  minDigit := mod(N,10)

  нц пока N > 0

    digit := mod(N,10)

    если mod(digit, 2) = 0 то

      если digit < minDigit то

        minDigit := digit

      все

    все

    N := div(N,10)

  кц

  если minDigit = 0 то

    вывод "NO"

  иначе

    вывод minDigit

  все

кон

var N,digit,minDigit: longint;

begin

  readln(N);

  minDigit := N mod 10;

  while N > 0 do

  begin

    digit := N mod 10;

    if digit mod 2 = 0  then

      if digit < minDigit then

        minDigit := digit;

    N := N div 10;

  end;

  if minDigit = 0 then

    writeln('NO')

  else

    writeln(minDigit)

end.


 

С++

#include <iostream>

using namespace std;

 

int main()

{

  int N, digit, minDigit;

  cin >> N;

  minDigit = N % 10;

  while (N > 0)

  {

    digit = N % 10;

    if (digit % 2 == 0)

      if (digit < minDigit)

        minDigit = digit;

    N = N / 10;

  }

  if (minDigit == 0)

    cout << "NO" << endl;

  else

    cout << minDigit << endl;

  return 0;

}

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 231.

2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

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

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


 

i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Развернутый ответ
Номер: 95321D
НЕ РЕШЕНО Изменить статус
Впишите правильный ответ.

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

Бейсик

Python

DIM A, B, T, M, R AS LONG

A = -20: B = 20
M = A: R = F(A)

FOR T = A TO B

  IF F(T) <= R THEN

    M = T

    R = F(T)

  END IF

NEXT T

PRINT M+R

 

FUNCTION F (x)

  F = 2*(x*x-25)*(x*x-25)+27

END FUNCTION

def F(x):

  return 2*(x*x-25)*(x*x-25)+27

a = -20; b = 20

M = a; R = F(a)

for t in range(a,b+1):

  if (F(t) <= R):

    M = t; R = F(t)

print (M+R)

Алгоритмический язык

Паскаль

алг

нач

  цел a, b, t, M, R

  a := -20; b := 20

  M := a; R := F(a)

  нц для t от a до b

    если F(t) <=  R то

        M := t; R := F(t)

    все

  кц

  вывод M+R

кон

алг цел F(цел x)

нач

  знач := 2*(x*x-25)*(x*x-25)+27

кон

var a, b, t, M, R :longint;

function F(x: longint) : longint;

  begin

    F := 2*(x*x-25)*(x*x-25)+27;

  end;

begin

  a := -20; b := 20;

  M := a; R := F(a);

  for t := a to b do begin

    if (F(t) <= R) then begin

      M := t;

      R := F(t)

    end

  end;

  write(M+R)

end.

Си

#include<stdio.h>

long F(long x)

{

  return 2*(x*x-25)*(x*x-25)+27;

}

int main()

{

  long a, b, t, M, R;

  a = -20; b = 20;

  M = a; R = F(a);

  for (t=a; t<=b; t++) {

    if (F(t) <= R) {

      M = t; R = F(t);

    }

  }

  printf("%ld", M+R);

  return 0;

}

 



i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Краткий ответ
Номер: 1EEB2A
НЕ РЕШЕНО Ответить
Впишите правильный ответ.

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

Бейсик

DIM A, B, T, M, R AS LONG

A = -20: B = 20
M = A: R = F(A)

FOR T = A TO B

  IF F(T) <= R THEN

    M = T

    R = F(T)

  END IF

NEXT T

PRINT M + R

 

FUNCTION F(x)

  F = 2 * (x * x - 36) * (x * x - 36) + 27

END FUNCTION


 

Python

def F(x):

  return 2 * (x * x - 36) * (x * x - 36) + 27

a = -20; b = 20

M = a; R = F(a)

for t in range(a, b + 1):

  if (F(t) <= R):

    M = t; R = F(t)

print(M + R)

Алгоритмический язык

алг

нач

  цел a, b, t, M, R

  a := -20; b := 20

  M := a; R := F(a)

  нц для t от a до b

    если F(t) <=  R то

        M := t; R := F(t)

    все

  кц

  вывод M + R

кон

алг цел F(цел x)

нач

  знач:= 2 * (x * x - 36) * (x * x - 36) + 27

кон

Паскаль

var a, b, t, M, R: longint;

function F(x: longint): longint;

  begin

    F := 2 * (x * x - 36) * (x * x - 36) + 27;

  end;

begin

  a := -20; b := 20;

  M := a; R := F(a);

  for t := a to b do begin

    if (F(t) <= R) then begin

      M := t;

      R := F(t)

    end

  end;

  write(M + R)

end.


 

С++

#include <iostream>

using namespace std;

 

long F(long x)

{

  return 2 * (x * x - 36) * (x * x - 36) + 27;

}

int main()

{

  long a, b, t, M, R;

  a = -20; b = 20;

  M = a; R = F(a);

  for (t = a; t <= b; t++) {

    if (F(t) <= R) {

      M = t; R = F(t);

    }

  }

  cout << M + R << endl;

  return 0;

}

 



i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Краткий ответ
Номер: 1B5123
НЕ РЕШЕНО Ответить
Дайте развернутый ответ.

Дано целое положительное число N, не превосходящее 1000. Нужно написать программу, которая определяет, является ли это число степенью числа 4: выводит на экран либо такое целое число K, что 4K = N, либо сообщение «NO», если такого числа не существует.

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

Бейсик

Python

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE N MOD 4 = 0

  K = K + N \ 4

  N = N \ 4

WEND

IF N > 0 THEN

  PRINT K

ELSE

  PRINT "NO"

END IF

END

n = int(input())

k = 0

while n % 4 == 0:

    k = k + n // 4

    n = n // 4

if n > 0:

    print(k)

else:

    print("NO")

Алгоритмический язык

Паскаль

алг

нач

  цел n, k

  ввод n

  k := 0

  нц пока mod(n, 4)=0

    k := k + div(n, 4)

    n := div(n, 4)

  кц

  если n > 0

    то вывод k

    иначе вывод "NO"

  все

кон

var n, k: integer;

begin

  read(n);

  k := 0;

  while n mod 4 = 0 do begin

    k := k + n div 4;

    n := n div 4;

  end;

  if n > 0 then

    writeln(k)

  else

    writeln('NO')

end.

С++

#include <iostream>

using namespace std;

 

int main() {

    int n, k;

    cin >> n;

    k = 0;

    while (n % 4 == 0) {

        k = k + n / 4;

        n = n / 4;

    }

    if (n > 0)

        cout << k << endl;

    else

        cout << "NO" << endl;

    return 0;

}

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 64.

2. Приведите пример числа, при вводе которого приведённая программа, несмотря на ошибки, выведет правильный ответ.

3. Найдите допущенные программистом ошибки и исправьте их. Исправление ошибки должно затрагивать только строку, в которой находится ошибка. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

Известно, что в тексте программы можно исправить ровно две строки так, чтобы она стала работать правильно.

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

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


 

i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Развернутый ответ
Номер: 6F2E2D
НЕ РЕШЕНО Изменить статус
Дайте развернутый ответ.

Требовалось написать программу, которая решает неравенство «ax+b>0» относительно x для любых чисел a и b, введенных с клавиатуры. Все числа считаются действительными. Программист торопился и написал программу неправильно.

 

ПРОГРАММА НА ПАСКАЛЕ

ПРОГРАММА НА БЕЙСИКЕ

ПРОГРАММА НА СИ

var a,b,x: real;
begin
readln(a,b,x);
if a = 0 then
if b >0 then
write('любое число')
else
write ('нет решений')
else
write('x>',-b/a);
end.

INPUT a, b, x
IF a = 0 THEN
IF b > 0 THEN
PRINT "любое число"
ELSE
PRINT "нет решений"
ENDIF
ELSE
PRINT "x>", -b/a
ENDIF
END

void main(void)
{ float a,b,x;
scanf("%f%f%f",
 &a,&b,&x);
if (a==0)
if (b > 0)
printf("любое число");
else
printf("нет решений");
else
printf("x>%f",-b/a);
}

 

Последовательно выполните три задания:
1) Приведите пример таких чисел a, b, x, при которых программа неверно решает поставленную задачу.
2) Укажите, какая часть программы является лишней.
3) Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, поэтому можно указать любой способ доработки исходной программы).


 

i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Развернутый ответ
Номер: 3DA124
НЕ РЕШЕНО Изменить статус
Впишите правильный ответ.

Напишите в ответе число, равное количеству различных значений входной переменной k, при которых приведённая ниже программа выводит тот же ответ, что и при входном значении k = 12. Значение k = 12 также включается в подсчёт количества различных значений k. Для Вашего удобства программа приведена на пяти языках программирования.

Бейсик

DIM K, I AS LONG

INPUT K

I = 1

WHILE F(I) < K

  I = I + 1

WEND

IF F(I)- K <= K - F(I - 1) THEN

  PRINT I

ELSE

  PRINT I - 1

END IF

 

FUNCTION F(N)

  F = N * N * N

END FUNCTION


 

Python

def f(n):

  return n * n * n

i = 1

k = int(input())

while f(i) < k:

  i+=1

if (f(i)- k <= k - f(i - 1)):

  print(i)

else:

  print(i - 1)

Алгоритмический язык

алг

нач

  цел i, k

  ввод k

  i := 1

  нц пока f(i) < k

    i := i + 1

  кц

  если f(i) - k <= k - f(i - 1) то

    вывод i

  иначе

    вывод i - 1

  все

кон

алг цел f(цел n)

нач

  знач := n * n * n

кон

Паскаль

var

  k, i: longint;

 

function f(n: longint): longint;

begin

  f := n * n * n;

end;

begin

  readln(k);

  i := 1;

  while f(i) < k do

    i := i + 1;

  if f(i)- k <= k - f(i - 1) then

    writeln(i)

  else

    writeln(i - 1);

end.


 

С++

#include <iostream>

using namespace std;

 

long f(long n) {

  return n * n * n;

}

 

int main()

{

  long k, i;

  cin >> k;

  i = 1;

  while (f(i) < k)

    i++;

  if (f(i) - k <= k - f(i - 1)){

    cout << i;

  } else {

    cout << i - 1;

  }

  return 0;

}

 



i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Краткий ответ
Номер: 1D2ADC
НЕ РЕШЕНО Ответить
Дайте развернутый ответ.

На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран количество цифр этого числа, делящихся на 3. Если в числе нет цифр, делящихся на 3, на экран требуется вывести «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

Напоминание: 0 делится на любое натуральное число.

Бейсик

Python

DIM N, DIGIT, COUNT AS LONG

INPUT N

COUNT = 1

WHILE N > 0

  DIGIT = N MOD 10

  IF DIGIT MOD 3 = 0 THEN

    COUNT = COUNT + DIGIT

  END IF

  N = N \ 10

WEND

IF COUNT = 0 THEN

  PRINT "NO"

ELSE

  PRINT COUNT

END IF

N = int(input())

count = 1

while N > 0:

  digit = N % 10

  if digit % 3 == 0:

    count = count + digit

  N = N // 10

if count == 0:

  print("NO")

else:

  print(count)


 

Алгоритмический язык

Паскаль

алг

нач

  цел N, digit, count

  ввод N

  count := 1

  нц пока N > 0

    digit := mod(N,10)

    если mod(digit,3) = 0 то

      count := count + digit

    все

    N := div(N,10)

  кц

  если count = 0 то

    вывод "NO"

  иначе

    вывод count

  все

кон

var N, digit, count: longint;

begin

  readln(N);

  count := 1;

  while N > 0 do

  begin

    digit := N mod 10;

    if digit mod 3 = 0  then

      count := count + digit;

    N := N div 10;

  end;

  if count = 0 then

    writeln('NO')

  else

    writeln(count)

end.

С++

#include <iostream>

using namespace std;

 

int main()

{

  int N, digit, count;

  cin >> N;

  count = 1;

  while (N > 0)

  {

    digit = N % 10;

    if (digit % 3 == 0)

      count = count + digit;

    N = N / 10;

  }

  if (count == 0)

    cout << "NO" << endl;

  else

    cout << count << endl;

  return 0;

}

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 145.

2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

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

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


 

i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Развернутый ответ
Номер: 2B38DC
НЕ РЕШЕНО Изменить статус
Дайте развернутый ответ.

Дано целое положительное число N, не превосходящее 1000. Нужно написать программу, которая определяет, является ли это число степенью числа 4: выводит на экран либо такое целое число K, что 4K = N, либо сообщение «NO», если такого числа не существует.

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

Бейсик

Python

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE K MOD 4 = 0

  K = K + 1

  N = N \ 4

WEND

IF N <= 4 THEN

  PRINT K

ELSE

  PRINT "NO"

END IF

END

n = int(input())

k = 0

while k % 4 == 0:

    k = k + 1

    n = n // 4

if n <= 4:

    print(k)

else:

    print("NO")

Алгоритмический язык

Паскаль

алг

нач

  цел n, k

  ввод n

  k := 0

  нц пока mod(k, 4)=0

    k := k + 1

    n := div(n, 4)

  кц

  если n <= 4

    то вывод k

    иначе вывод "NO"

  все

кон

var n, k: integer;

begin

  read(n);

  k := 0;

  while k mod 4 = 0 do begin

    k := k + 1;

    n := n div 4;

  end;

  if n <= 4 then

    writeln(k)

  else

    writeln('NO')

end.

С++

#include <iostream>

using namespace std;

 

int main() {

    int n, k;

    cin >> n;

    k = 0;

    while (k % 4 == 0) {

        k = k + 1;

        n = n / 4;

    }

    if (n <= 4)

        cout << k << endl;

    else

        cout << "NO" << endl;

    return 0;

}

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 16.

2. Приведите пример числа, при вводе которого приведённая программа, несмотря на ошибки, выведет корректное существующее значение K.

3. Найдите допущенные программистом ошибки и исправьте их. Исправление ошибки должно затрагивать только строку, в которой находится ошибка. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

Известно, что в тексте программы можно исправить ровно две строки так, чтобы она стала работать правильно.

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

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


 

i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Развернутый ответ
Номер: D479DB
НЕ РЕШЕНО Изменить статус
Дайте развернутый ответ.

На обработку поступает последовательность из четырёх неотрицательных целых чисел (некоторые числа могут быть одинаковыми). Нужно написать программу, которая выводит на экран количество нечётных чисел в исходной последовательности и сумму таких чисел. Если нечётных чисел нет, требуется на экран вывести «NO». Известно, что вводимые числа не превышают 1000. Программист написал программу неправильно. Ниже эта написанная им программа для Вашего удобства приведена на пяти языках программирования.

Бейсик

Python

CONST n = 4

count = 0

sum = 0

FOR I = 1 TO n

  INPUT x

  IF x mod 2 <> 0 THEN

    count = count + 1

    sum = x

  END IF

NEXT I

IF n > 0 THEN

    PRINT count

    PRINT sum

ELSE

  PRINT "NO"

END IF

n = 4

count = 0

sum = 0

for i in range (1, n+1):

    x = int(input())

    if x % 2 != 0:

        count += 1

        sum = x

if n > 0:

    print (count)

    print (sum)

else:

    print ("NO")

Алгоритмический язык

Паскаль

алг

нач

  цел n = 4

  цел i, x

  цел sum, count

  count := 0

  sum := 0

  нц для i от 1 до n

    ввод x

    если mod(x, 2) <> 0 то

      count := count + 1

      sum := x

    все

  кц

  если n > 0

    то

      вывод count, нс

      вывод sum, нс

    иначе

      вывод "NO"

  все

кон

const n = 4;

var i, x: integer;

var sum, count: integer;

begin

  count := 0;

  sum := 0;

  for i := 1 to n do

  begin

    read(x);

    if x mod 2 <> 0 then

    begin

      count := count + 1;

      sum := x

    end

  end;

  if n > 0 then

  begin

    writeln(count);

    writeln(sum)

  end

  else

    writeln('NO')

end.

С++

#include <iostream>

using namespace std;

 

int main() {

  const int n = 4;

  int x, sum, count;

  count = 0;

  sum = 0;

  for (int i = 1; i <= n; i++) {

    cin >> x;

    if (x % 2 != 0) {

      count++;

      sum = x;

    }

  }

  if (n > 0) {

    cout << count << endl;

    cout << sum << endl;

  }

  else

    cout << "NO" << endl;

  return 0;

}

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе последовательности:

20 33 40 55.

2. Приведите пример такой последовательности, содержащей хотя бы одно нечётное число, что при её вводе приведённая программа, несмотря на ошибки, выведет правильный ответ.

3. Найдите допущенные программистом ошибки и исправьте их. Исправление ошибки должно затрагивать только строку, в которой находится ошибка. Для каждой ошибки:

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

Известно, что в тексте программы можно исправить ровно две строки так, чтобы она стала работать правильно.

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

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


 

i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность
3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования
Тип ответа:Развернутый ответ
Номер: A35DD6
НЕ РЕШЕНО Изменить статус

Обратная связь

Есть вопрос по подготовке?

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

Достаточно одного способа связи.