Вопрос задан 15.07.2023 в 21:24. Предмет Информатика. Спрашивает Меркушева Настя.

Решить через Pascal. Б)Задан массив P(10) (элементы его выбрать самостоятельно). Построить новый

массив B, элементы которого вычисляется по формуле: Pb=0,5sin(P) + 0,1. Отобрать в новом массиве все положительные значения и если их количество будет больше 5, то массив B отпечатать печатать без изменения, в противном случае, присвоить положительные значения массива В число 1. В)Произвести выборку в массиве Х=( -1; - 2; 3; 4; 5; - 7; - 12; 1; 0,8; - 6; 5; 7; - 2; 0,1; 0; 3; - 8; - 5) то есть формировать 4 массива. Первый содержит записанные в подряд положительные элементы массива X, Второй - отрицательные элементы массива Х. Третий - подряд записанные порядковые номера элементов первого массива, которые они имели в массиве X, Четвёртый массив содержит подряд записанные индексы элементов второго массива, которые они имели в массиве X.​
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Воронова София.

===== PascalABC.NET =====

- Б) -

begin

 var p := ArrRandom(10, -10, 10);

 Print('P:');

 p.Println;

 var B := p.Select(q -> 0.5 * Sin(q) + 0.1).ToArray;

 Print('B:');

 if B.Count(p -> p > 0) <= 5 then

   B.Transform(q -> q > 0 ? 1.0 : q);

 B.Println

end.

- В) -

begin

 var x: array of real := (-1, -2, 3, 4, 5, -7, -12, 1,

     0.8, -6, 5, 7, -2, 0.1, 0, 3, -8, -5);

 x.Println;

 var x1 := x.Where(p -> p > 0).Println.ToArray;

 var x2 := x.Where(p -> p < 0).Println.ToArray;

 var x3 := x.Indices(p -> p > 0).Select(p -> p + 1).Println.ToArray;

 var x4 := x.Indices(p -> p < 0).Select(p -> p + 1).Println.ToArray

end.



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Привет! Вот решение задачи на языке Pascal, выполняющее указанные действия:

pascal
program Arrays; var P, B, X, Positives, Negatives, IndexPositives, IndexNegatives: array[1..10] of real; i, countPositives, countNegatives: integer; begin // Часть Б // Задаем значения массива P P[1] := 0.5; P[2] := 1.0; P[3] := -0.3; P[4] := 0.7; P[5] := 1.5; P[6] := -0.9; P[7] := 0.2; P[8] := -1.2; P[9] := 0.6; P[10] := 1.3; // Вычисляем элементы массива B for i := 1 to 10 do begin B[i] := 0.5 * sin(P[i]) + 0.1; end; // Отбираем положительные значения и считаем их количество countPositives := 0; for i := 1 to 10 do begin if B[i] > 0 then begin Positives[countPositives + 1] := B[i]; IndexPositives[countPositives + 1] := i; countPositives := countPositives + 1; end; end; // Проверяем количество положительных значений if countPositives > 5 then begin // Выводим массив B без изменений writeln('Массив B без изменений:'); for i := 1 to 10 do begin writeln(B[i]); end; end else begin // Присваиваем положительным значениям число 1 for i := 1 to countPositives do begin B[IndexPositives[i]] := 1; end; // Выводим измененный массив B writeln('Измененный массив B:'); for i := 1 to 10 do begin writeln(B[i]); end; end; // Часть В // Задаем значения массива X X[1] := -1; X[2] := -2; X[3] := 3; X[4] := 4; X[5] := 5; X[6] := -7; X[7] := -12; X[8] := 1; X[9] := 0.8; X[10] := -6; X[11] := 5; X[12] := 7; X[13] := -2; X[14] := 0.1; X[15] := 0; X[16] := 3; X[17] := -8; X[18] := -5; // Формируем массивы countPositives := 0; countNegatives := 0; for i := 1 to 18 do begin if X[i] > 0 then begin countPositives := countPositives + 1; Positives[countPositives] := X[i]; IndexPositives[countPositives] := i; end else if X[i] < 0 then begin countNegatives := countNegatives + 1; Negatives[countNegatives] := X[i]; IndexNegatives[countNegatives] := i; end; end; // Выводим массив положительных элементов X writeln('Массив положительных элементов X:'); for i := 1 to countPositives do begin writeln(Positives[i]); end; // Выводим массив отрицательных элементов X writeln('Массив отрицательных элементов X:'); for i := 1 to countNegatives do begin writeln(Negatives[i]); end; // Выводим массив порядковых номеров положительных элементов writeln('Массив порядковых номеров положительных элементов:'); for i := 1 to countPositives do begin writeln(IndexPositives[i]); end; // Выводим массив индексов отрицательных элементов writeln('Массив индексов отрицательных элементов:'); for i := 1 to countNegatives do begin writeln(IndexNegatives[i]); end; end.

Надеюсь, это поможет! Если у вас есть ещё вопросы, пожалуйста, дайте мне знать.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос