воскресенье, 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.

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

Урок 13. Цикл for (продолжение)

1. Выполните задания с циклом for:

Чему будет равно значение переменно s после выполнения программы?
var s, i: integer;
begin
s:=0;
for i:=1 to 10 do
s:=s+i;
s:=s*10;
end.
2. Рассмотрим решение ДЗ
Решение задачи for19.pas:
var i: integer;
n:real;
begin
writeln('Найти N!');
write('Введите число N: ');
readln(n);
for  i:=1 to trunc(n) do  n:=n*i;
writeln('N!=',n:20:0);
end.


Решение задачи for20.pas:
var i,n: integer;
s,p:real;
begin
writeln('Найти 1!+2!+... N!');
write('Введите число N: ');
readln(n);
p:=1; s:=0;
for  i:=1 to n do  begin p:=p*i; s:=s+p;   end;
writeln('1!+2!+... N!',s:20:0);
end.


Решение задачи for24.pas:
var n,i: integer;
x,s,ai:real;
begin
writeln('Найти X - X^2 /(2!)+ X^4 /(4!)- ... +(-1)^N*X^(2*N)/((2*N)!)');
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)
end;
writeln (s);
end.

3. Решение задач
Напишите самостоятельно программу для решения задачи for25.pas.

4. Домашнее задание
Решите задачи for21.pas, for26.pas.