Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
из 10 + паскаль.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
101.01 Кб
Скачать

12. Дан двумерный массив, содержащий не более 10 строк и 10 столбцов. Найти сумму элементов, лежащих над побочной диагональю.

Ввод, вывод массива и нахождение ответа оформить в виде подпрограмм.

program exam20; uses crt;

Type tabl=array[1..10,1..10] of integer; Var a:tabl; s,m,n:Integer;

Procedure Vvod(k,l:Integer;Var c:tabl);

Var i,j:Integer; Begin For i:=1 to n do For j:=1 to k do a[i,j]:=Random(100); End;

Procedure Vivod(k,l:Integer;c:tabl);

Var i,j:Integer;

Begin For i:=1 to n do Begin For j:=1 to k do Write(a[i,j]:5); WriteLn; End; End;

procedure sum(k,l:integer; c:tabl);

var i,j:integer; s:integer; begin s:=0; for i:=1 to k-1 do for j:=1 to k-i do

s:=s+c[i,j]; writeln('сумма элементов, лежажих над побочной диагональю = ',s);

end; begin writeln('ввести кол-во строк и столбцов'); readln(n,m); vvod(n,m,a);

writeln('исходный массив'); vivod(n,m,a); writeln('ответ'); sum(n,m,a); end.

13. Даны координаты трех точек на плоскости. Выяснить лежат ли эти точки на одной прямой. Вычисление расстояния между двумя точками оформить в виде процедуры пользователя.

Program tochki;

Procedure ras(z1,z2,q1,q2:Real; Var d: Real);

Begin d:=sqrt(sqr(z2-z1)+sqr(q2-q1)); End;

Var x1,x2,y1,y2,z1,z2,x3,y3,w1,w2,w3:Real; Begin Writeln ('Ввести координаты первой точки'); Readln (x1,y1);

Writeln ('Вести координаты второй точки'); Readln (x2,y2);

Writeln ('Ввести координаты третий точки'); Readln (x3,y3);

ras (x1,x2,y1,y2,w1); ras (x2,x3,y2,y3,w2); ras (x1,x3,y1,y3,w3);

Writeln (w1:1:3); Writeln (w2:1:3); Writeln (w2:1:3);

if (w1=w2+w3) or (w2=w1+w3) or (w3=w1+w2) Then Writeln ('Точки лежат на одной прямой') Else Writeln ('Точки не лежат на одной прямой'); End.

14. Даны три числа, могут ли эти числа быть сторонами треугольника.

Если треугольник существует, то вычислить длины медиан этого труегольника. Вычисление медианы треугольника оформить в виде процедуры пользователя.

Program z10;

var a,b,c,m1,m2,m3:real;

Procedure Mediana(x,y,z:real; var m:real); begin

m:=(1/2)*sqrt(2*sqr(x)+2*sqr(y)-sqr(z)); end;

begin writeln('Введите первое число');

readln(a); writeln('Введите второе число'); readln(b);

writeln('Введите третье число'); readln(c);

if (a+b>c)and(a+c>b)and(b+c>a) Then Begin

Writeln(''); Mediana(a,b,c,m1); Mediana(b,c,a,m2); Mediana(a,c,b,m3);

Writeln('Первая медиана треугольника с данными сторонами = ',m1:2:2);

Writeln('Вторая медиана треугольника с данными сторонами = ',m2:2:2);

Writeln('Третья медиана треугольника с данными сторонами = ',m3:2:2);

End Else writeln('Треугольника с такими сторонами не существует'); End.

15. Дан неупорядоченный одномерный массив а, содержащий вещественные числа. Циклически сдвинуть все элементы массива на к позиций вправо.

Program z13;

Type mas=array[1..50] of Real; var a:mas; n,k:integer;

Procedure Wwod(k:integer;var c:mas); var i:integer;

begin for i:=1 to k do c[i]:=Random(10);

end; Procedure Wiwod(k:integer; var c:mas);

var i:integer; begin for i:=1 to k do Write (c[i]:2);

writeln; end;

Procedure Perest(k,n:integer;var c:mas);

var x:real; i,j:integer; begin for i:=1 to k do begin x:=c[n];

for j:=n downto 2 do c[j]:=c[j-1]; c[1]:=x; end; end; begin

Writeln('Введите количество элементов массива'); Readln(n);

Wwod(n,a); Writeln('исходный массив'); Wiwod(n,a);

Writeln('Введите на сколько позиций сдвигать вправо'); readln(k);

Perest(k,n,a); Writeln('полученный массив'); Wiwod(n,a);Read;End