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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2012, 16:49   #1
proof23
Новичок
Джуниор
 
Регистрация: 21.05.2012
Сообщений: 1
По умолчанию Функции и процедуры (Pascal)

Нужно разбить программу на функции и процедуры.
Код:
{Kursovaya rabota po discipline "INFORMTICA"}
{Vipolneno: student of 1112 Svinin E.V.}
{Data: 13.03.2012}
Program kursa4;
Uses CRT;
Const
     Max=50; {max razmer matrici}
Type
    Number=1..Max; {type of index}
    Matrix=array [number,number] of real; {matrix type}
Var
   {vhodniye danniye}
          N:Number; {poryadok matrici}
          m,p:Number;{nomera strok}
          A:matrix;{ischodnaya matrica}
          i,j:Number;{index strok/stolbtsov}
          f:text;
          R:text; {file of 'output'}
   {vichodniye danniye}
   B,C:matrix;{preobrazovannaya matrica}
   s:real;{symma elementov matrici C}
Begin
clrscr;
assign(f,'D:\1112\gh\input.txt');
reset(f);
Readln (f,N);
      If (N<=0) or (N>Max) then
        repeat
             begin
                  Writeln('error : N dolzhno bit ot 1 do 50');
                  Writeln('Vvedite vruchnuy N');
                  Readln(N)
             end
        until (N>0) and (N<=Max);
Writeln ('N = ',N);
Writeln ('Vvedite elemmenty matrici A');
For i:=1 to N do
    For j:=1 to N do
        begin
             read (f,a[i,j]);
             writeln ('a[',i,',',j,'] = ',a[i,j]:5:2);
        end;
Writeln ('Vvedite nomera strok m & p');
Readln (f,m);
Writeln ('m = ',m);
      If (m<=0) or (m>N) then
        repeat
             begin
                  Writeln('error : m dolzhno bit ne bolshe N i ne ravno nuliy');
                  Writeln('Vvedite povtorno m');
                  Readln(m)
             end
        until (m>0) and (m<=N);
readln (f,p);
Writeln ('p = ',p);
      If (p<=0) or (p>N) then
        repeat
             begin
                  Writeln('error : p dolzhno bit ne bolshe N i ne ravno nuliy');
                  Writeln('Vvedite povtorno p');
                  Readln(p)
             end
        until (p>0) and (p<=N);
close(f);
writeln;
{vvod vhodnih dannih okonchen}
{smena strok i vvod matrici B}
B:=A;
       For j:=1 to N do
          begin
               b[m,j]:=a[p,j];
               b[p,j]:=a[m,j];
          end;
       For i:=1 to N do
          begin
           For j:=1 to N do
             Write (b[i,j]:6:2);
             Writeln;
          end;
writeln;
{formirovaniye matrici C}
For i:=1 to N do
       For j:=1 to N do
          If i>=j then
                  c[i,j]:=b[i,j];
{vivod matrici C}
For i:=1 to N do
          begin
               For j:=1 to N do
                   write (c[i,j]:6:2);
                   writeln
          end;
{symma elementov matrici C}
s:=0; {ystanovka schetchika symmi na nol'}
For i:=1 to N do
      For j:=1 to N do
         If (i>=j) and (c[i,j]>0) then
                                  S:=S+c[i,j];
                                  Writeln;
                                  Writeln (S:6:2);
{The beginning of output}
assign (R, 'D:\1112\gh\output.txt');
rewrite (R);
Writeln (R, 'OUTPUT:');
Writeln (R, 'A = ');
For i:=1 to N do
          begin
           For j:=1 to N do
             Write (R, a[i,j]:6:2);
             Writeln (R);
          end;
Writeln (R);
Writeln (R, 'B = ');
For i:=1 to N do
          begin
           For j:=1 to N do
             Write (R, b[i,j]:6:2);
             Writeln (R);
             end;
Writeln(R);
Writeln(R,'C = ');
For i:=1 to N do
          begin
               For j:=1 to N do
                   Write (R,c[i,j]:6:2);
                   Writeln(R);
          end;
Writeln(R);
Writeln(R,'s =  ');
s:=0;
For i:=1 to N do
      For j:=1 to N do
         If (i>=j) and (c[i,j]>0) then
                                  S:=S+c[i,j];
                                  Write(R,S:6:2);
                                  Writeln (R);

close (R);
Writeln ('All results are in the file');
Readln;
end.
proof23 вне форума Ответить с цитированием
Старый 21.05.2012, 19:33   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

1. Написать на бумаге по-русски последовательность действий, которые совершает программа.
2. Выделить набор операторов, которые совершают каждое из указанных действий и оформить из в виде подпрограммы.
s-andriano вне форума Ответить с цитированием
Старый 21.05.2012, 21:45   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
1. Написать на бумаге по-русски последовательность действий, которые совершает программа.
Ну как минимум:
1. Чтение из файла
2. Ввод данных
3. Расчет (операции с матрицей)
4. Вывод матрицы
5. Сброс данных в файл

Цитата:
2. Выделить набор операторов, которые совершают каждое из указанных действий и оформить из в виде подпрограммы.
Они там комментами выделены. Ему только за использование комментариев уже оценку на один балл выше можно ставить .
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 21.05.2012 в 21:49.
Utkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
процедуры и функции(pascal) wormiks40 Помощь студентам 2 20.04.2012 06:51
Pascal, Процедуры и функции(( Грета Помощь студентам 3 09.12.2011 20:23
Процедуры и функции(Pascal) Zimba Помощь студентам 3 21.06.2010 18:53
Процедуры и функции (Pascal) P1RoG Помощь студентам 2 29.04.2010 03:44
Pascal-процедуры и функции xxBOBAHxx Помощь студентам 3 18.11.2008 14:30