Поясню, у меня с кирилицей иногда чудит, поэтому перешел на латиницу, ну и поменял букву в отчестве, Чтоб быть уверенным, что вырезан именно 2й инициал, а не повторно 1й, они ж одинаковые были. При отладке пробел в строке заменял подчеркиванием, чтобы четко видеть, что режет программа.
Поскольку к элементам третьего столбца массива можно обращаться, как B[i,3], достаточно использовать цикл по строкам. Для просмотра только четных строк массива достаточно начать со второй и менять номер строки с шагом 2.
const n = 6; var b:array[1..n,1..n] of integer; i,j,s: integer; begin Randomize; Writeln('Исходный массив'); for i := 1 to n do begin for j := 1 to n do begin b[i,j]:=Random(131)-65; Write(b[i,j]:4) end; Writeln end; { задание 1 } s:=0; for i:=1 to n do if b[i,3]>0 then s:=s+b[i,3]; Writeln('Значение найденной суммы: ',s); { задание 2 } i:=2; while i<=n do begin for j:=1 to n do if b[i,j]<0 then b[i,j]:=0; i:=i+2 end; Writeln('Результирующий массив'); for i:=1 to n do begin for j:=1 to n do Write(b[i,j]:4); Writeln end end.
Program Name_1;
var
name1, name2, name3, probel, dot: string;
number: integer;
begin
name1 := 'Ivanov_Ivan_Xvanovic';
probel := '_';
dot := '.';
number := Pos(probel, name1);
Writeln(number);
Writeln(name1);
{Delete(name1, number+2, 60);}
name2:=name1;
name3:=name1;
{Вырезаем имя}
Delete(name1, number, 60);
Delete(name2, 1, number); {сформировали 1й инициал}
Delete(name2, 2, 60);
Delete(name3, 1, number); {формируем 2й инициал}
number := Pos(probel, name3);
Delete(name3, 1, number);
Delete(name3, 2, 60);
Writeln('Ваши инициалы: ',name1,' ', name2, dot, ' ', name3, dot);
Readln();
end.
Поясню, у меня с кирилицей иногда чудит, поэтому перешел на латиницу, ну и поменял
букву в отчестве, Чтоб быть уверенным, что вырезан именно 2й инициал, а не повторно 1й, они ж одинаковые были.
При отладке пробел в строке заменял подчеркиванием, чтобы четко видеть, что режет программа.