понедельник, 21 декабря 2009 г.

Задание на карантин с 21.12 по 26.12. Ответы прислать на почту. Оценки в ведомости

УРОК 23
Тема: Розроблення та виконання програм з двовимірним масивом
1. Найти максимальный элемент, среди лежащих на и выше главной диагонали.
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

begin

for j:=1 to m do

begin

а[i,j]:=random(50);

Write(a[i,j]:8:0);
End;
Writeln;
End;
S:=0;
max:=a[n,n];
for i:=1 to n do
for j:=i to n do
if a[i,j]'>'max then
max:=a[i,j];
s:=s+max;
Writeln('s=',s:8:0);
End.
IV. Самостоятельная работа
1. Найти максимальный элемент побочной диагонали
Домашнеe задания –решить задачи

1. Дана действительная квадратная матрица. Найти максимальный элемент среди элементов, лежащих ниже побочной диагонали.(for j:=n+2-I to n do)
2. Найти среднее арифметическое максимального и минимального элементов квадратной матрицы. .(S:=(min+max)/2)

УРОК 24
Тема: Розроблення та виконання програм з двовимірним масивом
1. Дана действительная квадратная матрица порядка 12. Заменить нулями все ее элементы, расположенные на главной диагонали и выше. If (i=j) or (i'<'j) then a[i,j]:=0 Дана действительная квадратная матрица порядка 10. В строках с отрицательным элементом на главной диагонали найти: а) сумму всех элементов; б) наибольшее из всех элементов. Программу составить с процедурами и функциями:  Ввода массива - процедура  Распечатки массива - процедура  Нахождения максимального числа в строке - функция  Нахождения суммы в строке - функция  Поиск максимального в случае, если на диагонали стоит отрицательный элемент – процедура При это каждая процедура может вызывать функцию, как самостоятельная программа. Разобрать решенную задачу и составить для нее информационную модель! Program n136; Type massiv=array[1..20,1..20] of real; Var a:massiv; i,max,k,n,m:integer;s:real; Procedure Input(n,m:integer;Var a: massiv); Var k,j: integer; Begin for k:=1 to n do for j:=1 to m do a[k,j]:=random(100)-12.5; End; Procedure Print(n,m:integer;Var a: massiv); Var k,j: integer; Begin for k:=1 to n do begin for j:=1 to m do Write(a[k,j]:8:2); Writeln End; Writeln end; Function Findmax(i,n:integer;Var a: massiv):real; Var j:integer; max:real; Begin max:=a[i,1]; for j:=2 to m do if a[i,j]'>'max then

max:=a[i,j];

Findmax:=max;

End;

Function summa(i,n:integer;Var a:massiv):real;

Var

j: integer;

s:real;

Begin

S:=0;

for j:=1 TO N DO

S:=S+a[i,j];

summa:=s;

End;

Procedure Poisk(n,m:integer;var a:massiv);

Var

i,j:integer;

s,ma,p:real;

begin

for i:=1 TO N DO

if a[i,i]'<'0 then Begin ma:=findmax(i,n,a); Writeln('max element=',ma:8:2); p:=summa(i,n,a); Writeln('summa elemento v stroke=',p:8:2); End; End; Begin Writeln('vvod n,m'); Readln(n,m); Input(n,m,a); Print(n,m,a); Poisk(n,m,a); End. Домашнеe задания –решить задачу.
Дана действительная квадратная матрица порядка п. Получить последовательность элементов главной диагонали и вычислить сумму элементов побочной диагонали.

понедельник, 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. Дана действительная квадратная матрица порядка п. Найти наибольший элемент главной диагонали.
Составить блок-схему этапа обработки

Проработать новую тему, законспектировать в тетрадь, решить задачу в классной работе и из д/з Тетради соберу и проверю!

Тема: Багатовимірні масиви. Двовимірний масив. Введення та виведення елементів двовимірного масиву.
Ход урока
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. Домашнее задание –выучить ОК по теории урока, решить задачу.
Найти сумму элементов побочной диагонали квадратной матрицы

понедельник, 9 ноября 2009 г.

Урок 17. Практическая работа № 2. "Разработка и исполнение программ обработки одномерных массивов"

Практическая работа № 2.
“Разработка и исполнение программ обработки одномерных массивов”.
Цель:.
Учебная: Достичь усвоения понятий: массив, элемент массива и его индекс, структура и вид массива;
Формировать умение и навыки создания алгоритма обработки одномерных массивов, ввода текста программы, запуска программы на компиляцию и выполнение, поиска и исправления синтаксических и логических ошибок, сохранения программы на диске, работы в отладочном режиме.
Воспитательная: Формировать навыки принятия решений, бережное отношение к технике и информации других.
Развивающая: Формировать алгоритмический стиль мышления, умения и навыки работы с интегрированной средой программирования.
Основные понятия
Массив – набор однотипных данных, упорядоченных по индексу. Однотипные данные, подлежащие одинаковой обработке, объединяют в массив.
Размер – количество значений, которые соответствуют имени массива.
Размерность – количество индексов, которые соответствуют одному значению.
Тип элемента – любой допустимый в паскале тип, кроме файлового.
Индекс – порядковый номер значения, величина порядкового типа, обычно связывается с значением счетчика цикла оператора For.
Значение – к нему обращаются a[i].
Сортировка – упорядочение элементов массива по значению.
Алгоритмы обработки: Оnбор элементов по условию. Подсчитать количество отрицательных элементов массива.
Информационная модель задачи
a – исходный массив;
n - количество элементов массива;
i - порядковый номер элемента массива;
k - количество отрицательных элементов массива.
Program negative;
Type
om=array[1..50] of real;
Var
A:om;
N,I,k:integer;
Begin
Writeln(‘Введите количество элементов массива’);
Readln(n);
{Заполнение массива значениями}
for i:=1 to n do
a[i]:=random(50)-25.0; {Распечатка исходного массива}
For i:=1 to n do
Write(a[i]:8:1);
Writeln;
{Обработка массива по условию задачи}
K:=0;
For i:=1 to n do
If a[i]'<'0 then k:=k+1; {Печать результата} Writeln(‘Количество отрицательных чисел = ’,k) End.

Задание 1: Решить задачи:

1. Найти сумму всех положительных элементов массива.

(4 балла)
2. Найдите произведение нечетных элементов одномерного массива, значения которых меньше х.

(7 баллов)
3. Найдите среднее арифметическое элементов одномерного массива, кратных 3 или 5.
(9 баллов)
4. Поменяйте местами минимальный и максимальный элементы массива местами
(10 баллов)

5. Упорядочите одномерный массив так, чтобы сначала разместились все нечетные числа, а затем все четные
(12 баллов)

Задание 2. Составить контрольно-тестовые примеры.
Задание 3: Программу запишите в тетрадь. Прокомментируйте блоки заполнения, распечатки и обработки массива. Выделите тело цикла.

Урок 18. Пошук у масиві. Алгоритми пошуку. Самостійна робота

Тема урока: Пошук у масиві. Алгоритми пошуку.
Цель Д: посредством самостоятельного решения задач на сложный поиск в массиве проверить уровень понимания использования сортировки массива для решения задач
Самостоятельная работа
1 вариант
1) Поменяйте местами первый и минимальный элементы массива.
2) Упорядочите одномерный массив, чтобы сначала разместились все четные элементы, а затем – все нечетные (порядок четных и нечетных необязателен)

2 вариант

1) Поменяйте местами последний и максимальный элементы массива.
2) Упорядочите одномерный массив, чтобы сначала разместились все элементы, значение которых больше заданного числа, а затем – все остальные.
ПОДСКАЗКА ДЛЯ ЗАДАНИЯ 2! Вспомните сортировку методом прямого выбора!

Урок 16. Пошук у масиві. Алгоритми пошуку.

Тема урока: Пошук у масиві. Алгоритми пошуку.

Цель Д: посредством решения задач на поиск в массиве, достичь полного понимания методов сортировок массива

Тип урока: урок закрепления знаний

Ход уроку

* Найти произведение трех наибольших отрицательных чисел

Назначение переменных

А – исходный массив

N – количество элементов в массиве

P – произведение трех наибольших отрицательных чисел

K – количество отрицательных чисел

L – порядковый номер наибольшего отрицательного числа

I – порядковый номер элемента в массиве, номер просмотра

J – порядковый номер просматриваемого элемента

X – промежуточная переменная

Program n1;

Type

Massiv=array [1..100] of real;

Var

A: massiv;

N: integer;

P: real;

Procedure Sort(n: integer; Var a:massiv);

Var

I, j: integer;

X: real;

Begin

For i:=2 to n do

For j:=n downto I do

If a[j]'<'a[j-1] then Begin X:=a[j]; A[j]:=a[j-1]; a[j-1]:=x; End; End; Procedure Work(n: integer; Var a : massiv; Var p:real); Var K,l,i: integer; Begin K:=0; For I:=1 to n do If a[i]'<'0 then Begin K:=k+1; L:=I; End; If k'>'3 then

Begin

P:=a[L]*a[L-1]*a[L-2];

Writeln(p:8:2);

End

Else

Writeln(‘невозможно найти’);

End.

* Найти сумму трех наименьших положительных чисел

Что изменится в программе, если нужно найти 3 наименьших положительных числа?

Как иначе можно изменить программу, чтобы алгоритм был более эффективным?

While(a[i]<=0) and (i<=n) do I:=i+1; If a[i]>0 then S:=S+a[i]+a[i-1]+a[i-2]

4. Практическая часть урока - проверить программі за компьютером, отослать на почтовій ящик преподавателю
5. Домашнее задание - Дан массив из n чисел. Определить, представляет ли массив чисел возрастающую последовательность?

пятница, 6 ноября 2009 г.

Проработайте материал урока № 15. Запишите конспект и программы в тетрадь. Программу урока, а также домашненее задание отправить в электронном виде в архиве на почтовый ящик. (Архив назвать своей фамилией)

Тема: Алгоритмы сортировки. Метод прямого выбора и вставки.
Рассмотрим сортировку методом прямого выбора. В процессе сортировки массив разбивается на две последовательности: готовую отсортированную и не отсортированную. Массив из n элементов просматривается n-1 раз. При каждом просмотре в не отсортированной последовательности выбирается элемент с наименьшим значением и этот элемент меняем местами с первым элементом не отсортированной последовательности. После каждого просмотра готовая последовательность увеличивается на один элемент (самый маленький элемент помещается в конец отсортированной последовательности), а не отсортированная – уменьшается.
Опишем информационную модель сортировки:
a – исходный массив;
n – количество элементов в массиве a;
i – порядковый номер просмотра или порядковый номер первого элемента в не отсортированной последовательности;
j – порядковый номер элемента в не отсортированной последовательности;
k – порядковый номер (индекс) наименьшего элемента в не отсортированной последовательности;
x – переменная для обмена.
Рассмотрим сортировку на примере:
15 4 7 1 5 9
1 4 7 15 5 9
1 4 7 15 5 9
1 4 5 15 7 9
1 4 5 7 15 9
1 4 5 7 9 15
Алгоритм сортировки методом прямого выбора.

Type
ar=array[1..100] of real;
Var
a:ar;
n:integer;
Procedure SortbySelect(n:integer;Var a:ar);
Var
K,i,j:integer;
x:real;
Begin
For i:=1 to n-1 do
Begin
For j:=i+1 to n do
if a[j]'<'a[k] then k:=j; x:=a[i]; a[i]:=a[k]; a[k]:=x end End; Рассмотрим сортировку методом прямой вставки. В процессе сортировки массив разбивается на две последовательности: готовую отсортированную и не отсортированную. Массив из n элементов просматривается n-1 раз. При каждом просмотре из не отсортированной последовательности выбирается первый элемент и для него подбирается место в отсортированной последовательности. Иначе этот метод называется сортировкой с барьером. Для этого метода массив описывается с нулевым элементом, который потом используется в качестве барьера. После каждого просмотра готовая последовательность увеличивается на один элемент, а не отсортированная – уменьшается.
Опишем информационную модель сортировки:
a – исходный массив;
n – количество элементов в массиве a;
i – порядковый номер просмотра или порядковый номер первого элемента в не отсортированной последовательности;
j – порядковый номер элемента в отсортированной последовательности;
x – переменная для обмена.
Рассмотрим сортировку на примере:
0 1 2 3 4 5 6 порядковые номера элементов
  15 4 7 1 5 9 исходный массив
4 4 15 7 1 5 9
7 4 7 15 1 5 9
1 1 4 7 15 5 9
5 1 4 5 7 15 9
9 1 4 5 7 9 15
Алгоритм сортировки

Домашнее задание:
1.
Выучить алгоритмы сортировки.
2. Решить задачу:
Дан массив из n целых чисел. Найти сумму трех наименьших положительных чисел массива, используя для сортировки выученные методы.