1. Программа умножает своё значение на десять и затем прибавляет индекс цикла. В итоге делает это 4 раза.
Это равносильно сложению строковых данных в виде чисел от одного до четырёх.
s = '1' + '2' + '3' + '4' = 1234
Ответ: 1234.
2. Программа прибавляет к значению y значение индекса x (от 6 до 2) и затем делит значение на 5. [5 раз]
y = (0 + 6) / 5 = 1.2
y = (1.2 + 5) / 5 = 1.24
y = (1.24 + 4) / 5 = 0.848
y = (0.848 + 3) / 5 = 0.7696
y = (0.7696 + 2) / 5 = 0.55392
Ответ: 0.55392.
3. Программа прибавляет к значению s один и затем умножает значение на 2. [4 раза]
s = (0 + 1) * 2 = 2
s = (2 + 1) * 2 = 6
s = (6 + 1) * 2 = 14
s = (14 + 1) * 2 = 30
Ответ: 30.
1) N = 2 в степени i => 16 = 2 в степени i => i = 4 (бит) - весит один символ
2) 1 Мб = 1024 Кб = 1048576 байт = 8388608 бит, далее делим на 16 = 524288 бит (объём текста)
3) 524288 / 4 = 131072 символа
Static void Main(string[] args)
{
StringBuilder str = new StringBuilder();
Console.Write("Введите строку, ввод завершится по точке: ");
char input = Console.ReadKey(true).KeyChar;
if (char.IsLetterOrDigit(input) || char.IsSeparator(input)) Console.Write(input);
while(input != '.')
{
str.Append(input);
input = Console.ReadKey(true).KeyChar;
if (char.IsLetterOrDigit(input) || char.IsSeparator(input)) Console.Write(input);
}
Console.WriteLine();
string resStr = str.ToString();
int a = resStr.Count(p => p == 'а');
int b = resStr.Count(p => p == 'б');
if (a > b)
Console.WriteLine("В строке чаще встречается буква а");
else if (a < b)
Console.WriteLine("В строке чаще встречается буква б");
else
Console.WriteLine("В строке букв а и б равное количество");
Console.ReadKey();
}
<u>PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
function gcd(a,b:integer):integer; // НОД
begin
while b<>0 do begin a:=a mod b; Swap(a,b) end;
Result:=a
end;
procedure RedFrac(var a,b:integer); // сокращение дроби
begin
var (sgna,sgnb):=(Sign(a),Sign(b)); // мы должны учитывать знак!
(a,b):=(Abs(a),Abs(b));
var d:=gcd(a,b);
a:=(a div d)*sgna; b:=(b div d)*sgnb
end;
begin
var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:');
var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:');
(a,b):=(a*c,b*d);
RedFrac(a,b);
Writeln('Результат умножения: ',a,' / ',b)
end.
<u>Пример</u>
Введите числитель и знаменатель 1-й дроби: 32 1024
Введите числитель и знаменатель 2-й дроби: 60 300
Результат умножения: 1 / 160
<u>В качестве бонуса - решение на базе входящей в состав PascalABC.NET библиотеки численных методов</u>
uses NumLibABC;
begin
var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:');
var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:');
Writeln('Результат умножения: ',Frc(a,b)*Frc(c,d))
end.