var n,k:integer; s: string; begin writteln('введите n,k'); readln(n,k); str(n,s);{преобразуем число n в строку s} witeln(s[length(s)-k+1]); {length(s) -длина строки} end.
{2 задача} cons nmax=20; var a:array [1..nmax] of integer; min1,min2,i,k1,k2,N:integer; begin writeln('введите кол-во элементов массива'); readln(N); writeln('введите элементы массива'); for i:=1 to N do read(a[i]); min1:=a[1]; k1:=1; {k1 -индекс первого минимального элемента} for i:=2 to n do if min1>a[i] then begin min1:=a[i]; k1:=i end; {исключаем найденный минимальный элемент из массива- можно и по другому} for i:=k1+1 to N do a[i-1]:=a[i]; k1:=n-1; end; min2:=a[1]; k2:=1; {k1 -индекс первого минимального элемента} for i:=2 to n do if min2>a[i] then begin min2:=a[i]; k2:=i end; writeln(min1:5,min2:5) {если нужно было сохранить массив в начале программы надо ввести дополнительный массив }
end.
langprint
16.11.2020
Конечно, на основе функций решение было бы элегантнее, но требовались процедуры...
// 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
Введите значение элемента для поиска: 70 Массив содержит введенное значение
Zladthesecond577
16.11.2020
Из курса истории вам известно, какую огромную роль в развитии человечества сыграло возникновение письменности, позволившее зафиксировать устное слово с букв-знаков. Надписи на камне.
Папирусе, бумаге – не просто сообщения, дошедшие до нас через века. Это документы,позволяющие нам судить о том, как жили люди в ту или иную эпоху, о чём они думали, что их интересовало. Слово «документ» переводится с латинского как «свидетельство», «доказательство». Первоначально оно означало письменное подтверждение событий или фактов.Например, факт рождения каждого человека документально оформляется в виде свидетельства о рождении
по окончании школы вы получаете аттестат – документ, подтверждающий ваше образование, и т. д.
Современное понятие документа значительно шире, чем «бумага, заверенная печатью и подписью». Текст является одной из важнейших форм представления информации об окружающей действительности. Под текстовым документом сегодня понимается информация, представленная на бумажном, электронном или ином материальном носителе в текстовой форме.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
1)даны натуральные числа n и k. определить k-ю справа цифру числа n. 2)дан целочисленный массив a. найти в нем два наименьших элемента.
s: string;
begin
writteln('введите n,k');
readln(n,k);
str(n,s);{преобразуем число n в строку s}
witeln(s[length(s)-k+1]); {length(s) -длина строки}
end.
{2 задача}
cons nmax=20;
var a:array [1..nmax] of integer;
min1,min2,i,k1,k2,N:integer;
begin
writeln('введите кол-во элементов массива');
readln(N);
writeln('введите элементы массива');
for i:=1 to N do read(a[i]);
min1:=a[1]; k1:=1; {k1 -индекс первого минимального элемента}
for i:=2 to n do
if min1>a[i] then
begin
min1:=a[i];
k1:=i
end;
{исключаем найденный минимальный элемент из массива- можно и по другому}
for i:=k1+1 to N do
a[i-1]:=a[i];
k1:=n-1;
end;
min2:=a[1]; k2:=1; {k1 -индекс первого минимального элемента}
for i:=2 to n do
if min2>a[i] then
begin
min2:=a[i];
k2:=i
end;
writeln(min1:5,min2:5)
{если нужно было сохранить массив в начале программы надо ввести дополнительный массив }
end.