TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

 

ПРИЛОЖЕНИЕ  1

ПОСТАНОВКА ЗАДАЧИ

Вариант 1.

Задана квадратная матрица A размером N x N (N<=10),  состоящая из действительных элементов. Найти среднее  арифметическое элементов каждого из столбцов этой матрицы.

ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ

Для обработки матриц в задании применены вложенные операторы

ЦИКЛА СО СЧЕТЧИКОМ :

for <идентификатор>:=<нач. значение счетчика> to < конечное значение счетчика > do

<оператор>

Для проверки  размерности  матрицы (k<=N) применен оператор

ЦИКЛА    ПОВТОРИТЬ :

                                                 Repeat

<оператор>;

                                                                              ...

<оператор>;

Until <условие выхода из цикла>;

Ввод фактического количества строк и столбцов квадратной  матрицы  A (k<=N), ввод-вывод элементов матрицы А  и  вычисление среднего арифметического  каждого из столбцов матрицы реализовано через соответствующие процедуры: InputN, I.nputMatrix, OutputMatrix, Evaluate с параметрами (см. Листинг программы Work4.pas). Выходные параметры передаются через атрибут Var.

Используются две стандартные подпрограммы модуля CRT:

¨    Для очистки экрана - процедура  ClrScr.  

¨    Для ввода символа (в данном случае n или N) - функция  ReadKey.

ОПИСАНИЕ ПРОГРАММЫ

Программа написана на алгоритмическом  языке ПАСКАЛЬ и реализована в среде Borland Pascal-7.0 Windows 95/MS DOS-7.0, процессор Pentium. Программа  состоит  из  главной  программы  и четырех  подпрограмм (InputN, InputMatrix, OutputMatrix, Evaluate), объединенных в единый модуль WORK4.pas. Из главной программы вызываются внешние подпрограммы стандартного модуля  CRT: ClrScr, ReadKey.

ОПИСАНИЕ ЛОГИЧЕСКОЙ СТРУКТУРЫ

 Главная программа

  WORK4.pas

 
 

 

 

 

 

 

 

 

 

ClrScr

 

:=ReadKey

 
 

 

 


Описание алгоритма решения задачи - см. Стр. 18 - 22.
ОПИСАНИЕ ВХОДНЫХ ДАННЫХ

k - фактическое количество строк  и столбцов матрицы (k<=N) -  переменная типа                     INTEGER;

A - квадратная матрица, состоящая из вещественных элементов (типа REAL):

 A: array[1..N,1..N] of real.

ОПИСАНИЕ ВЫХОДНЫХ ДАННЫХ

               Stolb: array[1..N] of real - локальный массив средних арифметических значений элементов каждого из столбцов матрицы A - вычисляется  и выводится в процедуре Evaluate.

ОПИСАНИЕ ПОДПРОГРАММ

Процедура InputN (Var k:integer)

               Служит для ввода фактического количества строк и столбцов квадратной  матрицы  A (1<k<=N).

Процедура InputMatrix (k:integer; Var A:arrayA)

               Служит для ввода значений вещественных элементов матрицы  A типа  ArrayA (ArrayA=array[1..N,1..N] of real)  длиной k*k.

Процедура OutputMatrix (k:integer;  A:arrayA)

               Служит для вывода значений вещественных элементов квадратной матрицы  A типа  ArrayA длиной k*k.

Процедура Evaluate (k:integer;  A:arrayA)

               Служит для вычисления  и выдачи на экран среднего арифметического  каждого из столбцов квадратной матрицы A типа  ArrayA длиной k*k.






ТЕСТОВЫЕ ПРИМЕРЫ

Введите значение N=====>3

                ------- Исходная матрица -------

1111.00  2222.00  3333.00

1111.00  2222.00  3333.00

1111.00  2222.00  3333.00

------- Cреднее арифметическое каждого из столбцов -------

Cтолбец [1]= 1111.00

Cтолбец [2]= 2222.00

Cтолбец [3]= 3333.00

 

Введите значение N=====>2

                ------- Исходная матрица -------

   1.00     2.00

   3.00     4.00

------- Cреднее арифметическое каждого из столбцов -------

Cтолбец [1]=    2.00

Cтолбец [2]=    3.00

 

Введите значение N=====>4

                ------- Исходная матрица -------

111222.00      222333.00  333444.00  444555.00

      555.00      555666.00  666777.00  777888.00

888999.00            999.00  111999.00  222888.00

333777.00      444666.00  555555.00  123456.00

------- Cреднее арифметическое каждого из столбцов -------

Cтолбец [1]= 333638.25

Cтолбец [2]= 305916.00

Cтолбец [3]= 416943.75

Cтолбец [4]= 392196.75

Список использованной литературы

1.     Абрамов С.А., Зима Е.В. Начала информатики. М., 1989.

2.     Вирт Н. Алгоритмы + структуры данных = программы. М., 1985.

3.     Голубь Н.Г., Кириленко Е.Г. Алгоритмические языки и программирование: Учебное пособие,  часть 1. ХАИ, 1997.

4.     Джонс Ж., Харроу К. Решение задач в системе Турбо Паскаль. М., 1991.

5.     Мизрохи С.В. TURBO PASCAL и объектно-ориентированное программирование. М., 1992.

6.     Прайс Д. Программирование на языке Паскаль: Практическое руководство. М., 1987.

7.     Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие. М., 1997.

Фирменная документация и компьютерные справочники (файлы помощи типа H

ПРИЛОЖЕНИЕ

ЛИСТИНГ ПРОГРАММЫ Work4.pas                                                                                                                                                            

Program Work4;

Uses CRT;

Const N=10;

Type ArrayA=array [1..N,1..N] of real;

Var k : integer;

        A: ArrayA;

      ch : char;

 

     { ввод фактического количества  k  строк  и  столбцов квадратной  матрицы  A }

Procedure InputN(Var k:integer);

Begin

  Repeat

       Write('Введите значение N=====>');

       Readln(k);

  Until (k<=N) and (k>1);

End;

 

     { ввод значений вещественных элементов матрицы  A }

Procedure InputMatrix(k:integer;Var A:arrayA);

Var i,j:integer;

Begin

  for i:=1 to k do

  for j:=1 to k do

    Begin

         Write('Введите значение элемента матрицы A[',i,',',j,']=====>');

         Readln(A[i,j]);

    End;

End;

 

{ вывод значений вещественных элементов матрицы  A }

Procedure OutputMatrix(k:integer; A:arrayA);

Var i,j:integer;

Begin

  Writeln('         ------- Исходная матрица -------');

  for i:=1 to k do

    Begin

         for j:=1 to k do

              Write(A[i,j]:7:2,'  ');

         Writeln;

    End;

End;

 

{вычисление  и выдача на экран среднего арифметического  каждого из столбцов

квадратной   матрицы A}

Procedure Evaluate(k:integer; A:arrayA);

Var i,j:integer;

    stolb:array [1..N] of real;

    sr:real;

Begin

  for j:=1 to k do

    Begin

         sr:=0;

         for i:=1 to k do  

             sr:=sr+A[i,j]; {вычисление суммы элементов по столбцам матрицы  A}

         Stolb[j]:=sr/k;

    End;

  Writeln('------- Cреднее арифметическое каждого из столбцов -------');

  for j:=1 to k do

      Writeln ('Cтолбец [',j,']= ',Stolb[j]:7:2);

End;

{Главная программа}

Begin

  Repeat

       ClrScr;

       InputN(k);

       InputMatrix(k,A);

       ClrScr;

       OutputMatrix(k,A);

       Evaluate(k,A);

       Writeln('Опять? (y/n)');

       ch:=ReadKey;

  Until (ch='n') or (ch='N');

End.

 

 

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz