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

Исполнитель Черепашка перемещается на экране компьютера, оставляя след в виде линии.

В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует две команды: Вперёд n (где n — целое число), вызывающая передвижение Черепашки на n шагов в направлении движения; Направо m (где m — целое число), вызывающая изменение направления движения на m градусов по часовой стрелке. Запись Повтори k [Команда1 Команда2 КомандаЗ] означает, что последовательность команд в скобках повторится k раз.
Черепашке был дан для исполнения следующий алгоритм: Повтори 5 [Вперёд 100 Направо 120] Какая фигура появится на экране?​

Показать ответ
Ответ:
llun
llun
23.11.2021 09:50
1. Современное решение

// PascalABC.NET 3.2, сборка 1488 от 21.06.2017
// Внимание! Если программа не работает, обновите версию!

function From5to10(Self:sequence of string):sequence of integer;
    extensionmethod;
// Перевод последовательности заданных на строках пятиричных чисел
// в последовательность целых десятичных чисел
begin
  foreach var s in Self do begin
    var r:=0;
    var pa:=1;
    foreach var c in s.Reverse do begin
      r+=c.ToDigit*pa; pa*=5
    end;
    yield r
    end
end;

begin
  var s:=ReadlnString('Введите строку:').MatchValues('[0-4]+').From5To10;
  if s.Count=0 then Writeln('S=-1')
  else Writeln('S=',s.Sum)
end.

Пример
Введите строку: sdf812973j223k
S=73

2. Решение на TurboPascal ("Так писали наши отцы и деды в 1983 году, так и нас сейчас учат в школе")

uses Crt;

function From5to10(n:string):integer;
{ Перевод из пятиричного числа в строковом представлении
  в целое десятичное }
var
  i,pa,s:integer;
begin
  s:=0;
  pa:=1;
  for i:=Length(n) downto 1 do begin
    s:=s+pa*(Ord(n[i])-Ord('0'));
    pa:=pa*5
    end;
  From5to10:=s
end;

var
  s,w:string;
  i,k,r:integer;
begin
  ClrScr;
  Write('Введите строку: ');
  Readln(s);
  w:='';
  r:=0;
  k:=0;
  for i:=1 to Length(s) do begin
    if Pos(s[i],'01234')>0 then begin
      if w='' then k:=k+1;
      w:=w+s[i]
      end
    else
      if w<>'' then begin
        r:=r+From5to10(w);
        w:=''
        end
    end;
  if k=0 then Writeln('S=-1')
  else Writeln('S=',r);
  ReadKey
end.
0,0(0 оценок)
Ответ:
блеск4
блеск4
27.01.2023 12:00
Программа приложена файлом для Visual Basic for Applications

Ниже текст этой программы продублирован

Sub trans_sequence(ByVal M)'заполнение массива и создание преобразованной последовательности чисел  N = M  Dim mas()  ReDim mas(M)  Sg = ""  Sf = ""  Randomize  For i = 1 To M    mas(i) = Round((Rnd(100) - 0.5) * 100)    Sg = Sg + Str(mas(i))    If (mas(i) < 0) Then mas(i) = mas(i) * mas(i)    Sf = Sf + Str(mas(i))    If i <> M Then           Sg = Sg + ","       Sf = Sf + ","    End If  Next i        MsgBox "последовательность чисел " + Sg + Chr(10) + "преобразованная последовательность " + SfEnd Sub

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