nastiabl5ct
15.09.2021 18:37

На паскале❤️❤️❤️Пользователь вводит координаты вершины выпуклого многоугольника, начиная с некоторой и по часовой стрелке. Программа вычисляет площадь этого многоугольника. Если известны координаты вершин треугольника (х1;у1), (х2;у2), (х3;у3), то его площадь вычисляется по формуле
S=1/2 | (х2-х1)(у3-у1)-(х3-х1)(у2-у1) |​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
изу197
02.02.2023 05:14
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016)
const
  n = 10;

var
  a: array[1..n] of integer;
  i, j, c, nc, max, imax: integer;
  p:BigInteger;

begin
  // Заполним массив сл. числами
  max := -MaxInt;
  for i := 1 to n do
  begin
    a[i] := random(-100, 100);write(a[i]:4);
    if abs(a[i]) > max then begin
      max := a[i];imax := i;
    end;
  end;
  writeln;
  //1. Количество элементов массива, больших С.
  writeln('Введите число "с"');readln(c);
  for i := 1 to n do if a[i] > c then nc := nc + 1;
  writeln('Элементов больше чем ', c, ' : ', nc);
 
  //2. произведение элементов массива,
  //расположенных после мак симального
  //по модулю элемента 
  p := 1;
  for i := imax + 1 to n do p := p * a[i];
  writeln('Максимальный по модулю элемент находится на ', imax, ' месте');
  writeln('Произведение элементов массива,расположенных после максимального по модулю элемента ', p);
 
  //3. Преобразовать массив таким образом, чтобы сначала размещались все
  //отрицательные элементы, а потом все положительные
  for i := 1 to n - 1 do
    for j := 1 to n - i do
      if a[j] > a[j + 1] then begin
        swap(a[j], a[j + 1]);  
      end;
  writeln('Преобразованный массив :');
  for i := 1 to n do write(a[i]:4);
end.

Тестовое решение:
  -6  91  52  62 -28 -64  86  86 -91 -61
Введите число "с"
15
Элементов больше чем 15 : 5
Максимальный по модулю элемент находится на 2 месте
Произведение элементов массива,расположенных после максимального по модулю элемента -1246076928
Преобразованный массив :
 -91 -64 -61 -28  -6  52  62  86  86  91
0,0(0 оценок)
Ответ:
pidortema
14.02.2021 10:28
1. Для цикла For есть решение выложенное выше  от Srzontmp.

2. Почти ничего не меня получим код для цикла while:
var
  i, n, k: integer;
begin
  i := 2;
  readln(n);
  while i <= n div 2 do begin
    if (n mod i) = 0 then k := i;
    i:=i+1;
    end;
  writeln('наибольший делитель ', n, ' = ', k);
end.

3. Аналогично для цикла Repeat:
var
  i, n, k: integer;
begin
  i := 2;
  readln(n);
  repeat
    if (n mod i) = 0 then k := i;
    i:=i+1;
  until i> n div 2;
  writeln('наибольший делитель ', n, ' = ', k);
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота