5) (Е. Джобс) Стасик выписывает все шестисимвольные комбинации, составленные из букв А, Б, Г, О, Щ. При этом упорядочивая их в обратном алфавитном порядке. Вот начало списка: 1. ЩЩЩЩЩЩ
2. ЩЩЩЩЩО
3. ЩЩЩЩЩГ
4. ЩЩЩЩЩБ
5. ЩЩЩЩЩА
6. ЩЩЩЩОЩ
...
Определите номер слова ОБЩАГА в этом списке.
1)
var
x1,y1,x2,y2,x3,y3,x4,y4:real;
sq1,sq2,sq3,sq4,max:real;
procedure s(a1,b1,a2,b2,a3,b3:real;var sq:real);
var s1,s2,s3,p:real;
begin
s1:=sqrt((a2-a1)*(a2-a1)+(b2-b1)*(b2-b1));
s2:=sqrt((a3-a1)*(a3-a1)+(b3-b1)*(b3-b1));
s3:=sqrt((a3-a2)*(a3-a2)+(b3-b2)*(b3-b2));
p:=(s1+s2+s3)/2;
sq:=sqrt(p*(p-s1)*(p-s2)*(p-s3));
end;
begin
write('x1,y1: '); readln(x1,y1);
write('x2,y2: '); readln(x2,y2);
write('x3,y3: '); readln(x3,y3);
write('x4,y4: '); readln(x4,y4);
s(x1,y1,x2,y2,x3,y3,sq1);
s(x1,y1,x3,y3,x4,y4,sq2);
s(x1,y1,x2,y2,x4,y4,sq3);
s(x2,y2,x3,y3,x4,y4,sq4);
writeln('sq1 = ',sq1:5:2,' sq2 = ',sq2:5:2,' sq3 = ',sq3:5:2,' sq4 = ',sq4:5:2);
if sq1>sq2 then max:=sq1 else max:=sq2;
if sq3>max then max:=sq3;
if sq4>max then max:=sq4;
writeln('max = ',max:5:2);
end.
2)
var
x1,y1,x2,y2,x3,y3,x4,y4:real;
sq1,sq2,sq3,sq4,max:real;
function s(a1,b1,a2,b2,a3,b3:real):real;
var s1,s2,s3,p:real;
begin
s1:=sqrt((a2-a1)*(a2-a1)+(b2-b1)*(b2-b1));
s2:=sqrt((a3-a1)*(a3-a1)+(b3-b1)*(b3-b1));
s3:=sqrt((a3-a2)*(a3-a2)+(b3-b2)*(b3-b2));
p:=(s1+s2+s3)/2;
s:=sqrt(p*(p-s1)*(p-s2)*(p-s3));
end;
begin
write('x1,y1: '); readln(x1,y1);
write('x2,y2: '); readln(x2,y2);
write('x3,y3: '); readln(x3,y3);
write('x4,y4: ');
readln(x4,y4);
sq1:=s(x1,y1,x2,y2,x3,y3);
sq2:=s(x1,y1,x3,y3,x4,y4);
sq3:=s(x1,y1,x2,y2,x4,y4);
sq4:=s(x2,y2,x3,y3,x4,y4);
writeln('sq1 = ',sq1:5:2,' sq2 = ',sq2:5:2,' sq3 = ',sq3:5:2,' sq4 = ',sq4:5:2);
if sq1>sq2 then max:=sq1 else max:=sq2;
if sq3>max then max:=sq3;
if sq4>max then max:=sq4;
writeln('max = ',max:5:2);
end.
Пример:
x1,y1: -5 1
x2,y2: -3 4
x3,y3: -1 2
x4,y4: -1 0
sq1 = 5.00 sq2 = 4.00 sq3 = 7.00 sq4 = 2.00
max = 7
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
double b[100][100];
int m,n;
cout << "m = ";
cin >> m;
cout << "n = ";
cin >> n;
double min, s=0;
srand(time(0));
for (int i = 0; i < m; i++){
for (int j = 0; j < n; j++){
b[i][j]=-20 + (101.0 / RAND_MAX) * rand();
cout << fixed << setw (7) << setprecision (2) << b[i][j];
}
cout <<endl;
}
for (int i = 0; i < m; i++){
min = b[i][0];
for (int j = 1; j < n; j++)
if (b[i][j]<min) min=b[i][j];
s+=min;
}
cout << "s = " << s << endl;
}
Пример:
m = 4
n = 5
13.22 57.79 50.37 28.83 8.94
48.01 32.86 -16.49 -5.80 67.08
15.84 26.60 42.95 -0.34 46.37
10.89 -3.28 0.48 -11.50 77.09
s = -19.39