Написал код, но вот с решением первой задачи справиться не могу. Создавать новый массив нельзя... Сказано было сделать так: Вместо этого формирования min присвойте любое кратное 3 значение (это у вас формирование нового массива). А дальше просто поиск минимального .
{Вариант 19
1.Определение наибольшего из элементов, кратных 3.
2.Вычитание из значений элементов четных строк значений элементов нечетных строк. }
const n = 5;
const z= 10;
type TMyArray = array[1..n,1..n] of integer;
{заполенение массива случайными числами}
procedure FillArrayByRandom(var A : TMyArray);
var i, j : integer;
begin
Randomize;
For i:=1 to n do
For j:=1 to n do
A[i,j]:=Random(21);
end;
{печать содержимого массива}
procedure PrinArray(A : TMyArray);
var i, j : integer;
begin
For i:=1 to n do
begin
For j:=1 to n do Write(A[i,j]:2,' ');
WriteLn
end;
end;
{Вычитание из значений элементов четных строк значений элементов нечетных строк. }
procedure minus(var A : TMyArray);
var i, j: integer;
begin
For i:=1 to n do
For j:=1 to n do
If i mod 2=0 then
begin
A[i,j]:=A[i,j]-A[i+1,j];
end;
end;
{функция нахождения элементов кратных 3 и перенос их в иной массив}
Function kratno3(max:integer): integer;
var A : TMyArray;
var i, j: integer;
begin
for i := 1 to N do
if (A[i,j] mod 3) = 0 then {ВОТ ТУТ ВЫДАЁТ ОШИБКУ, НЕ МОГУ ПОНЯТЬ ПОЧЕМУ}
begin
max := A[i,j];
break;
end;
i:=0;
for i := i + 1 to N do
if ((A[i,j] mod 3) = 0) and (A[i,j] > max) then {ТУТ ТОЖЕ ОШИБКА, ПОЧЕМУ ???}
max := A[i,j];
end;
var p: TMyArray;
c: array[1..5,1..5] of integer;
i,j,k,max: integer;
begin
{ заполним массив случайнымии числами }
FillArrayByRandom(P);
{ выведедем содержимое массива на экран }
WriteLn('Начальный массив:');
PrinArray(P);
WriteLn;
{Вычтем из значений чётных строк значения нечётных}
minus( P );
{ выведедем содержимое массива на экран }
WriteLn('Массив после обработки:');
PrinArray(P);
WriteLn;
{Нахождение максимального элемента кратного 3-ём}
max:=kratno3(max);
writeln('Максимальный элемент кратный 3-ём после обработки ',max);
end.
Другие языки программирования и технологии
Pascal помогите исправить код
Функции в паскале дело мутное, поэтому лучше юзать процедуру
Procedure kratno3( A : TMyArray);
// min имя системной функции, что бы избежать конфликтов лучше дать другое имя
var i, j,emin: integer;
begin
я бы решал в два прохода. Так как наличие хотя бы одного элемента кратного трем не очевидно, надо проверить это на первом проходе и запомнить значение.
for i:=1 to N do
for j:=1 to N do begin
if (A[i,j] mod 3)=0 then begin emin:= A[i,j]; break; end;
writeln('Массив не содержит элементов кратных 3');
exit;
end;
вторым проходом найдем минимальный элемент
for i:=1 to N do
for j:=1 to N do
if (emin>A[i,j]) and ((A[i,j] mod 3) = 0) then emin:=A[i,j];
writeln('Минимальное значение кратное 3 = ',emin);
вуаля!
Procedure kratno3( A : TMyArray);
// min имя системной функции, что бы избежать конфликтов лучше дать другое имя
var i, j,emin: integer;
begin
я бы решал в два прохода. Так как наличие хотя бы одного элемента кратного трем не очевидно, надо проверить это на первом проходе и запомнить значение.
for i:=1 to N do
for j:=1 to N do begin
if (A[i,j] mod 3)=0 then begin emin:= A[i,j]; break; end;
writeln('Массив не содержит элементов кратных 3');
exit;
end;
вторым проходом найдем минимальный элемент
for i:=1 to N do
for j:=1 to N do
if (emin>A[i,j]) and ((A[i,j] mod 3) = 0) then emin:=A[i,j];
writeln('Минимальное значение кратное 3 = ',emin);
вуаля!
Аян Аяпов
writeln('Минимальное значение кратное 3 = '.emin); {Тут выдаёт ошибку ( .emin) не объявлен в типе string } ...И надо бы определить наибольшее из элементов, кратных 3.
Виталий Шевченок
Исправил ответ
Procedure kratno3( A : TMyArray);
// min имя системной функции, что бы избежать конфликтов лучше дать другое имя
var i, j,emin: integer;
begin
я бы решал в два прохода. Так как наличие хотя бы одного элемента кратного трем не очевидно, надо проверить это на первом проходе и запомнить значение.
for i:=1 to N do
for j:=1 to N do begin
if (A[i,j] mod 3)=0 then begin emin:= A[i,j]; break; end;
writeln('Массив не содержит элементов кратных 3');
exit;
end;
вторым проходом найдем минимальный элемент
for i:=1 to N do
for j:=1 to N do
if (emin>A[i,j]) and ((A[i,j] mod 3) = 0) then emin:=A[i,j];
writeln('Минимальное значение кратное 3 = ',emin);
end
вот и всё вроде
// min имя системной функции, что бы избежать конфликтов лучше дать другое имя
var i, j,emin: integer;
begin
я бы решал в два прохода. Так как наличие хотя бы одного элемента кратного трем не очевидно, надо проверить это на первом проходе и запомнить значение.
for i:=1 to N do
for j:=1 to N do begin
if (A[i,j] mod 3)=0 then begin emin:= A[i,j]; break; end;
writeln('Массив не содержит элементов кратных 3');
exit;
end;
вторым проходом найдем минимальный элемент
for i:=1 to N do
for j:=1 to N do
if (emin>A[i,j]) and ((A[i,j] mod 3) = 0) then emin:=A[i,j];
writeln('Минимальное значение кратное 3 = ',emin);
end
вот и всё вроде
Похожие вопросы
- Помогите исправить код чтобы он считал балы теста Pascal
- Помогите исправить код так, чтобы работал! :) (C#)
- помогите исправить код BV
- Программирование С++ помогите исправить код
- Помогите исправить программный код на Pascal (индексно-последовательный поиск) вопрос полностью в средине
- (PASCAL)помогите найти ошибку в коде задачи, и исправить
- Помогите исправить ошибки в коде на Pascal, чтобы он выводил верные ответы. Или можете сами пожалуйста написать пжпжпж!
- Помогите исправить ошибку в коде программы на паскале.
- free pascal. пожалуйста скиньте код конкулятора для free pascal
- Помогите с кодом Pascal; создание и запись в txt-файл