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

Из труб длиной 25 м требуется нарезать трубы длиной 8, 12 и 16 м в количестве 100, 50 и 30 соответственно. определить план раскроя с минимальными , изрезав не более 80 труб.

Показать ответ
Ответ:
Yuliaferyuo
Yuliaferyuo
02.04.2021 23:06
Const n=20;
type omas=array[1..n] of integer;
Procedure Del (var z:omas; k:byte); 
var i:byte; 
begin 
for i:=k to n-1 do z[i]:=z[i+1]; 
z[n]:=0; 
end; 
var a:omas; i,b:integer;
begin
Randomize;
for i:=1 to n do
 begin
 a[i]:=random(20);
 write(a[i]:4);
 end;
writeln;
b:=6;
i:=1;
while (i<=n)and(a[i]<>b) do i:=i+1;
if i<=n then
  begin
  Del(a,i);
 writeln('Размерность массива = ',n-1);
 for i:=1 to n-1 do write(a[i]:4);
 writeln;
 end  else writeln('Массив не изменился');
end.
Пример:
  12  13   6   7  17   1  18  17   3   2  12   3  16   6   7  13   0   2   5  18
Размерность массива = 19
  12  13   7  17   1  18  17   3   2  12   3  16   6   7  13   0   2   5  18
0,0(0 оценок)
Ответ:
SaneckTupit
SaneckTupit
05.07.2021 14:31
1. Вариант современного решения на современной версии языка Паскаль

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

begin
  var a:array[,] of integer:=(
      ( 2, 1,-1, 4),
      (-3, 1,-4, 1),
      ( 2, 1, 2, 3),
      ( 2, 2, 5, 4),
      (-3,-1,-3, 1));
  Writeln('*** Исходная матрица ***');
  a.Println(3); Writeln(3*a.ColCount*'-');
  var s:=a.Col(2).Where(x->Abs(x)<=3);
  Writeln('Элементов ',s.Count,', их сумма равна ',s.Sum)
end.

Результат
*** Исходная матрица ***
  2  1 -1  4
 -3  1 -4  1
  2  1  2  3
  2  2  5  4
 -3 -1 -3  1

Элементов 3, их сумма равна -2

2. Вариант решения "Так писали наши дедушки и так нас учат в школе"

const
  m=5;
  n=4;
  a:array[1..m,1..n] of integer=(
      ( 2, 1,-1, 4),
      (-3, 1,-4, 1),
      ( 2, 1, 2, 3),
      ( 2, 2, 5, 4),
      (-3,-1,-3, 1));

procedure SumCol(m,k:integer; var p,s:integer);
  var
    i:integer;
  begin
    s:=0; p:=0;
    for i:=1 to m do
      if Abs(a[i,k])<=3 then begin
        s:=s+a[i,k];
        p:=p+1
        end
  end;

var
  i,j,kol,sum:integer;
 
begin
  Writeln('*** Исходная матрица ***');
  for i:=1 to m do begin
    for j:=1 to n do Write(a[i,j]:3);
    Writeln
    end;
  for i:=1 to n do Write('---');
  Writeln;
  SumCol(m,3,kol,sum);
  Writeln('Элементов ',kol,', их сумма равна ',sum)
end.

Результат
*** Исходная матрица ***
  2  1 -1  4
 -3  1 -4  1
  2  1  2  3
  2  2  5  4
 -3 -1 -3  1

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