PascalВыделить код1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 uses crt; var s,s1:string; c:char; i,j,k:byte; begin writeln('Введите строку'); read(s); s1:=s;{сделаем копию строки, если строка не нужна, то можно и не делать} i:=1; while i<length(s1) do begin c:=s1[i];{запомним символ} k:=0; for j:=length(s1) downto i+1 do{с конца строки ищем такие же} if s1[j]=c then{если есть} begin k:=1;{фиксируем} delete(s1,j,1);{удаляем} end; if k=1 then delete(s1,i,1){если не один, удаляем} else i:=i+1;{иначе проверяем следующий} end; writeln('Символы по 1 разу'); if s1='' then write('Таких символов нет') else write(s1); end.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017 // Внимание! Если программа не работает, обновите версию!
type Mas=array[,] of integer;
procedure GetMas(s:string; var a:Mas); begin Writeln('*** Массив ',s,' ***'); var n:=ReadInteger('Количество строк в массиве:'); var m:=ReadInteger('Количество столбцов в массиве:'); Writeln('Вводите элементы массива'); a:=ReadMatrInteger(n,m) end;
function SumDiag(a:Mas):integer; begin Result:=0; for var i:=0 to Min(a.RowCount,a.ColCount)-1 do Result+=a[i,i] end;
begin var a,b,c:Mas; GetMas('A',a); GetMas('B',b); GetMas('C',c); Writeln('Общая сумма элементов главных диагоналей равна ', SumDiag(a)+SumDiag(b)+SumDiag(c)) end.
Пример *** Массив A *** Количество строк в массиве: 3 Количество столбцов в массиве: 4 Вводите элементы массива -33 -50 34 -41 -31 10 37 31 32 -49 -32 -27 *** Массив B *** Количество строк в массиве: 2 Количество столбцов в массиве: 2 Вводите элементы массива -22 35 0 11 *** Массив C *** Количество строк в массиве: 3 Количество столбцов в массиве: 2 Вводите элементы массива 23 38 17 -8 16 -1 Общая сумма элементов главных диагоналей равна -51