воскресенье, 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 (полностью). 

воскресенье, 26 февраля 2012 г.

Урок 19. Преобразование массива

1.Проверка домашнего задания
Рассмотрим решение задачи array54:
const n=10;
var i,j: integer;
A,B: array[1..n] of integer;
begin
writeln('Дан целочисленный массив A размера N.Переписать в новый массив B все четные числа из исходного массива(в том же порядке)и вывести размер полученног омассива B и его содержимое.');
writeln('Исходный массив A: ');
for  i:=1 to n do  begin A[i]:=random(10)+1;; write( A[i]:4); end;
writeln;
j:=0;
for  i:=1 to n do
if A[i] mod 2=0 then begin j:=j+1;B[j]:=A[i] end;
writeln('Размер массива В: ',j);
writeln('Полученный массив В: ');
for  i:=1 to j do   write( B[i]:4);
end.


Рассмотрим решение задачи array58:
const n=5;
var i,j,s: integer;
A,B: array[1..n] of integer;
begin
writeln('Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу:элемент B с номером K равен сумме элементов  массива A с номерами от 1 до K');
writeln('Исходный массив A: ');
for  i:=1 to n do  begin A[i]:=random(3)+1;; write( A[i]:4); end;
writeln;
s:=0;
for  i:=1 to n do
begin s:=s+A[i];B[i]:=s end;
writeln('Полученный массив В: ');
for  i:=1 to n do   write( B[i]:4);
end.

2. Изменение элементов массива
Обращаю ваше внимание, что использование вспомогательных массивов в этом разделе не предусмотрено.
Рассмотрим решение задачи array68.
Выполнить самостоятельно array74. 
Рассмотрим решение задачи array79.
Выполнить самостоятельно array83.  

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

воскресенье, 19 февраля 2012 г.

Урок 18. Работа с несколькими массивами

1. Решение задач
Решаем вместе: array51, самостоятельно: array53.
Решаем вместе: array62,  array63.

Решение array63:
const n=3;
var i,j,k: integer;
A,B: array[1..n] of integer;
C: array[1..2*n] of integer;
begin
writeln('Даны дв амассива A и B размера 5,элементы которых упорядочены по возрастанию.Объединить эти массивы так,чтобы результирующий массив C (размера10)остался упорядоченным по возрастанию');
writeln('Исходный массив A: ');
for  i:=1 to n do  begin write('A[',i,']='); readln( A[i]); end;
writeln('Исходный массив B: ');
for  i:=1 to n do  begin write('B[',i,']='); readln( B[i]); end;
j:=1; k:=1;
for  i:=1 to 2*n do
begin
if (j>n)and (k<=n) then   begin C[i]:=B[k];k:=k+1 end;
if (k>n) and  (j<=n)then  begin C[i]:=A[j];j:=j+1 end;
if (j<=n) and (k<=n) then begin
                  if A[j]<=B[k] then begin C[i]:=A[j];j:=j+1 end
                     else begin C[i]:=B[k];k:=k+1 end;
                          end;
end;
writeln;
write('Полученный массив C:');
for  i:=1 to  2*n do   write( C[i]:6);
writeln;
end.


2. Домашнее задание
Решите самостоятельно задачи: array54, array58.

воскресенье, 12 февраля 2012 г.

Урок 17. Зачет "Одномерный массив. Действия с элементами массива"

1. Домашнее задание
Рассмотрим решение задачи array47:

const n=10;
var i,k,j,s: integer;
mas: array[1..n] of integer;
begin
writeln('Дан целочисленный массив размера N. Найти количество различных элементов в данном массиве.');
write(' Исходный массив:');
for  i:=1 to n do
begin mas[i]:=random(100)+1; write( mas[i]:6); end;
writeln;
for  i:=1 to n-1 do
     for  j:=i+1 to n do
          if mas[i]=mas[j] then  mas[j]:=0;
write(' Преобразованный массив:');
for  i:=1 to n do write( mas[i]:6);
writeln;
s:=0;
for  i:=1 to n do if mas[i]<>0 then  s:=s+1;
writeln ('Различных элементов ',s);
end.

2. Зачет
Форматирование массива и вывод его элементов (20 баллов за задачу): 1, 4, 7, 10-17.
Анализ элементов массива (25 б. за задачу): 19, 21-25, 29-46, 48-50.

воскресенье, 5 февраля 2012 г.

Урок 16. Действия с элементами массива (продолжение)

1. Рассмотреть решение ДЗ
Решение задачи array9:

const n=10;
var i,k: integer;
mas: array[1..n] of integer;
begin
writeln('Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве четные числа в порядке убывания их индексов, а также их количество K.');
write('Исходный массив:');
for  i:=1 to n do
begin mas[i]:=random(100); write( mas[i]:6); end;
writeln;
write('Четные элементы массива:');
k:=0;
for  i:=n downto 1 do
if mas[i] mod 2=0 then begin write (mas[i]:6); k:=k+1;  end; 
writeln;
writeln ('Количество четных элементов: ', k);
end.


Решение задачи array20:

const n=10;
var i,k,l,s: integer;
mas: array[1..n] of integer;
begin
writeln('Дан массив размера N и целые числа K и L (1<K<L<N). Найти сумму элементов массива с номерами от K до L включительно.');
write('Введите K и L:');
readln (k,l);
write(' Исходный массив:');
for  i:=1 to n do
begin mas[i]:=random(100)+1; write( mas[i]:6); end;
writeln;
s:=0;
for  i:=k to l do s:=s+mas[i];
writeln;
writeln ('Искомая сумма равна: ', s) ;
end.

2. Рассмотреть решения задач: 
Решаем вместе: array26:

const n=5;
var i,k,l,s: integer;
mas: array[1..n] of integer;
begin
writeln('Дан целочисленный массив размера N.Проверить,чередуются ли в нем четные и нечетные числа.Если чередуются,то вывести 0,если нет то вывести порядковый номер первого элемента,нарушающего закономерность.');
write(' Исходный массив:');
for  i:=1 to n do
begin mas[i]:=random(100)+1; write( mas[i]:6); end;
writeln;
k:=0;
for  i:=2 to n do
if ((mas[i]+mas[i-1]) mod 2=0)then begin k:=i; break; end;
writeln (k);
end.


Самостоятельно: array27.

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

воскресенье, 29 января 2012 г.

Урок 15. Действия с элементами массива

1. Выполните задания
1) Есть ли ошибки в описании и обращении к элементам массива?
2) Чему будет равно A[5] после выполнения программы?
const n=10;
var i,p: integer;
a: array[1..n] of integer;
begin
a[1]:=2;  a[2]:=3;
for  i:=3 to n do  a[i]:=a[i-1]*a[i-2];
writeln ('Сформирован массив:');
for  i:=1 to n do  write(a[i]:8);
end.

2. Рассмотреть решение ДЗ
Решение задачи array3:
const n=10;
var i,a,d: integer;
mas: array[1..n] of integer;
begin
writeln(' Дано целое число N (>1),а так же первый член A и разность D арифметической прогрессии. Сформировать и вывести массив размера N,содержащий N первых членов данной прогрессии: A, A + D, A +2*D, A +3*D...');
writeln('Введите числа А и D: ');
readln(a,d);
mas[1]:=a;
for  i:=2 to n do  begin mas[i]:= mas[i-1]+d; end;
writeln ('Сформирован массив:');
for  i:=1 to n do  write(mas[i]:8);
end.



Решение задачи array6:
const n=10;
var i,a,b,s: integer;
mas: array[1..n] of integer;
begin
writeln(' Даны целые числа N (>2), A и B. Сформировать и вывести целочисленный массив размера N,первый элемент которого равен A, второй равен B,а каждыйпо следующий элемент равен сумме всех предыдущих.');
writeln('Введите числа А и B: ');
readln(a,b);
mas[1]:=a;  mas[2]:=b;  s:=mas[1];
for  i:=3 to n do  begin s:= s+mas[i-1];mas[i]:=s;  end;
writeln ('Сформирован массив:');
for  i:=1 to n do  write(mas[i]:8);
end.

3. Заполнение массива случайными числами. 
Генератор случайных чисел:
Пример заполнения массива целыми числами из диапазона [50, 150):
4. Решение задач
Напишите программы для решения следующих задач:  array8, array18.

5. Домашнее задание
Напишите программы для решения следующих задач:  array9, array20.


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

Урок 14. Одномерные массивы

1. Рассмотреть решение ДЗ
Задачи for21.pas:
var i, n: integer;
s,p:real;
begin
writeln('Найти 1/1!+1/2!+... 1/N!');
write('Введите число N: ');
readln(n);
p:=1;
s:=0;
for  i:=1 to n do  begin p:=p*i; s:=s+1/p;   end;
writeln('1/1!+1/2!+... 1/N!=',s:10:4);
end.


Задача for26.pas:
var n,i: integer;
x,s,ai:real;
begin
writeln('Найти X-X^3/3+ X^5/5-...+(-1)^N*X^(2*N+1)/(2*N+1)');
write('Введите число N: ');
readln(n);
write('Введите значение x: ');
readln(x);
ai:=1;
for  i:=1 to n do
begin s:=s+ai;
      ai:=-ai*x*x/(2*i-1)/(2*i+1)
end;
writeln (s:10:4, Arctan(x):10:4);
end.

2. Понятие одномерного массива
Массив – это группа однотипных элементов, имеющих общее имя и расположенных в памяти рядом.
Особенности:
  • все элементы имеют один тип;
  • весь массив имеет одно имя;
  • все элементы расположены в памяти рядом.
3. Объявление массива

Зачем объявлять?
  • определить имя массива;
  • определить тип массива;
  • определить число элементов;
  • выделить место в памяти.

4. Заполнение  массива с клавиатуры и вывод на экран
5. Решение задач из решебника
Стр. 49. Решить задачи: array2,  array5.


6. Домашнее задание
Стр. 49. Решить задачи: array3,  array6.