vladai2
?>

3. Рассмотрите скрипты. Найдите и исправьте ошибку в программном коде, чтобы получитьправильный результат.ИсходникСкрипт сошибкойПравильныйскрипт​

Информатика

Ответы

iraimironova

ты еще раз сфтокая , размыто, нечего не видно!

banketvoshod
Procedure GetWord(s:string; var p:integer; var w:string; delim:string:=' ');
{
 Получает в w слово из строки s, которое начинается не ранее позиции p.
 Возвращает новое значение p, указывающее на первый разделитель delim,
 который следует за найденным словом или 0, если такой разделитель не найден.
 По умолчанию слова разделяются не менее чем одним пробелом
}
var
  i,n:integer;
  fBreak:boolean; { флажок для прерывания циклов }
begin
  n:=Length(s); fBreak:=False;
  {ищем первый символ, отличный от разделителя - начало слова }
  while ((p<=n) and (not fBreak)) do
    if (p=n) or (s[p]<>delim) then fBreak:=True
    else Inc(p);
  { ищем очередной разделитель - конец слова }
  if p<n then begin
    i:=p; Inc(p); fBreak:=False;
    while (p<=n) and (not fBreak) do begin
      if (p=n) or (s[p]=' ') then fBreak:=True else Inc(p)
    end;
  { теперь слово находится между позициями i и p }
  w:=Copy(s,i,p-i)
  end;
  if p>=n then p:=0
end;

function CountG(w:string):integer;
{ возвращает количество гласных в слове w}
var
  i,k:integer;
begin
  k:=0;
  for i:=1 to length(w) do
    if w[i] in ['а','е','ё','и','о','у','ы','э','ю','я'] then Inc(k);
  CountG:=k
end;

var
  s,w,wmax:string;
  p,k,gmax:integer;
begin
  Writeln('Введите текст, разделяя слова пробелами');
  Readln(s);
  s:=LowerCase(s);
  p:=1; gmax:=0;
  while p>0 do begin
    GetWord(s,p,w);
    k:=CountG(w);;
    if gmax<k then begin gmax:=k; wmax:=w end
  end;
  if gmax>0 then Writeln('В слове "',wmax,'" максимум гласных, равный ',gmax)
  else Writeln('Во введенной строке гласных букв не найдено')
end.
Александр
3542816 (из 10 в 2 систему исчисления)  схема проста делим число на два до тех пор пока не останется 1(т.е. поделили, затем еще раз, и еще раз, и еще) надеюсь что такое остаток от деления ясно, так вот остатки от деления это и есть двоичная система, но записывать число необходимо справа налево
результат 3542816(10) = 1101100000111100100000(2)
110011101 (из 2 в 10) умножаем на 2 в степени числа, степень числа считается справа налево начиная с 0., т.е 1*2:0+0*2^1+1*2^2+ 1*2^3+ 1*2^4
результат   110011101(2) = 413(10)
11010111 (из 2 в 8)  там должна быть таблица, уверен вы ее записывали, смысл в том чтобы по три цифры (справа считая) переводим в 8чную систему справа налево-111-010-011
результат 11010111(2) = 327(8)
152FC4 (з 16 в 10, из 10 в 2)  так же как и из двоичной в десятичную но теперь числа умножаем не на 2 а на 16, т.е 4*16^0+12*16^1? а как из десятичной в двоичную уже рассказывал,
результат 152FC4(16) = 1388484(10) 1388484(10) = 101010010111111000100(2)

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

3. Рассмотрите скрипты. Найдите и исправьте ошибку в программном коде, чтобы получитьправильный результат.ИсходникСкрипт сошибкойПравильныйскрипт​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

office426
olesya-kwas
Голосова-Лобанов1555
S.V. Zhoraevna1677
Ямпольский
sohrokova809
m79857860146895
Маргарита794
antonkovalev89
Аношкина1696
germanleon
msangelika1010
naromanova
Диана-Николаевна377
VladimirovnaBugrova