ДОЛГАНОВА Н.Р.

ПРОГРАММИРОВАНИЕ: ЛАБОРАТОРНЫЕ РАБОТЫ


Лабораторная работа 1.

Лабораторная работа 2.

Лабораторная работа 3.

Лабораторная работа 4.

Лабораторная работа 5.

Лабораторная работа 6.

Лабораторная работа 7.

Лабораторная работа 8.

Лабораторная работа 9.

Лабораторная работа 10.

Лабораторная работа 11.

Лабораторная работа 12.

Лабораторная работа 13.

Лабораторная работа 14.

Лабораторная работа 15.

Лабораторная работа 16.


ЗАДАЧИ

1. Алгоритмы работы с величинами

1.1. Длины сторон первого прямоугольника $A$ и $B,$ его площадь в 6 раз меньше площади второго прямоугольника. Найти длину стороны второго прямоугольника, если длина одной из его сторон равна $C.$

1.2. Длина стороны треугольника равна $A,$ периметр равен $P,$ длины двух других сторон равны между собой. Найти эти длины.

1.3. Периметр треугольника равен $P,$ длина одной стороны равна $A,$ другой -- $B.$ Найти длину третьей стороны.

1.4. Найти площадь поверхности куба со стороной $A.$

1.5. Написать алгоритм нахождения максимального среди четырех целых чисел.

1.6. Написать алгоритм проверки условия: имеются ли среди трех целых чисел два положительных значения?

1.7. Написать алгоритм проверки условия: могут ли три данных числа быть длинами сторон треугольника?

1.8. Написать алгоритм проверки условия: лежит ли данная точка с координатами $(x,y)$ в первой четверти координатной плоскости?

1.9. Проверить принадлежность числа $x$ интервалам $[a,b]$ или $[c,d].$

1.10. Проверить, является ли четырехугольник со сторонами $a, b, c, d$ ромбом.

1.11. Определить, является ли треугольник со сторонами $a, b, c$ равнобедренным.

1.12. Определить, является ли треугольник со сторонами $a, b, c$ равносторонним.


2. Алгоритм

Линейный алгоритм

2.1. Скорость первого автомобиля $v_1$ км/ч, второго -- $v_2$ км/ч, расстояние между ними $s$ км. Какое расстояние будет между ними через $t$ ч, если автомобили движутся в разные стороны?

2.2. Выполнить вычисление по формуле:

\begin{displaymath}z=\left( \frac{t^2-k^2}{m^4-l^5} \right)^2+
\sqrt{\left \vert\frac{\sqrt{x}+y}{12-\vert x\vert}+4 \right\vert}. \end{displaymath}

2.3. Вычислить периметр и площадь прямоугольного треугольника по заданным длинам двух катетов $a$ и $b.$

2.4. Заданы координаты трех вершин треугольника $(x_1, y_1)$, $(x_2, y_2)$, $(x_3, y_3).$ Найти его периметр и площадь.


Разветвляющиеся алгоритмы

2.5. Из трех данных вещественных чисел $X, Y, Z$ выбрать наибольшее.

2.6. Дано действительное число $a$. Вычислить $f(a),$ если


\begin{displaymath}f(x)= \left\{\begin{array}{l}
0, \ \ x < 0, \\
\\
x^2-x,...
...\le 1, \\
\\
x^2-\sin\pi x^2, \ \ x>1.
\end{array}\right. \end{displaymath}

2.7. Даны три действительные числа. Возвести в квадрат те из них, значения которых неотрицательны, и в четвертую степень -- отрицательные.

2.8. Даны две точки $A(x_1, y_1)$ и $B(x_2, y_2).$ Составить алгоритм, определяющий, которая из точек находится ближе к началу координат.

2.9. Даны два угла треугольника (в градусах). Определить, существует ли такой треугольник. Если да, то будет ли он прямоугольным.

2.10. Даны действительные числа $x$ и $y,$ не равные друг другу. Меньшее из этих двух чисел заменить половиной их суммы, а большее -- их удвоенным произведением.

2.11. На плоскости $XOY$ задана своими координатами точка $A.$ Указать, где она расположена: на какой оси или в каком координатном угле.

2.12. Даны целые числа $m, n.$ Если числа не равны, то заменить каждое из них одним и тем же числом, равным большему из исходных, а если равны, то заменить числа нулями.

2.13. Дано трехзначное число $N.$ Проверить, будет ли сумма его цифр четным числом.

2.14. Определить, равен ли квадрат заданного трехзначного числа кубу суммы цифр этого числа.

2.15. Определить, является ли целое число $N$ четным двузначным числом.


Оператор выбора case

2.16. Найти наибольшее из двух действительных чисел, используя оператор выбора.

2.17. Преобразовать символ, если он является строчной русской буквой, в заглавную букву. Предполагается использование альтернативной кодировки ASCII.

2.18. Написать программу, которая по номеру дня недели (натуральному числу от 1 до 7) выдает в качестве результата количество уроков в Вашем классе в этот день.

2.19. Написать программу, позволяющую по последней цифре числа определить последнюю цифру его квадрата.

2.20. Составить программу, которая по заданным году и номеру месяца $m$ определяет количество дней в этом месяце.

2.21. Пусть элементами круга являются радиус (первый элемент), диаметр (второй элемент) и длина окружности (третий элемент). Составить программу, которая по номеру элемента запрашивала бы его соответствующее значение и вычисляла бы площадь круга.


3. Циклический алгоритм

3.1. Вывести на экран модель цифровых часов.

3.2. Имеется серия измерений элементов треугольника. Группы элементов пронумерованы. В серии в произвольном порядке могут встречаться такие группы элементов треугольника:

основание и высота;

две стороны и угол между ними (угол задан в радианах);

три стороны.

Разработать программу, которая запрашивает номер группы элементов, вводит соответствующие элементы и вычисляет площадь треугольника. Вычисления прекратить, если в качестве номера группы введен 0.

3.3. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней?

3.4. Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, $\ldots,$ 24 часа.

3.5. Около стены наклонно стоит палка длиной $x$ м. Один ее конец находится на расстоянии $y$ м от стены. Определить значение угла $\alpha$ между палкой и полом для значений $x=k$ м и $y,$ изменяющегося от 2 до 3 м с шагом $h$ м.

3.6. У гусей и кроликов вместе 64 лапы. Сколько могло быть кроликов и гусей (указать все сочетания, которые возможны)?

3.7. Составить алгоритм решения задачи: сколько можно купить быков, коров и телят, платя за быка 10 р., за корову -- 5 р., а за теленка -- 0,5 р., если на 100 р. надо купить 100 голов скота?

3.8. Доказать (путем перебора возможных значений), что для любых величин $A, B, C$ типа $Boolean$ следующие пары логических выражений имеют одинаковые значения (эквивалентны):

$ \hspace*{2mm} 1)~A \ OR \ B$ и $B \ OR \ A$;
2) $A \ AND \ B$ и $B \ AND \ A$;
3)  $(A \ OR \ B) \ OR \ C$ и $A \ OR \ C$;
4)  $(A \ AND \ B) \ AND \ C$ и $A \ AND \ (B \ AND \ C)$;
5)  $A \ AND \ (A \ OR \ B)$ и $A$;
6)  $A \ OR \ (A \ AND \ B)$ и $A$;
7)  $A \ AND \ (B \ OR \ C)$ и $(A \ AND \ B) \ OR \ (A \ AND \ C)$;
8)  $A \ OR \ (B \ AND \ C)$ и $(A \ OR \ B) \ AND \ (A \ OR \ C)$.

3.9. Составьте программу, выводящую на экран таблицы истинности логических функций 1) И; 2) ИЛИ; 3) Исключающее ИЛИ.


Следующие задачи решить двумя способами: с использованием цикла с параметром и одного из двух других типов цикла

3.10. Дано натуральное число $N.$ Вычислить:

\begin{displaymath}S=1-\frac1 2 +\frac1 4 -\frac1 8 +\ldots
+(-1)^n\cdot\frac{1}{2^n}. \end{displaymath}

uses crt;
var S:real;
    N,i,z:integer;
begin
  clrscr;
  write('N=');readln(N);
{первый способ}
  z:=1;S:=0;
  for i:=0 to n do
   begin
    S:=S+z/exp(i*ln(2));
    z:=-z;
   end;
   writeln('S=',S:10:9);
{второй способ}
  i:=0;z:=1;S:=0;
   repeat
    S:=S+z/exp(i*ln(2));
    z:=-z;
    inc(i);
   until i>n;
   writeln('S=',S:10:9);
  readkey;
end.


3.11. Дано натуральное число $N.$ Вычислить:

\begin{displaymath}
S=\frac{1}{\sin1}+\frac{1}{\sin1+\sin2}+\ldots+ \end{displaymath}


\begin{displaymath}+\frac{1}{\sin1+\sin2+\ldots+\sin{N}}. \end{displaymath}

uses crt;
var S,s1:real;
    n,i,i1:integer;
begin
  clrscr;
  write('n=');readln(n);
{первый способ}
  s1:=0;S:=0;
   for i:=1 to n do
    begin
    for i1:=1 to i do
     s1:=s1+sin(i1/180*pi);
     S:=S+1/s1;
    end;
   writeln('S=',S:10:7);
  readkey;
end.


3.12. Дано натуральное число $N.$ Вычислить:

\begin{displaymath}\frac{\cos1}{\sin1}\times \frac{\cos1+\cos2}{\sin1+\sin2}\times\ldots\times \end{displaymath}


\begin{displaymath}
\times\frac{\cos1+\cos2+\ldots+\cos{N}}{\sin1+\sin2+\ldots+\sin{N}}.
\end{displaymath}

3.13. Дано натуральное число $n.$ Вычислить:

\begin{displaymath}S=1!+2!+3!+\ldots+n! \ \ (n>1) \end{displaymath}

3.14. Числа Фибоначчи ($f_n$) определяются формулами

\begin{displaymath}f_0=f_1=1, \ \ f_n=f_{n-1}+f_{n-2} \end{displaymath}

при $n=2,3,\ldots$ Определить $f_{40}.$


4. Алгоритмы итерационной структуры

4.1. Составить программу для вычисления корней уравнения

\begin{displaymath}x^4-Зx^2-8x=29 \end{displaymath}

на отрезке [1,9;2,0] с точностью $\varepsilon=10^{-4}$ методом простой итерации. Примем за начальное значение $x_0=1,92.$ Вывести на экран корень уравнения до 5-го знака и число итераций.

4.2. Вычислить определенный интеграл с заданной точностью методом прямоугольников. Функция $F(x)=x^2.$

4.3. Вычислить определенный интеграл с заданной точностью методом трапеции. Функция $F(x)=x^2.$

{$N+}-директива компилятора, осуществляет переключение между двумя различными режимами генерации объектного кода для выполнения операции с вещественными числами. Осуществляется повышенная точность вычислений и использование четырех дополнительных вещественных типов данных.
 {$N+}
 uses crt;
 const eps=1.0E-3;
 var a,b,dx,x:real;
   f1,f2,s1,s2:real;
   i,n:longint;
 Begin
  clrscr;
  write('Введите интервал и начальное число разбиений');
  readln(a,b,n);
  x:=a;
  dx:=(b-a)/n;
  s2:=0;
  for i:=1 to n-1 do
   Begin
    f1:=sqr(x);
    f2:=sqr(x+dx);
    s2:=s2+(f1+f2)/2*dx;
    x:=x+dx;
   end;
  repeat
   s1:=s2;
   s2:=0;
   n:=n+100;
   dx:=(b-a)/n;
   x:=a;
  for i:=1 to n-1 do
   Begin
    f1:=sqr(x);
    f2:=sqr(x+dx);
    s2:=s2+(f1+f2)/2*dx;
    x:=x+dx;
   end
  until (s2-s1)>eps;
  write('интеграл равен: ', s2:3:1);
  readkey;
 end.

4.4. Решить уравнение $F(x)=x^2-6$ методом половинного деления.

4.5. Дано уравнение

\begin{displaymath}0,4+\arctg{\sqrt{x}}-x=0. \end{displaymath}

Определить значение корня с точностью $\varepsilon=10^{-3},$ если $x_0=1,5.$

4.6. Дано уравнение

\begin{displaymath}0,1x+0,1\lg{x}-0,12=0. \end{displaymath}

Определить значение корня с точностью $\varepsilon=10^{-3},$ если $x_0=1,5.$


5. Массивы

Одномерные массивы

5.1. Дан массив натуральных чисел. Найти сумму элементов, кратных данному $K.$

5.2. В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.

5.3. Дана последовательность целых чисел $a_1, a_2,\ldots,a_n.$ Выяснить, какое число встречается раньше -- положительное или отрицательное.

5.4. Дана последовательность действительных чисел $a_1, a_2,\ldots,a_n.$ Выяснить, будет ли она возрастающей.

5.5. Дана последовательность натуральных чисел $a_1, a_2,\ldots,a_n.$ Создать массив из четных чисел этой последовательности. Если таких чисел нет, то вывести сообщение об этом факте.

5.6. Дана последовательность чисел $a_1, a_2,\ldots,a_n.$ Указать наименьшую длину числовой оси, содержащую все эти числа.

5.7. Дана последовательность действительных чисел $a_1, a_2,\ldots,a_n.$ Заменить все ее члены, большие данного $Z,$ этим числом. Подсчитать количество замен.

5.8. Последовательность действительных чисел оканчивается нулем. Найти количество членов этой последовательности.

5.9. Дан массив действительных чисел, размерность которого Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов.

5.10. Даны действительные числа $a_1, a_2,\ldots,a_n.$ Поменять местами наибольший и наименьший элементы.


Двумерные массивы

5.11. Получить матрицу:

\begin{displaymath}
\begin{array}{cccccc}
1 & 2 & 3 & \ldots & 9 & 10 \\
0 &...
...ots & \vdots \\
0 & 0 & 0 & \ldots & 0 & 1. \\
\end{array} \end{displaymath}

5.12. Составить программу, которая заполняет квадратную матрицу порядка $n$ натуральными числами $1, 2, 3,\ldots, n^2,$ записывая их в нее "по спирали". Например, для $n=5$ получаем следующую матрицу:

\begin{displaymath}
\begin{array}{ccccc}
1 & 2 & 3 & 4 & 5 \\
16 & 17 & 18 &...
...23 & 22 & 21 & 8 \\
13 & 12 & 11 & 10 & 9. \\
\end{array}
\end{displaymath}

Первый способ:

 uses crt;
 const n=5;
 var a:array[1..n,1..n] of integer;
     i,j,m,c,k,i1,j1:integer;
 begin
   clrscr;
   m:=n;c:=1;k:=1;
   i:=1;j:=1;
   repeat
    for j1:=(n+1)-m to m do
    begin
     j:=j1;i:=(n+1)-m;
     a[i,j]:=c;
     c:=c+1;
    end;
   c:=c-1;
   for i1:=(n+1)-m to m do
    begin
     i:=i1;j:=m;
     a[i,j]:=c;
     c:=c+1;
    end;
   c:=c-1;
   for j1:=(n+1)-m to m do
    begin
     j:=(m+k)-j1;i:=m;
     a[i,j]:=c;
     c:=c+1;
    end;    c:=c-1;
   for i1:=(n+1)-m to m-1 do
    begin
     i:=(m+k)-i1;j:=(n+1)-m;
     a[i,j]:=c;
     c:=c+1;
    end;
   m:=m-1;k:=k+1;
   until k=n;
   for i:=1 to n do
    begin
    for j:=1 to n do
     write(a[i,j],' ');
     writeln;
    end;
   readln;
 end.

Второй способ:

 uses crt;
 const n=4;
   p=trunc((n-1)/2);
 var i,j,t:1..n;
  m:array[1..n,1..n] of integer;
  s:integer;
 begin
  clrscr;
  s:=0;
  for t:=1 to p do
   begin
   i:=t;
    for j:=t to n-t+1 do
     begin
     s:=s+1;
     m[i,j]:=s;
     end;
    j:=n-t+1;
    for i:=2+t-1 to n-t+1 do
     begin
     s:=s+1;
     m[i,j]:=s;
     end;
    i:=n-t+1;
    for j:=n-t downto t do
     begin
     s:=s+1;
     m[i,j]:=s;
     end;
    j:=t;
    for i:=n-t downto t+1 do
     begin
     s:=s+1;
     m[i,j]:=s;
     end;
    end;
    s:=s+1;
    m[p+1,p+1]:=s;
    writeln('Матрица-спираль');
    for i:=1 to n do
     begin
     for j:=1 to n do
      write(m[i,j]:4);
      writeln;
     end;
   readkey;
 end.

5.13. Дана действительная квадратная матрица порядка $2n.$ Получить новую матрицу, переставляя ее блоки размера $n\times n$ по часовой стрелке, начиная с блока в левом верхнем углу.

5.14. Дана действительная квадратная матрица порядка $2n.$ Получить новую матрицу, переставляя ее блоки размера $n\times n$ крест-накрест.   uses crt;
  const n=3;
  var z:real;
    i,j:integer;
    a:array[1..2*n,1..2*n] of real;
  Begin
  clrscr;
  for i:=1 to 2*n do
   begin
   for j:=1 to 2*n do
    begin
    a[j,i]:=random*10;
    write(a[j,i]:3:0);
   end;
   writeln;
   end;
   for i:=1 to n do
   for j:=1 to n do
    begin
     z:=a[j,i];
     a[j,i]:=a[j+n,i+n];
     a[j+n,i+n]:=z;
     z:=a[j+n,i];
     a[j+n,i]:=a[j,i+n];
     a[j,i+n]:=z;
    end;
   writeln;
   writeln;
   for i:=1 to 2*n do
    begin
    for j:=1 to 2*n do
     begin
     write(a[j,i]:3:0);
     end;
   writeln;
   end;
   readkey;
  end.

5.15. Дан линейный массив $x_1, x_2,\ldots, x_{n-1}, x_n.$ Получить действительную квадратную матрицу порядка $n:$

\begin{displaymath}
\begin{array}{ccccc}
x_1 & x_2 & \ldots & x_{n-1} & x_n \\...
...
x^n_1 & x^n_2 & \ldots & x^n_{n-1} & x^n_n. \\
\end{array}
\end{displaymath}

5.16. Дан линейный массив $x_1, x_2,\ldots, x_{n-1}, x_n.$ Получить действительную квадратную матрицу порядка $n:$

\begin{displaymath}
\begin{array}{ccccc}
1 & 1 & \ldots & 1 & 1 \\
x_1 & x_2...
...n-1}_2 & \ldots & x^{n-1}_{n-1} & x^{n-1}_n. \\
\end{array}
\end{displaymath}


6. Процедуры и функции

6.1. Треугольник задан координатами своих вершин. Составить программу вычисления его площади.

6.2. Составить программу нахождения наибольшего общего делителя и наименьшего общего кратного двух натуральных чисел.

6.3. Составить программу нахождения наибольшего общего делителя четырех натуральных чисел.

6.4. Составить программу нахождения наименьшего общего кратного трех натуральных чисел.

6.5. Написать программу нахождения суммы большего и меньшего из 3 чисел.

6.6. Вычислить площадь правильного шестиугольника со стороной $a,$ используя подпрограмму вычисления площади треугольника.

6.7. На плоскости заданы своими координатами $n$ точек. Составить программу, определяющую между какими из пар точек самое большое расстояние. Координаты точек занести в массив.

6.8. Проверить, являются ли данные три числа взаимно простыми.

6.9. Написать программу вычисления суммы факториалов всех нечетных чисел от 1 до 9.


7. Символьные и строковые переменные

7.1. Пользователь вводит строку и отдельно два символа. Написать программу, заменяющую в строке первый символ вторым. Например, введено мама получено муму.

7.2. Составьте программу игры "Быки -- Коровы". Компьютер "загадывает" четырехзначное число, цифры которого не повторяются. Игрок пытается угадать его, вводя четырехзначные числа с неповторяющимися цифрами. Компьютер сравнивает и выдает результат, обозначая цифру, введенную игроком и присутствующую в загаданном числе, "Коровой", а если она находится в нужном месте, то -- "Быком". Игра продолжается до четырех "Быков".

7.3. Дана строка, заканчивающаяся точкой. Подсчитать, сколько в ней слов.

7.4. Дана строка, содержащая английский текст. Найти количество слов, начинающихся с буквы $b.$

7.5. Дана строка. Подсчитать в ней количество вхождений букв $r, k,
t.$

7.6. Дана строка. Определить, сколько в ней символов $*, ;, :.$

7.7. Вывести на экран 256 символов в виде таблицы $16\times 16.$ На месте служебных символов с кодами 7(звонок), 8(забой), 9(табуляция), 10(следующая строка), 13(начало строки), 26(конец текста), и 27($ESC$) поставить крестики.

7.8. Дана символьная строка. Русские буквы а, е, о, э в ней нужно удвоить, а между словами оставить только по одному пробелу.

7.9. Дана символьная строка. Если какой-то символ встречается в ней более одного раза, первое вхождение этого символа оставить без изменения, второе -- заменить цифрой "2", третье -- "3" и т.д.

7.10. Дана символьная строка, содержащая русские слова, записанные строчными буквами, разделенные пробелами. Заменить первые буквы слов на прописные, а между ними оставить по одному пробелу.

7.11. Дана последовательность символов (строка). Если какой-то символ в ней встречается более одного раза, оставить только первое вхождение.


8. Записи

8.1. Составить программу для вычисления полярных координат $r=\sqrt{x^2+y^2}$ и $\varphi=\arctg(y/x)$ по прямоугольным координатам $x$ и $y$ $(x>0).$

8.2. Составить программу для вычисления полярных координат $r=\sqrt{x^2+y^2}$ и $\varphi=\arctg(y/x)$ по прямоугольным координатам $x$ и $y$ $(x>0),$ используя процедуру без параметров.

8.3. Определить, являются ли два данные класса одной школы параллельными.

8.4. Описать комбинированный тип для представления следующего понятия:

а) время в часах, минутах и секундах;
б) экзаменационная ведомость (предмет, номер группы, дата экзамена, 25 строчек с полями: фамилиия студента, номер его зачетной книжки, оценка за экзамен).

8.5. Используя комбинированный тип $kniga$, написать программу, позволяющую для заданноого количества книг ответить на вопросы:

а) есть ли среди них различные книги одного автора;
б) сколько книг издано с 1990 по 1996 год.

8.6. Сформировать базу данных, состоящую из 10 записей по 4 поля в каждой: фамилия, имя, год рождения и телефон. Вывести на экран записи, в которых содержатся сведения об Иванове.

8.7. Разработать базу данных "Абитуриенты" (фамилия, имя, адрес, оценки по 3 экзаменам, средний балл). Вывести на экран данные по абитуриентам, сдавшим вступительные экзамены со средним баллом не ниже 4,5.

8.8. Разработать базу данных "Отдела кадров университета" (фамилия, имя, отчество, адрес, стаж педагогической деятельности). Вывести на экран данные по преподавателям, имеющим стаж больше 10 лет.

8.9. Разработать базу данных "Научно-техническая библиотека" (фамилия, имя, отчество, автор книги, название книги, город и издательство, год выпуска, тематика). Вывести на экран данные о книгах по программированию.

8.10. Разработать базу данных "Легковые автомобили". Название (марка), завод-изготовитель, год выпуска, стоимость. Вывести на экран данные обо всех автомобилях стоимостью менее 80 тысяч рублей.

8.11. Разработать базу данных "Администратор железнодорожных касс" (номер поезда, пункты и время отправления и прибытия). Вывести на экран данные о поездах, следующих до Екатеринбурга.

8.12. Разработать базу данных "Магазин по продаже персональных компьютеров" (процессор, ОЗУ, ПЗУ, винчестер и т. п., стоимость). Вывести на экран данные о компьютерах, стоимость которых менее 6 тысяч рублей.


9. Множества

9.1. Даны два множества $X_1$ и $X_2,$ содержащие элементы типа $Byte.$ Сформировать новое множество $Y$, равное разности множеств $X_1$ и $X_2$, и выделить из него подмножество $Y$, содержащее элементы, делящиеся без остатка на 5 и на 3. На экран вывести множества и их мощность.

Задания. Используя структурированный тип множеств, выполнить следующие действия с исходными данными. Если мощность множества (количество элементов без учета повторений) не задана, принять ее равной 10. Значения элементов исходных множеств ввести с клавиатуры. На экран вывести исходные и полученные множества.

9.2. Даны три множества $X_1$, $X_2$, $X_3,$ содержащие целые числа из диапазона $[1..100].$ Сформировать новое множество

\begin{displaymath}Y=(X_1\cup X_2)\cap (X_2\cup X_3), \end{displaymath}

из которого выделить подмножество нечетных чисел.

9.3. Даны три множества $X_1,$ $X_2,$ $X_3,$ содержащие целые числа из диапазона $[1..100].$ Сформировать новое множество

\begin{displaymath}Y=(X_1\cup X_2)/(X_2\cup X_3), \end{displaymath}

из которого выделить подмножество чисел, кратных 3.

9.4. Дано множество, состоящее из различных символов. Вывести на экран упорядоченные по убыванию символы русского алфавита.

9.5. Дано множество $X_1,$ содержащее целые числа из диапазона $[1..255].$ Сформировать новое множество $Y$ путем выделения из множества $X_1$ нечетных чисел и чисел, делящихся без остатка на 17.

9.6. Даны множества $X_1$ и $X_2,$ содержащие целые числа из диапазона $[1..255].$ Сформировать новое множество

\begin{displaymath}Y=(X_1\cap X_2) \end{displaymath}

и выделить из него все четные числа и числа, делящиеся без остатка на 19.

9.7. Дано множество $X_1,$ содержащее целые числа из диапазона $[50..100].$ Сформировать новое множество $Y_1$ путем выделения из множества $X_1$ нечетных чисел и множество $Y_2$ путем выделения из множества $X_1$ чисел, кратных 5. На экран вывести множество

\begin{displaymath}Y_3=(Y_1\cap Y_2). \end{displaymath}

9.8. Дано множество $X_1,$ содержащее символы из диапазона $['a'..'z'].$ Сформировать новое множество $Y_1$ путем выделения из множества $X_1$ всех символов, расположенных в алфавите позже $f$ и раньше $m,$ и множество $Y_2$ путем выделения из множества $X_1$ символов, расположенных раньше $g$ или позже $j.$ На экран вывести множество $Y_3=(Y_1/Y_2).$

9.9. Ввести с клавиатуры множество -- последовательность символов из диапазона от 'А' до 'Я'. Определить число различных (без повторений) букв, входящих в данную последовательность.


10. Графика

Точка, линия и линейные фигуры

10.1. Вывести случайным образом в верхнюю левую область экрана точки. Цвет каждой точки выбирается также случайно. Имитация звездного неба.

10.2. С помощью процедуры вывода точки построить на экране график косинуса.

10.3. В область экрана размером $Width\times Height$ пикселей случайным образом выводятся линии. Цвет каждой линии выбирается также случайно.

10.4. Вывести на экран оси координат: ось $X$ -- по середине, а ось $Y$ -- в крайнюю левую позицию.

10.5. С помощью процедуры рисования линии $Line$ построить на экране график косинуса.

10.6. С помощью процедуры рисования линии $LineTo$ построить на экране график косинуса.

Прямоугольник, окружность, эллипс

10.7. На экран вывести прямоугольник, левый верхний и правый нижний углы которого определяются с помощью функции $Random.$

10.8. Нарисовать на экране концентрические окружности.

10.9. Нарисовать на экране эллипс.

Стиль линии

10.10. Напишите процедуру, выводящую на экран тетрадный лист в клетку. Предусмотрите возможность изменения размеров клеток.

10.11. Напишите процедуру, выводящую на экран график тангенса.

10.12. Напишите процедуру, выводящую на экран астроиду, задаваемую уравнениями $x=\cos^3(t),$ $y=\sin^3(t).$

10.13. Напишите процедуру, выводящую на экран график в полярных координатах $\rho=1-\cos{\varphi}.$

10.14. Напишите процедуру, выводящую на экран изображение конуса, невидимые линии обозначить пунктиром.

Закрашенные фигуры

10.15. Напишите процедуру, выводящую изображение снеговика.

10.16. Напишите процедуру, выводящую равносторонний $n$-угольник и соответствующую ему звезду. Число вершин $n$ задается с клавиатуры.

Вывод текста

10.17. Напишите процедуру, выводящую на экран треугольник, трапецию, окружность, эллипс с соответствующими надписями.

10.18. Напишите процедуру, моделирующую полет тела, брошенного под углом к горизонту.

10.19. Напишите процедуру, выводящую на экран систему координат. В процедуру должен передаваться параметр по типу запись. Предусмотрите в записи поля, содержащие информацию о положении на экране начала координат; наименовнии осей; о границах числовых значений, выводимых для каждой оси; о шаге, с которым выводятся эти значения и т.д.

Спрайты

10.20. Напишите процедуру, моделирующую движение некоторого изображения по синусоиде.

10.21. Напишите процедуру, моделирующую полет $N$ шариков и их абсолютно упругое отражение от границ экрана.