В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Litel1
Litel1
10.06.2020 16:15 •  Информатика

Каждый аспирант кафедры "информационные системы" изучает только один из трех языков: , или французский. французский язык изучают пять аспирантов. информационный объем сообщения "аспирант петров изучает язык" равен двум битам. количество информации, содержащееся в сообщении "аспирант иванов не изучает язык", равно 4-2log23 бит. иностранный студент, приехавший в университет, знает только и французский языки. чему равно количество аспирантов кафедры, с которыми сможет общаться иностранный студент?

Показать ответ
Ответ:
vorobeowmikhai
vorobeowmikhai
04.04.2021 15:01
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.
0,0(0 оценок)
Ответ:
yusupik
yusupik
05.10.2020 23:09

Во первых рекомендую пользоваться компилятором.

Я прикрепила фото результата работы программы. Вышло 405.

Чтоб найти сколько раз повторяется цикл, нужно напротив цикла поставить точку останова и в режиме отладки смотреть сколько раз будет повторяться цикл. Либо добавить еще одну переменную int i= 0;

и в цикле после выражений написать i++; И дальше в конце ее вывести на экран и тебе покажет кол-во итераций(я приложила второе фото с таким решением, посмотри. Результат кол-ва итераций=21)

Когда условие перестанет выполняться, произойдет выход из цикла

(В данном случае условие s/n>=2. До тех пор пока s/n>=2 цикл будет выполняться. Когда результат от деления s/n будет будет меньше 2 цикл перестанет выполняться.)

Если под рукой нет компилятора и нужно узнать сколько раз повторяется цикл, нужно опять таки смотреть на условие цикла.

подставляешь в выражения числа и смотришь выполнится условие или нет. Если выполняется-дальше считаешь. Если не выполняется-выходишь из цикла.

Например, заходим в цикл:

s=300+5 (в итоге s=305)

n=100+5(в итоге n=105)

Дальше смотрим на условие цикла s/n>=2 (305/105>=2 да, значит цикл произведет еще одну итерацию)

s=305+5 (в итоге 310)

n=105+5 (в итоге 110)

Опять проверяем условие(310/110>=2 да, значит цикл произведет еще одну итерацию)

Продолжаем расчеты

s=310+5 (в итоге 315)

n=110+5 (в итоге 115)

Опять проверяем условие(315/115>=2 да, значит цикл произведет еще одну итерацию)

s=315+5  (в итоге 320)

n=115+5  (в итоге 120)

Опять проверяем условие(320/120>=2 да, значит цикл произведет еще одну итерацию)

и тд. пока условие не перестанет выполняться.

Когда оно перестанет выполняться, цикл перестанет выполняться тоже. Потом Посчитаешь сколько раз ты производил вычисления.(сколько было итераций) и поймешь, что их было 21. Т.е твой цикл 21 раз повторяется и выводит результат вычисления переменной s равный 405.

Будут вопросы, спрашивай.

Удачи:)


Можете с информатикой,подробно расписать как быстро можно найти сколько раз повторяется цикл и тд
Можете с информатикой,подробно расписать как быстро можно найти сколько раз повторяется цикл и тд
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота