Valerii276
?>

Як виконати це в exel? При перевищенні строку договору про ремонт техніки підприємство, яке проводить ремонт, платить штраф по 200 грн. за кожний день, якщо кількість днів, які превищують строк. менша або дорівнює 10 днів. Якщо кількість днів, що превищує строк, більша 10 але менша рівна 20, то штраф становить 200 грн. за кожний день плюс 250 грн. Якщо ж кількість днів, що перевищує строк, від 20 днів і більше, то штраф становить 200 грн. за кожний день плюс 500 грн. Обчислити величину штрафу, якщо на 8 , 15, 26, 11 днів.

Информатика

Ответы

Tatarnikova1507
 const     
z = 30; // максимально число слов  
var   
s,w : string;   
n,p,i,j,l : integer;   
words : array [1..z] of string;   
kw : array [1..z] of integer;   
r : boolean;    
begin 
writeln ('введите строку'); 
readln (s); 
writeln ('укажите кол-во повторений'); 
readln (n);   
l := Length(s); 
p := 1; 
w := '';    
 for i := 1 to l do       
 if (s[i] <> ' ') and (s[i] <> '.') and (s[i] <> ',') then   
   w := w + s[i]    
    else     
begin   
  for j := 1 to p do   
   if w = words[j] then 
      begin   
      kw[j] := kw[j] +1;   
     r := true;     
   end;        
      if not r then   
    begin   
      p := p +1;   
      words[p] := w; 
       kw[p] := kw[p] +1;     
   end;    
    w := '';   
  r := false;   
      end;   
      for i := 1 to p do 
  if kw[i] > n then 
  writeln (words[i]);      
      end.
bykovaam
Const
  n=50; { максимальное число различных слов в строке }
  del=[' ','.',',',':',';','-','!','?','/'];
var
  mw:array[1..n] of string; { найденные слова }
  mk:array[1..n] of integer; { количество повторений слов }
  s,w:string;
  i,j,k,l,m:integer;
  skip,new_word:boolean;
begin
  Write('Введите текст: ');
  Readln(s);
  s:=s+' ';
  Write('Укажите предельное число повторений слова: ');
  Read(k);
  l:=Length(s);
  m:=0;
  skip:=(s[1] in del);
  if skip then w:='' else w:=s[1];
  for i:=2 to l do
    if s[i] in del then begin
      if not skip then begin
        { w содержит очередное найденное слово }
        j:=1; new_word:=true;
        while (j<=m) and new_word do begin
          if w=mw[j] then begin Inc(mk[j]); new_word:=false end;
          Inc(j)
        end;
        if new_word then begin Inc(m); mw[m]:=w; mk[m]:=1 end;
        w:=''; skip:=true
      end
    end
    else
      if skip then begin w:=s[i]; skip:=false end
      else w:=w+s[i];
  { фраза разобрана и проанализирована }
  j:=0; i:=1;
  while (i<=m) and (j=0) do begin
    if mk[i]>k then j:=i;
    Inc(i)
  end;
  if j>0 then begin
    Writeln('Слова, которые встретились больше, чем ',k,' раз:');
    Writeln(mw[j]);
    for i:=j+1 to m do
      if mk[i]>k then Writeln(mw[i]);
  end
  else  Writeln('Нет слов, которые встретились больше, чем ',k,' раз.')
end.

Тестовое решение:
Введите текст: еду, еду в чистом поле; колокольчик дин-дин-дин... страшно, страшно поневоле средь неведомых равнин!
Укажите предельное число повторений слова: 1
Слова, которые встретились больше, чем 1 раз:
еду
дин
страшно

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

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

Як виконати це в exel? При перевищенні строку договору про ремонт техніки підприємство, яке проводить ремонт, платить штраф по 200 грн. за кожний день, якщо кількість днів, які превищують строк. менша або дорівнює 10 днів. Якщо кількість днів, що превищує строк, більша 10 але менша рівна 20, то штраф становить 200 грн. за кожний день плюс 250 грн. Якщо ж кількість днів, що перевищує строк, від 20 днів і більше, то штраф становить 200 грн. за кожний день плюс 500 грн. Обчислити величину штрафу, якщо на 8 , 15, 26, 11 днів.
Ваше имя (никнейм)*
Email*
Комментарий*

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

Kelena190533
s777tver109
Вячеславович-Дмитрий1694
Vera-zero281
sespiridonov
madjk
Konchenko1980
Мусаев Игоревич371
agusarevich283
edvlwork15
gutauta6
foto5113161
pbttehnology
dariamay1996
yok887062