USES crt; VAR a:array [1..999] of integer; i,n:integer; begin randomize; WRITELN ('Введите количество элементов массива: '); READLN (n); WRITELN ('Исходный массив: '); FOR i:=1 to n do begin a[i]:=RANDOM(10); WRITE (a[i],' '); end; WRITELN; WRITELN ('Измененный массив: '); FOR i:=1 to n do if a[i]=8 then begin a[i]:=0; WRITE (a[i],' '); end else WRITE (a[i],' '); END.
Из курса истории вам известно, какую огромную роль в развитии человечества сыграло возникновение письменности, позволившее зафиксировать устное слово с букв-знаков. Надписи на камне.
Папирусе, бумаге – не просто сообщения, дошедшие до нас через века. Это документы,позволяющие нам судить о том, как жили люди в ту или иную эпоху, о чём они думали, что их интересовало. Слово «документ» переводится с латинского как «свидетельство», «доказательство». Первоначально оно означало письменное подтверждение событий или фактов.Например, факт рождения каждого человека документально оформляется в виде свидетельства о рождении
по окончании школы вы получаете аттестат – документ, подтверждающий ваше образование, и т. д.
Современное понятие документа значительно шире, чем «бумага, заверенная печатью и подписью». Текст является одной из важнейших форм представления информации об окружающей действительности. Под текстовым документом сегодня понимается информация, представленная на бумажном, электронном или ином материальном носителе в текстовой форме.
Конечно, на основе функций решение было бы элегантнее, но требовались процедуры...
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017 // Внимание! Если программа не работает, обновите версию!
procedure GetMax(a:array[,] of integer; var mr,mc:array of integer); // максимумы по строкам mr и столбцам mc begin mr:=a.Rows.Select(r->r.Max).ToArray; mc:=a.Cols.Select(c->c.Max).ToArray; end;
procedure MatrSort(a:array[,] of integer); // сортировка срок по первой колонке begin for var i:=0 to a.RowCount-2 do for var k:=0 to a.RowCount-2-i do if a[k,0]>a[k+1,0] then a.SwapRows(k,k+1); end;
procedure IsCont(n:integer; a:array [,] of integer; var res:boolean); // есть ли элемент n в массиве a? begin res:=a.ElementsByRow.Contains(n) end;
begin var n:=ReadInteger('Количество строк в массиве:'); var m:=ReadInteger('Количество столбцов в массиве:'); Writeln('*** Исходный массив [',n,',',m,'] ***'); var a:=MatrRandom(n,m,-99,99); a.Println(4); Writeln(4*a.ColCount*'-'); var vr:=new integer[n]; var vc:=new integer[m]; GetMax(a,vr,vc); Write('Вектор максимумов по строкам: '); vr.Println; Write('Вектор максимумов по столбцам: '); vc.Println; MatrSort(a); Writeln('*** отсортированный массив ***'); a.Println(4); Writeln(4*a.ColCount*'-'); var k:=ReadInteger('Введите значение элемента для поиска:'); var q:boolean; IsCont(k,a,q); if q then Writeln('Массив содержит введенное значение') else Writeln('Массив не содержит введенного значения') end.
Пример Количество строк в массиве: 4 Количество столбцов в массиве: 7 *** Исходный массив [4,7] *** -96 63 6 -96 -21 -61 -54 31 -20 63 -48 70 13 48 72 -27 -68 -52 32 15 -58 -71 -86 45 49 40 -64 -2
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),0,9); a.Println;
a.Transform(t->t=8?0:t); a.Println
end.
Пример
n= 20
2 8 5 1 3 8 4 6 2 2 4 4 6 2 8 5 1 8 0 5
2 0 5 1 3 0 4 6 2 2 4 4 6 2 0 5 1 0 0 5