Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на Delphi и Lazarus


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Gluck
Статус: 8-й класс
Рейтинг: 700
∙ повысить рейтинг »
puporev
Статус: Профессионал
Рейтинг: 459
∙ повысить рейтинг »
mklokov
Статус: 8-й класс
Рейтинг: 159
∙ повысить рейтинг »

∙ Pascal / Delphi / Lazarus

Номер выпуска:1800
Дата выхода:25.11.2019, 20:15
Администратор рассылки:Зенченко Константин Николаевич (Старший модератор)
Подписчиков / экспертов:35 / 38
Вопросов / ответов:3 / 3

Консультация # 197149: Уважаемые эксперты! Пожалуйста, ответьте на вопрос:Поменять местами самый левый минимальный элемент со вторым элементом массива, а затем поделить на найденное минимальное значение все элементы второй половины массива.Через процедуру и сортировку.Pascal ...
Консультация # 197150: Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:Написать модуль, который находит минимальный элемент каждой строки двумерного массива и меняет его местами с первым элементом данной строки. ...
Консультация # 197151: Здравствуйте! У меня возникли сложности с таким вопросом:Дано предложение, определить количество слов, начинающихся с сочетания «ка».Через процедуру. Pascal ...

Консультация # 197149:

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:Поменять местами самый левый минимальный элемент со
вторым элементом массива, а затем поделить на найденное
минимальное значение все элементы второй половины
массива.Через процедуру и сортировку.Pascal

Дата отправки: 20.11.2019, 09:42
Вопрос задал: kondrat322 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует puporev (Профессионал):

Здравствуйте, kondrat322!

Код (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
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 197150:

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:Написать модуль, который находит минимальный элемент
каждой строки двумерного массива и меняет его местами с
первым элементом данной строки.

Дата отправки: 20.11.2019, 09:44
Вопрос задал: kondrat322 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует puporev (Профессионал):

Здравствуйте, kondrat322!
Модуль

Код (Pascal) :: выделить код
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.

Программа
Код (Pascal) :: выделить код
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
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 197151:

Здравствуйте! У меня возникли сложности с таким вопросом:Дано предложение, определить количество слов,
начинающихся с сочетания «ка».Через процедуру.Pascal

Дата отправки: 20.11.2019, 09:46
Вопрос задал: kondrat322 (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


Консультирует puporev (Профессионал):

Здравствуйте, kondrat322!

Код (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
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное