Общее решение, позволяющее удалять из строк любой "мусор"
// PascalABC.Net 3.0, сборка 1066 procedure CheckString(var s:string; var n:integer); var i:integer; begin i:=Length(s); while i>0 do begin if not(s[i] in ['a'..'z']) then Delete(s,i,1); Dec(i) end; n:=Length(s) end;
var s1,s2:string; i,p,n1,n2:integer; begin Write('Введите первую строку: '); Readln(s1); CheckString(s1,n1); if n1=0 then Writeln('Введенная строка не содержит допустимых символов') else begin Write('Введите вторую строку: '); Readln(s2); CheckString(s2,n2); if n2=0 then Writeln('Введенная строка не содержит допустимых символов') else { теперь обе строки содержат только маленькие латинские буквы } if n1=n2 then begin for i:=1 to n1 do begin p:=Pos(s1[i],s2); if p=0 then Break else Delete(s2,p,1) end; if Length(s2)=0 then Writeln('Решение имеется') else Writeln('Решения нет') end else Writeln('Решения нет'); end end.
Тестовое решение: Введите первую строку: this is my own deal! Введите вторую строку: Тест: *is now=l2ead my sthi? Решение имеется
Также имеется современное решение, которому пока что в школах не учат: // PascalABC.Net 3.0, сборка 1066 begin var s1:=ReadString('Введите первую строку: ').Where(x->x in ['a'..'z']); if s1.Count=0 then Writeln('Введенная строка не содержит допустимых символов') else begin var s2:=ReadString('Введите вторую строку: ').Where(x->x in ['a'..'z']); if s2.Count=0 then Writeln('Введенная строка не содержит допустимых символов') else if s1.Except(s2).Count>0 then Writeln('Решения нет') else Writeln('Решение имеется') end end.
Прежде всего хотелось бы отметить,что один Кбайт = 2^13 бит или 8192 бит; 1 байте - 8 бит; 1кбайте - 1024 байта.
1). Два варианта решения : А ). Переведем объем сообщения из кбайт в биты: 2.5 * 2^13 = 20480. Теперь найдем время: 20480/2560 = 8 (мин) Как посчитать без калькулятора: - Сначало представим число 2560 ,как 256 * 10. - дальше представим число 256,как 2^8 ,а число 10 - 2 * 5. Получится такой пример : 2.5*2^13/2^8*2*5 , дальше сокращаем наши двойки со степенями, получится 2.5*2^4/5 , тоесть зная свойства степеней : a^n/a^m= a^n-m , получается 2^13/2^9=2^13-9. Думаю тут все понятно... ну в итоге 2.5*2^4/5 =8 (мин). б). Переведем скорость передачи 2560 из бит в байты : 2560бит/8 = 320 байт,а объем сообщения 2.5 из кбайт в байты : 2.5кбайт * 1024 = 2560 байт. Ну дальше всё просто : 2560/320=8 (мин). 3 ). Объем сообщения переводим из Кбайт в биты тоесть: 225*2^13/14400=128. А вторую задачу тебе правильно решили.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку