Сколько страниц текста можно разместить в памяти, если но одной странице 40 строк по 60 символов(1сивол- 1 байт). какова высота стопке, если 100 страниц 1 см.
Исходя из принципа реализации страничной памяти и условий задачи мы имеем. Для начала вычислим общий объем текста в байтах как 40*60*100 = 240000 байт = 0.23 мегабайта - это у нас в одном сантиметре стопки. Теперь определяем сколько у нас есть свободной памяти. Для 32-х разрядных систем максимальный объем адресуемой памяти равен 2^32 = 4294967295 байт. Следовательно высота стопки будет равна 4294967295 / 240000 = 17895,7 см.
Procedure GetWord(s:string; var from:integer; var w:string; var len:integer); { Ищет в строке s слово, начиная с позиции from. Если слово w найдено, from будет указывать на его начало, а в len будет находиться длина эого слова. если слово не найдено, w='', len=0 Слова раздеяются минимум одним пробелом, за исключением первого и последнего слова, у которых пробел может находиться только с одной стороны. } var i,n:integer; stop:Boolean; begin n:=Length(s); i:=from; stop:=false; while (i<=n) and (not stop) do if s[i]=' ' then Inc(i) else stop:=true; if i>n then begin len:=0; w:='' end else begin from:=i; stop:=false; while (i<=n) and (not stop) do if s[i]<>' ' then Inc(i) else stop:=true; if i>n then len:=n-from+1 else len:=i-from; w:=Copy(s,from,len) end end;
var s1,wd,wdmax:string; ic,L,Lmax:integer;
begin Write('Введите строку: '); Readln(s1); ic:=1; Lmax:=0; repeat GetWord(s1,ic,wd,L); if (L>0) and (L>Lmax) then begin Lmax:=L; wdmax:=wd end; ic:=ic+L+1 until L=0; Writeln('Самое длинное слово "',wdmax,'" длины ',Lmax) end.
Тестовое решение: Введите строку: Это пример тестовой строки с произвольным числом пробелов. Самое длинное слово "произвольным" длины 12
Program str; Uses crt; Var s:string; i,p,sum:integer; Begin P:=1; Sum:=0; Readln(s); For i:=1 to length(s) do Begin If s[i] in ['0'..'9'] then Begin p:=p*(ord(s[i])-ord('0')); sum:=sum+(ord(s[i])-ord('0')); End; End; Writeln('Сумма = ',sum,' ','Произведение = ',p); End.
Исходя из принципа реализации страничной памяти и условий задачи мы имеем. Для начала вычислим общий объем текста в байтах как 40*60*100 = 240000 байт = 0.23 мегабайта - это у нас в одном сантиметре стопки. Теперь определяем сколько у нас есть свободной памяти. Для 32-х разрядных систем максимальный объем адресуемой памяти равен 2^32 = 4294967295 байт. Следовательно высота стопки будет равна 4294967295 / 240000 = 17895,7 см.