
- •3. Даны три числа а, в, с. Найти наибольший общий делитель этих чисел. Определение наибольшего общего делителя двух чисел оформить в виде функции пользователя.
- •4. Даны координаты вершин некоторого пятиугольника. Разбив его на треугольники вычислить его площадь. Вычисление площади треугольника по формуле Герона оформить в виде процедуры пользователя.
- •9. Дан двумерный массив, содержащий не более 10 строк и 10 столбцов.
- •Похожая Дан двумерный массив, содержащий не более 10 строк и не более 10 столбцов. Вывести на экран номера только тех строк, в которых есть четные числа.
- •12. Дан двумерный массив, содержащий не более 10 строк и 10 столбцов. Найти сумму элементов, лежащих над побочной диагональю.
- •13. Даны координаты трех точек на плоскости. Выяснить лежат ли эти точки на одной прямой. Вычисление расстояния между двумя точками оформить в виде процедуры пользователя.
- •14. Даны три числа, могут ли эти числа быть сторонами треугольника.
- •15. Дан неупорядоченный одномерный массив а, содержащий вещественные числа. Циклически сдвинуть все элементы массива на к позиций вправо.
- •16. Дан одном массив поменять местами наиб и наим элем
- •17. Дан текст, в котором слова отделяются пробелами, в конце стоит точка. Определить количество слов и вывести на экран каждое слово, стоящее на четном месте в предложении.
- •18. Дан неупор массив. Найти простые числа.
- •19. Дан двум массив. Найти средн арифм мин и макс элем каждого столбца.
- •20. Дан текст, в котором слова отделяются пробелами, в конце стоит точка. Определить количество слов в тексте и вывести те слова, длина которых меньше заданного числа.
В редакторе VBA создайте процедуру, позволяющую организовать самопроверку усвоения материала учащимся по теме «Округление десятичных дробей». Диапазон, из которого случайным образом генерируется число для округления – (0;70).
Dim a, b As Double
Dim c
c = InputBox("Введи свою фамилию и имя")
MsgBox ("Здравствуй, " & c & "! Ты умеешь округлять дроби? Проверим! ")
Dim r
r = Rnd() * (70)
Dim t
t = InputBox ("Введи результат округления числа " & r & " до сотых")
Dim p
p = Format (t, "#.00")
Dim u
u = IIf (t = p, " результат округления правильный ", " результат округления не правильный!")
MsgBox (t & u)
MsgBox ("Верный результат округления числа " & r & " с точностью до сотых равен " & p)
Решение: 1. Находим плотность распределения:
находим производные f’ (x) на каждом участке f’ (0) =0; f’ (х2) =2х;
f’ (1) =0, т.е. при х <=0 плотность распред. =0, при 0<=х<=1 плотность распред. = 2х и при х>1 плотность распред. =0.
2.Находим вероятность попадания на участок от 0,26 до 0,5:
P = f(0,5) – f(0,25) = 0,52 – 0,252 = 0,18.
3. На языке программирования С#, используя необходимые классы проекта «Планиметрия», решите следующую задачу. Дан массив точек на плоскости. Укажите в нём три такие точки, чтобы треугольник с вершинами в этих точках имел наименьшую площадь и находился в нижней полуплоскости. Если такого треугольника нет, то выдайте соответствующее сообщение.
//тут для наибольшей
double max, pl = 0; int a, b, c = 0;
Triangle tr1 = new Triangle(mas[0],
mas[1], mas[2]); max = tr1.area();
for (i = 0; i < n - 2; i++)
{ for (int j = i + 1; j < n - 1; j++)
{ for (int k = j + 1; k < n; k++)
{ Triangle tr = new Triangle(mas[i], mas[j], mas[k]);
pl = tr.area();
if (tr.Is_Triangle)
{ if (pl > max)
{ if ((mas[i].koord_y < 0) && (mas[j].koord_y < 0)
&& (mas[k].koord_y < 0))
{ max = pl;
a = i; b = j; c = k;
Console.WriteLine("Наибольшая площадь равна
" + max + " при точках:");
mas[i].show_point(); mas[j].show_point();mas[k].show_point();
} } }
else { Console.WriteLine("такого треугольника нет!!!"); }}}}
Тестирование треугольника
Triangle tr1=new Triangle(); if (tr1.Is_Triangle == true)
Console.WriteLine("треугольник существует его периметр = {0:0.####},площадь ={1:0.###}",
tr1.perimetr(),tr1.area());
else Console.WriteLine ("треугольник не существует его периметр = {0:0.####},площадь ={1:0.###}",
tr1.perimetr(), tr1.area());
Triangle tr2 = new Triangle(mas[0], mas[n - 1], mas[n - 2]);
if (tr2.Is_Triangle == true)
Console.WriteLine("треугольник существует его
периметр = {0:0.####},площадь ={1:0.###}",
tr2.perimetr(),tr2.area());
else Console.WriteLine("треугольник не существует его периметр = {0:0.####},площадь ={1:0.###}",tr2.perimetr(), tr2.area());
Используя возможности системы компьютерной математики MathCad, найдите в общем (символьном) виде точки пересечения прямой y k x и параболы y x2 bx c. Выполните графическую иллюстрацию для случая k = 1, b =
, c = – 4 и укажите точки пересечения графиков функций.
5.
Вычислите
значение определенного интеграла
методом трапеций (число разбиений
n = 50).
Сравните с точным значением интеграла.
Формула Трапеции (h- шаг, как его выбирать – не знаю),y =f(x)
7.
Вычислите значение определенного
интеграла
методом Симпсона (число разбиений
n = 50).
Сравните с точным значением интеграла.
Формула Симпсона. 2m=b, 0=a. Чётные и не чётные
На языке программирования С#, используя необходимые классы проекта «Планиметрия», решите следующую задачу. Дан массив точек на плоскости. Укажите в нём такие точки X, Y, Z, чтобы точка X находилась в 1-ом координатном углу, точка Y находилась во 2-ом координатном углу, точка Z находилась в 3-ем координатном углу, и треугольник XYZ имел площадь, не меньшую 7 кв. ед. Если таких точек в массиве нет, то выдайте соответствующее сообщение.
int S, kol; kol = 0; S = 7; for (uint i = 0; i < n - 2; i++)
for (uint j = i + 1; j < n - 1; j++) for (uint z = j + 1; z < n; z++)
{ Triangle tr3 = new Triangle(mas[i], mas[j], mas[z]);
if (mas[i].koord_x > 0 && mas[i].koord_y > 0 && mas[j].koord_x < 0
& mas[j].koord_y > 0 && mas[z].koord_x < 0 && mas[z].koord_y < 0)
{ double a = new Otrezok(mas[i], mas[j]).perimetr();
double b = new Otrezok(mas[i], mas[z]).perimetr();
double c = new Otrezok(mas[j], mas[z]).perimetr();
double p = (a + b + c) / 2;
if (S > Math.Sqrt(p * (p - a) * (p - b) * (p - c)))
{ kol++;
Console.WriteLine(" треугольник существут s<7");
Console.WriteLine("координаты его вершин ");
mas[i].show_point(); mas[j].show_point(); mas[z].show_point();
Console.WriteLine("S=" + Math.Sqrt(p * (p - a) * (p - b) * (p - c)));
}}} if (kol < 1)
Console.WriteLine(" треугольник не существут s<7");
На языке программирования С#, используя необходимые классы проекта «Планиметрия», решите следующую задачу. Дан массив точек на плоскости. Укажите в нём три такие точки, чтобы треугольник с вершинами в этих точках был равнобедренным и располагался в верхней полуплоскости. Если таких точек в массиве нет, то выдайте соответствующее сообщение.
//тут для 3-го координ. угла
uint kol; kol = 0;
for (uint i=0; i<n-2; i++) for (uint j=i+1; j<n-1; j++)
for (uint z = j + 1; z < n; z++)
{ Triangle tr3 = new Triangle(mas[i], mas[j], mas[z]);
if (tr3.Is_Triangle && tr3.Style1() == "Равнобедренный")
{ if (((mas[i].koord_x < 0) && mas[i].koord_y < 0)
* && ((mas[j].koord_x < 0) && (mas[j].koord_y < 0))
* && ((mas[z].koord_x < 0) && (mas[z].koord_y < 0)))
{ Console.WriteLine("Равнобедренный треугольник существут ");
Console.WriteLine("координаты его вершин ");
mas[i].show_point(); mas[j].show_point(); mas[z].show_point();
* }
else Console.WriteLine("такого треугольника нет");
} else Console.WriteLine("Равнобедренного треугольника нет");
1. Дан натуральный отрезок чисел [A,B]. Найти те числа этого отрезка, суммы делителей которых меньше заданного числа Х. Проверку, является ли сумма делителей данного числа меньше заданного числа Х, сделать с помощью процедуры пользователя.
PROGRAM ASC;
Var i, k, a, b, d, x: integer; flag: boolean;
procedure AQ (d,x:integer; var f: boolean);
begin if (d<x) then f:= true
else f:=false; end; begin writeln ('ввести концы отрезка');
readln(a,b); writeln ('ввести число для сравнения');
readln(x); for i:=a to b do
begin k:=0;
for d:=1 to i do if i mod d = 0
then k:=k+d; AQ (k,x, flag );
if flag=true then writeln ('сумма делителей числа ', i ,' меньше заданного числа', x); end; readln; end.
2. Дан натуральный отрезок чисел [A,B]. Найти те числа этого отрезка, суммы цифр которых больше заданного числа Х. Проверку, является ли сумма цифр данного числа больше заданного числа Х, сделать с помощью логической функции пользователя.
program aas; uses crt;
var a,b,i,y, c, x, s: integer;
function sum(s,x:integer):boolean;
begin
if s > x then sum:=true else sum:=false; end;
begin writeln (' ввести концы отрезка'); readln (a, b);
writeln (' ввести число'); readln (x);
for i:=a to b do
begin y:=i; s:=0;
while y<>0 do begin c:=y mod 10;
s:=s+c; y:=y div 10; end;
if sum(s,x) then writeln ('сумма цифр числа ' , i,' > ',x) end; end.
3. Даны три числа а, в, с. Найти наибольший общий делитель этих чисел. Определение наибольшего общего делителя двух чисел оформить в виде функции пользователя.
program nod; uses crt; var a,b,c,n: integer;
function nod(x,y:integer):integer;
begin
while x <> y do if x>y then x:=x-y else y:=y-x;
nod:=x; end; begin
writeln (' ввести числа a,b,c'); readln (a, b, c);
n:=nod(nod(a,b),c);
writeln ('NOD(a,b,c) = ',n); readln; end.
4. Даны координаты вершин некоторого пятиугольника. Разбив его на треугольники вычислить его площадь. Вычисление площади треугольника по формуле Герона оформить в виде процедуры пользователя.
PROGRAM ASC;
Var xa,ya,xb,yb,xc,yc,xd,yd,xe,ye,s1,s2,s3,pls:real;
procedure Plos (x1,y1,x2,y2,x3,y3:real; var s: real); var d1,d2,d3,p:real; begin
d1:= sqrt(sqr(x1-x2)+sqr(y1-y2)); d2:= sqrt(sqr(x2-x3)+sqr(y2-y3));
d3:= sqrt(sqr(x3-x1)+sqr(y3-y1)); p:= d1+d2+d3;
s:=sqrt(p*(p-d1)*(p-d2)*(p-d3)); end;
begin writeln ('введите к-ты точки А'); readln(xa,ya);
writeln ('введите к-ты точки B'); readln(xb,yb);
writeln ('введите к-ты точки C'); readln(xc,yc);
writeln ('введите к-ты точки D'); readln(xd,yd);
writeln ('введите к-ты точки E'); readln(xe,ye);
plos(xa,ya,xb,yb,xc,yc,s1); plos(xa,ya,xc,yc,xd,yd,s2);
plos(xa,ya,xd,yd,xe,ye,s3); pls:=s1+s2+s3;
writeln(площадь пятиугольника = ', pls); readln; end.
5. Даны две простые дроби числитель первой А, знаменатель В, числитель второй дроби С, знаменатель D. Найти их сумму, и если можно сократить полученный результат. Определение наибольшего общего делителя двух чисел оформить в виде функции пользователя.
program drob; uses crt; type zap=record
ch,zn:integer; end; var s,sum,x,y: zap; k:integer;
function nod(x,y:integer):integer;
begin while x <> y do if x>y then x:=x-y else y:=y-x; nod:= x; end; begin
writeln (' ввести числитель и знаменатель первой дроби'); readln (x.ch,x.zn);
writeln (' ввести числитель и знаменатель второй дроби '); readln (y.ch,y.zn);
s.ch:=x.ch*y.zn+y.ch*x.zn; s.zn:=x.zn*y.zn;
k:=nod(s.ch,s.zn); sum.ch:=s.ch div k; sum.zn:=s.zn div k;
writeln (x.ch, '/' , x.zn, ' + ',y.ch, '/' , y.zn,' = ',s.ch, '/' , s.zn,' = ', sum.ch, '/' , sum.zn); readln; end.
6. Дан натуральный отрезок чисел [A,B]. Найти те числа этого отрезка, которые при делении на данное число K, дают в остатке число 4. Проверку, равен ли остаток четырем при делении данного числа на K, сделать с помощью логической функции пользователя.
PROGRAM ost; Var i, k, a, b: integer; flag: boolean;
function ravn (n,k:integer ): boolean; begin
if (n mod k=4) then ravn:= true else ravn:=false; end; begin
writeln ('ввести концы отрезка'); readln(a,b); writeln ('ввести число K');
readln(k); for i:=a to b do begin if ravn(i,k) then writeln ('при деление на число ', k ,' остаток равен 4 у числа ', i);
end; readln; end.
7. Дан числовой неупорядоченный массив, содержащий не более n<=50 целых чисел. Составить новый массив, элементами которого являются суммы цифр каждого числа исходного массива.
Ввод, вывод массива, а также нахождение суммы цифр оформить в виде подпрограмм.
Program Zadacha_3; Uses Crt;
Type mas=array[1 .. 50] of Integer; Var a,b:mas; n,i,S,y:Integer;
Procedure Vvod(n:Integer;Var a:mas);
Var i:Integer; Begin
For i:=1 to n do a[i]:=Random(100); End;
Procedure Vivod(n:Integer;a:mas); Var i:Integer;
Begin For i:=1 to n do Write(a[i]:5); WriteLn; End;
Procedure P_3(y:Integer;Var S:Integer);
Var i,x:Integer; Begin S:=0; Repeat x:=y mod 10; S:=S+x; y:=y div 10;
Until y=0; End; Begin
WriteLn('Введите количество элементов массива');
ReadLn(n); Vvod(n,a); WriteLn('Исходный массив:');
Vivod(n,a);
For i:=1 to n do Begin y:=a[i]; P_3(y,S);
b[i]:=S; End; WriteLn('Новый массив:'); Vivod(n,b); End.
8. Дан одномерный массив А, содержащий не более N<=50 целых чисел.
Циклически сдвинуть элементы массива на К позиций вправо.
Ввод, вывод массива оформить в виде подпрограмм.
Program Zadacha_10;
Uses Crt;
Type mas=array[1 .. 50] of Integer;
Var a:mas; n,k,i,j,x:Integer;
Procedure Vvod(n:Integer;Var a:mas);
Var i:Integer; Begin For i:=1 to n do
a[i]:=Random(100); End;
Procedure Vivod(n:Integer;a:mas);
Var i:Integer; Begin For i:=1 to n do
Write(a[i]:5); WriteLn; End;
Begin WriteLn ('Введите количество элементов в массиве и количество позиций сдвига'); ReadLn(n,k); Vvod(n,a);
WriteLn('Исходный массив:'); Vivod(n,a);
For i:=1 to k do Begin x:=a[n];
For j:=n-1 downto 1 do a[j+1]:=a[j]; a[1]:=x; End; WriteLn('Новый массив:'); Vivod(n,a); End.