{9.15. Дана матрица размером п х т. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (или один из них) оказался в верхнем левом углу.}
uses crt;
var a:array[1..5,1..5] of integer;
i,j,o,y:integer;
begin
randomize;
for i:=1 to 5 do begin
for j:=1 to 5 do begin
a[i,j]:=random(100);
write(a[i,j],' ');
if (j=5) then writeln(' ');
end; end;
for j:=1 to 5 do
for i:=1 to 5 do
if a[i,j]<=a[i,j] then begin
o:=a[1,j];
if a[i,j]>o then begin
y:=a[i,j];
a[i,j]:=o;
a[1,j]:=y;
end;
end;
writeln(' ');
i:=1;
for j:=1 to 5 do
if a[i,j]<=a[i,j] then begin
o:= a[i,1];
if a[i,j]>o then begin
y:=a[i,j];
a[i,j]:=o;
a[i,1]:=y;
end;end;
for i:=1 to 5 do begin
for j:=1 to 5 do begin
write(a[i,j],' ');
if (j=5) then writeln(' ');
end;end;
readln;
end.
{10.1. Даны матрицы А и В размера k*m и m*1 соответственно. Найти произведения АВ.}
Program R10_Z1;
uses Crt;
Var
A,B,C:array [1..10,1..10] of integer;
k,m,n:byte;
I,J,X: integer;
Begin
ClrScr;
Write('Введите размерности массивa A (k m) ');
readln(k,m);
write('Введите кол-во столбцов в массиве В ');
readln(n);
randomize;
{if m<>n then writeln('Введены не корректные данные')
else begin }
for i:=1 to k do {Массив А}
for j:=1 to m do
A[i,j]:=random(3);
writeln;
writeln('Массив A ');
for i:=1 to k do begin
for j:=1 to m do
write(A[i,j]:4);
writeln;
end;
writeln; {конец А}
for i:=1 to m do {Массив B}
for j:=1 to n do
B[i,j]:=random(3);
writeln('Массив B ');
writeln;
for i:=1 to m do
begin
for j:=1 to n do
write(B[i,j]:4);
writeln;
end;
writeln; {конец В}
for I:=1 to k do {решение}
for J:=1 to n do
begin
C[I,J]:=0;
for X:=1 to n do
C[I,J]:=C[I,J]+A[I,X]*B[X,J];
end;
writeln('Ответ'); {вывод ответа}
for i:=1 to k do
begin
writeln;
For J:=1 to n do
write (C[I,J]:10)
end;
{end; }
end.
{11.5. первые вхождения букв в текст, сохраняя их исходный взаимный порядок.}
uses crt;
var s:string;
i,h,n: integer;
begin
writeln('введите строку ');
readln(s);
for i:=1 to length(s) do
begin
if s[i]='.' then
break
end;
for h:=1 to i do begin write(s[h]);
end;
readln;
end.
{11.1. Дан текст из строчных латинских букв, за которым следует точка. Определить, каких букв – гласных (a, e, i, o, u) или со-гласных – больше в этом тексте. }
program R11_Z1;
uses Crt;
var G,S: set of char;
Txt:string;
n,i,gk,sk:byte;
begin
ClrScr;
G:=['a','e','y','u','i','o'];
S:=['q','w','r','t','p','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m'];
writeln('Введите текст');
readln(Txt);
for i:=1 to length(Txt) do
if Txt[i]='.' then n:=i;
for i:=1 to n do
begin
if Txt[i] in G then gk:=gk+1;
if Txt[i] in S then sk:=sk+1;
end;
writeln('гл: ',gk:2,' согл: ',sk:2);
if gk>sk then write('Гласных букв больше');
if gk<sk then write('Согласных букв больше');
if gk=sk then write('Кол-во гласных и согласных букв равно');
end.