// PascalABC.NET 3.2, сборка 1403 от 16.03.2017 // Внимание! Если программа не работает, обновите версию!
function SumDigits(n:integer):integer; begin Result:=0; while n>0 do begin Result+=n mod 10; n:=n div 10 end end;
begin var s:=ReadArrInteger('Вводите:',3).Select(x->SumDigits(x)).ToArray; var i:=s.IndexMax; var k:=s.Where(x->x=s[i]).Count; case k of 1:begin Write('Сумма цифр наибольшая у '); case i of 0:Write('первого'); 1:Write('второго'); 2:Write('третьего'); end; Writeln(' числа') end; 2:begin Write('Сумма цифр наибольшая у '); if s[0]=s[1] then Writeln('первого и второго чисел') else if s[0]=s[2] then Writeln('первого и третьего чисел') else Writeln('второго и третьего чисел') end; 3:Writeln('Суммы цифр у всех трех чисел равны') end end.
Примеры Вводите: 102030 324 19 Сумма цифр наибольшая у третьего числа
Вводите: 16453 4320 56341 Сумма цифр наибольшая у первого и третьего чисел
Вводите: 12345 12354 54321 Суммы цифр у всех трех чисел равны
1. Оператор цикла предназначен для выполнения большого количества однотипных вычислений, отличающихся только значениями переменных, входящих в формулу. Например, вычисление значений формулы y=sin(x) для х=1..10 с шагом 1. 2. В языке Паскаль существуют циклы: с параметром (FOR), с предусловием (WHILE..DO), с постусловием (REPEAT...UNTIL). 3. Оператор FOR для примера п.1 имеет вид: FOR K:= 1 TO 10 DO Y[K]:=SIN(K). Если в теле цикла будет несколько операторов, то они заключаются в операторных скобки BEGIN...END. 4. Во время исполнения этого оператора переменной Y[K] (элементам маccива Y) последовательно присваиваются значения SIN(K). 5. Оператор FOR применяется в тех случаях, когда число повторений заранее известно (К=1..10). 6-9. Циклы WHILE и REPEAT применяются, когда число повторений заранее неизвестно, например, для вычисления суммы ряда с заданной точностью, но их можно применять и для расчета по предыдущему примеру. K:=0; WHILE K<11 DO BEGIN K:=K+1; Y[K]:=SIN(K) END; или для цикла REPEAT: K:=0; REPEAT K:=K+1; Y[K]:=SIN(K} UNTIL K>10; Для вычислений эти циклы равносильны, но есть одно (иногда решающее) отличие - цикл WHILE не будет выполнен ни разу, если условие сразу ложно, а цикл REPEAT сначала выполнит одну операцию, а потом, если условие окажется ложным, остановится.
Var
a:real;
Begin
write('Введите размер в байтах ');
Readln(a);
writeln(a*8,' бит');
writeln(a,' байт');
a:=(a/1024);
writeln(a,' Кбайт');
a:=(a/1024);
writeln(a,' Мбайт');
a:=(a/1024);
writeln(a,' Гбайт');
a:=(a/1024);
writeln(a,' Тбайт');
End.