Ребят,я,видимо,не понимаю какую-то простую вещь,которая лежит в принципах циклов:
Пишу программу,которая считает 10 элементов,поместит их в массив,отсортирует чётные/нечётные и выдаст их сумму.
Код:
For i=1 To 10'Цикл вывода сообщения о вводе элемента массива
TextWindow.WriteLine("Введите "+i+" элемент массива")
a[i]=TextWindow.ReadNumber()
EndFor
For i=1 To 10'Цикл создания массива из целых частей после деления на 2
b[i]=Math.Remainder(a[i],2)
EndFor
For i=1 To 10'Цикл условий на остаток и суммы
If b[i]=0 Then
For i=1 To 10
s=0
s=s+a[i]
EndFor
Else
For i=1 To 10
k=0
k=k+a[i]
EndFor
EndIf
Проблема в том,что в итоге программа выводит только последние чётные/нечётные элементы массива.
Мои попытки устранить проблему:
1)Я ввёл новый массив b[i],в который помещается остаток от деления a[i] элемента массива.
2)Теперь в каждом условии свой цикл
For i=1 To 10'Цикл вывода сообщения о вводе элемента массива
TextWindow.WriteLine("Введите "+i+" элемент массива")
a[i]=TextWindow.ReadNumber()
EndFor
k=0
s=0
For i=1 To 10'Цикл условий на остаток и суммы
If a[i]=Math.Remainder(a[i],2)=0 Then
For i=1 To 10'Цикл вывода сообщения о вводе элемента массива
TextWindow.WriteLine("Введите "+i+" элемент массива")
a[i]=TextWindow.ReadNumber()
EndFor
For i=1 To 10'Цикл создания массива из целых частей после деления на 2
b[i]=Math.Remainder(a[i],2)
EndFor
For i=1 To 10'Цикл условий на остаток и суммы
If b[i]=0 Then
For i=1 To 10
s=0
s=s+a[i]
EndFor
Else
For i=1 To 10
k=0
k=k+a[i]
EndFor
EndIf
Дело в том,что вроде программа распознаёт четные/нечетные. То есть команда верная. Только она выводит только последние элементы массива,вместо суммы. Вобщем сам разберусь завтра
Дело в том,что вроде программа распознаёт четные/нечетные. То есть команда верная. Только она выводит только последние элементы массива,вместо суммы. Вобщем сам разберусь завтра
Спасибо большое!
насколько я понял, там берётся a[i] если он равен остатку от деления, а остаток от деления равен 0, то условие выполняется. Но это ведь бред, т.е. чтобы условие сработало, нужен элемент массива равный 0
насколько я понял, там берётся a[i] если он равен остатку от деления, а остаток от деления равен 0, то условие выполняется. Но это ведь бред, т.е. чтобы условие сработало, нужен элемент массива равный 0
В самом деле,вот где ошибка. Просто непросто я все время I элемент сравниваю с 0)
Вдруг кому-то понадобиться:
Код рабочей программы в MSB. Рассчёт суммы чётных и нечётных чисел из 10.
k=0'сумма чётных
s=0'сумма нечётных
For i=1 To 10
TextWindow.WriteLine("Введите "+i+" число ")
a[i]=TextWindow.ReadNumber()
remainder[i]=Math.Remainder(a[i],2)
If remainder[i]=0 then
k=k+a[i]
Else
s=s+a[i]
EndIf
EndFor
TextWindow.WriteLine("Cумма чётных= "+k)
TextWindow.WriteLine("Сумма нечётных="+s)