1)защита от неверного ввода (>10) 2) написать программу которая выводит квадраты первых 7 целых чисел в обратном порядке 3) написать программу которая выводит таблицу умножения на 1 число все это в Паскале
procedure SortMin(var a: MyArr;n:Integer); var i,j,x:integer; begin; for I:=1 to n do for j:=1 to n-1 do if a[j]<a[j+1] then begin x:=a[j+1]; a[j+1]:=a[j]; a[j]:=x; end; end;
begin; randomize; k:=0; writeln('First array:'); for i:=1 to 10 do begin; ar[i]:=random(100); write(ar[i]:4); if (ar[i]>10) and (ar[i] mod 3=0) then begin; inc(k); ar2[k]:=ar[i]; end; end; if k=0 then begin; writeln('Нет подходящих элементов'); exit; end; SortMin(ar2,k); writeln; writeln('Final array:'); for i:=1 to k do write(ar2[i]:4); end.
Function ds(ByVal n As Integer) As Integer 'Сумма цифр в числе n Dim s As Integer s = 0 Do While n <> 0 s = s + n Mod 10 n = Int(n / 10) Loop ds = s End Function
Function IsGood(n As Integer) As Boolean 'Сохраняется ли сумма цифр при умножении числа на 2,3,..9 ? Dim etalon As Integer, k As Integer etalon = ds(n) IsGood = True k = 2 Do While IsGood And k < 10 IsGood = (ds(n * k) = etalon) k = k + 1 Loop End Function
Sub aaa() Dim i As Integer, s As String s = "" For i = 10 To 99 If IsGood(i) Then s = s + Str(i) Next i MsgBox s End Sub
n=10;
type
MyArr=array[1..10] of integer;
var ar:MyArr;
ar2:MyArr;
i,k:integer;
procedure SortMin(var a: MyArr;n:Integer);
var i,j,x:integer;
begin;
for I:=1 to n do
for j:=1 to n-1 do
if a[j]<a[j+1] then
begin
x:=a[j+1];
a[j+1]:=a[j];
a[j]:=x;
end;
end;
begin;
randomize;
k:=0;
writeln('First array:');
for i:=1 to 10 do
begin;
ar[i]:=random(100);
write(ar[i]:4);
if (ar[i]>10) and (ar[i] mod 3=0) then
begin;
inc(k);
ar2[k]:=ar[i];
end;
end;
if k=0 then
begin;
writeln('Нет подходящих элементов');
exit;
end;
SortMin(ar2,k);
writeln;
writeln('Final array:');
for i:=1 to k do
write(ar2[i]:4);
end.
'Сумма цифр в числе n
Dim s As Integer
s = 0
Do While n <> 0
s = s + n Mod 10
n = Int(n / 10)
Loop
ds = s
End Function
Function IsGood(n As Integer) As Boolean
'Сохраняется ли сумма цифр при умножении числа на 2,3,..9 ?
Dim etalon As Integer, k As Integer
etalon = ds(n)
IsGood = True
k = 2
Do While IsGood And k < 10
IsGood = (ds(n * k) = etalon)
k = k + 1
Loop
End Function
Sub aaa()
Dim i As Integer, s As String
s = ""
For i = 10 To 99
If IsGood(i) Then s = s + Str(i)
Next i
MsgBox s
End Sub
Тестовое решение:
18 45 90 99