// PascalABC.NET 3.3, сборка 1605 от 31.12.2017 // Внимание! Если программа не работает, обновите версию!
begin var P:=new real[3,2]; // массив координат вершин for var i:=0 to 2 do (P[i,0],P[i,1]):=ReadReal2('Введите x и y вершины '+(i+1)); // длины сторон var L:(real,real)->real:=(x,y)->Sqrt(x**2+y**2); var a:=L(P[1,0]-P[0,0],P[1,1]-P[0,1]); var b:=L(P[2,0]-P[1,0],P[2,1]-P[1,1]); var c:=L(P[0,0]-P[2,0],P[0,1]-P[2,1]); if (a+b>c) and (a+c>b) and (b+c>a) then // треугольник существует if (a=b) or (a=c) or (b=c) then Writeln('Треугольник равнобедренный') else Writeln('Треугольник не равнобедренный') else Writeln('Треугольник построить невозможно') end.
Замечание: для сборок ниже 1603 от 30.12.2017 необходимо заменить Sqrt(x**2+y**2) на Sqrt(x*x+y*y)
// PascalABC.NET 3.3, сборка 1605 от 31.12.2017 // Внимание! Если программа не работает, обновите версию!
begin var P:=new real[3,2]; // массив координат вершин for var i:=0 to 2 do (P[i,0],P[i,1]):=ReadReal2('Введите x и y вершины '+(i+1)); // длины сторон var L:(real,real)->real:=(x,y)->Sqrt(x**2+y**2); var a:=L(P[1,0]-P[0,0],P[1,1]-P[0,1]); var b:=L(P[2,0]-P[1,0],P[2,1]-P[1,1]); var c:=L(P[0,0]-P[2,0],P[0,1]-P[2,1]); if (a+b>c) and (a+c>b) and (b+c>a) then // треугольник существует if (a=b) or (a=c) or (b=c) then Writeln('Треугольник равнобедренный') else Writeln('Треугольник не равнобедренный') else Writeln('Треугольник построить невозможно') end.
Замечание: для сборок ниже 1603 от 30.12.2017 необходимо заменить Sqrt(x**2+y**2) на Sqrt(x*x+y*y)
Объяснение:
#include <ctime>
#include <cstdlib>
#include <iomanip>
#include <iostream>
using namespace std;
int max_row(int **a, int m, int c) {
int mr = 0;
for (int r = 1; r < m; ++r) if (a[mr][c] < a[r][c]) mr = r;
return mr;
}
int main() {
srand(time(0));
cout << "m n? ";
int m, n; cin >> m >> n;
cout << "\n матрица: \n";
int **a = new int *[m];
for (int r = 0; r < m; ++r) {
a[r] = new int[n];
for (int c = 0; c < n; ++c) cout << setw(4) << (a[r][c] = rand() % 1000);
cout << endl;
}
int mc = 0, mr = max_row(a, m, 0);
cout << "\n максимумы в столбцах: \n" << setw(4) << a[mr][0];
for (int c = 1; c < n; ++c) {
int cmr = max_row(a, m, c);
cout << setw(4) << a[cmr][c];
if (a[mr][mc] > a[cmr][c]) {
mc = c;
mr = cmr;
}
}
cout << "\n\n искомый элемент: a[" << mr << "][" << mc << "] = " << a[mr][mc] << endl;
return 0;
}