воскресенье, 22 апреля 2012 г.

Урок 26. Диагонали квадратной матрицы

1. Устный практикум 
Определите, как будет выглядеть матрица, после заполнения ее по следующему алгоритму:
а) const n=4;m=4;
var i,j: integer;
a: array[1..m,1..n] of integer;
begin
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := 0 ;
...
b) const n=4;m=4;
var i,j: integer;
a: array[1..m,1..n] of integer;
begin
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := i ;
...
c) const n=4;m=4;
var i,j: integer;
a: array[1..m,1..n] of integer;
begin
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := i+j ;
...
Изначально, квадратная матрица 4х4 заполнена нулями. Как изменится матрица после выполнения следующих фрагментов программы:
а)for i:=1 to m do
  for j:=i to n do
    A[i,j] := 1 ;


b)for i:=1 to m do
  for j:=i to i do
    A[i,j] := 1 ;
2. Проверка ДЗ

3. Программирование по теме
Выполните следующие задания:
  • matrix80;
  • matrix81 (самостоятельно);
  • matrix82.
4. Домашнее задание
Решить задачу: в квадратной матрице посчитать сумму элементов на главной диагонали и всех диагоналях, параллельных ей, расположенных выше главной.

воскресенье, 15 апреля 2012 г.

Урок 25. Преобразование матрицы

1. Домашнее задание
Решение задачи natrix32:
const n=3;m=4;
var i,j,np,no,ni: integer;
a: array[1..m,1..n] of integer;
begin
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := random(10)-5 ;
writeln('Исходный массив:');
for i:=1 to m do begin
  for j:=1 to n do
  write ( A[i,j]:5 );
  writeln;
end;
for i:=1 to m do
  begin
  no:= 0;np:= 0;
   for j:=1 to n do begin
     if A[i,j]<0 then no:= no+1;
     if A[i,j]>0 then np:= np+1; end;
  if no=np then begin ni:=i; break end;
  end;
writeln('Номер первой строки, содержащей равное количество положитедльных и отрицательных элементов: ',ni);
end.


 Решение задачи natrix43:
const n=5;m=3;
var i,j,up,u: integer;
a: array[1..m,1..n] of integer;
begin
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := random(5) ;
writeln('Исходный массив:');
for i:=1 to m do
  begin
   for j:=1 to n do
    write ( A[i,j]:5 );
  writeln;
 end;
up:=0;
for j:=1 to n do
  begin
  u:= 1;
   for i:=1 to m-1 do if A[i+1,j]>A[i,j] then u:= 0;
  up:=up+u;
  end;
writeln('Количество упрорядоченных по убыванию столбцов: ',up);
end.


2. Преобразование матрицы
Решить следующие задачи:

  • matrix47;
  • matrix48 (самостоятельно);
  • matrix59.

3. Домашнее задание
Решите следующие задачи: matrix52matrix56.

воскресенье, 8 апреля 2012 г.

Урок 24. Анализ элементов матрицы

1. Рассмотреть решение домашнего задания
Решение задачи matrix20:
const n=5;m=10;
var i,j,k,s,p: integer;
a: array[1..m,1..n] of integer;
begin
writeln('Дана матрица размера MxN и целое число K (1<K<M). Найти произведение элементов каждого столбца данной матрицы.');
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := random(2)+1 ;
writeln('Исходный массив:');
for i:=1 to m do 
begin
  for j:=1 to n do
    write ( A[i,j]:5 );
writeln;
end;
for j:=1 to n do 
begin
p:=1;
  for i:=1 to m do  p:=p*A[i,j];
writeln('Произведение элементов ', i, '-го столбца равно ', p);
end;
end.


Решение задачи matrix23:
const n=3;m=4;
var i,j,k,imax,jmax,max: integer;
a: array[1..m,1..n] of integer;
begin
writeln('Дана матрица размера MxN. Найти минимальный элемент каждой строки');
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := random(10) ;
writeln('Исходный массив:');
for i:=1 to m do
begin
  for j:=1 to n do
    write ( A[i,j]:5 );
writeln;
end;
for i:=1 to m do
begin
max:=A[1,1];imax:=1;jmax:=1;
 for j:=1 to n do  if A[i,j]<max then 
     begin max:= A[i,j];imax:=i;jmax:=j end;
writeln('Минимальный элемент ',i,' строки: ','А[', imax, ';', jmax,']=',A[imax,jmax]);
end;
end.

2. Решение упражнений по теме
Выполните следующие задания:
  • matrix25,
  • matrix26 (самостоятельно),
  • matrix30,
  • matrix31  (самостоятельно).


3. Домашнее задание
Решите задачи matrix32, matrix43.

воскресенье, 1 апреля 2012 г.

Урок 23. Двумерные массивы

1. Понятие двумерного массива
Двумерный массив (матрица) - это прямоугольная таблица чисел (или данных другого типа), в которой каждый элемент имеет два индекса (номер строки и номер столбца).
2. Задание двумерного массива. Вывод на печать
Объявление двумерного массива:
const N = 3;
      M = 4;
var A: array[1..N,1..M] of integer;
    B: array[-3..0,-8..M] of integer;
Ввод с клавиатуры:
for i:=1 to N do
  for j:=1 to M do begin
    write('A[',i,',',j,']=');
    read ( A[i,j] );
  end;
Заполнение случайными числами:
for i:=1 to N do
  for j:=1 to M do
    A[i,j] := random(25) - 10;
Вывод на экран:
for i:=1 to N do begin
  for j:=1 to M do 
  write ( A[i,j]:5 );
  writeln; 
end;
3. Решение упражнений
Напишите программу для решения следующих задач (стр. 65): matrix17 matrix18 (самостоятельно), matrix19 (доработать 17).
Напишите программу по поиску первого среди максимальных элементов матрицы.

4. Домашнее задание
Напишите программу для решения следующих задач: matrix20matrix23.