PascalABC.NET 3.7:
##var sumOfAP := function(a1, an, d: real):real → (a1 + an)/2*((an - a1)/d+1);var (a, b) := ReadInteger2('Введите a и b:');var sE := sumOfAP(a + a mod 2, b - b mod 2, 2);var sO := sumOfAP(a + 1 - a mod 2, b - 1 + b mod 2, 2);Print('Результат:', sE - sO)Пояснение:
Используется формула для нахождения суммы первых n членов арифметической прогрессии: , где
— первый член прогрессии,
— последний член,
—разность прогрессии.
Объяснение:
Sub Summa
Dim A As Long, B As Long, Schet As Long, Snech As Long
Dim Razn As Long, i As Long
Rem Тип Long включает целые числа от -2*10^9 до 2*10^9
Input "A = ", A, "B = ", B ' Вводим числа А и В
Schet = 0 ' Сумма четных чисел
Snech = 0 ' Сумма нечетных чисел
If A Mod 2 = 0 Then ' Если А четное
For i = A To B Step 2 ' Перебираем четные числа от А до В
Schet = Schet + i ' Прибавляем к сумме четных чисел
End For
For i = A + 1 To B Step 2 ' Перебираем нечетные числа от А до В
Snech = Snech + i ' Прибавляем к сумме нечетных чисел
End For
Else ' Иначе, если А нечетное
For i = A + 1 To B Step 2 ' Перебираем четные числа от А до В
Schet = Schet + i ' Прибавляем к сумме четных чисел
End For
For i = A To B Step 2 ' Перебираем нечетные числа от А до В
Snech = Snech + i ' Прибавляем к сумме нечетных чисел
End For
End If
Razn = Schet - Snech ' Разность между четной и нечетной суммой
Print Razn ' Выводим разность
End Sub
Поделитесь своими знаниями, ответьте на вопрос:
Дан целочисленный массив из 30 элементов. элементы массива могут принимать целые значения от 0 до 1000. опишите на одном из языков программирования алгоритм, позволяющий найти и вывести количество элементов массива, десятичная запись которых содержит ровно 2 цифры, причем хотя бы одна из этих цифр – цифра 9. const n=30; var a: array [1..n] of integer; i, j, k: integer; begin for i: =1 to n do readln(a[i]); … end. нужно заполнить пропуск в программе
Var a:array [1..N] of integer;
i, j, k: integer;
begin
for i:=1 to N do
readln(a[i]);
k:=0;
for i:=1 to N do
if (a[i]>9)and(a[i]<100)and((a[i] mod 10=9)or(a[i] div 10=9))
then k:=k+1;
writeln('k = ',k);
end.
Пример (для N=10):
350
79
108
91
56
71
30
39
257
39
k = 4