Консультация № 201299
27.07.2021, 21:58
0.00 руб.
27.07.2021, 23:17
0 9 2
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Я что то сделала тут неправильно?
Разработать программу на языке Паскаль для решения следующей задачи.
Задан массив целых чисел X(n). Найти
• сумму нечётных элементов массива;
• наибольшее из положительное чисел массива.
Из данного массива и некоторого массива того же типа, но другой
размерности Y (m), сформировать общий массив Z(n + m)[code lang=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. [/code]
Так же прошу помощи!!!
В двумерном массиве А[10, 10] найти минимальный элемент каждой из
строк и количество отрицательных элементов каждого из столбцов. Для поиска
минимального использовать подпрограмму, которая находит минимальной
элемент в одной строке, а для поиска максимального - функцию которая находит
максимальный элемент в одном столбце.
Заранее благодарю.

Обсуждение

давно
Профессор
401888
1232
28.07.2021, 06:59
общий
это ответ
1)
[code lang=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.[/code]
Разберитсь с заданием 2.
Что все-таки нужно найти
минимальный элемент каждой из
строк и количество отрицательных элементов каждого из столбцов
или
минимальной элемент в каждой строке и максимальный элемент в каждом столбце
Кроме того
Для поиска минимального использовать подпрограмму...
Здесь опечатка и нужно процедуру или все равно процедуру или функцию?
давно
Посетитель
405237
9
28.07.2021, 08:45
общий
Адресаты:
Спасибо. Попробую сама сделать второе задание.
давно
Модератор
137394
1850
28.07.2021, 10:42
общий
Адресаты:
Из данного массива и некоторого массива того же типа, но другой
размерности 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], ' ');
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
давно
Модератор
137394
1850
28.07.2021, 17:02
общий
это ответ
Цитата: angel.
В двумерном массиве А[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.
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
давно
Посетитель
405237
9
28.07.2021, 17:17
общий
Адресаты:
Спасибо большое за помощь.
давно
Модератор
137394
1850
28.07.2021, 20:10
общий
Адресаты:
Цитата: angel
• сумму нечётных элементов массива;
• наибольшее из положительное чисел массива.
Какая-то двусмысленность. Вы пишите:
Код:
 if odd(x[i]) then c:=c+x[i];(*сумма нечетных*)
Я бы понял как
Код:
if odd(i) then c:=c+x[i];(*сумма нечетных*)

Что имеется ввиду и как нужно-не соображу. В первом случае речь об элементах - ИМХО, тестируем индексы, во втором случае - числа, работаем со значениями.
Об авторе:
Понеже не словес красных бог слушает, но дел наших хощет
давно
Профессор
401888
1232
28.07.2021, 20:42
общий
Код:
if odd(x[i]) then c:=c+x[i];(*сумма нечетных элементов массива(чисел)*)
давно
Мастер-Эксперт
259041
7459
31.07.2021, 14:29
общий
Адресаты:
Я получил Ваше сообщение. Вы напрасно извиняетесь, я всегда рад, когда Вы вспоминаете обо мне.
Вы, оказывается, ещё и крутой Паскальщик! Как столько знаний умещается в Вашей черепной ёмкости?!

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

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

Я критикую работу управляющего не потому, что я против власти, без власти никак не обойтись. Но надо побудить всех работать для Портала, а не вытворять что ему лично нравится. Ваша постоянная поддержка админов ускоряет загнивание Портала.
давно
Посетитель
400728
1649
02.08.2021, 20:08
общий
Адресаты:
Цитата: Алексеев Владимир Николаевич
Вы, оказывается, ещё и крутой Паскальщик! Как столько знаний умещается в Вашей черепной ёмкости?!
Похоже на лесть... почему -то Вы часто её используете в комментариях.
Цитата: Алексеев Владимир Николаевич
Хорошие эксперты уходят, вот и добрый талант vsetin перестал отвечать на Вопросы.
очень жаль.
Цитата: Алексеев Владимир Николаевич
Все люди нуждаются в критике для поддержания их работоспособности на достойном уровне
Кто то нуждается, а кто-то нет: почему Вы отвечаете за других?
Достойный уровень равен достойной зарплате!
Цитата: Алексеев Владимир Николаевич
Без критики начинается лень, застой и загнивание
Лень - двигатель прогресса.
Цитата: Алексеев Владимир Николаевич
общими силами они подняли уровень жизни простых людей.
А что стало с непростыми людьми?
Цитата: puporev
Но надо побудить всех работать для Портала
Каким образом? А кто не хочет работать, а тем более под давлением...
Цитата: Алексеев Владимир Николаевич
Ваша постоянная поддержка админов ускоряет загнивание Портала
я правильно понял, что это
предложение относится к Megaloman и он постоянно поддерживает?


Форма ответа