Напишите вариант метода пузырька который заканчивает работу если на очередном шаге внешнего цикла не
Перейти к содержимому

Напишите вариант метода пузырька который заканчивает работу если на очередном шаге внешнего цикла не

Напишите вариант метода пузырька который заканчивает работу если на очередном шаге внешнего цикла не

Опубликовано 10.06.2017 по предмету Информатика от Гость >>

Ответ оставил Гость

Const
n = 10;
var
a: array[1..n] of integer;
i, j, t: integer;
flag:boolean;

begin
Randomize;
Writeln(Исходный массив);
for i := 1 to n do
begin
a[i] := random(101)-50;
Write(a[i]:4)
end;
Writeln;
i:=1;
repeat
flag:=true;
for j := 1 to n-i do
if a[j] > a[j+1] then
begin t := a[j]; a[j] := a[j+1]; a[j+1] := t; flag:=false end;
Inc(i);
until (i>n-1) or flag;
Writeln(Отсортированный по возрастанию массив);
for i := 1 to n do Write(a[i]:4);
Writeln
end.

Тестовое решение:
Исходный массив
-32 -7 2 2 50 -33 1 31 4 -16
Отсортированный по возрастанию массив
-33 -32 -16 -7 1 2 2 4 31 50

Напишите вариант метода пузырька, который заканчивает работу, если на очередном шаге внешнего цикла не было перестановок.

println(‘Отсортированный массив:’);
a.Println;
end.

21211 это все (просто просят не меньше 20 символов 🙂 )

Первая задачка:
1Мб = 1024Кб, тогда объем сообщения будет = 32768бит (1/256 от Мб ,тут я очень сомневаюсь)
тогда чтобы определить мощность делаем так:
32768/2048= 16
2^16=65536 — мощность алфавита.

Вторая задачка:
Ну тут скорее всего на нашем языке больше информации несет, ибо у нас 33 символа и значит каждый символ весит около 5 бит, а у Нагури всего 4 символа и каждый символ весит по 2 бита

program vld;

var

a1,b1,a2,b2, s1,s2 : real;

begin

writeln(‘Введите катеты первого треугольника’);

read(a1,b1);

writeln(‘Введите катеты второго треугольника’);

read(a2,b2);

s1 := (a1 *b1 ) / 2;

s2 := (a2 * b2) / 2;

if s1 > s2 then

writeln(‘Площадь первого треугольника больше площади второго’);

if s2 > s1 then

writeln(‘Площадь второго треугольника больше площаде первого’);

Паскаль. Линейный одномерный массив. Метод пузырька.

Если я правильно понял, то должно быть вот так:
const m = 10;
var
arr: array[1..m] of integer;
i, j, k,x: integer;
begin
write (‘Исходный массив: ‘);
for i := 1 to m do begin
arr[i] := random(256);
write (arr[i]:4);
end;
writeln;
for i := 1 to m-1 do Begin
x:=0;
for j := 1 to m-i do
if arr[j] > arr[j+1] then begin
k := arr[j];
arr[j] := arr[j+1];
arr[j+1] := k;
x:=x+1;
end;
if x=0 then break;
end;
write (‘Отсортированный массив: ‘);
for i := 1 to m do
write (arr[i]:4);
writeln;
end.

Но не работает! Что не так?

Александр Погребняк Высший разум (196982) У меня все работает. 10 раз запускал

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *