Показать сообщение отдельно
Старый 16.03.2014, 20:47   #1 (permalink)
Madara
Member
 
Регистрация: 29.11.2013
Сообщений: 50
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Lightbulb Программы с процедурами

Помогите с двумя задачами, одну частично выполнил...
Задача №1
Задача на использование формальных массивов в процедурах.

Составить процедуру, исходными данными которой является матрица А из n строк и n столбцов, либо два массива B1,B2,...,Вn; C1,C2,...,Cm, либо один из них. Для проверки составленной внешней процедуры разработать головной модуль.
Важно. Процедура не должна использовать «внутри себя» глобальных переменных. Все необходимое для работы процедуры и передачи результата должно осуществляться через параметры процедуры.

Вывести измененный массив C1,C2,...,Cm: каждый элемент, предшествующий минимальному, помножен на него, а все следующие за минимальным уменьшены на 1.

Я решал, общую форму программы написал примерно, а с позицией минимального элемента проблема....

PHP код:
uses   System;
const  
  
m=5
type
 
    Mass
=array[1..mof integer
    
Mas=array[1..mof integer;
 
Procedure  Izmena ( Var C:Mass;Var D:Mas ;Const Pm:byte;var Pmin:integerPi_min:integeri:integer ); // Pm-кол-во элементов, Pmin-минимальный элемент, Pi_min-позиция минимального элемента
         
        
begin
          i
:=i+1;
          
Pmin:=Pm;
          for 
i:=1 to Pm do 
          
D[i]:=C[i];
           
             for 
i:=1 to Pm do
           
Begin
             
if C[i]<Pmin then 
           Begin
             Pmin
:=C[i];
             
Pi_min:=i;
             
writeln(Pi_min);
             
end
            
end;
           
end;
   
    Var
  
B:Mas;
  
A:Mass:=((5,5,4,2,7));
  
min,i_min,ia:integer;
   
begin
   Izmena
(A,B,m,min,i_min,ia);
   
writeln('минимум ',min', стоит на 'i_min' месте'); 
   
writeln(i_min);
   for 
ia:=1 to m do
   
   
   
end
...каждый элемент, предшествующий минимальному, помножен на него, а все следующие за минимальным уменьшены на 1... Я представил как
PHP код:
for i:=1 to Pm do
   
   ...if 
i<Pi_min then
   D
[i]:=C[i]*Pmin;
   
   
   if 
i>Pi_min then
   D
[i]:=C[i]-1... 
Не знаю, верно это или нет


Задача №2
Задача на разработку программы с использованием созданной в задании процедуры.

Составить программу с разработкой и использованием указанной в задании процедуры.
Напоминание: процедура не должна использовать «внутри себя» глобальных переменных. Все необходимое для работы процедуры и передачи результата должно осуществляться через параметры процедуры.
В каждой из матриц: A (3 строки, 4 столбца) и B (5 строк, 5 столбцов) поменять местами две строки: в матрице A - строки 2 и 3, в матрице B - строки 2 и 4.
Для обмена в матрице строк с произвольными номерами использовать процедуру.

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


Заранее спасибо!
Madara вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070