Для начала продумаем наше решение. сначала заполним массив случайными числами с цикла и сразу в нем найдем сумму его чисел, чтобы потом найти среднее арифметическое, а потом уже в следующем цикле будем искать числа больше или меньше среднего арифметического.для того чтобы решить нам понадобятся следующие переменные : 1. переменная mass — для нашего массива2. переменная more — для чисел больше среднего арифметического3. переменная less — для чисел меньше среднего арифметического4. переменная aver — для среднего арифметического5. переменная i — для цикланачнем мы с каркаса нашей программы : 123456789101112131415const n = 40; type massiv = array [1..n] of integer; var mass: massiv; more, less, i : integer; aver : real; begin randomize; aver : = 0; more : = 0; less : = 0; end.
Nikita_Lina1305
15.05.2023
1.1. количество нечетных чисел в заданном промежутке можно легко найти, зная что нечетные числа следуют через одно, чередуясь с четными. конечно, можно написать в программе цикл и перебрать все нечетные элементы, каждый раз добавляя по +1 в счетчик количества, но гораздо проще воспользоваться знаниями из . легко видеть, что нечетные числа образуют арифметическую прогрессию с разностью d=-2, начальный член a1=7, а конечный член an=-3. вспомним формулу для n-го члена арифметической прогрессии и получим из нее n. в соответствии с условиями нашей это будет верно, если a1 и an - нечетные. если a1 четное, то его надо уменьшить на 1. аналогично, если an четное, его надо увеличить на 1. таким образом, мы получаем алгоритм, пригодный для быстрого определения количества нечетных чисел на любом интервале с целочисленными границами. ниже приводится соответствующая программа. program p11; var a,b,n: integer; begin write('введите границы интервала: '); readln(a,b); { защита от неверного порядка ввода } if a< b then begin n: =a; a: =b; b: =n end; { если надо, корректируем границы на нечет } if (a mod 2)=0 then a: =a-1; if (b mod 2)=0 then b: =b+1; { сам расчет } n: =(a-b) div 2 + 1; writeln('количество нечетных чисел на интервале равно ',n) end. тестовое решение: введите границы интервала: -3 7 количество нечетных чисел на интервале равно 6 1.2 в противоположность предложенному решению, где сначала надо было думать, можно использовать "метод грубой силы" (программисты называют его "брутфорс" - от bruteforce), т.е. программировать ни о чем не думая. ниже - пример такого решения. оно более короткое, но при больших интервалах время решения окажется на несколько порядков больше. program p12; var a,b,i,k: integer; begin write('введите границы интервала: '); readln(a,b); { защита от неверного порядка ввода } if a< b then begin k: =a; a: =b; b: =k end; k: =0; for i: =a downto b do if (i mod 2)< > 0 then k: =k+1; writeln('количество нечетных чисел на интервале равно ',k) end. тестовое решение: введите границы интервала: -3 7 количество нечетных чисел на интервале равно 6 2.1. тут на первый взгляд стандартная и вроде бы думать нечего - в цикле накапливаем сумму: program p21; var i: integer; x,s: real; begin write('введите значение x: '); readln(x); s: =0; i: =2; while i< =20 do begin s: =s+i*x; i: =i+2 end; writeln('cумма членов последовательности равна ',s) end. тестовое решение: введите значение x: 2.15 cумма членов последовательности равна 236.5 2.2. но и тут есть место для размышлений. опять вспоминаем . но полученная сумма - это сумма арифметической прогрессии с начальным членом, равным единице, конечным членом, равным 10 и разностью 1. формула такой суммы известна и мы продолжаем преобразования. теперь можно и программу написать. program p22; var x: real; begin write('введите значение x: '); readln(x); writeln('cумма членов последовательности равна ',110*x) end. тестовое решение: введите значение x: 2.15 cумма членов последовательности равна 236.5 пары решений призваны показать, что первое пришедшее в голову решение обычно всегда не лучшее. а еще - что для качественного программирования надо учить .
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Написать мою дату римскими цифрами 1)13.09.01 2)13 сентября 2001 года