понедельник, 14 мая 2012 г.

Урок 28. Подготовка к итоговому зачету

1. Задание без использования компьютера
а) Истинным или ложным является  значение выражения:
not (a<15) or not (b<30), если а=10, b=20?

б) Какими будут значения j, k после выполнения условного оператора:
if j>k then j:=k-2 else k:=k-2;
если исходные значения переменных равны j=3, k=5?

в) Сколько раз будет выполнено тело цикла for?
for i:=12 downto 7 do

г) Чему будет равно значение переменно s после выполнения программы:
var s, i: integer
begin
s:=1;
for i:=12 to 13 do
s:=s*i;
s:=2*s;
end.

2. Рассмотреть решение домашнего задания
В рамках подготовки к итоговому зачету необходимо было выполнить следующие задания:
Boolean20 (стр. 18); Boolean33 (стр. 19); If19 (стр. 21); For19 (стр. 26).

3. Программирование по теме (повторение)
Напишите программы для решения следующих задач:
  1. Дан одномерный массив длиной 10. Заполните его случайными числами в диапазоне от 15 до 20, включая крайние числа. Упорядочите массив по возрастанию.
  2. Дана матрица размера 10х15. Найдите максимальный элемент матрицы (последний из максимальных, если их несколько, матрицу просматриваем по строкам), номер строки и столбца этого элемента.
4. Домашнее задание 
В рамках подготовки к итоговому зачету выполните следующие задания: Begin40; Integer12; Array30.
21 мая - итоговый зачет. Он будет состоять из двух частей: тест на знание языка Pascal (строковая запись выражений, операции div  и mod, ветвления, сложные условия, цикл for, одномерные массивы и матрицы) и программирование задач из электронного учебника (2 задачи разного  уровня сложности по билетам). Все заготовки на рабочем компьютере необходимо удалить, записями и интернетом пользоваться нельзя.

суббота, 5 мая 2012 г.

Урок 27. Диагонали квадратной матрицы (продолжение)

1. Задание без использования компьютера 
а) Дана квадратная матрица, размера 4х4 (m=4). Определите, как будет выглядеть эта матрица после выполнения фрагмента программы. 
for i:=1 to m do
  for j:=1 to  m  do
    A[i,j] := 0 ;
for i:=1 to m do
  for j:=2*i to  m  do
    A[i,j] := 1 ;
б) Дана квадратная матрица, размера 4х4 (m=4). Чему будет равно значение переменной s после выполнения фрагмента программы?

for i:=1 to m do
  for j:=1 to  m  do
    A[i,j] := i ;
s:=0;
 for i:=1 to m do
  for j:=1 to  m  do
    s:= s+A[i,j];
writeln(s);

в)Дана квадратная матрица, размера 4х4 (m=4). Чему будет равно значение переменной s после выполнения фрагмента программы?

for i:=1 to m do
  for j:=1 to  m  do
    A[i,j] := i ;

for i:=1 to m do
 begin
 s:=0;
   for j:=1 to  m do
    s:= s+A[i,j];
 end;
writeln(s);

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

3. Программирование по теме (повторение)
Напишите программы для решения следующих задач:
  1. Задайте одномерный массив длиной 10. Заполните его четными числами от 2 до 20 и выведите в столбик.
  2. Найдите в одномерном массиве длиной 8 минимальный элемент (последний из минимальных, если он не один) и его номер. Массив заполните случайными числами в диапазоне от -5 до 10 включительно.
  3. Задайте квадратную матрицу размера 5х5 и заполните ее по следующему алгоритму: на главной диагонали 1, выше и ниже параллельно главной диагонали  2, затем 3, 4 и 5.
4. Домашнее задание
В рамках подготовки к итоговому зачету выполните следующие задания:
Boolean20Boolean33If19For19.

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

Урок 26. Диагонали квадратной матрицы

1. Устный практикум 
Определите, как будет выглядеть матрица, после заполнения ее по следующему алгоритму:
а) const n=4;m=4;
var i,j: integer;
a: array[1..m,1..n] of integer;
begin
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := 0 ;
...
b) const n=4;m=4;
var i,j: integer;
a: array[1..m,1..n] of integer;
begin
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := i ;
...
c) const n=4;m=4;
var i,j: integer;
a: array[1..m,1..n] of integer;
begin
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := i+j ;
...
Изначально, квадратная матрица 4х4 заполнена нулями. Как изменится матрица после выполнения следующих фрагментов программы:
а)for i:=1 to m do
  for j:=i to n do
    A[i,j] := 1 ;


b)for i:=1 to m do
  for j:=i to i do
    A[i,j] := 1 ;
2. Проверка ДЗ

3. Программирование по теме
Выполните следующие задания:
  • matrix80;
  • matrix81 (самостоятельно);
  • matrix82.
4. Домашнее задание
Решить задачу: в квадратной матрице посчитать сумму элементов на главной диагонали и всех диагоналях, параллельных ей, расположенных выше главной.

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

Урок 25. Преобразование матрицы

1. Домашнее задание
Решение задачи natrix32:
const n=3;m=4;
var i,j,np,no,ni: integer;
a: array[1..m,1..n] of integer;
begin
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := random(10)-5 ;
writeln('Исходный массив:');
for i:=1 to m do begin
  for j:=1 to n do
  write ( A[i,j]:5 );
  writeln;
end;
for i:=1 to m do
  begin
  no:= 0;np:= 0;
   for j:=1 to n do begin
     if A[i,j]<0 then no:= no+1;
     if A[i,j]>0 then np:= np+1; end;
  if no=np then begin ni:=i; break end;
  end;
writeln('Номер первой строки, содержащей равное количество положитедльных и отрицательных элементов: ',ni);
end.


 Решение задачи natrix43:
const n=5;m=3;
var i,j,up,u: integer;
a: array[1..m,1..n] of integer;
begin
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := random(5) ;
writeln('Исходный массив:');
for i:=1 to m do
  begin
   for j:=1 to n do
    write ( A[i,j]:5 );
  writeln;
 end;
up:=0;
for j:=1 to n do
  begin
  u:= 1;
   for i:=1 to m-1 do if A[i+1,j]>A[i,j] then u:= 0;
  up:=up+u;
  end;
writeln('Количество упрорядоченных по убыванию столбцов: ',up);
end.


2. Преобразование матрицы
Решить следующие задачи:

  • matrix47;
  • matrix48 (самостоятельно);
  • matrix59.

3. Домашнее задание
Решите следующие задачи: matrix52matrix56.

воскресенье, 8 апреля 2012 г.

Урок 24. Анализ элементов матрицы

1. Рассмотреть решение домашнего задания
Решение задачи matrix20:
const n=5;m=10;
var i,j,k,s,p: integer;
a: array[1..m,1..n] of integer;
begin
writeln('Дана матрица размера MxN и целое число K (1<K<M). Найти произведение элементов каждого столбца данной матрицы.');
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := random(2)+1 ;
writeln('Исходный массив:');
for i:=1 to m do 
begin
  for j:=1 to n do
    write ( A[i,j]:5 );
writeln;
end;
for j:=1 to n do 
begin
p:=1;
  for i:=1 to m do  p:=p*A[i,j];
writeln('Произведение элементов ', i, '-го столбца равно ', p);
end;
end.


Решение задачи matrix23:
const n=3;m=4;
var i,j,k,imax,jmax,max: integer;
a: array[1..m,1..n] of integer;
begin
writeln('Дана матрица размера MxN. Найти минимальный элемент каждой строки');
for i:=1 to m do
  for j:=1 to n do
    A[i,j] := random(10) ;
writeln('Исходный массив:');
for i:=1 to m do
begin
  for j:=1 to n do
    write ( A[i,j]:5 );
writeln;
end;
for i:=1 to m do
begin
max:=A[1,1];imax:=1;jmax:=1;
 for j:=1 to n do  if A[i,j]<max then 
     begin max:= A[i,j];imax:=i;jmax:=j end;
writeln('Минимальный элемент ',i,' строки: ','А[', imax, ';', jmax,']=',A[imax,jmax]);
end;
end.

2. Решение упражнений по теме
Выполните следующие задания:
  • matrix25,
  • matrix26 (самостоятельно),
  • matrix30,
  • matrix31  (самостоятельно).


3. Домашнее задание
Решите задачи matrix32, matrix43.

воскресенье, 1 апреля 2012 г.

Урок 23. Двумерные массивы

1. Понятие двумерного массива
Двумерный массив (матрица) - это прямоугольная таблица чисел (или данных другого типа), в которой каждый элемент имеет два индекса (номер строки и номер столбца).
2. Задание двумерного массива. Вывод на печать
Объявление двумерного массива:
const N = 3;
      M = 4;
var A: array[1..N,1..M] of integer;
    B: array[-3..0,-8..M] of integer;
Ввод с клавиатуры:
for i:=1 to N do
  for j:=1 to M do begin
    write('A[',i,',',j,']=');
    read ( A[i,j] );
  end;
Заполнение случайными числами:
for i:=1 to N do
  for j:=1 to M do
    A[i,j] := random(25) - 10;
Вывод на экран:
for i:=1 to N do begin
  for j:=1 to M do 
  write ( A[i,j]:5 );
  writeln; 
end;
3. Решение упражнений
Напишите программу для решения следующих задач (стр. 65): matrix17 matrix18 (самостоятельно), matrix19 (доработать 17).
Напишите программу по поиску первого среди максимальных элементов матрицы.

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

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

воскресенье, 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. Домашнее задание
Напишите программу для решения следующих задач: array65array66.

воскресенье, 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. Домашнее задание
Напишите программы для решения следующих задач:  array9array20.


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