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

Очень Нужно построить алгоритм
Составьте алгоритм решения следующей задачи. Найти все равновеликие прямоугольники, стороны которых выражены целыми числами a и b, а площадь равна s (а и b принадлежат интервалу от 1 до 20, а s вводится с клавиатуры) ​

👇
Ответ:
Lisa112007
Lisa112007
22.04.2020

program names;

var s,i:integer;

begin

writeln('Введите s');

readln(s);

for i:=1 to 20 do

if (i<s) then

begin

if (s mod i=0) and (s/i<=20) then writeln(i,' ',s/i:1:2);

end;

end.

4,8(90 оценок)
Открыть все ответы
Ответ:
alinka393
alinka393
22.04.2020
Исходный массив: -3 -4 -1 -8 6
Max1 = A[5] = 6
Max2 = A[3] = -1
Max3 = A[1] = -3
Новый массив: 1 -4 3 -8 5Const
   N = 5;
Var
   A:array[1..N] of integer;
   i,Max1,Max2,Max3:integer;
Begin
Randomize;
Write('Исходный массив:');
For i:= 1 to N do
    Begin
    A[i]:=random(21)-10;
    Write(' ',A[i]);
    End;

Max1:=1;
For i:= 2 to N do
    if A[i]>A[Max1] then Max1:=i;

if Max1<>1 then Max2:=1
else Max2:=2;
For i:= 1 to N do
    if (A[i]>A[Max2])and(A[i]<=A[Max1])and(i<>Max1) then Max2:=i;

Max3:=1;
if (Max2=Max3)or(Max1=Max3) then Max3:=Max3+1;
if (Max2=Max3)or(Max1=Max3) then Max3:=Max3+1;
For i:= 1 to N do
    if (A[i]>A[Max3])and(A[i]<=A[Max2])and(i<>Max2) then Max3:=i;

WriteLn;
WriteLn('Max1 = A[',Max1,'] = ',A[Max1]);
WriteLn('Max2 = A[',Max2,'] = ',A[Max2]);
WriteLn('Max3 = A[',Max3,'] = ',A[Max3]);

A[Max1]:=Max1;
A[Max2]:=Max2;
A[Max3]:=Max3;
Write('Новый массив:');
For i:= 1 to N do
    Write(' ',A[i])
End.

Пример работы программы:

Исходный массив: -3 -4 -1 -8 6
Max1 = A[5] = 6
Max2 = A[3] = -1
Max3 = A[1] = -3
Новый массив: 1 -4 3 -8 5
4,6(22 оценок)
Ответ:
strakh1991
strakh1991
22.04.2020
Const
  nn=50;

type
  data = record
    number : 1..31;
    month : 1..12;
    year : 1901..1997
  end;

var
  d:array[1..nn] of data;
  i,n,k:integer;
  s,s1,s2,s3:string;
begin
  Write('Количество дат (1..50)-> '); Read(n);
  Writeln('Введите через пробел день, месяц, год: ');
  for i:=1 to n do Read(d[i].number,d[i].month,d[i].year);
  { a }
  Write('Самый ранний из годов: ');
  k:=d[1].year;
  for i:=2 to n do
    if d[i].year<k then k:=d[i].year;
  Writeln(k);
  { б }
  Writeln('Все весенние даты');
  for i:=1 to n do
    if d[i].month in [3..5] then
      Write(d[i].number,'.',d[i].month,'.',d[i].year,' ');
  Writeln;
  { в }
  Write('Cамая поздняя дата: ');
  Str(d[1].year,s1); Str(d[1].month,s2); Str(d[1].number,s3);
  if Length(s2)=1 then s2:='0'+s2;
  if Length(s3)=1 then s3:='0'+s3;
  s:=s1+s2+s3;
  for i:=2 to n do
  begin
    Str(d[i].year,s1); Str(d[i].month,s2); Str(d[i].number,s3);
    if Length(s2)=1 then s2:='0'+s2;
    if Length(s3)=1 then s3:='0'+s3;
    if s<s1+s2+s3 then s:=s1+s2+s3
  end;
  Writeln(Copy(s,7,2)+'.'+Copy(s,5,2)+'.'+Copy(s,1,4))
end.

Тестовое решение:
Количество дат (1..50)-> 6
Введите через пробел день, месяц, год:
18 4 1950
16 5 1968
5 8 1970
3 9 1968
11 6 1964
16 12 1967
Самый ранний из годов: 1950
Все весенние даты
18.4.1950 16.5.1968
Cамая поздняя дата: 05.08.1970
4,7(86 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ