Alidisa1202
07.01.2021 06:22

виконати цей фрагмент програми Object Pascal інформатика 8 клас Ривкінд ст.214

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
kasa0303
11.03.2022 16:05
Если часть программы, в которой выполняется поиск, оформить в виде процедуры, то получится вот так:
const n=20;
type arr=array[1..n] of integer;
var a:arr;
i,x:integer;

procedure f(a:arr; x:integer);
var i,i1,i2:integer;
begin
i1:=1; i2:=n;
repeat
i:=(i1+i2) div 2;
if a[i]<x then i1:=(i1+i2) div 2+1;
if a[i]>x then i2:=(i1+i2) div 2-1;
until (a[i]=x)or(i1>i2);
if a[i]=x then 
 begin
 writeln('Искомый(ые) номер(а) элемента(ов):');
 while (i>0)and(a[i]=x) do i:=i-1;
 i:=i+1;
 while (i<=n)and(a[i]=x) do begin write(i,' '); i:=i+1; end;
 end
 else writeln('Элемент не найден');
writeln;
end;

begin
Randomize;
a[1]:=random(10);
write(a[1],' ');
for i:=2 to n do
 begin
 a[i]:=a[i-1]+random(10);
 write(a[i],' ');
 end;
writeln;
write('x = '); readln(x);
f(a,x);
end.

Пример:
9 9 15 21 30 33 35 35 36 44 45 45 52 54 62 63 70 70 77 78 
x = 35
Искомый(ые) номер(а) элемента(ов):
7 8 
0,0(0 оценок)
Ответ:
меси5
07.07.2022 04:01
Const
    n = 10;

var
    i, c: integer;
    a, w: array[1..n] of integer;

begin
    randomize;
    
    writeln('Исходный массив:');
    for i := 1 to n do
    begin
        a[i] := random(201) - 100;
        write(a[i], ' ');
    end;
    writeln;
    
    c := 0;
    for i := 1 to n do
        if a[i] > 0 then
        begin
            c := c + 1;
            w[c] := a[i];
        end;
    
    writeln('Кол-во положительных элементов: ', c);
    for i := 1 to n do
    begin
        if a[i] <= 0 then
        begin
            c := c + 1;
            w[c] := a[i];
        end;
    end;
    
    writeln('Результат:');
    for i := 1 to c do
        write(w[i], ' ');
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота