1. Примерно так учат писать программы в большинстве школ
var n,s:integer;
begin s:=0; repeat Read(n); if n<>0 then if (n mod 6=0) and (n mod 10=2) then s:=s+n until n=0; Writeln(s) end.
Пример 16 42 18 132 94 18 0 174
Кроме этого, зачем-то требуют блок-схему - приведена во вложении, выполнена по ГОСТ 19.701-90 (ISO 5807-85).
2. А вот так эту задачу можно решить в современном Паскале
PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018 Внимание! Если программа не работает, обновите версию!
begin ReadSeqIntegerWhile(t->t<>0) .Where(t->(t mod 6=0) and (t mod 10=2)).Sum.Println end.
И блок-схема тут вообще не нужна: она ничего не даст.
Сравнение явно не в пользу школьного "образования" - учить, как выполнять работу двадцать минут вместо двух.
info122
18.10.2020
Одно из решений, возможно, не самое эффективное #include <iostream> #include <iomanip> int main() { using namespace std;
//исходная последовательность const int N = 8; double Arr[N] = { 14.2, -3.4, 7.8, -3.1, 8.2, 98.22, -7, 12 };
//вывод на экран исходной последовательности for (int i = 0; i < N; ++i) cout << Arr[i] << " "; cout << endl;
//подсчитаем количества отрицательных и неотрицательных элементов int kpos = 0; int kneg = 0; for (int i = 0; i < N; ++i) if (Arr[i] < 0) ++kneg; else ++kpos;
//создадим массивы отрицательных и неотрицательных элементов double * ArrNeg = new double[kneg]; double * ArrPos = new double[kpos];
int kn = 0, kp = 0; for (int i = 0; i < N; i++) if (Arr[i] < 0) ArrNeg[kn++] = Arr[i]; else ArrPos[kp++] = Arr[i];
cout << "Enter a, b, c or d: "; char ch; cin >> ch;
if (ch == 'a' || ch == 'b' || ch == 'c' || ch == 'd') { switch (ch) { //пункт а) case 'a': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[i]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[i]; break;
//пункт б) case 'b': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[--kn]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[i]; break;
//пункт в) case 'c': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[i]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[--kp]; break;
//пункт г) case 'd': for (int i = 0; i < kneg; ++i) Arr[i] = ArrNeg[--kn]; for (int i = 0; i < kpos; ++i) Arr[i + kneg] = ArrPos[--kp]; break; } } else cout << "You entered wrong symbol\n";
for (int i = 0; i < N; ++i) cout << Arr[i] << " "; cout << endl; delete[] ArrNeg; delete[] ArrPos; return 0; }
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Даны переменные Z V X. Определить сколько и какие из переменных являются четными числамив vba exс написать код!!
var
n,s:integer;
begin
s:=0;
repeat
Read(n);
if n<>0 then
if (n mod 6=0) and (n mod 10=2) then s:=s+n
until n=0;
Writeln(s)
end.
Пример
16
42
18
132
94
18
0
174
Кроме этого, зачем-то требуют блок-схему - приведена во вложении, выполнена по ГОСТ 19.701-90 (ISO 5807-85).
2. А вот так эту задачу можно решить в современном Паскале
PascalABC.NET 3.3.5, сборка 1660 от 20.04.2018
Внимание! Если программа не работает, обновите версию!
begin
ReadSeqIntegerWhile(t->t<>0)
.Where(t->(t mod 6=0) and (t mod 10=2)).Sum.Println
end.
И блок-схема тут вообще не нужна: она ничего не даст.
Сравнение явно не в пользу школьного "образования" - учить, как выполнять работу двадцать минут вместо двух.