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

Создать проект, который позволяет рассчитать площадь прямоугольного футбольного поля, если его длина Х, а ширина У, площадь S.
Опишите модель решения поставленной задачи, соблюдая следующие пункты:
a) Входные данные программы Впечатывайте здесь ответ
b) Выходные данные программы Впечатывайте здесь ответ
c) Цель проектирования программы Впечатывайте здесь ответ
d) Назначение программы Впечатывайте здесь ответ
e) Область применения программы Впечатывайте здесь ответ

Показать ответ
Ответ:
АнгелінаL
АнгелінаL
01.10.2022 07:24
Первая программа предназначена ТОЛЬКО для Pascal.ABC, в другой среде она работать не будет. Она самая короткая и простая. Метод Split разбивает исходную строку на слова по символу пробела и формирует динамический массив. Что бы мы ни вводили, мы всегда будем получать в результате то, что требовалось. (понятно, что если слов будет меньше трех, будем получать то, что ввели).

var
  s: string;
  ms: array of string;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  ms := s.Split(' ');
  Writeln(ms[0] + ' ' + ms[2] + ' ' + ms[1])
end.

Вторая программа реализуется в любой версии Pascal. Её недостаток в том, что она правильно работает только тогда, когда введена фраза из трех слов, разделенных пробелом. Это простейший линейный алгоритм.

var
  s, s1, s2, s3: string;
  n, p: integer;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  n := Length(s);
  p := Pos(' ', s);
  s1 := Copy(s, 1, p - 1);
  s3 := Copy(s, p + 1, n - p);
  p := Pos(' ', s3);
  s2 := Copy(s3, 1, p - 1);
  n := Length(s3);
  s3 := Copy(s3, p + 1, n - p);
  Writeln(s1 + ' ' + s3 + ' ' + s2)
end.

Третья программа также реализуема в любой версии Pascal и содержит "классический" работы со строкой, состоящий в последовательном анализе каждого символа. Имеет защиту на случай, если слов будет больше или меньше трех.

var
  s: string;
  ms: array[1..3] of string;
  i, n, p, j: integer;

begin
  Write('Введите три слова через пробел: ');
  Readln(s);
  {
  Алгоритм: Просматриваем все символы строки начиная с позиции p
  и при обнаружении пробела в позиции q заносим в массив очередное слово,
  копируя q-p символов, начиная с p. Затем заносим в p значение q+1
  и продолжаем просмотр. При старте принимаем p=1
  }
  p := 1; j := 0; n := Length(s);
  for i := 1 to n do
    if s[i] = ' ' then
    begin
      j := j + 1;
      if j <= 3 then begin{ если введено больше двух пробелов }
        ms[j] := Copy(s, p, i - p);
        p := i + 1
      end
    end;
  if j < 3 then ms[3] := Copy(s, p, n - p + 1);
  Writeln(ms[1] + ' ' + ms[3] + ' ' + ms[2])
end.

Все три программы опробованы и результаты их работы одинаковы:

Введите три слова через пробел: Зебра полосатая лошадь
Зебра лошадь полосатая
0,0(0 оценок)
Ответ:
ВкусноеМясо
ВкусноеМясо
01.05.2021 05:39
Переводим число из двоичной системы в десятичную:
10(2) = 1 * 2^1 + 0 * 2^0 = 2 + 0 = 2

10(2) + 10(10) = 2(10) + 10(10) = 12(10)

Чтобы перевести число из системы счисления с основанием b, можно представить его в виде суммы:
(\overline{a_n\dots a_2a_1a_0})_b=a_nb^n+\dots+a_2b^2+a_1b^1+a_0b^0
Всё точно так же, как и в десятичной системе, только меняем 10 на основание системы счисления, например,
121_{10}=1\cdot10^2+2\cdot10^1+1\cdot10^0=1\cdot100+2\cdot10+1\cdot1\\&#10;121_{4}=1\cdot4^2+2\cdot4^1+1\cdot4^0=1\cdot16+2\cdot4+1\cdot1\\&#10;121_{b}=1\cdot b^2+2\cdot b^1+1\cdot b^0
Другой избежать большого количества возведений в степень и записать, например, так:
121_{b}=(((1)b+2)b+1)
Берем первую цифру – умножаем на b, прибавляем вторую цифру – умножаем на b, прибавляем третью цифру – ... – умножаем на b, прибавляем последнюю цифру.

Чтобы перевести из десятичной в систему с основанием b, нужно по сути сделать в обратном порядке то, что написано выше: либо восстановить разложение в сумму, либо выписать остатки от деления на b в обратном порядке. Например, переведем 27(4) в десятичную систему счисления:
27(4) = 1 * 16 + 2 * 4 + 3 * 1 = 1 * 4^2 + 2 * 4^1 + 3 * 4^0 = 123(4)

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