unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Edit,
FMX.Controls.Presentation, FMX.StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
x, s: integer;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
begin
x:=StrToInt(Edit1.Text);
s:=(x+2)/5;
Showmessage(IntTostr(s)+'ответ');
end;
end.
На картинке можете посмотреть, как это работает, вначале выводится исходная "матрица" (массив массивов на самом деле), потом одной строкой сколько в каждой "строке" нечетных элементов, затем отсортированная "матрица", и потом, еще раз, сколько нечетных элементов в каждой строке отсортированной "матрицы". Во вложенных файлах в первом сортировка встроенным методом PascalABC.NET и там убрана процедура OddsInARow (см скриншот). Во втором пузырьковая сортировка. Заполнение матрицы рандомное единицами и двойками, можете вставить свои значения в a[i] := ArrRandom(n, 1, 2), где n - кол-во "столбцов" (элементов во внутренних массивах).
Digits=array[0..9] of byte;
procedure RD(n:integer; var ad:Digits; var f:boolean);
{ заполняет массив количеством повторений цифр числа n
f=True, если хоть одна цифра повторяется }
var
i,d:byte;
begin
for i:=0 to 9 do ad[i]:=0;
f:=False;
while n>0 do begin
d:=n mod 10;
ad[d]:=ad[d]+1;
if ad[d]>1 then f:=True;
n:=n div 10
end;
end;
var
i,j,n,k:integer;
a:Digits;
f:boolean;
begin
for i:=1 to 2 do begin
Write('n = '); Read(n);
n:=Abs(n); { против ввода отрицательных }
RD(n,a,f);
if f then begin
Write('Встречаются больше одного раза цифры ');
for j:=0 to 9 do
if a[j]>1 then Write(j,' ');
Writeln
end
else Writeln('Все цифры в числе уникальны')
end
end.
Пример
n = 153632
Встречаются больше одного раза цифры 3
n = 1030041
Встречаются больше одного раза цифры 0 1
var
s,sr:string;
c:char;
i,j,n,p:byte;
begin
for i:=1 to 2 do begin
Write('Введите строку: '); Readln(s);
n:=Length(s);
sr:='';
for j:=1 to n do begin
c:=s[j];
if Pos(c,Copy(s,j+1,n-j))>0 then sr:=sr+c+' ';
end;
if Length(sr)>0 then Writeln('Встречаются больше одного раза символы ',sr)
else Writeln('Все символы в строке уникальны')
end
end.
Пример
Введите строку: информатика
Встречаются больше одного раза символы и а
Введите строку: проблема
Все символы в строке уникальны