Пример 5.
Упорядочить строки вещественной матрицы по убыванию их наибольших элементов без использования вспомогательной матрицы.
(Каждая строка двумерного массива является одномерным массивом. Таким образом, необходимо упорядочить одномерный массив по убыванию столько раз, сколько строчек в двумерном массиве).
Блок-схема
Текст программы:
program Dvumer_mas;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
n=3;
m=4;
type
mas=array [1..n,1..m] of real;
var
i,j,ii:integer;
vspom:real;
a:mas;
begin
for i:=1 to n do
for j:=1 to m do
begin
write('Vvedite element matrici
a[',i,',',j,']: ');
readln(a[i,j]);
end;
writeln('Staraya matrica');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:10:1,' ');
writeln;
end;
for i:=1 to n do
begin
for ii:=1 to m-1 do
for j:=ii to m do
if a[i,ii]<a[i,j] then
begin
vspom:=a[i,ii];
a[i,ii]:=a[i,j];
a[i,j]:=vspom;
end;
end;
writeln;
writeln('Novaya matrica');
for i:=1 to n do
begin
for j:=1 to m do
write(a[i,j]:10:1,' ');
writeln;
end;
readln;
end.
Строки
Строка-это последовательность символов, которая при использовании в выражениях заключается в апострофы.
Количество символов можно изменять, дописывая после служебного слова string в квадратные скобки требуемую длину строки. Если не указывать длину, то она будет по умолчанию равна 255.
Формат записи [3]:
var Имя_строки : string [Длина];
Для строк применимы операции отношения («+», «-», «>», «<», «>=», «<=», «=»). Так как строка – это массив элементов типа char, то к строкам применим оператор поэлементного вырезания символов :
Имя_строки [i], где i - номер символа в строке
Стандартные подпрограммы обработки строк:
Concat(s1,s2,...,sn:String):String - оператор сложения, также можно использовать оператор «+»;
Length (s:string):integer - определить длину строки в символах;
Copy (str:string; N,L:integer): string - возвращает часть строки str длиной L, начиная с позиции N;
Insert (s0:string; var s: string; N: integer) - в строку s вставляет строку s0, начиная с позиции N;
Delete (var s:string; N,L:integer) - в строке s удаляет L символов, начиная с позиции N;
Pos (s0, s:string): integer - возвращает позицию, начиная с которой строка s0 содержится в строке s или 0, если s0 не содержится в s;
Str (X: integer; var s:string) - преобразует число X в строку s;
Val (s:string; var X: integer; var error:integer); - преобразует строку s в число X. Если преобразовать удалось, error=0, иначе error=номеру первого непреобразуемого символа.
Дата добавления: 2015-04-10; просмотров: 775;