Пользователь

Добро пожаловать,

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

Меню сайта




Ваше мнение
Какой язык программирования вы используете ?

ASP
Delphi
C/C++
Basic
PHP
Pascal
Java
Другой


Результаты
Другие опросы

Всего голосов: 1968
Комментарии: 10


Наши партнеры



Статистика




Programming books  Download software  Documentation  Scripts  Content Managment Systems(CMS)  Templates  Icon Sets  Articles  Contacts  Voting  Site Search




Книги-online



Практикум — Глава 3. Алгоритмы, реализуемые с помощью вложенных циклов типа ДЛЯ
[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]

Пример 3.5. В массиве A(N, N) вычислить две суммы элементов, расположенных ниже и выше главной диагонали.   Тест  
Данные Результат
N=3  S1=6  S2=9
  Демонстрация Школьный АЯ
алг Две суммы (арг цел N, арг вещ таб A[1:N, 1:N], рез вещ S1, S2)
  надо | S1 = сумма элементов ниже главной диагонали
       | S2 = сумма элементов выше главной диагонали
нач цел i, j
  S1:=0; S2:=0
  нц для i от 2 до N | циклы по элементам, расположенным
    нц для j от 1 до i-1 | ниже главной диагонали
      S1:=S1 + A[i, j]
    кц
  кц
  нц для i от 1 до N-1 | циклы по элементам, расположенным
    нц для j от i+1 до N | выше главной диагонали
      S2:=S2 + A[i, j]
    кц
  кц
кон
Исполнение алгоритма 
 
i j S1 S2
    2 3     1 1 2   0 0+3=3 3+2=5 5+1=6 0
1   2 2 3 3   0+2=2 2+4=6 6+3=9
 
Блок-схема (фрагмент) 
Turbo Pascal
Program TwoSums;
  Uses Crt;
  Var A       : Array [1..10, 1..10] of Real;
      S1, S2  : Real; {S1, S2 - суммы элементов, расположенных ниже
                          и выше главной диагонали, соответственно}
      N, i, j : Integer;
{--------------------------------------------}
  Procedure InputOutput;{описание процедуры ввода-вывода исходных данных}
    Begin ClrScr;
      Write('Количество строк и столбцов - '); ReadLn(N);
      For i := 1 to N do {Ввод матрицы}
        For j := 1 to N do
          begin Write('A[' , i , ', ' , j , '] = ? ');
                ReadLn(A[i, j])
          end; WriteLn;
      ClrScr; WriteLn(' Матрица А');
      For i := 1 to N do {Вывод матрицы}
        begin
          For j := 1 to N do Write(A[i, j] : 5 : 1);
          WriteLn
        end; WriteLn
    End; { of InputOutput }
{--------------------------------------------}
  Procedure Under;
    Begin {описание процедуры суммирования элементов, }
      S1 := 0; {расположенных ниже главной диагонали }
      For i := 2 to N do
        For j := 1 to i-1 do
          S1 := S1 + A[i, j];
      WriteLn('О т в е т :');
      WriteLn('Сумма элементов, лежащих ниже главной диагонали =', S1:5:1);
    End;
{--------------------------------------------}
  Procedure Over;
    Begin {описание процедуры суммирования элементов,}
      S2 := 0; {расположенных выше главной диагонали}
      For i := 1 to N-1 do
        For j := i+1 to N do
          S2 := S2 + A[i, j];
      WriteLn('Сумма элементов, лежащих выше главной диагонали =', S2:5:1);
      ReadLn
    End;
{--------------------------------------------}
BEGIN
  InputOutput; {Вызов процедуры ввода-вывода матрицы }
  Under; {Вычисление суммы элементов, лежащих ниже главной диагонали}
  Over ; {Вычисление суммы элементов, лежащих выше главной диагонали }
END.
 
QBasic
CLS : INPUT "Количество строк и столбцов - ", N
DIM A(N, N) 'Резервирование памяти для массива
FOR i = 1 TO N 'Ввод массива
  FOR j = 1 TO N
    PRINT "A(" ; i ; ", " ; j ; ") = " ; : INPUT A(i, j)
  NEXT j
NEXT i
CLS : PRINT "Матрица А"
FOR i = 1 TO N 'Вывод массива по строкам
  FOR j = 1 TO N
    PRINT A(i, j) ;
  NEXT j
  PRINT
NEXT i : PRINT
S1 = 0 'Вычисление суммы элементов, лежащих ниже главной диагонали
FOR i = 2 TO N
  FOR j = 1 TO i-1
    S1 = S1 + A(i, j)
  NEXT j
NEXT i
S2 = 0 'Вычисление суммы элементов, лежащих выше главной диагонали
FOR i = 1 TO N-1
  FOR j = i+1 TO N
    S2 = S2 + A(i, j)
  NEXT j
NEXT i
PRINT "Сумма элементов, лежащих ниже главной диагонали равна "; S1
PRINT "Сумма элементов, лежащих выше главной диагонали равна "; S2
END

[ домой ] [ следующий ] [ начало главы ] [ предыдущий ] [ содержание ]


Внимание! Если у вас не получилось найти нужную информацию, используйте рубрикатор или воспользуйтесь поиском


.



книги по программированию исходники компоненты шаблоны сайтов C++ PHP Delphi скачать