Консультация # 197149: Уважаемые эксперты! Пожалуйста, ответьте на вопрос:Поменять местами самый левый минимальный элемент со вторым элементом массива, а затем поделить на найденное минимальное значение все элементы второй половины массива.Через процедуру и сортировку.Pascal ...Консультация # 197150:
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:Написать модуль, который находит минимальный элемент каждой строки двумерного массива и меняет его местами с первым элементом данной строки. ...Консультация # 197151: Здравствуйте! У меня возникли сложности с таким вопросом:Дано предложение, определить количество слов, начинающихся с сочетания «ка».Через процедуру.
Pascal ...
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:Поменять местами самый левый минимальный элемент со вторым элементом массива, а затем поделить на найденное минимальное значение все элементы второй половины массива.Через процедуру и сортировку.Pascal
type mas=array[1..100] of real;
procedure vvod(var a:mas;var n:integer);
var i:integer;
begin
repeat
write('Введите размер массива четное число от 4 до 100 n=');
readln(n);
until(n in [4..100])and(n mod 2=0);
for i:=1 to n do
a[i]:=9*random;
end;
procedure vyvod(a:mas;n:integer;s:string);
var i:integer;
begin
writeln(s);
for i:=1 to n do
write(a[i]:5:2);
writeln;
end;
procedure min(a:mas;n:integer;var imn:integer);
var i:integer;
begin
imn:=1;
for i:=2 to n do
if a[i]<a[imn] then imn:=i;
writeln('Первый минимальный элемент=',a[imn]:0:2,' его номер=',imn);
end;
procedure obmen(var a:mas;n,imn:integer);
var x:real;
begin
if imn<>2 then
begin
x:=a[imn];
a[imn]:=a[2];
a[2]:=x;
end;
end;
var a:mas;
n,imn:integer;
begin
randomize;
vvod(a,n);
vyvod(a,n,'Исходный массив');
min(a,n,imn);
obmen(a,n,imn);
vyvod(a,n,'Обмен минимального и второго элементов')
end.
Консультировал: puporev (Профессионал)
Дата отправки: 20.11.2019, 13:20
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:Написать модуль, который находит минимальный элемент каждой строки двумерного массива и меняет его местами с первым элементом данной строки.
unit matrix;
interface
type mtr=array[1..10,1..20] of integer;
procedure vvod(var a:mtr;var m,n:integer);
procedure vyvod(a:mtr;m,n:integer;s:string);
function min(a:mtr;n,k:integer):integer;
procedure obmen(var a:mtr;n,k,imn:integer);
implementation
//процедура ввода матрицы
procedure vvod(var a:mtr;var m,n:integer);
var i,j:integer;
begin
repeat
write('Введите количество строк от 2 до 10 m=');
readln(m);
until m in [2..10];
repeat
write('Введите количество столбцов от 2 до 20 n=');
readln(n);
until n in [2..20];
for i:=1 to m do
for j:=1 to n do
a[i,j]:=random(100);
end;
//процедура вывода матрицы
procedure vyvod(a:mtr;m,n:integer;s:string);
var i,j:integer;
begin
writeln(s);
for i:=1 to m do
begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
end;
//функция поиска индекса минимального элемента в строке k
function min(a:mtr;n,k:integer):integer;
var i,imn:integer;
begin
imn:=1;
for i:=2 to n do
if a[k,i]<a[k,imn] then imn:=i;
min:=imn;
end;
//процедура обмена первого и минимального элементов строке k
procedure obmen(var a:mtr;n,k,imn:integer);
var i,x:integer;
begin
if a[k,1]<>a[k,imn] then
begin
x:=a[k,1];
a[k,1]:=a[k,imn];
a[k,imn]:=x;
end;
end;
end.
uses matrix;
var a:mtr;
m,n,i,imn:integer;
begin
randomize;
vvod(a,m,n);
vyvod(a,m,n,'Исходная матрица');
writeln('Минимальные элементы строк');
for i:=1 to m do
begin
imn:=min(a,n,i);
writeln('строка ',i,' min=',a[i,imn]);
obmen(a,n,i,imn);
end;
vyvod(a,m,n,'Обмен минимального и первого элемента в строках');
end.
Текст модуля нужно сохранить с именем matrix.pas в папке с программой.
Добавил randomize в текст программы.
Консультировал: puporev (Профессионал)
Дата отправки: 20.11.2019, 12:49
Здравствуйте! У меня возникли сложности с таким вопросом:Дано предложение, определить количество слов, начинающихся с сочетания «ка».Через процедуру.Pascal
const rz=[' ',','];//разделители слов(пробел, запятая)
//можно добавить в зависимости от вводимых строк
var s:string;
i,k:integer;
begin
writeln('hjj',#9,'jkl');
writeln('Введите предложение на кириллице, в том числе слова на "ка"');
readln(s);
s:=' '+s;//добавим пробел в начало для удобства счета
k:=0;
for i:=2 to length(s)-1 do
if(s[i-1] in rz)and(copy(s,i,2)='ка') then inc(k);
write('Количество слов на ка=',k)
end.
Консультировал: puporev (Профессионал)
Дата отправки: 20.11.2019, 10:40
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались.
Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора -
для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение.
Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал,
который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом.
Заходите - у нас интересно!