Var rost :array[1..100] of integer;
n, i, k: integer;
begin
writeln('Введите общее количество участников');
readln(n);
for i:=1 to n do
read(rost[i]);
for i:=1 to n do
if (rost[i] >=180) then Inc(k);
writeln(k);
<span>end.
Пример входных данных
3
179 180 194<span>
Выходные данные
2</span></span>
<span>1232345678910 + 1234567910 = </span>1233580246820
1)
IP 9. 102. 202. 52
маска 255. 255. 240. 0
адрес 9. 102. 192. 0
---------------------------------------------
в адрес сразу записываем выделенные полностью соответствующие байты (первый и второй байты) байтам маски =255 (255(10сс) = 1111 1111 (2сс))
последний байт маски =0, он "гасит" всё, и в адресе будет 0.
----------------------------------------------
остался один третий байт.
202 и 240
202 (10сс) = 128+64+8+2=2^7 + 2^6+2^3+2^1 = 1100 1010 (2cc)
240 (10cc) = 128+64+32+16=2^7+2^6+2^5+2^4=1111 0000 (2cc)
--------------------------------------------------
поразрядная конъюнкция:
1100 1010 * поразрядно
1111 0000
----------------
1100 0000 =2^7 +2^6 =128+64= 192 (10cc) - искомое значение третьего байта в 10сс.
// PascalABC.NET 3.0, сборка 1139 от 10.01.2016
begin
var f:=OpenWrite('phones.txt');
var n:=ReadLnInteger('Количество номеров: ');
Writeln('Вводите номера телефонов в формате 8(xxx)xxx-xx-xx;');
var s:string;
for var i:=1 to n do begin
s:=ReadLnString(IntToStr(i)+':');
Writeln(f,s)
end;
f.Close;
var s1:=ReadLines('phones.txt').ToArray;
Writeln('Содержимое файла');
s1.Println(NewLine);
f:=OpenWrite('phones.txt');
foreach var e in s1 do begin
s:=e.Where(x->x in ['0'..'9']).JoinIntoString('');
Writeln(f,s)
end;
f.Close;
Writeln('Новое содержимое файла');
ReadLines('phones.txt').PrintLn(NewLine);
end.
<u><em>Тестовое решение:</em></u>
Количество номеров: 3
Вводите номера телефонов в формате 8(xxx)xxx-xx-xx;
1: 8(999)111-22-33
2: 8(888)222-33-44
3: 8(777)333-44-55
Содержимое файла
8(999)111-22-33
8(888)222-33-44
8(777)333-44-55
Новое содержимое файла
89991112233
88882223344
87773334455