rechkai64
?>

Дан целочисленный массив из 30 элементов. элементы массива могут принимать целые значения от 0 до 10 000 включительно. опишите на одном из языков программирования алгоритм, который находит самую большую сумму двух соседних элементов и заменяет на эту сумму все элементы, кратные 3. гарантируется, что в массиве есть хотя бы один элемент, кратный 3. в качестве результата необходимо вывести измененный массив в обратном порядке, каждый элемент массива выводится с новой строчки. например, для массива из восьми элементов: 1 2 6 3 2 7 3 4 программа должна вывести (по одному числу в строке) числа: 4 10 7 2 10 10 2 1 язык паскаль

Информатика

Ответы

AHO436
PascalABC.NET 3.4.2, сборка 1837 от 11.10.2018Внимание! Если программа не работает, обновите версию!

begin

 var a := ArrRandom(30, 0, 10000); // сформировали массив

 a.Println; // вывели его элементы, если не надо, уберите строку

 var smax := a.Pairwise.Select(t -> t[0] + t[1]).Max; // макс. сумма в парах

 a.Reverse.Select(t -> t mod 3 = 0 ? smax : t).Printlines // все остальное

end.

valerii-borisovich550

{PascalABC}

Program Begenjov1997;

const

 n = 30; {Количество элементов массива}

 m = 10000; {Максимально возможное значение элемента}

var

 a:array[1..n] of integer;

 i, sum: integer;

 s:string;

begin

 s:=' -=Alphaeus=- ';

 for i:=1 to 22 do begin write(s[i]); sleep(60) end;

{заполняем массив случайными числами}

 writeln; randomize;

 for i:=1 to n do

   begin

     a[i]:=random(m+1);

   end;

{Ищем максимальную сумму двух соседних элементов}

 sum:=a[1]+a[2];

 for i:=2 to n-1 do

     if (a[i]+a[i+1]>sum) then sum:=a[i]+a[i+1];

{Заменяем элементы, кратные 3, наденной суммой}

 for i:=1 to n do

     if (a[i] mod 3 = 0) then  a[i]:=sum;

{Вывод}

 writeln('Массив А в обратном порядке:');

 for i:=0 to n-1 do writeln(a[n-i],'  ');

 writeln();

 writeln('Максимальная сумма двух соседних элементов равна ',sum);

end.

ирина_Андреевич1634
Математические  дроби - то есть это : ⅟ ½ ⅓ ¼ ⅕ ⅙ ⅐ ⅛ ⅑ ⅒ ⅔ ¾ ⅖ ⅗ ⅘ ⅚ ⅜ ⅝ ⅞.
Знаки тире как: длинное тире , цифровое тире , горизонтальная линия .
Математические символы такие как: ∫ ∬ ∭ ∮ ∯ ∰ ∱ ∲ ∳
∃ ∄ ∅ ∆ ∇ ∈ ∉ ∊ ∋ ∌ ∍ ∎ ∏ ∐ ∑ − ∓ ∔ ∕ ∖ ∗ ∘ ∙ √ ∛ ∜ ∝ ∟ ∠ ∡ ∢ ∣ ∤ ∥ ∦ ∧ ∨ ∩ ∪ ∴ ∵ ∶ ∷ ∸ ∹ ∺ ∻ ∼ ∽ ∾ ∿ ≀ ≁ ≂ ≃ ≄ ≅ ≆ ≇ ≈ ≉ ≊ ≋ ≌ ≍ ≎ ≏ ≐ ≑ ≒ ≓ ≔ ≕ ≖ ≗ ≘ ≙ ≚ ≛ ≜ ≝ ≞ ≟ ≠ ≡ ≢ ≣ ≤ ≥ ≦ ≧ ≨ ≩ ≪ ≫ ≬ ≭ ≮ ≯ ≰ ≱ ≲ ≳ ≴ ≵ ≶ ≷ ≸ ≹ ≺ ≻ ≼ ≽ ≾ ≿ ⊀ ⊁ ⊂ ⊃ ⊄ ⊅ ⊆ ⊇ ⊈ ⊉ ⊊ ⊋ ⊌ ⊍ ⊎ ⊏ ⊐ ⊑ ⊒ ⊓ ⊔ ⊕ ⊖ ⊗ ⊘ ⊙ ⊚ ⊛ ⊜ ⊝ ⊞ ⊟ ⊠ ⊡ ⊢ ⊣ ⊤ ⊥ ⊦ ⊧ ⊨ ⊩ ⊪ ⊫ ⊬ ⊭ ⊮ ⊯ ⊰ ⊱ ⊲ ⊳ ⊴ ⊵ ⊶ ⊷ ⊸ ⊹ ⊺ ⊻ ⊼ ⊽ ⊾ ⊿ ⋀ ⋁ ⋂ ⋃ ⋄ ⋅ ⋆ ⋇ ⋈ ⋉ ⋊ ⋋ ⋌ ⋍ ⋎ ⋏ ⋐ ⋑ ⋒ ⋓ ⋔ ⋕ ⋖ ⋗ ⋘ ⋙ ⋚ ⋛ ⋜ ⋝ ⋞ ⋟ ⋠ ⋡ ⋢ ⋣ ⋤ ⋥ ⋦ ⋧ ⋨ ⋩ ⋪ ⋫ ⋬ ⋭ ⋮ ⋯ ⋰ ⋱ ⋲ ⋳ ⋴ ⋵ ⋶ ⋷ ⋸ ⋹ ⋺ ⋻ ⋼ ⋽ ⋾ ⋿ ✕ ✖ ✚.
Символы как процент -‰
Римские цифры : Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ
ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ⅺ ⅻ.
Цифры в кружках - ⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ➊ ➋ ➌ ➍ ➎ ➏ ➐ ➑ ➒ ➓
⓪ ➀ ➁ ➂ ➃ ➄ ➅ ➆ ➇ ➈ ➉ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳
❶ ❷ ❸ ❹ ❺ ❻ ❼ ❽ ❾ ❿ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴
Латинские буквы в кружочках:
ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ
ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ
Знаки валютных купюр : $ € ¥ £ ƒ ₣ ¢ ¤ ฿ ₠ ₡ ₢ ₤
Смайлики:㋛ ソ ッ ヅ ツ ゾ シ ジ ッ ツ シ ン 〴 ت ☺ ☻ ☹
Рука , указательнйы палец и многое другое ( ✉ ✍ ✎ ✏ ✐ ✑ ✒,☚☛☜☝☞☟✌,✆ ☎ ☏,
ViktorovnaKraeva634
// PascalABC.NET 3.0, сборка 1144 от 16.01.2016
type
  Point=record
  x,y:real
  end;

function GetPoint(c:char):Point;
begin
  Writeln('Введите координаты точки ',c,':');
  Read(Result.x,Result.y)
end;

function Line(A,B:Point):real;
begin
  Result:=sqrt(sqr(B.x-A.x)+sqr(B.y-A.y))
end;

function SqTriangle(pA,pB,pC:Point):real;
begin
  var a:=Line(pB,pC);
  var b:=Line(pA,pC);
  var c:=Line(pA,pB);
  if (a+b>c) and (a+c>b) and (b+c>a) then begin
    var p:=(a+b+c)/2;
    Result:=sqrt(p*(p-a)*(p-b)*(p-c))
    end
  else Result:=0
end;

begin
  var A:=GetPoint('A');
  var B:=GetPoint('B');
  var C:=GetPoint('C');
  Writeln('Площадь треугольника равна ',SqTriangle(A,B,C))
end.

Тестовое решение:
Введите координаты точки A:
-5 3.18
Введите координаты точки B:
1.45 6.2
Введите координаты точки C:
6 -5.93
Площадь треугольника равна 45.98975

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дан целочисленный массив из 30 элементов. элементы массива могут принимать целые значения от 0 до 10 000 включительно. опишите на одном из языков программирования алгоритм, который находит самую большую сумму двух соседних элементов и заменяет на эту сумму все элементы, кратные 3. гарантируется, что в массиве есть хотя бы один элемент, кратный 3. в качестве результата необходимо вывести измененный массив в обратном порядке, каждый элемент массива выводится с новой строчки. например, для массива из восьми элементов: 1 2 6 3 2 7 3 4 программа должна вывести (по одному числу в строке) числа: 4 10 7 2 10 10 2 1 язык паскаль
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Shevtsov1818
Svetlana1884
Олимов Протопопова
cholga69
Mariya-Karaseva
svetegal
IrinaSolodukhina1495
fedchenkoofficial
losevev5619
b3dllam
Tsevich333639
andy74rus36
Sergei_sergei
nopel91668
Umkatoys50