пятница, 18 декабря 2009 г.
Решения заданий отослать в архиве на адрес yulia.pahomova@gmail.com, указав тему письма в качестве своей фамилии + (программироваие)
Жду ответов до понедельника, 15.00, ОЦЕНКИ ИДУТ В ЖУРНАЛ!
понедельник, 14 декабря 2009 г.
Проработать второй урок темы: "Двумерные массивы".
ПОМНИТЕ: СООБЩЕНИЯ В БЛОГЕ ДОБАВЛЯЮТСЯ В ОБРАТНОМ ХРОНОЛОГИЧЕСКОМ ПОРЯДКЕ! ЭТО уже 2 урок, не приступать, пока не проработаете урок 1 (ниже)
Тема: Розроблення та виконання програм з двовимірним масивом
Цель:
Ход урока
Найти сумму элементов побочной диагонали.
for i:=1 to n do
for j:= 1 to m do
if i+j=n+1 then s:=s+a[I,j]
Решение задач
1. Дана матрица размером n*m. Найти сумму положительных элементов матрицы
program mas;
type
arr=array[1..20,1..20] of real;
var
n,m:integer;
a:arr;
s:real;
Procedure input(n,m: integer;Var a:arr);
Var
i,j: integer;
Begin
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(50);
End;
Procedure Print(n,m: integer;Var a:arr);
Var
i,j: integer;
Begin
for i:=1 to n do
begin
for j:=1 to m do
Write(a[i,j]:8:0);
Writeln;
End;
End;
Procedure summa(n,m: integer;Var a:arr;Var s:real);
Var
i,j: integer;
Begin
S:=0;
for i:=1 to n do
for j:=1 to m do
if a[i,j]'>'0 then
S:=S+a[i,j];
End;
Begin
Writeln('n m');
Readln(n,m);
Input(n,m,a);
Writeln('ishodnaya matrix');
Print(n,m,a);
summa(n,m,a,s);
Writeln('s=',s:8:0);
End.
Задача без процедур
program mas;
type
arr=array[1..20,1..20] of real;
var
n,m:integer;
a:arr;
s:real;
i,j: integer;
Begin
Writeln('n m');
Readln(n,m);
for i:=1 to n do
for j:=1 to m do
а[i,j]:=random(50);
for i:=1 to n do
begin
for j:=1 to m do
Write(a[i,j]:8:0);
End;
for i:=1 to n do
for j:=1 to m do
if a[i,j]'>'0 then
S:=S+a[i,j];
Writeln('s=',s:8:0);
End.
Самостоятельно!!!
Задача 2. Дана действительная матрица размером n*m. Найти сумму максимального и минимального элементов матрицы. В одно цикле сделать заполнение и распечатку.
Домашнее задание –решить задачи.
1. Вычислить сумму наибольших значений элементов строк.
2. Дана действительная квадратная матрица порядка п. Найти наибольший элемент главной диагонали.
Составить блок-схему этапа обработки
Тема: Розроблення та виконання програм з двовимірним масивом
Цель:
Ход урока
Найти сумму элементов побочной диагонали.
for i:=1 to n do
for j:= 1 to m do
if i+j=n+1 then s:=s+a[I,j]
Решение задач
1. Дана матрица размером n*m. Найти сумму положительных элементов матрицы
program mas;
type
arr=array[1..20,1..20] of real;
var
n,m:integer;
a:arr;
s:real;
Procedure input(n,m: integer;Var a:arr);
Var
i,j: integer;
Begin
for i:=1 to n do
for j:=1 to m do
a[i,j]:=random(50);
End;
Procedure Print(n,m: integer;Var a:arr);
Var
i,j: integer;
Begin
for i:=1 to n do
begin
for j:=1 to m do
Write(a[i,j]:8:0);
Writeln;
End;
End;
Procedure summa(n,m: integer;Var a:arr;Var s:real);
Var
i,j: integer;
Begin
S:=0;
for i:=1 to n do
for j:=1 to m do
if a[i,j]'>'0 then
S:=S+a[i,j];
End;
Begin
Writeln('n m');
Readln(n,m);
Input(n,m,a);
Writeln('ishodnaya matrix');
Print(n,m,a);
summa(n,m,a,s);
Writeln('s=',s:8:0);
End.
Задача без процедур
program mas;
type
arr=array[1..20,1..20] of real;
var
n,m:integer;
a:arr;
s:real;
i,j: integer;
Begin
Writeln('n m');
Readln(n,m);
for i:=1 to n do
for j:=1 to m do
а[i,j]:=random(50);
for i:=1 to n do
begin
for j:=1 to m do
Write(a[i,j]:8:0);
End;
for i:=1 to n do
for j:=1 to m do
if a[i,j]'>'0 then
S:=S+a[i,j];
Writeln('s=',s:8:0);
End.
Самостоятельно!!!
Задача 2. Дана действительная матрица размером n*m. Найти сумму максимального и минимального элементов матрицы. В одно цикле сделать заполнение и распечатку.
Домашнее задание –решить задачи.
1. Вычислить сумму наибольших значений элементов строк.
2. Дана действительная квадратная матрица порядка п. Найти наибольший элемент главной диагонали.
Составить блок-схему этапа обработки
Проработать новую тему, законспектировать в тетрадь, решить задачу в классной работе и из д/з Тетради соберу и проверю!
Тема: Багатовимірні масиви. Двовимірний масив. Введення та виведення елементів двовимірного масиву.
Ход урока
III. Новая тема
Двумерный массив (матрица) — массив, каждый элемент которого определяется двумя индексами. В языке Паскаль первый индекс указывает на номер строки, а второй — номер столбца в этой строке.
В памяти компьютера элементы двумерного массива хранятся по строкам.
Описание двумерного массива происходит аналогично описанию одномерного массива с указанием диапазона изменения каждого индекса.
1. Описываем массив действительных чисел
const m = 10; n = 20;
Var х: array [l..m, l..n] of real;
2. Type
Mas=array[1..20] of integer;
Var
A: array[1..10] of mas;
3. В качестве формального параметра процедуры:
Type
Massiv=array[1..10, 1..20] of integer;
Var
A: massiv;
Доступ к каждому элементу двумерного массива осуществляется по двум индексам. Например, A [4, 2]:= 0; или A[4], [2]:= 0; (элементу массива А с индексами 4 и 2 присвоено значение О).
Пример 1
Найти сумму элементов главной диагонали.
s:= 0;
for i:= 1 to n do
s:= s + a[i, i];
Заполнение двумерного массива
Чтобы заполнить массив значениями, необходимо обеспечить перебор всех строк и колонок
N – количество строк в матрице
M – количество колонок
I – порядковый номер строки
J – порядковый номер колонки
Заполнение при помощи генератора случайных чисел
for i:=1 to m do
for j:= 1 to n do
a[I,j]:=random(100);
Заполнение с клавиатуры
Writeln(‘a[‘,I,’,’,j,’]=’);
Заполнение массива по колонкам
for j:= 1 to n do
for i:=1 to m do
a[I,j]:=random(100);
Вывод элементов двумерного массива
Элементы двумерного массива выводят с помощью вложенных циклов. Если нужно вывести массив в виде таблицы (по строкам), то после каждого вывода строки значений производится перевод курсора на новую строку командой writeln.
for j:= 1 to n do
Begin
for i:=1 to m do
Write(a[i,j]:4);
Writeln;
End;
Writeln;
Элементы двумерных массивов обрабатывают поэлементно с помощью вложенных циклов.
Например, присвоить всем элементам массива A [1 ..m, 1 .. n] значение О.
for i:=1 to m do
for j:= 1 to n do A[i, j]:= 0;
Квадратная матрица — это матрица, имеющая одинаковое количество строк и столбцов.
Порядок матрицы – количество строк или колонок (только для квадратной)
Главная диагональ — это диагональ, которая располагается от левого верхнего угла до правого нижнего и состоит из элементов с одинаковыми индексами [i, i].
Побочная диагональ — это диагональ, которая располагается от правого верхнего угла до левого нижнего и состоит из элементов с индексами [i, n+l-i]. i+j=n+1
Для обработки элементов диагоналей достаточно одного цикла.
Поиск элемента по условию
Найти максимальное число в двумерном массиве
Max:=a[1,1];
for i:=1 to n do
for j:= 1 to m do
if a[I,j] '>' max then max:=a[I,j]
Задача. Все элементы с наибольшим значением в данной целочисленной квадратной матрице заменить нулями.
Задача должна содержать следующие этапы обработки:
1. Заполнить матрицу значениями.
2. Распечатать исходную матрицу.
3. Найти максимальное число.
4. Записать максимальное число нулем.
5. Распечатать результат.
IV. Домашнее задание –выучить ОК по теории урока, решить задачу.
Найти сумму элементов побочной диагонали квадратной матрицы
Ход урока
III. Новая тема
Двумерный массив (матрица) — массив, каждый элемент которого определяется двумя индексами. В языке Паскаль первый индекс указывает на номер строки, а второй — номер столбца в этой строке.
В памяти компьютера элементы двумерного массива хранятся по строкам.
Описание двумерного массива происходит аналогично описанию одномерного массива с указанием диапазона изменения каждого индекса.
1. Описываем массив действительных чисел
const m = 10; n = 20;
Var х: array [l..m, l..n] of real;
2. Type
Mas=array[1..20] of integer;
Var
A: array[1..10] of mas;
3. В качестве формального параметра процедуры:
Type
Massiv=array[1..10, 1..20] of integer;
Var
A: massiv;
Доступ к каждому элементу двумерного массива осуществляется по двум индексам. Например, A [4, 2]:= 0; или A[4], [2]:= 0; (элементу массива А с индексами 4 и 2 присвоено значение О).
Пример 1
Найти сумму элементов главной диагонали.
s:= 0;
for i:= 1 to n do
s:= s + a[i, i];
Заполнение двумерного массива
Чтобы заполнить массив значениями, необходимо обеспечить перебор всех строк и колонок
N – количество строк в матрице
M – количество колонок
I – порядковый номер строки
J – порядковый номер колонки
Заполнение при помощи генератора случайных чисел
for i:=1 to m do
for j:= 1 to n do
a[I,j]:=random(100);
Заполнение с клавиатуры
Writeln(‘a[‘,I,’,’,j,’]=’);
Заполнение массива по колонкам
for j:= 1 to n do
for i:=1 to m do
a[I,j]:=random(100);
Вывод элементов двумерного массива
Элементы двумерного массива выводят с помощью вложенных циклов. Если нужно вывести массив в виде таблицы (по строкам), то после каждого вывода строки значений производится перевод курсора на новую строку командой writeln.
for j:= 1 to n do
Begin
for i:=1 to m do
Write(a[i,j]:4);
Writeln;
End;
Writeln;
Элементы двумерных массивов обрабатывают поэлементно с помощью вложенных циклов.
Например, присвоить всем элементам массива A [1 ..m, 1 .. n] значение О.
for i:=1 to m do
for j:= 1 to n do A[i, j]:= 0;
Квадратная матрица — это матрица, имеющая одинаковое количество строк и столбцов.
Порядок матрицы – количество строк или колонок (только для квадратной)
Главная диагональ — это диагональ, которая располагается от левого верхнего угла до правого нижнего и состоит из элементов с одинаковыми индексами [i, i].
Побочная диагональ — это диагональ, которая располагается от правого верхнего угла до левого нижнего и состоит из элементов с индексами [i, n+l-i]. i+j=n+1
Для обработки элементов диагоналей достаточно одного цикла.
Поиск элемента по условию
Найти максимальное число в двумерном массиве
Max:=a[1,1];
for i:=1 to n do
for j:= 1 to m do
if a[I,j] '>' max then max:=a[I,j]
Задача. Все элементы с наибольшим значением в данной целочисленной квадратной матрице заменить нулями.
Задача должна содержать следующие этапы обработки:
1. Заполнить матрицу значениями.
2. Распечатать исходную матрицу.
3. Найти максимальное число.
4. Записать максимальное число нулем.
5. Распечатать результат.
IV. Домашнее задание –выучить ОК по теории урока, решить задачу.
Найти сумму элементов побочной диагонали квадратной матрицы
Подписаться на:
Комментарии (Atom)
