// PascalABC.NET 3.3, сборка 1579 от 18.11.2017 // Внимание! Если программа не работает, обновите версию!
begin var a:=ReadArrInteger(12); Writeln('Номер первого отрицательного элемента: ',a.FindIndex(t->t<0)+1); end.
Пример 36 20 -13 50 14 27 -1 26 -14 -17 -15 42 Номер первого отрицательного элемента: 3
Замечание: Значения всех 12 элементов вводятся с клавиатуры
Vladimirovna
24.09.2020
Просто: 1) система программирования это средство, которое позволяет писать программы, на определенном языке программирования, или на нескольких определенных языках. 2) язык программирования: это система обозначений, которая позволяет записывать алгоритмы. 3) чтоб алгоритм работал на машине, нужно: описание, на языке программирования, ввести в систему программирования, которая по этому описанию сделает выполняемую программу. 4) кроме транслятора, система программирования содержит весь набор инструментов для работы: текстовые редакторы, конструкторы, отладчики, и тд. поэтому называется "система"
Ignateva737
24.09.2020
1. Схематически записываем условие Есть две команды: (1) ×3 и (2) -5 Тут я ввожу обозначения: в скобках некий "код" команды, а далее обозначение, что именно она делает. Команда с кодом 1 умножает на три, с кодом 2 - вычитает 5. Теперь, что нам надо получить: 8 ⇒ 36, т.е. из 8 получить 36.
2. Анализируем, какое число может быть перед выполнением последней (т.е. пятой) команды. Применим к результату команды, обратные к (1) и (2). Действие, обратное умножению - это деление, вычитанию - сложение. Для (1) получим 36/3 = 12, т.е. в результате выполнения первых четырех (пока в неизвестном порядке) команд должно получиться 12. Для (2) получим 36+5 = 41.
3. Теперь анализируем, какой могла бы быть третья команда Чтобы получить 12 после (1), нужно взять число 12/3 = 4. Чтобы получить 12 после (2), нужно взять число 4+5=9. Получить 41 после (1) невозможно, поскольку 41 на 3 не делится нацело. Чтобы получить 41 после (2), нужно взять число 41+5=46. Итак, имеем три числа-кандидата. 46 выглядит подозрительно, потому что получить его можно только из 51 при поскольку 46 на 3 не делится и не может быть получено при А получить 8 ⇒ 51 за две возможные операции не получится. Поэтому 46 отбрасываем.
4. Анализируем, какой могла бы быть вторая по порядку команда Получить 4 после (1) нельзя, потому что 4 не делится на 3. Чтобы получить 4 после (2), нужно взять число 4+5=9. Чтобы получить 9 после (1), нужно взять число 9/3 = 3. Чтобы получить 9 после (2), нужно взять число 9+5=14.
5. Рассматриваем, что можно получить из исходного числа а) 8 после (1) дает 8×3 = 24 и получить 3, 9 или 14 из 24 при одной из имеющихся команд невозможно. б) 8 после (2) дает 8-5 = 3 - это и есть решение проблемы.
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ReadArrInteger(12);
Writeln('Номер первого отрицательного элемента: ',a.FindIndex(t->t<0)+1);
end.
Пример
36 20 -13 50 14 27 -1 26 -14 -17 -15 42
Номер первого отрицательного элемента: 3
Замечание: Значения всех 12 элементов вводятся с клавиатуры