М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
MegaGuy
MegaGuy
20.12.2021 03:01 •  Информатика

Оформите программу на abc паскале, обеспечивающую:
-заполнение одномерного массива a с клавиатуры n вещественными значениями;

-за минимальное число проходов по массиву a последовательное (а-б-в-г) формирование одномерного массива z значениями элементов массива a в указанном порядке от исходного расположения в массиве a;

а) сначала не положительные элементы, расположенные на четных позициях, в порядке, обратных данному,

б) потом положительные элементы на нечетных позициях в порядке, обратном исходному,

в) затем положительные элементы на четных позициях в исходном порядке,

г) потом не положительные элементы на нечетных позициях в исходном порядке;

- вывод элементов массива не просто решить, но и рассказать про алгоритм решения, все свои )

👇
Ответ:
ХЗшкин
ХЗшкин
20.12.2021

Const

N = 100;//кол-во возможных элементов массива А и Z

M = 0;//при введении этого числа заканчивается заполнение ммасива А

Var

a,b,v,g,ak,bk,vk,gk,jjj,nn: integer;

masA,masZ: array[1..n] Of integer;

Begin

write('при введении числа ',M,

' заполнение массива прекращается');

writeln;

For jjj:=1 To N Do

Begin

read (masA[jjj]);

If masA[jjj]=M Then

Begin

nn := jjj-1;

break;

End;

End;

writeln('исходный массив А :');

For jjj:=1 To nn Do

write(masA[jjj],' ');

writeln;

For jjj:=1 To nn Do

If masA[jjj]<0 Then

Begin

If jjj Mod 2=0 Then a := a+1

Else g := g+1;

End

Else

Begin

If jjj Mod 2=0 Then v := v+1

Else b := b+1;

End;

writeln(a,' ',b,' ',v,' ',g);

ak := a;

bk := b;

vk := v;

gk := g;

For jjj:=1 To nn Do

If masA[jjj]>=0 Then

Begin

If jjj mod 2=0 Then

Begin

masZ[ak+bk+v] := masA[jjj];

v := v-1;

End

Else

Begin

masZ[ak+b] := masA[jjj];

b := b-1;

End

End

Else

Begin

If jjj mod 2=0 Then

Begin

masZ[a] := masA[jjj];

a := a-1;

End

Else

Begin

masZ[ak+bk+vk+g] := masA[jjj];

g := g-1;

End

End;

writeln ('полученный массив Z :');

For jjj:=1 To nn Do

write(masZ[jjj],' ');

End.

объяснить будет сложно , но я попробую . Крч, первый раз перебирая массив , программа считывает кол-во жлементов для каждой из групп (отрицательные с четным индексом-а, отрицательные с нечетным -g,положительные с четным-v,положительные с нечетным-b).

Перебирая массив второй раз , программа берет последовательно числа из масства А , определяет к какой группе они относятся , и дальше кидает в конец нужной часть массива (кол-во всех элемкнтов массива =a+b+v+g, чтобы кинуть числа -2 и -5 (стоящие на нечетных местах ) в нужную часть массива , мы должны кинуть число -2 в ячейку [а+b+v+g] , а число -5 в ячейку [а+b+v+(g-1)] )

4,4(81 оценок)
Открыть все ответы
Ответ:
танкистка7
танкистка7
20.12.2021

розгалуження виконується, коли виконання попереднього розгалуження ще не закінчено.

Наприклад, вам потрібно встановити будильник на завтра. Якщо

завтра робочий день, то ви повинні встати о 7-й годині ранку, щоб іти

до школи. Якщо завтра субота, то ви повинні встати о 8-й годині ранку, щоб їхати на заняття гуртка. Якщо завтра неділя, то ви встаєте о

9-й годині ранку.

У наведеному на малюнку алгоритмі друге розгалуження з

умовою Завтра субота? міститься всередині першого розгалуження з

умовою Завтра робочий день?.

Такий фрагмент алгоритму називають вкладеним розгалуженням.

Вкладені розгалуження - це фрагмент алгоритму, у якому одне

розгалуження міститься всередині іншого розгалуження.

Розглянемо виконання наведеного на малюнку 3.26 фрагмента алгоритму. Спочатку перевіряється умова Завтра робочий день?. Якщо

результат перевірки цієї умови Так, то виконується команда Установити будильник на 7-му годину ранку і на цьому виконання всього

цього фрагмента алгоритму закінчується. Якщо результат перевірки

умови Завтра робочий день? - Ні, то перевіряється умова Завтра субота?. Якщо результат перевірки цієї умови Так, то виконується команда

Установити будильник на 8-му годину ранку і на цьому виконання всього цього фрагмента алгоритму закінчується, а якщо результат перевірки

цієї умови Ні, то виконується команда Установити будильник на 9-ту

годину ранку і виконання всього цього фрагмента алгоритму закінчується.

У наведеному на малюнку

фрагменті алгоритму внутрішнє

розгалуження виконується, якщо результат перевірки умови зовнішнього розгалуження Ні.

Объяснение:

рисунок 3.26 (во вложении)

4,6(37 оценок)
Ответ:
Kurgan4511
Kurgan4511
20.12.2021
Заполнение с клавиатуры:

Var
   A:array[1..5] of integer;
   i,O,P:integer;
Begin
Write('Введите массив A(5): ');
O:=0;
P:=0;
For i:= 1 to 5 do
    Begin
    Read(A[i]);
    if A[i] < 0 then O:=O+1
    else if A[i] > 0 then P:=P+1;
    End;
WriteLn('Количество отрицательных: ',O);
WriteLn('Количество положительных: ',P);
End.

Заполнение случайными числами:

Const
   N = 5;
Var
   A:array[1..N] of integer;
   i,O,P:integer;
Begin
Randomize;
Write('Введите массив A(5):');
O:=0;
P:=0;
For i:= 1 to N do
    Begin
    A[i]:=random(2*N+1)-N;
    Write(' ',A[i]);
    if A[i] < 0 then O:=O+1
    else if A[i] > 0 then P:=P+1;
    End;
WriteLn;
WriteLn('Количество отрицательных: ',O);
WriteLn('Количество положительных: ',P);
End.
4,4(44 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ