Олимов Протопопова
?>

Переведите десятичные дроби в двоичную восьмеричную систему счисления оставив пять знаков в дробной части нового числа а)21, 5 б)432, 54 в)678, 333 желательно ответ фото !

Информатика

Ответы

unalone5593
Program Olympic;

const
  nMax = 50; { максимум 50 команд }
  cGold = 7;
  cSilver = 6;
  cBronze = 5;

type
  cName = string[20];
  RC = record
    position: byte;
    name: cName;
    nGold: byte;
    nSilver: byte;
    nBronze: byte;
    cTotal: byte
  end;
  tM = array[1..nMax, 1..2] of byte;

procedure Shell(var a: tM; n: integer);
{ Сортировка методом Шелла массива a[1..n, 1..2]
  по убыванию значений элементов второго столбца. }
var
  i, j, step, t1, t2: integer;

begin
  step := n div 2;
  while step > 0 do
  begin
    for j := n - step downto 1 do
    begin
      i := j;
      while i <= n - step do
      begin
        if a[i, 2] < a[i + step, 2] then
        begin
          t1 := a[i, 1]; t2 := a[i, 2];
          a[i, 1] := a[i + 1, 1]; a[i, 2] := a[i + 1, 2];
          a[i + 1, 1] := t1; a[i + 1, 2] := t2
        end;
        i := i + step
      end
    end;
    step := step div 2
  end
end;

{ Основная программа }
var
  f: file of RC;
  a: tM;
  i, n: byte;
  s: cName;
  t: RC;

begin
  { Организуем ввод данных }
  Assign(f, 'Olympic.in');
  Rewrite(f);
  n := 0;
  repeat
    Writeln('Введите наименование команды или * для окончания ввода');
    Readln(s);
    if s[1] <> '*' then
    begin
      n := n + 1;
      Write('Количество медалей: золото, серебро, бронза: ');
      Readln(t.nGold, t.nSilver, t.nBronze);
      t.position := n;
      t.name := s;
      t.cTotal := t.nGold * cGold + t.nSilver * cSilver + t.nBronze * cBronze;
      Write(f, t);
      a[n, 1] := t.position; a[n, 2] := t.cTotal
    end
  until s[1] = '*';
  Reset(f);
  { Выполняем сортировку заполненного массива a,
    определяя положение записей в файле }
  Shell(a, n);
  { Выводим результаты, используя прямой доступ к файлу }
  Writeln('Результаты олимпиады');
  for i := 1 to n do
  begin
    seek(f, a[i, 1] - 1);
    Read(f, t);
    Writeln(i, ': ', t.name, '(', t.nGold, ' зол, ', t.nSilver, ' сер, ',
      t.nBronze, ' бронз), очков- ', t.cTotal)
  end;
  Close(f);
end.

Тестовое решение:
Введите наименование команды или * для окончания ввода
Веселые медузы
Количество медалей: золото, серебро, бронза: 4 6 10
Введите наименование команды или * для окончания ввода
Юные сурки
Количество медалей: золото, серебро, бронза: 2 0 5
Введите наименование команды или * для окончания ввода
Черепашки-ниндзя
Количество медалей: золото, серебро, бронза: 3 7 11
Введите наименование команды или * для окончания ввода
*
Результаты олимпиады
1: Черепашки-ниндзя(3 зол, 7 сер, 11 бронз), очков- 118
2: Веселые медузы(4 зол, 6 сер, 10 бронз), очков- 114
3: Юные сурки(2 зол, 0 сер, 5 бронз), очков- 39
aeykin

Відповідь:

Пояснення:

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

 

 Пример 1. Написать алгоритм получения изображения двузначного числа  с исполнителя Чертежник.

Выберем следующий алгоритм построения изображения:

1) создать поле для исполнителя Чертежник размером 6х5 (6 клеток по горизонтали, 5 клеток по вертикали);

2) сместиться в точку (2, 2);

3) опустить перо;

4) изобразить цифру 1;

5) поднять перо и смечтиться в точку (4,3);

6) опустить перо;

7) изобразить цифру 2;

8) поднять перо и перейти в начало координат.

 

Вначале запишем алгоритм решения задачи на русском языке. Затем для каждой команды этого алгоритма выберем соответствующую команду исполнителя Чертежник.

Запись алгоритма на русском языке Текст программы

Заголовок программы;

Program PR_1;

вызов исп. Чертежник;

uses Drawman;

начало программы;

begin

создание поля размером 6х5;

Field(6,5);

рисуем цифры 1 и 2;

ToPoint(2,2);PenDown;

ToPoint(3,3);

ToPoint(3,1);

PenUp;

ToPoint (4,3);

PenDown;

ToPoint(5,3);

ToPoint(5,2);

ToPoint(4,1);

ToPoint(5,1);

PenUp;

ToPoint (0,0);

закончить программу.

end.

Можешь загрузить!        Пример 1

Для выполнения программы выберем команды ПрограммаàВыполнить (F9 или кнопка  на панели инструментов). Откроется окно исполнителя Чертежник, где нужно нажать кнопку Пуск или клавишу Enter на клавиатуре.

Команда OnVector(a,b)

OnVector(a,b)– перемещает перо Чертежника на вектор (a,b).

Выполним пример 1, но вместо команды ToPoint(x,y),  кторая перемещает перо Чертежника в точку (x,y). будем использовать OnVector(a,b).

Перемещение из точки (1,2) в точку (3,3) с вектора: OnVector(2,1).

Перемещение из точки (3,3) в точку  (1,2) с вектора: OnVector(-2,-1).

Перемещение из точки (1,3) в точку  (4,3) с вектора: OnVector(3,0).

Перемещение из точки (4,3) в точку (1,3)  с вектора: OnVector(-3,0).

Перемещение из точки (3,2) в точку (3,5)  с вектора: OnVector(0,3).

Перемещение из точки (3,5) в точку (3,2)  с вектора: OnVector(0,-3).

 

 Пример 2. Написать алгоритм получения изображения двузначного числа  с исполнителя Чертежник, используя команду OnVector(a,b).

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

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

Переведите десятичные дроби в двоичную восьмеричную систему счисления оставив пять знаков в дробной части нового числа а)21, 5 б)432, 54 в)678, 333 желательно ответ фото !
Ваше имя (никнейм)*
Email*
Комментарий*

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

zdanovich90764
Budanov317
Дмитрий1974
RozaAsadullina
КараханянКусков
v-zhigulin1
Дмитрий-Олейникова
ответьте на вопросы Тест по инфе!
KonovalovKonstantinovna1306
olgavlad199
lmedintseva6
yda659
Reginahappy
uglichwatch
muziumednogorsk
Баранов955