М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
nz010
nz010
19.04.2020 12:13 •  Информатика

Из 4-ой системы счисления перевидите в 10 систему счисления 31330₄⇒? ₁₀ из 10 системы счисления переведите в 5 систему счисления 3971₁₀⇒? ₅

👇
Ответ:
milamul74
milamul74
19.04.2020
31330=3*4^4 + 1*4^3 + 3*4^2 + 3*4^1 + 0*4^0=768 + 64 + 48 + 12 +0=892₁₀

3971₁₀⇒111341₅
4,8(70 оценок)
Открыть все ответы
Ответ:
tskaev662
tskaev662
19.04.2020
PROGRAM B01;

CONST
    max = 11;
TYPE
    vector = array[1..max]of integer;
VAR
    M, I, K:vector;
    j:byte;

{ Массивы I,K предварительно реорганизовать следующим образом: на первом
месте, в данных массивах должен стоять элемент с минимальным значением}
procedure reorganize_vector(var vt:vector);
var   i, j:byte;
      min, tmp:integer;
      
begin
  // вначале ищем минимальный элемент и запоминаем его место в массиве
  j:=1;//
  min:=vt[1];//назначаем наименьшим - первый элемент
  for i:=2 to max do
    if (min>vt[i]) then begin
      min:=vt[i];
      j:=i;//индекс наименьшего числа
    end;
    
  // теперь меняем местами первый элемент массива с наименьшим числом
  tmp := vt[1];//запоминаем значение первого элемента
  vt[1] := min;//меняем его на наименьший элемент
  vt[j] := tmp;//на место наименьшего ставим значение из первого элемента
end;

// процедура для вывода массива на экран
procedure print_vector(var vt:vector);
var j:byte;
begin
  for j:=1 to max do
    write(vt[j]:6);
  writeln(' ');
end;

BEGIN
  writeln('Дано:');

  //заполняем массивы случаынйми данными
  randomize;
  for j:=1 to max do begin
    I[j]:=random(-128,127);  
    K[j]:=random(-128,127);  
  end;

  //выводим их на экран
  write('массив I[',max,']: ');
  print_vector(I);
  write('массив K[',max,']: ');
  print_vector(K);

  writeln(' ');
  writeln('Реорганизовать массивы так, чтобы на первом месте ');
  writeln('должен стоять элемент с минимальным значением');

  reorganize_vector(I);
  reorganize_vector(K);

  write('массив I[',max,']: ');
  print_vector(I);
  write('массив K[',max,']: ');
  print_vector(K);

  writeln(' ');
  writeln('Сформировать массив М[',max,'], элементы которого вычисляются');
  writeln('по формуле M[j] = I[j] + K[j]');

  for j:=1 to max do
    M[j] := I[j] + K[j];

  write('массив M[',max,']: ');
  print_vector(M);
END.

На паскале написать программу с подпрограммой. дано: массивы i(11), k(11). сформировать массив м (11
4,7(81 оценок)
Ответ:
кирилл22895
кирилл22895
19.04.2020
Кортеж (tuple) - последовательный набор данных фиксированной длины. Данные в кортеже могут быть разного типа, их количество обычно невелико (в Pascal ABC.NET 3 - максимум 7).
Важно, что кортеж создается на этапе компиляции, поэтому его структура неизменна. Данные в кортеже нельзя редактировать - они доступны только на чтение.
Внешне кортеж выглядит как список. Например, список аргументов у функции или процедуры. И запись (record) в Паскале - тоже своего рода кортеж.

Кортежи могут быть весьма полезны.
Например, в Паскале обычно функция возвращает некоторое значение. А если надо, к примеру, два? Процедуру делать? Кортеж решает эту проблему.
Ниже приведен пример работающей программы на PascalABC.NET 3.3.
Напомню, что идентификаторы в программе могут содержать символы Unicode из любых алфавитных наборов, поэтому имена переменных написаны кириллицей.

function DivMod(a,b:integer):=(a div b,a mod b);

begin
  var (Делимое,Делитель):=ReadInteger2('Делимое и делитель:');
  var (Частное,Остаток):=Divmod(Делимое,Делитель);
  Writeln('Частное = ',Частное,', остаток = ',Остаток)
end.

Пример
Делимое и делитель: 356432 242
Частное = 1472, остаток = 208

Пример демонстрирует возможности, которые открывают кортежи.

Функция DivMod возвращает кортеж из двух элементов.
Благодаря кортежу она состоит из единственного оператора и это позволило записать её в одну строку. Содержимое кортежа определяется заданными выражениями, их тип - типом результата (integer).

ReadInteger2 - это функция, возвращающая кортеж из двух элементов типа integer, принятых с клавиатуры.

Левая часть оператора присваивания var (Делимое,Делитель):= реализует так называемое кортежное присваивание. (Делимое,Делитель) - это запись кортежа, поскольку перечисление находится в круглых скобках. Но именно в таком употреблении это одновременно две различные переменные, которым будет присвоено значение элементов кортежа. Кортеж в правой части "распаковывается" так, что значение первого элемента кортежа попадает в первую переменную, а второе - во вторую.
В результате оказалось достаточно одного оператора, заменяющего три:
var Делимое,Делитель:integer;
Write('Делимое и делитель: ');
Read(Делимое,Делитель);

Еще одно кортежное присваивание
var (Частное,Остаток):=Divmod(Делимое,Делитель);
создает две переменные типа integer и распаковывает в них кортеж, возвращаемый функцией DivMod.

И только процедура вывода Writeln() написана без кортежа.
Чтобы показать, как можно использовать элементы кортежа без распаковки, вышеприведенный пример запишем иначе.

function DivMod(a,b:integer):=(a div b,a mod b);

begin
  var (Делимое,Делитель):=ReadInteger2('Делимое и делитель:');
  var t:=Divmod(Делимое,Делитель);
  Writeln('Частное = ',t[0],', остаток = ',t[1])
end.

Здесь t - кортеж типа (integer,integer). Присваивание одного кортежа другому делается обычным В обращении к элементам кортежа мы пользуемся синтаксисом, принятым для элементов массива, индексированных от нуля.

Понятно, что в кратком ответе невозможно описать все, что дают языку программирования кортежи. Закончить хочу примером того, как кортеж позволят обменять местами значения двух переменных:
(a,b):=(b,a);

И, поскольку Вы раньше задавали вопрос о лямбдах -вот она:

begin
  var DivMod:(integer,integer)->(integer,integer):=(a,b)->(a div b,a mod b);
  var (Делимое,Делитель):=ReadInteger2('Делимое и делитель:');
  var t:=DivMod(Делимое,Делитель);
  Writeln('Частное = ',t[0],', остаток = ',t[1])
end.
4,7(54 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ