6. В фигурном катании общую оценку качества выполнения элемента вычислит по следующим правилам: отбрасывают высшую и низ шую оценки, а на оставшихся вычисляют среднее арифметическое. Составьте программу для определения оценки по этим правилам.
Вообще то, это задача чисто математическая. Пусть есть трехзначное число abc. По условию:
abc + abc
bca Понятно, что максимальным число будет, если сложение в двух младших разрядах идет через перенос -> получим систему уравнений: 2c = a +16 2b +1 = c + 16 2a + 1 = b равносильная ей система 2с = a + 16 c = 2b - 15 b = 2a + 1 подставляем третье во второе, получаем первые два уравнения 2с = a + 16 c = 4a - 13 из этих двух уравнений -> 7a = 42 -> a = 6 -> из третьего уравнения b = 13 13 = D(16), из первого уравнения с = 22/2 = 11(10) = B(16) -> abc(16) = 6DB(16) = 1755(10), DB6(16) = 3510(10) -> 2abc = bca
Uses crt; var ksl,ksm:longint; a:array of integer; i,sred,k:integer; f:Text; s:string; BEGIN clrscr; Assign(f,'f1.txt'); Reset(f); //из файла while not eof(f) do begin readln(f,s); ksm:=ksm+length(s); //считаем все символы end; writeln(ksm); Reset(f); for i:=1 to ksm do begin if (s[i]=' ') then ksl:=ksl+1;//считаем все слова end; writeln(ksl); Reset(f); //из файла setlength(a,ksl+1); for i:=1 to ksl do begin read(f,a[i]); end; Close(f); For i:=1 to ksl do begin If (a[i]=0) then a[i]:=a[1]+a[ksl]; // '' все нулевые компоненты значением суммы первой и последней компонент файла'' if (a[i]>0) then begin sred:=sred+a[i]; // ''найти среднее арифметическое положительных компонент'' inc(k); end; if (a[i]<0)then a[i]:=a[i]- ABS( a[1]+a[ksl] ); // ''все отрицательные компоненты уменьшить на значение суммы'' end; Rewrite(f); //в фаил for i:=1 to ksl do begin write(f,a[i],' '); end; Close(f); Writeln(' sred= ',sred/10:0:1); END.
По условию:
abc
+ abc
bca
Понятно, что максимальным число будет, если сложение в двух младших разрядах идет через перенос -> получим систему уравнений:
2c = a +16
2b +1 = c + 16
2a + 1 = b
равносильная ей система
2с = a + 16
c = 2b - 15
b = 2a + 1
подставляем третье во второе, получаем первые два уравнения
2с = a + 16
c = 4a - 13 из этих двух уравнений -> 7a = 42 -> a = 6 -> из третьего уравнения b = 13
13 = D(16), из первого уравнения с = 22/2 = 11(10) = B(16)
-> abc(16) = 6DB(16) = 1755(10), DB6(16) = 3510(10) -> 2abc = bca
var ksl,ksm:longint;
a:array of integer;
i,sred,k:integer;
f:Text;
s:string;
BEGIN
clrscr;
Assign(f,'f1.txt');
Reset(f); //из файла
while not eof(f) do
begin
readln(f,s);
ksm:=ksm+length(s); //считаем все символы
end;
writeln(ksm);
Reset(f); for i:=1 to ksm do
begin
if (s[i]=' ') then
ksl:=ksl+1;//считаем все слова
end;
writeln(ksl);
Reset(f); //из файла
setlength(a,ksl+1);
for i:=1 to ksl do
begin
read(f,a[i]);
end;
Close(f);
For i:=1 to ksl do
begin
If (a[i]=0) then a[i]:=a[1]+a[ksl]; // '' все нулевые компоненты значением суммы первой и последней компонент файла''
if (a[i]>0) then
begin
sred:=sred+a[i]; // ''найти среднее арифметическое положительных компонент''
inc(k);
end;
if (a[i]<0)then a[i]:=a[i]- ABS( a[1]+a[ksl] ); // ''все отрицательные компоненты уменьшить на значение суммы''
end;
Rewrite(f); //в фаил
for i:=1 to ksl do
begin
write(f,a[i],' ');
end;
Close(f);
Writeln(' sred= ',sred/10:0:1);
END.