Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2016, 09:53   #1
Агнесска
 
Регистрация: 06.05.2016
Сообщений: 9
По умолчанию Помогите пожалуйста оформить программу в виде модуля (program Sortirovka_massiva_part_two)

Помогите пожалуйста оформить программу в виде модуля
Код:
program Sortirovka_massiva_part_two;
   
   const stlb = 5;
         str  = 5;         
   
   type Vector = array[1..stlb] of real;
        Massiv = array[1..str] of Vector;
        
   VAR B : Massiv;
       v, l : integer;
       F1, F2 : text;
        
   procedure FormMassiv(var A : Massiv);
   var i, j : integer;
   begin
      for i := 1 to str do
         for j := 1 to stlb do
            A[i,j] := random(-1000,1500);
   end;
   
   function F(Y : vector):Real;
   var j : integer; 
   S : real;
   begin
      S := 0;
      for j := 1 to stlb do
         S := S + Y[j];
      F := S;
   end;  
   
   procedure StraightSelection;
      VAR 
      i, j,
      nom : integer ;
      min : Vector;
      Begin
         for i := 1 to str-1 do
            begin
               nom := i;
               min := B[i];
               for j := i + 1 to str do
                  if F(B[j]) > F(min) then
                     begin
                        min := B[j];
                        nom := j;
                     end;
               B[nom] := B[i];
               B[i] := min;
            end;
      end;
  
  
   begin
      Assign(F1,'Result_of_sortirovka_Matrix.txt');
      Assign(F2,'Result_pervichnaya_Matrix.txt');
      Rewrite(F1);
      Rewrite(F2);
      FormMassiv(B);
      For v := 1 to str do
         begin
            for l := 1 to stlb do
               Write(F2,B[v,l]:6,' ');
            Writeln(F2);
         end;
      StraightSelection;
      For v := 1 to str do
         begin
            for l := 1 to stlb do
               Write(F1,' ',B[v,l]:6,' ');
            Writeln(F1);
            Write(F(B[v]),' ');
          //  Write(F(v),' ');
         end;
      Close(F1);
      Close(F2);
  end.

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 01.06.2016 в 09:55.
Агнесска вне форума Ответить с цитированием
Старый 01.06.2016, 09:58   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

здесь нужно поступить точно так же, как Вам объяснили в соседней теме: http://programmersforum.ru/showpost....65&postcount=2
- вынести в отдельный файл описание типов, функцию и процедуру и правильно его оформить.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.06.2016, 11:15   #3
Агнесска
 
Регистрация: 06.05.2016
Сообщений: 9
По умолчанию

Подскажите пожалуйста, верно ли я оформила модуль.
Код:
unit sortmas;
interface 
const stlb = 5;str  = 5; 
type Vector = array[1..stlb] of real;
     Massiv = array[1..str] of Vector;
VAR B : Massiv;
procedure FormMassiv(var A : Massiv);     
function F(Y : vector):Real;  
procedure StraightSelection;  
implementation
procedure FormMassiv;
var i, j : integer;
begin
     for i := 1 to str do
        for j := 1 to stlb do
           A[i,j] := random(-1000,1500);
end;
function F:Real;
var j : integer;S : real;
begin
      S := 0;
      for j := 1 to stlb do
         S := S + Y[j];
      F := S;
end;  
procedure StraightSelection;
VAR  i, j,nom : integer ;min : Vector;
Begin
      for i := 1 to str-1 do
         begin
               nom := i;
               min := B[i];
               for j := i + 1 to str do
                  if F(B[j]) > F(min) then
                     begin
                        min := B[j];
                        nom := j;
                     end;
               B[nom] := B[i];
               B[i] := min;
         end;
end;
program ex_1;
uses sortmas;
VAR v, l : integer;F1, F2 : text; 
begin
      Assign(F1,'Result_of_sortirovka_Matrix.txt');
      Assign(F2,'Result_pervichnaya_Matrix.txt');
      Rewrite(F1);
      Rewrite(F2);
      FormMassiv(B);
      For v := 1 to str do
         begin
            for l := 1 to stlb do
               Write(F2,B[v,l]:6,' ');
            Writeln(F2);
         end;
      StraightSelection;
      For v := 1 to str do
         begin
            for l := 1 to stlb do
               Write(F1,' ',B[v,l]:6,' ');
            Writeln(F1);
            Write(F(B[v]),' ');
          //  Write(F(v),' ');
         end;
      Close(F1);
      Close(F2);
 end.
_____

Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)

Модератор

Последний раз редактировалось Serge_Bliznykov; 01.06.2016 в 11:25.
Агнесска вне форума Ответить с цитированием
Старый 01.06.2016, 11:21   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Код:
program Sortirovka_massiva_part_two;

uses My; { your second unit My.pas }   

   begin
      Assign(F1,'Result_of_sortirovka_Matrix.txt');
      Assign(F2,'Result_pervichnaya_Matrix.txt');
      Rewrite(F1);
      Rewrite(F2);
      FormMassiv(B);
      For v := 1 to str do
         begin
            for l := 1 to stlb do
               Write(F2,B[v,l]:6,' ');
            Writeln(F2);
         end;
      StraightSelection;
      For v := 1 to str do
         begin
            for l := 1 to stlb do
               Write(F1,' ',B[v,l]:6,' ');
            Writeln(F1);
            Write(F(B[v]),' ');
          //  Write(F(v),' ');
         end;
      Close(F1);
      Close(F2);
  end.
Код:
unit My;

interface

const stlb = 5;
         str  = 5; 
        
   
type Vector = array[1..stlb] of real;
        Massiv = array[1..str] of Vector;
        
VAR B : Massiv;
       v, l : integer;
       F1, F2 : text;

procedure FormMassiv(var A : Massiv);
function F(Y : vector):Real;
procedure StraightSelection;

implementation
        
   procedure FormMassiv(var A : Massiv);
   var i, j : integer;
   begin
      for i := 1 to str do
         for j := 1 to stlb do
            A[i,j] := random(-1000,1500);
   end;
   
   function F(Y : vector):Real;
   var j : integer; 
   S : real;
   begin
      S := 0;
      for j := 1 to stlb do
         S := S + Y[j];
      F := S;
   end;  
   
   procedure StraightSelection;
      VAR 
      i, j,
      nom : integer ;
      min : Vector;
      Begin
         for i := 1 to str-1 do
            begin
               nom := i;
               min := B[i];
               for j := i + 1 to str do
                  if F(B[j]) > F(min) then
                     begin
                        min := B[j];
                        nom := j;
                     end;
               B[nom] := B[i];
               B[i] := min;
            end;
      end;
end.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста оформить программу в виде модуля (program ex_8_16_v - сортировка матриц) Агнесска Паскаль, Turbo Pascal, PascalABC.NET 2 01.06.2016 09:55
[с] Динамическую структуру оформить в виде отдельного модуля. nicklifs Общие вопросы C/C++ 5 15.03.2012 11:25
Разработать алгоритм, отобразить его в виде блок-схемы и написать программу на языке Паскаль. Оформить отчет MID_SAN Помощь студентам 1 02.02.2012 10:24
Оформить процедуру и функцию в виде модуля пользователя и файла Anny_Apple Паскаль, Turbo Pascal, PascalABC.NET 6 13.03.2011 14:24