inessa12006
?>

Исполнитель чертёжник перемещается на координатной плоскости, оставляя след в виде линии. чертёжник может выполнять команду сместиться на (a, b) (где a, b – целые числа), перемещающую чертёжника из точки с координатами (x, y) в точку с координатами (x + a, y + b чертёжнику был дан для исполнения следующий алгоритм: сместиться на (38, -12) повтори n раз сместиться на (17, 12) сместиться на (a, b) конец сместиться на (–16, –21) определите минимальное натуральное значение n > 1, для которого найдутся такие значения чисел a и b, что после выполнения программы чертёжник возвратится в исходную точку?

Информатика

Ответы

Рафаэль633
Procedure convert ( x: integer );
var s: string;
k, error, len: integer;
element: array[1..20] of real;
i, rez: real;
const N = -2;
begin
s := IntToStr(x);
len := length(s);
if len = 0 then writeln('Ошибка!')
else
begin  i := 0;
rez := 0;
for k := 1 to len do val(s[k], element[k], error);
for k := 1 to len do
begin
i := element[k] * power( N, len - k );
rez := rez + i;
end;
writeln(rez);
end;
end;

var numeric: integer;
begin
write('Введите двоичное число для перевода в систему счисления с основанием (-2): ');
readln(numeric);
write('ответ: ');
convert(numeric);
end.
AntonovaAvi1716
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.

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

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

Исполнитель чертёжник перемещается на координатной плоскости, оставляя след в виде линии. чертёжник может выполнять команду сместиться на (a, b) (где a, b – целые числа), перемещающую чертёжника из точки с координатами (x, y) в точку с координатами (x + a, y + b чертёжнику был дан для исполнения следующий алгоритм: сместиться на (38, -12) повтори n раз сместиться на (17, 12) сместиться на (a, b) конец сместиться на (–16, –21) определите минимальное натуральное значение n > 1, для которого найдутся такие значения чисел a и b, что после выполнения программы чертёжник возвратится в исходную точку?
Ваше имя (никнейм)*
Email*
Комментарий*

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

Olgax732
Vrezh
energycomplect5914
Yelena_Gennadevna
Shishkinna2002
goryavinan
ribanina
Маргарита1091
Mikhail1369
геннадиевна2001
bestxbox
Картузов-Алексей1252
M10M11M12
most315
Можарова14