воскресенье, 18 марта 2012 г.

Урок 22. Множество точек на плоскости

1 . Рассмотреть решения ДЗ
Проверить решение задачи array115.


2. Решение задач на тему "Множество точек на плоскости"
Для хранения данных о каждом наборе точек следует использовать по два массива: первый массив для хранения абсцисс, второй — для хранения ординат.


  • Вместе написать программу для решения задачи  array131 (стр. 62). Проверить ее работу на примере данной таблицы:

  • Задачу array132 решаем самостоятельно. Решение задачи может быть проверено на тех же данных.
А для такого набора искомой точки нет:
  • Задача array134 (вместе). Для проверки нарисовать координатную плоскость и расставить точки. Если использовать первую таблицу, то наиболее удаленные друг от друга будут точки: (-3; 3) и (5; 3).
  • Задача array137 (вместе). Для проверки нарисовать координатную плоскость и расставить точки. Если использовать  первую  таблицу, то наиболее удаленные друг от друга будут точки: (-3; 3), (4;0) и (5; 3). 
3 . Итоги четверти
Лучшей по итогам четверти с результатом 590 баллов стала Богданова Алина.

воскресенье, 11 марта 2012 г.

Урок 21. Сортировка массива

1. Сортировка массива
Сортировка массива - это расстановка элементов массива в заданном порядке (самое простое - по возрастанию или убыванию).
Существующие методы сортировки массива по возрастанию/убыванию:

  • метод пузырька
  • метод выбора
  • "быстрая сортировка"
  • сортировка "кучей"
  • сортировка слиянием
  • пирамидальная сортировка


2. Метод пузырька
Как пузырей воздуха поднимается со дна вверх в стакане воды, так самый маленький "легкий элемент" массива перемещается вверх (к началу массива) - всплывает.


Задача: сортировка массива по возрастанию (array112 стр. 59).


Алгоритм: начиная снизу (с конца массива), сравниваем два соседних элемента, если они стоят "неправильно", то меняем их местами.
За один проход на месте A[1] будет стоять минимальный элемент:
for  j:=n-1 downto 1 do
if A[j]>A[j+1] then begin  c:= A[j]; A[j]:=A[j+1]; A[j+1]:=c end;


Второй проход: 
for  j:=n-1 downto 2 do
if A[j]>A[j+1] then begin  c:= A[j]; A[j]:=A[j+1]; A[j+1]:=c end;
...


i-ый проход: 
for  j:=n-1 downto i do


Задача для самостоятельного решения: отсортировать массив в порядке возрастания последней цифры.

3. Метод простого выбора
Задача array113. Идея следующая: найти максимальный элемент массива и поменять его местами с последним (N-м) элементом; выполнить описанные действия N-1 раз, каждый раз уменьшая на 1 количество анализируемых элементов и выводя содержимое массива.

Первый проход:
nmin:=1;
for  j:=2 to n do
if A[j]>A[nmin] then nmin:=j;
if nmin<>1 then begin c:=A[1]; A[1]:=A[nmin];A[nmin]:=c end;


Второй проход:
nmin:=2;
for  j:=3 to n do
if A[j]>A[nmin] then nmin:=j;
if nmin<>2 then begin c:=A[2]; A[2]:=A[nmin];A[nmin]:=c end;
...


i-ый проход:
nmin:=i;
for  j:=i+1 to n do
if A[j]>A[nmin] then nmin:=j;
if nmin<>i then begin c:=A[i]; A[i]:=A[nmin];A[nmin]:=c end;


Задача для самостоятельного решения: отсортировать массив в порядке возрастания суммы цифр. Массив заполнить двузначными числами, например числами от 10 до 99.


4. Домашнее задание
На основе метода пузырька решите задачу array115.


воскресенье, 4 марта 2012 г.

Урок 20. Удаление и вставка элементов

1. Выполните задание
Задан массив A: 2 4 10 8 0
Выполните трассировку программы и определите что будет выдано на печать:
const n=5;
var i,j,s: integer;
A,B: array[1..n] of integer;
begin
writeln('Введите массив A: ');
for  i:=1 to n do  read( A[i]);
writeln;
s:=A[2];
for  i:=2 to n-1 do begin A[i]:=A[i+1]; A[i+1]:=A[i+1];end;
A[5]:=s;
writeln('Полученный массив A: ');
for  i:=1 to n do   write( A[i]:4);
end.


2. Проверка ДЗ
Рассмотреть решения задач array65 и array66.


3.  Удаление и вставка элементов массива
Рассмотреть решение следующих задач: array90 (вместе), array102 (вместе), самостоятельно array103 (только перед минимальным).

4. Домашнее задание
Выполните задачу array103 (полностью).