C++ : Формула BNF для идентификатора: :: = { | } id-идентификатор letter-буква digit-цифра Соответствуют ли следующие варианты данной формуле бнф? 1)Zv 2)dd 3)x15x 4)m77 5)zerozero
ответ:команди тіла циклу, після чого знову обчислюється значення логічного виразу, і якщо це значення знову true, то знову виконуються команди тіла циклу, після чого знову обчислюється значення логічного виразу; якщо значення логічного виразу дорівнює false, то команди тіла циклу не виконуються, а виконується команда, наступна за циклом.
Звертаємо вашу увагу:
• якщо в тілі циклу лише одна команда, то операторні дужки begin і end можна не ставити;
• серед команд тіла циклу можуть бути й лінійні фрагменти, і розгалуження, й інші цикли.
Розглянемо задачу, алгоритм розв’язування якої містить цикл з передумовою.
Задача. Скільки потрібно взяти доданків, перший з яких дорівнює заданому д ійсному числу, а кожний наступний на 3 більший від попереднього, щоб їхня сума перевищила 100?
Даними цієї задачі є перший доданок. Вводитимемо його в поле.
Перед початком циклу присвоїмо змінній s, яку використаємо для збереження суми, значення першого доданка. А змінній п, яку використаємо для збереження кількості взятих доданків, присвоїмо значення 1, бо в сумі вже враховано один (перший) доданок.
До суми потрібно додавати наступні доданки, поки ця сума буде меншою, або дорівнюватиме 100. Тому логічний вираз у заголовку циклу матиме вигляд s <= 100. У тілі циклу шукатимемо наступний доданок, додаватимемо його до поточного значення суми і збільшуватимемо кількість доданих доданків на 1.
И пояснение, как это работает, т.е. по сути алгоритм на русском языке. ArrRandom(30,0,1000) создает массив из 30 элементов и заполняет его случайными значениями из диапазона [0,1000]. Далее этот массив обрабатывается методом Println, который направляет значения элементов на вывод, разделяя их запятой с последующим пробелом и в конце вывода добавляет смену строки. Затем элементы массива проходят фильтр Where(x->Odd(x)), который пропускает через себя только те значения, которые удовлетворяют условию Odd(значение элемента)=True, а мы знаем, что Odd() возвращает True для нечетного аргумента. Далее фильтр элементы обрабатываются методом Average, который умеет принимать набор значений и возвращать их среднее. И наконец, процедура Writeln выводит полученное значение, предваряя его текстовым пояснением.
ответ:команди тіла циклу, після чого знову обчислюється значення логічного виразу, і якщо це значення знову true, то знову виконуються команди тіла циклу, після чого знову обчислюється значення логічного виразу; якщо значення логічного виразу дорівнює false, то команди тіла циклу не виконуються, а виконується команда, наступна за циклом.
Звертаємо вашу увагу:
• якщо в тілі циклу лише одна команда, то операторні дужки begin і end можна не ставити;
• серед команд тіла циклу можуть бути й лінійні фрагменти, і розгалуження, й інші цикли.
Розглянемо задачу, алгоритм розв’язування якої містить цикл з передумовою.
Задача. Скільки потрібно взяти доданків, перший з яких дорівнює заданому д ійсному числу, а кожний наступний на 3 більший від попереднього, щоб їхня сума перевищила 100?
Даними цієї задачі є перший доданок. Вводитимемо його в поле.
Перед початком циклу присвоїмо змінній s, яку використаємо для збереження суми, значення першого доданка. А змінній п, яку використаємо для збереження кількості взятих доданків, присвоїмо значення 1, бо в сумі вже враховано один (перший) доданок.
До суми потрібно додавати наступні доданки, поки ця сума буде меншою, або дорівнюватиме 100. Тому логічний вираз у заголовку циклу матиме вигляд s <= 100. У тілі циклу шукатимемо наступний доданок, додаватимемо його до поточного значення суми і збільшуватимемо кількість доданих доданків на 1.
Объяснение:
// PascalABC.NET 3.0, сборка 1150 от 22.01.2016
begin
Writeln('Ср.арифм=',ArrRandom(30,0,1000).Println(', ').
Where(x->Odd(x)).Average)
end.
Тестовое решение:
611, 443, 634, 637, 44, 297, 286, 431, 130, 767, 388, 513, 827, 681, 619, 810, 586, 697, 206, 823, 294, 238, 354, 138, 411, 141, 873, 864, 715, 564
Ср.арифм=592.875
И пояснение, как это работает, т.е. по сути алгоритм на русском языке.
ArrRandom(30,0,1000) создает массив из 30 элементов и заполняет его случайными значениями из диапазона [0,1000]. Далее этот массив обрабатывается методом Println, который направляет значения элементов на вывод, разделяя их запятой с последующим пробелом и в конце вывода добавляет смену строки. Затем элементы массива проходят фильтр Where(x->Odd(x)), который пропускает через себя только те значения, которые удовлетворяют условию Odd(значение элемента)=True, а мы знаем, что Odd() возвращает True для нечетного аргумента. Далее фильтр элементы обрабатываются методом Average, который умеет принимать набор значений и возвращать их среднее. И наконец, процедура Writeln выводит полученное значение, предваряя его текстовым пояснением.