Разработать программу, выполняющую сортировку массива методом Шелла. Кроме классической реализации на базе вставки, также сделать вариант на базе обмена ("пузырька").объясните задачу,можно с объяснением
Пояснения: делала с цикла (можно было написать и шесть раз writeln, но так удобнее). Переменную n ввела для быстрого изменения значений (если нужно будет написать имя не 6, а, к примеру, 8 раз, нужно было заменить только вначале). Ещё хочу отметить, что имя вводится по-английски и нельзя терять апострофы ( ' ).
2. program sum;
var sum:integer;
m:array[1..4] of integer;
i:integer;
begin
m[1]:=6
for i:=2 to 4 do begin
m[i]:=m[i-1]+1;
end;
sum:=m[1];
for i:=2 to 4 do begin
sum:=sum+m[i];
end;
writeln(sum);
end.
Пояснения: можно было делать и по-другому, но так тоже верно. Тут использовалось два цикла и массив. А блок-схему сами сделайте)))
Алгоритм:
Должна быть переменная с суммой всех чисел (я её буду использовать как S)
1. Запрашиваем число (я его буду использовать как X)
2. Проверяем если S + X > 15 то (конец) иначе (повторяем 1 и 2 ещё раз)
Примеры на разных языках:
JavaScript:
var s = 0;
while (s < 15) {
s += input() //тут функция которая запрашивает и возвращает число
}
// действия после того как S > 15
Python:
s = 0
while s < 15:
s += input('Введите число: ') //тут функция которая запрашивает и возвращает число
// действия после того как S > 15
P.S. Если что-то не понятно, я постараюсь объяснить подробнее.
ответ
4,0/5
2
SilverWind
середнячок
8 ответов
2.6 тыс. пользователей, получивших
1. вывести на экран 6 раз своё имя
program imya;
const n=6;
var i:integer;
begin
for i:=1 to n do
writeln('ваше имя');
end.
Пояснения: делала с цикла (можно было написать и шесть раз writeln, но так удобнее). Переменную n ввела для быстрого изменения значений (если нужно будет написать имя не 6, а, к примеру, 8 раз, нужно было заменить только вначале). Ещё хочу отметить, что имя вводится по-английски и нельзя терять апострофы ( ' ).
2. program sum;
var sum:integer;
m:array[1..4] of integer;
i:integer;
begin
m[1]:=6
for i:=2 to 4 do begin
m[i]:=m[i-1]+1;
end;
sum:=m[1];
for i:=2 to 4 do begin
sum:=sum+m[i];
end;
writeln(sum);
end.
Пояснения: можно было делать и по-другому, но так тоже верно. Тут использовалось два цикла и массив. А блок-схему сами сделайте)))
3. program n!;
var n:real;
c:integer;
m:array[1..n] of integer;
begin
readln(n)
m[1]:=1;
for i:=2 to n do begin
m[i]:=m[i-1]+1;
end;
c:=m[1]
for i:=1 to n do begin
c:=c*m[i];
end;
writeln('n!',c);
end.
Если что не понятно, пишите, объясню
Объяснение:
сосиска