Программирование циклических алгоритмов Цикл – это команда исполнителю многократно повторить указанную последовательность команд. Три основных типа циклов : • Цикл с предусловием - while (цикл-ПОКА) • Цикл с постусловием - repeat (цикл-ДО) • Цикл с заданным числом повторений - for (цикл с параметром) Программирование циклов с заданным условием продолжения работы Цикл с предусловием – пока истинно условие цикла, выполняется тело цикла. Цикл с заданным условием продолжения работы (цикл-ПОКА) программируется в языке Паскаль с оператора while. Общий вид оператора: • while <условие> do <оператор> Здесь: • <условие> — логическое выражение; пока оно истинно, выполняется тело цикла; • <оператор> — простой или составной оператор, с которого записано тело цикла. условие тело цикла ДА НЕТ Запишем на языке Паскаль алгоритм получения частного q и остатка г от деления целого числа х на целое число у без использования операции деления. program ostatok; var х, у, q, r: integer; begin writeln (’Частное и остаток’); write ('Введите делимое х-> ’) ; readln (х); write (’Введите делитель у->’); read (у); r:=х; q:=0; while r>=y do begin r:=r-y; q:=q+l end; writeln ('Частное q=’, q); writeln (’Остаток r=’, r) end. Программирование циклов с заданным условием окончания работы. Цикл с постусловием – тело цикла выполняется до удовлетворения условия. Цикл с заданным условием окончания работы (цикл-ДО) программируется в языке Паскаль с оператора repeat. условие тело цикла ДА НЕТ Общий вид оператора: repeat <оператор1; оператор2;… > until <условие> Здесь: <оператор1>; <оператор2>; ...- операторы,образующие тело цикла; <условие> — логическое выражение; если оно ложно, то выполняется тело цикла. Необходимо решить задачу: Спортсмен приступает к тренировкам по следующему графику: в первый день он должен пробежать 10 км; каждый следующий день следует увеличивать дистанцию на 10% от нормы предыдущего дня. Как только норма достигнет или превысит 25 км, необходимо прекратить её её увеличение и далее пробегать ежедневно ровно 25 км. Начиная с какого дня спортсмен будет пробегать 25 км? Запишем на языке Паскаль алгоритм решения задачи о графике тренировок спортсмена. program sportsmen; var i: integer; х: real; begin writeln('График тренировок'); i:=1; x:=10; repeat i:=i+l; x:=x+0.1*x; until x>=25; writeln (’Начиная с ‘ , i, ‘ –го дня спортсмен будет пробегать 25 км’) end. Программирование циклов с заданным числом повторений Цикл с заданным числом повторений (цикл-ДЛЯ) программируется в языке Паскаль с оператора for. Его общий вид: for <параметр>:=<начальное_значение> to <конечное_значение> do <оператор> Здесь: <параметр> — переменная целого типа; <начальное_значение> и <конечное_значение> — выражения того же типа, что и параметр, вычисляемые перед началом цикла; <оператор> — простой или составной оператор — тело цикла. При выполнении этого оператора после каждого выполнения тела цикла происходит увеличение на единицу параметра цикла; условием выхода из цикла является превышение параметром конечного значения. Запишем на языке Паскаль алгоритм вычисления степени с натуральным показателем п для любого вещественного числа а. program stepen; var i, n: integer; a, у: real; тело цикла i=i1,i2…in begin writeln('Возведение в степень’); write (’Введите основание а»’); readln(а); write (’Введите показатель n» ’); readln(n); у:=1; for i:=l to n do y:=y*a; writeln ( ’an=’ , у) end. В заданиях Л и М применяется последний случай циклического алгоритма, т.е. цикл с заданным числом повторений …for i:=15 to 56 do s:=s+i… Задания Н и О на генератор псевдослучайных чисел Random, см. в следующей ссылке!
Объяснение:
сори что поздно но вроде бы я решил ток щас
Объяснение:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int a;
cin >> a;
vector <int> v(a);
vector <int> ans;
vector <int> empty;
for (int i = 0; i < v.size(); i++) {
cin>>v[i];
}
int d = a - 1;
bool isparity = a%2 == 1;
for (int i = 0; i < v.size(); i++) {
if (v[i] == v[d] && (i!=d || (isparity && i == a/2))) {
d--;
}
else if (i!=d && i!=a-1) {
ans = empty;
for (int j = 0; j <= i; j++) {
ans.push_back(v[j]);
}
}
else {
ans = empty;
for (int j = 0; j < i; j++) {
ans.push_back(v[j]);
}
}
}
cout<<ans.size()<<endl;
for (int i = ans.size()- 1; i >= 0; i--) {
cout<<ans[i]<<" ";
}
return 0;
}