dzhmulin
15.06.2022 22:50

7
составить алгоритм (блок-схему) для вычисления площади прямоугольника по двум известным
сторонам

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Artur68084
16.03.2023 15:45
Не особо знаю паскаль, так что дабы не накосячить с синтаксисом, покажу на примере. Тут всё просто - тебе лишь нужен цикл For и расчет процентов.

FOR i = 1 TO 100
percents = FIX(x * p / 100) ' здесь у нас есть переменная percents, которой присваиваются округленные функцией fix проценты (насколько я знаю, в паскале аналогичная функция называется Round)
x = x + percents 'тут всё понятно - переменной X присваивается она сама и годовые проценты по вкладу
IF x >= y THEN 'проверяем, не равен или не превысил ли наш вклад ожидаемую сумму
PRINT i 'в цикле For можно не заморачиваться с отслеживанием лет, переменная i сама подсчитает количество итераций-лет
END 'завершаем программу
END IF
NEXT i ' конец цикла
Можно ещё чисто для себя добавить в условие вывод переменной X, чтобы было нагляднее.  
0,0(0 оценок)
Ответ:
abrashevamarin
05.03.2022 16:15

задача 1

program ProcArray;

procedure GetMax (A: array of Integer; var imax: Integer);

var

 i: Integer;

begin

 imax := Low (A);

 for i := Low (A) to High (A) do

   if A [i] > A [imax] then

     imax := i;

end;

procedure GetMin (A: array of Integer; var imin: Integer);

var

 i: Integer;

begin

 imin := Low (A);

 for i := Low (A) to High (A) do

   if A [i] < A [imin] then

     imin := i;

end;

procedure Repl (var A: array of Integer; OldValue, NewValue: Integer);

var

 i: Integer;

begin

 for i := Low (A) to High (A) do

   if A [i] > OldValue then

     A [i] := NewValue;

end;

var

 A: array [0..49] of Integer;

 i, imax, imin: Integer;

begin

 Randomize;

 for i := Low (A) to High (A) do begin

     A [i] := Random (21) - 10;

     Write (A [i] :3, ' ');

 end;

 WriteLn;

 GetMax (A, imax);

 WriteLn ('Максимальное значение = ', A [imax]);

 GetMin (A, imin);

 WriteLn ('Минимальное значение = ', A [imin]);

 Repl (A, 1, 0);

 WriteLn ('Замена >1 на 0');

 for i := Low (A) to High (A) do

     Write (A [i] :3, ' ');

 ReadLn;

end.

задача 2

program ProcArray1;

procedure Multi (A: array of Integer; var Prod: LongInt);

var

 i: Integer;

begin

 Prod := 1;

 for i := Low (A) to High (A) do

   Prod := Prod * A [i];

end;

procedure Repl (var A: array of Integer; OldValue, NewValue: Integer);

var

 i: Integer;

begin

 for i := Low (A) to High (A) do

   if A [i] > OldValue then

     A [i] := NewValue;

end;

var

 A: array [0..29] of Integer;

 i: Integer;

 p: LongInt;

begin

 Randomize;

 for i := Low (A) to High (A) do begin

     A [i] := Random (3) + 1;

     Write (A [i] :3, ' ');

 end;

 WriteLn;

 Multi (A, p);

 WriteLn ('Произведение = ', p);

 Repl (A, 5, 1);

 WriteLn ('Замена >5 на 1');

 for i := Low (A) to High (A) do

     Write (A [i] :3, ' ');

 ReadLn;

end.

Объяснение:

Во задаче №2 при заполнении массива значениями больше 5 начинает возникать переполнение LongInt из за чего значение произведения становится отрицательным

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота