Лидеры рейтинга

ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

1057

Россия, пос. Теплоозёрск, ЕАО


ID: 226425

Konstantin Shvetski

Модератор

314

Россия, Северодвинск


ID: 401284

Михаил Александров

Советник

277

Россия, Санкт-Петербург


ID: 137394

Megaloman

Мастер-Эксперт

177

Беларусь, Гомель


ID: 400669

epimkin

Профессионал

105


ID: 404002

sglisitsyn

6-й класс

42


ID: 242862

Hunter7007

Мастер-Эксперт

31

Россия, Омск


8.10.3

30.10.2021

JS: 2.10.3
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-12-04 22:46:17-standard


Создание программ на языках Pascal, Delphi и Lazarus.

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

Консультация онлайн # 201299

Раздел:  Pascal / Delphi / Lazarus
Автор вопроса: angel. (Посетитель)
Дата: 27.07.2021, 21:58 Консультация закрыта
Поступило ответов: 2

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Я что то сделала тут неправильно?
Разработать программу на языке Паскаль для решения следующей задачи.
Задан массив целых чисел X(n). Найти
• сумму нечётных элементов массива;
• наибольшее из положительное чисел массива.
Из данного массива и некоторого массива того же типа, но другой
размерности Y (m), сформировать общий массив Z(n + m)

Код [Pascal]
const

 n=10;

 m=8;

var

 x : array [0..n] of integer;

 y : array [0..m] of integer;

 z : array [0..n+m] of integer;

 i, c, mi : integer;

begin

 randomize;

 writeln('Массив X');

 for i:=0 to n-1 do begin

   x[i] := random(100)-50;

   if i<m then

     y[i] := random(100)-50;

   write(x[i], '  ');

 end;

 c:=0;

 mi:=0;

 for i:=0 to n+1 do begin

   if x[i] mod 2 = 0 then c:=c+x[i];

   if (x[i] < 0) and (x[i] < mi) then mi:=x[i];

 end;

 writeln();

 writeln('Сумма нечётных = ', c);

 if mi>0 then

   writeln('Наибольшее из положительных = ', mi)

 else

   writeln('Отрицательных элементов не найдено');

(*Задание 2 - объединить массивы a и b*)

 writeln('Массив Y');

 for i:=0 to n-1 do z[i]:=x[i];

 for i:=0 to m-1 do  begin

   z[i+n]:=y[i];

   write(y[i], '  ');

 end;

 writeln();

 writeln('Массив Z');

 for i:=0 to n+m-1 do

   write(z[i], '  ');

end.

Так же прошу помощи!!!
В двумерном массиве А[10, 10] найти минимальный элемент каждой из
строк и количество отрицательных элементов каждого из столбцов. Для поиска
минимального использовать подпрограмму, которая находит минимальной
элемент в одной строке, а для поиска максимального - функцию которая находит
максимальный элемент в одном столбце.
Заранее благодарю.

Последнее редактирование 27.07.2021, 23:17 Зенченко Константин Николаевич (Старший модератор)
Ответ # 281524 от puporev
1)
Код [Pascal]
const n=10;
      m=8;
var x,y,z:array [1..n+m] of integer;(*если массивы не динамические то удобнее их индексировать от 1*)
    i, c, mi : integer;
begin
randomize;
writeln('Массив X');
c:=0;
mi:=0;
for i:=1 to n do
 begin
  x[i]:=-50+random(100);
  if odd(x[i]) then c:=c+x[i];(*сумма нечетных*)
  if x[i]>mi then mi:=x[i];(*максимальное из положительных*)
  write(x[i]:4);
 end;
writeln;
writeln('Сумма нечётных=',c);
if mi=0 then writeln('Положительных элементов в массиве Х нет')
else writeln('Наибольшее из положительных=',mi);
(*Задание 2 - объединить массивы a и b*)
writeln('Массив Y');
for i:=1 to m do
 begin
  y[i]:=-50+random(100);
  write(y[i]:4);
 end;
writeln;
writeln('Массив Z');
for i:=1 to n+m do
 begin
  if i<=n then z[i]:=x[i]
  else z[i]:=y[i-n];
  write(z[i]:4);
 end;
end.

Разберитсь с заданием 2.
Что все-таки нужно найти
минимальный элемент каждой из
строк и количество отрицательных элементов каждого из столбцов
или
минимальной элемент в каждой строке и максимальный элемент в каждом столбце
Кроме того
Для поиска минимального использовать подпрограмму...
Здесь опечатка и нужно процедуру или все равно процедуру или функцию?

puporev

Профессор
28.07.2021, 06:59
Ответ # 281525 от Megaloman

В двумерном массиве А[10, 10] найти минимальный элемент каждой из
строк и количество отрицательных элементов каждого из столбцов. Для поиска
минимального использовать подпрограмму, которая находит минимальной
элемент в одной строке, а для поиска максимального - функцию которая находит
максимальный элемент в одном столбце.

Код
Const
     n=10;
Type iMass =Array [1..n,1..n] Of Integer;

Var
   A : iMass;
   i, j, MinS : Integer;

Procedure MinInStr(M : iMass; n : Integer; i : Integer; Var MinStr : Integer);
     Var j :Integer;
     Begin
          MinStr := M[i,1];
          For j := 1 To n Do If M[i,j] < MinStr Then MinStr := M[i,j];
     End;

Function NNegaRow(M : iMass; n : Integer; i : Integer) :Integer;
     Var j, mm :Integer;
     Begin
          mm := 0;
          For j := 1 To n Do If M[j,i] < 0 Then mm := mm + 1;
          NNegaRow := mm;
     End;

Begin
     Randomize;

     Writeln;
     Writeln('Массив A');
     Write('       j= ');
     For j := 1 To n Do Write(j : 4);
     For i := 1 To n Do Begin
         Writeln;
         Write(' i=', i : 3,' == ');
         For j := 1 To n Do Begin
             A[i,j] := Random(198)-99;
             Write(A[i,j] :4);
             End;
         End;

     Writeln;
     Writeln;
     Writeln('Минимальный элемент в каждой строке');
     Write(' i=');
     For i := 1 To n Do Write(i : 4);
     Writeln;

     Write('   ');
     For i := 1 To n Do Begin
         MinInStr(A, n, i, MinS);
         Write(MinS : 4);
         End;

     Writeln;
     Writeln;
     Writeln('Количество отрицательных элементов в каждом столбце');
     Write(' j=');
     For j := 1 To n Do Write(j : 4);
     Writeln;

     Write('   ');
     For j := 1 To n Do Write(NNegaRow(A, n, j) : 4);
End.

Megaloman

Мастер-Эксперт
28.07.2021, 17:02
Мини-форум консультации # 201299

q_id

angel.

Посетитель

ID: 405237

1

= общий =    28.07.2021, 08:45
puporev:

Спасибо. Попробую сама сделать второе задание.

q_id

Megaloman

Мастер-Эксперт

ID: 137394

2

= общий =    28.07.2021, 10:42
angel.:

Из данного массива и некоторого массива того же типа, но другой
размерности Y (m), сформировать общий массив Z(n + m)

Как вариант решения:
Код
    writeln;
     writeln('Объединённый массив z');
     for i := 1 to n do z[i] := x[i];
     for i := 1 to m do z[i+n] := y[i];

     for i := 1 to n+m do write(z[i], '  ');

=====
Нет времени на медленные танцы

q_id

angel.

Посетитель

ID: 405237

3

= общий =    28.07.2021, 17:17
Megaloman:

Спасибо большое за помощь.

q_id

Megaloman

Мастер-Эксперт

ID: 137394

4

= общий =    28.07.2021, 20:10
puporev:

Цитата: angel

• сумму нечётных элементов массива;
• наибольшее из положительное чисел массива.

Какая-то двусмысленность. Вы пишите:
Код
if odd(x[i]) then c:=c+x[i];(*сумма нечетных*)
Я бы понял как
Код
if odd(i) then c:=c+x[i];(*сумма нечетных*)

Что имеется ввиду и как нужно-не соображу. В первом случае речь об элементах - ИМХО, тестируем индексы, во втором случае - числа, работаем со значениями.

=====
Нет времени на медленные танцы

q_id

puporev

Профессор

ID: 401888

5

= общий =    28.07.2021, 20:42

Код
if odd(x[i]) then c:=c+x[i];(*сумма нечетных элементов массива(чисел)*)

q_id

Алексеев Владимир Николаевич

Мастер-Эксперт

ID: 259041

6

= общий =    31.07.2021, 14:29
Megaloman:

Я получил Ваше сообщение. Вы напрасно извиняетесь, я всегда рад, когда Вы вспоминаете обо мне.
Вы, оказывается, ещё и крутой Паскальщик! Как столько знаний умещается в Вашей черепной ёмкости?!

Вы заметили, что Ваша цитата в выше-посту #4 rfpro.ru/question/201299#320745 имеет по-прежнему формат "с ног на голову" (сначала текст цитаты, а в конце имя её автора)?
Ваш пост rfpro.ru/forum/gopost/112495 "Ура! Цитата работает как было задумано , даже ссылка в авторе работает! Спасибо!" со смайлом дикого восторга оказался преждевременным. Руководитель показал всем, что он умеет делать удобный для всех дизайн, но не хочет. Его приоритет "лично мне пока нравится" rfpro.ru/forum/gopost/112493 для него важнее, чем удовлетворить потребности трудяг-экспертов, в которых они давно и остро нуждаются. Хорошие эксперты уходят, вот и добрый талант vsetin перестал отвечать на Вопросы. Оставшиеся эксперты работают далеко не в полную силу изза недоделок корявого сервиса. Портал в упадке.

Все люди нуждаются в критике для поддержания их работоспособности на достойном уровне. Без критики начинается лень, застой и загнивание. Народ Америки выходил на митинги и добился прекращения войны во Вьетнаме в прошлом веке. Народы Европы тоже критиковали своих правителей, и общими силами они подняли уровень жизни простых людей. Т-ко у русских народ традиционно льстит боярам, пока те совсем не оборзеют. А потом начинается революция и гражданская война.

Я критикую работу управляющего не потому, что я против власти, без власти никак не обойтись. Но надо побудить всех работать для Портала, а не вытворять что ему лично нравится. Ваша постоянная поддержка админов ускоряет загнивание Портала.

q_id

Анатолий

Посетитель

ID: 400728

7

= общий =    02.08.2021, 20:08
Алексеев Владимир Николаевич:

Вы, оказывается, ещё и крутой Паскальщик! Как столько знаний умещается в Вашей черепной ёмкости?!

Похоже на лесть... почему -то Вы часто её используете в комментариях.

Хорошие эксперты уходят, вот и добрый талант vsetin перестал отвечать на Вопросы.

очень жаль.

Все люди нуждаются в критике для поддержания их работоспособности на достойном уровне

Кто то нуждается, а кто-то нет: почему Вы отвечаете за других?
Достойный уровень равен достойной зарплате!

Без критики начинается лень, застой и загнивание

Лень - двигатель прогресса. smile

общими силами они подняли уровень жизни простых людей.

А что стало с непростыми людьми?

Но надо побудить всех работать для Портала

Каким образом? А кто не хочет работать, а тем более под давлением...

Ваша постоянная поддержка админов ускоряет загнивание Портала

я правильно понял, что это
предложение относится к Megaloman и он постоянно поддерживает?


Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

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

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 244

Лысков Игорь Витальевич

Мастер-Эксперт

Рейтинг: 43

Gluck

9-й класс

Рейтинг: 42

Вадим Исаев ака sir Henry

Мастер-Эксперт

Рейтинг: 2

Асмик Гаряка

Советник

Рейтинг: 0

Орловский Дмитрий

Мастер-Эксперт

Рейтинг: 0