Очень Нужно построить алгоритм Составьте алгоритм решения следующей задачи. Найти все равновеликие прямоугольники, стороны которых выражены целыми числами a и b, а площадь равна s (а и b принадлежат интервалу от 1 до 20, а s вводится с клавиатуры)
Исходный массив: -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;
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
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.