Вопрос № 174089: Здравствуйте, уважаемые эксперты. Решаю следующую задачу: составить процедуру выделения из массива Y (4*3) элементов со значением в диапазоне X1..X2. Результат из M элементов помещеатес в массив Y. Просьба помочь составить процедуру....
Вопрос № 174089:
Здравствуйте, уважаемые эксперты. Решаю следующую задачу: составить процедуру выделения из массива Y (4*3) элементов со значением в диапазоне X1..X2. Результат из M элементов помещеатес в массив Y.
Отвечает LfiN, 8-й класс :
Здравствуйте, Сигов Виталий Валериевич. Надеюсь я правильно понял условия задачи: составить процедуру выделения из массива Y размерностью 4 на 3 элементов со значением в заданном диапазоне X1..X2 и поместить их обратно в массив. Программа оставляет только те значения, которые удовлетворяют заданному диапазону, остальным присваивает 0. Программа проверена, комментарии там же.
Код:
program q174089; const m=4; n=3;
type {Зададим новый тип} matr = array [1..m,1..n] of integer;
var y: array [1..m,1..n] of integer; {Массив 4x3} i, j, x1, x2: integer;
procedure diapazon (a:integer; b:integer; var y1: matr); {Процедура, которая оставляет все цифры в заданном диапазоне [a,b], а остальные переводит в 0} begin for i:=1 to m do for j:=1 to n do if ((y1[i,j]>=a)and(y1[i,j]<=b)) then continue {Если элемент массива больше a и меньше b, то его оставляем} else y1[i,j]:=0; {Иначе приравниваем к 0} end;
begin
for i:=1 to m do {Забиваем массив целыми значениями} for j:=1 to n do begin Write('y[',i,j,']=');
ReadLn(y[i,j]); end;
WriteLn('Введенная матрица: ');{Выводим} for i:=1 to m do begin for j:=1 to n do Write(y[i,j],' '); WriteLn; end;
Write('Введите диапазон через пробел и нажмите ENTER: '); Readln(x1,x2);
diapazon(x1,x2,y); {Вызываем процедуру} WriteLn('Матрица в заданном диапа
зоне: '); {Выводим что получилось} for i:=1 to m do begin for j:=1 to n do Write(y[i,j],' '); WriteLn; end; WriteLn('Нажмите ENTER для завершения'); ReadLn; end.
Ответ отправил: LfiN, 8-й класс
Ответ отправлен: 09.11.2009, 16:07
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 256321
на номер 1151 (Россия) |
Еще номера »
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценить выпуск »
Нам очень важно Ваше мнение об этом выпуске рассылки!
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.