али5553
08.06.2021 03:05

1. Опиши алогоритм перемещения трехмерного объекта в Каким образом получить несколько копий объекта, расположенных на одинаковом расстоянии друг от друга?

3. Можно ли задать разные текстуры для одного трехмерного объекта? Если, да, то каким образом?

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Vikusyadubenko
01.10.2022 01:27
// PascalABC.NET 3.0, сборка 1088
const
  nDay:array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);
type
  Date=record
    Day,Month,Year:integer
  end;
 
function DOW(Dat:Date):integer;
// день недели по дате. 0-Вс. 1-Пн, 7-Сб
var
  a,y,m:integer;
begin
  With Dat do begin
    a:=(14 - month) div 12;
    y:=Year-a;
    m:=month+12*a-2;
    DOW:=(7000+(day+y+y div 4-y div 100+y div 400+(31*m) div 12)) mod 7
    end
end;

procedure DMY2Date(d,m,y:integer; var data:Date);
// Преобразует к дате заданные день, месяц и год
begin
  data.Day:=d; data.Month:=m; data.Year:=y
end;

procedure LastDays(month,year:integer; var Wd,Fr:Date);
// даты последней среды (Wd) и пятницы (Fr) для месяца в году }
var
  LastDay:Date;
  n:integer;
begin
  n:=nDay[month];
  if (month=2) and (year mod 4 = 0) then Inc(n);
  DMY2Date(n,month,year,LastDay);
  n:=DOW(LastDay); // номер последнего дня недели
  Wd.Month:=month; Wd.Year:=year;
  if n<3 then Wd.Day:=LastDay.Day-(n+4)
  else
    if n=3 then Wd.Day:=LastDay.Day
    else Wd.Day:=LastDay.Day+3-n;
  Fr.Month:=month; Fr.Year:=year;
  if n<5 then Fr.Day:=LastDay.Day-(n+2)
  else
    if n=3 then Fr.Day:=LastDay.Day
    else Fr.Day:=LastDay.Day-1
end;

var
  Wd,Fr:Date;
  ff,mf:Text;
  m:integer;
begin
  Assign(ff,'father.txt'); Rewrite(ff);
  Assign(mf,'mother.txt'); Rewrite(mf);
  // Сентябрь-декабрь 2015 года
  for m:=9 to 12 do begin
    LastDays(m,2015,Wd,Fr);
    if Odd(Wd.Day) then Writeln(mf,Wd.Day,'.',m,'.2015 - 1 класс')
    else Writeln(ff,Wd.Day,'.',m,'.2015 - 1 класс');
    if Odd(Fr.Day) then Writeln(mf,Fr.Day,'.',m,'.2015 - 5 класс')
    else Writeln(ff,Fr.Day,'.',m,'.2015 - 5 класс')
  end;
  // Январь - май 2016 года
  for m:=1 to 5 do begin
    LastDays(m,2016,Wd,Fr);
    if Odd(Wd.Day) then Writeln(mf,Wd.Day,'.',m,'.2016 - 1 класс')
    else Writeln(ff,Wd.Day,'.',m,'.2016 - 1 класс');
    if Odd(Fr.Day) then Writeln(mf,Fr.Day,'.',m,'.2016 - 5 класс')
    else Writeln(ff,Fr.Day,'.',m,'.2016 - 5 класс')
  end;
  Close(ff); Close(mf)
end.

Содержимое выходных файлов:
father.txt
30.9.2015 - 1 класс
28.10.2015 - 1 класс
30.10.2015 - 5 класс
30.12.2015 - 1 класс
24.2.2016 - 1 класс
26.2.2016 - 5 класс
30.3.2016 - 1 класс

mother.txt
25.9.2015 - 5 класс
25.11.2015 - 1 класс
27.11.2015 - 5 класс
25.12.2015 - 5 класс
27.1.2016 - 1 класс
29.1.2016 - 5 класс
25.3.2016 - 5 класс
27.4.2016 - 1 класс
29.4.2016 - 5 класс
25.5.2016 - 1 класс
27.5.2016 - 5 класс
0,0(0 оценок)
Ответ:
nastyabulgakov1
26.09.2022 07:54
Var
    A: array[1..100, 1..100] of integer;
    B: array[1..100]of integer;
    i, j, k, n, m, imax: integer;
    manual: boolean;

begin
    writeln('Ручной ввод (true/false)==>');
    read(manual);
    
    if manual then begin
        writeln('Размер массива n, m ==>');
        read(n, m);
    end
    else begin
        n := random(10) + 5;
        m := random(10) + 5;
    end;
    
    for i := 1 to n do
    begin
        writeln();
        for j := 1 to m do
        begin
            if manual then
                read(a[i, j])
            else begin
                a[i, j] := random(100) - 50;
                write(a[i, j]:3, ' ');
            end;
        end;
    end;
    
    writeln();
    writeln();
    
    for j := 1 to m do
        if j mod 2 = 1 then begin
            k := k + 1;
            b[k] := 1;
            for i := 1 to n do
                b[k] := b[k] * a[i, j];
            write(b[k], ' ');
        end;
    
    writeln();
    
    for i := 1 to k - 1 do
    begin
        imax := i;
        for j := i + 1 to k do
            if b[j] > b[imax] then
                imax := j;
        n := b[i];
        b[i] := b[imax];
        b[imax] := n;
    end;
    
    for i := 1 to k do
        write(b[i], ' ');
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота