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

Как программируется цикл с предусловием на паскале? почему алгоритм вычисления n! должен быть циклическим ? что такое формализация ?

👇
Ответ:
SAVAAVAAS
SAVAAVAAS
16.06.2022
1. while <условие> do
        begin
              <действие>
              <действие>
             .......
        end;
2. Не обязательно, например, можно это сделать рекурсивно:
     1. \ var \ n:integer; \\ &#10;2. \ function \ fact(j:integer):integer; \\ &#10;3. \ \ \ \ begin \\ &#10;4. \ \ \ \ \ \ \ if \ (j=1) \ or \ (j=0) \ then \ fact:=1 \\ &#10;5. \ \ \ \ \ \ \ else \ fact:=j*fact(j-1); \\ &#10;6. \ \ \ \ end; \\ &#10;7. \ begin \\ &#10;8. \ \ cls; \\ &#10;9. \ \ write('Vvedite \ n='); \\ &#10;10. \ \ readln(n); \\ &#10;11. \ \ writeln('n!=',fact(n)); \\ &#10;12. \ end.
3. создание математической модели данной задачи, (гyгл в
4,5(83 оценок)
Открыть все ответы
Ответ:
allonso
allonso
16.06.2022
1. В "реальном мире" это решается примерно так:

// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
begin
  var a:=ArrRandom(ReadInteger('n='),0,2); a.Println;
  a.Sorted.Println
end.

Тестовое решение:
n= 15
1 2 0 2 2 0 2 0 2 0 0 1 0 0 2
0 0 0 0 0 0 0 1 1 2 2 2 2 2 2

2. Но, поскольку считается, что школьникам больше заняться нечем, их заставляют писать примерно в таком стиле (и время займет, и ощибок понаделают):

// PascalABC.NET 3.1, сборка 1198 от 11.03.2016
const
  nn=100;
var
  i,j,n,t:integer;
  a:array[1..nn] of integer;
begin
  Write('n='); Read(n);
  Randomize;
  for i:=1 to n do begin
    a[i]:=Random(3);
    Write(a[i],' ')
    end;
  Writeln;
  for i:=1 to n-1 do
    for j:=1 to n-1 do
      if a[j]>a[j+1] then begin
        t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t
        end;
  for i:=1 to n do Write(a[i],' ');
  Writeln;
end.

Тестовое решение:
n=15
0 1 1 0 2 1 0 2 1 2 1 0 0 2 0
0 0 0 0 0 0 1 1 1 1 1 2 2 2 2
4,5(50 оценок)
Ответ:
helpmeplease24
helpmeplease24
16.06.2022
//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016)
function
Transpose(a: array[,] of integer): array[,] of integer;
//Поворот на 90гр по часовой стрелке
begin
  var m := Length(a, 0);
  var n := Length(a, 1);
  Result := new integer[n, m];
  for var i := 0 to n-1 do begin
    for var j := 0 to m-1 do
      Result[i, j] := a[m-1-j, i];
  end;
end;

begin
  var n := ReadInteger('Введите n:');
//Заполнение матрицы NxN сл. числами и вывод на экран
  var a :=MatrixRandom(n, n);
  for  var i:=0 to n-1 do begin
    for var j:=0 to n-1 do
      Print(a[i,j]);
    println;
    end;
     println;

  Println('поворот влево на 90 гр');
  var b := Transpose(a);
  b:=Transpose(b);
  b:=Transpose(b);
  for  var i:=0 to n-1 do begin
    for var j:=0 to n-1 do
      Print(b[i,j]);
    println;
    end;
  println;

  Println('поворот вправо на 90гр');
  b := Transpose(a);
  for  var i:=0 to n-1 do begin
    for var j:=0 to n-1 do
      Print(b[i,j]);
    println;
    end;
 println;

 Println('поворот на 180 гр');
  b := Transpose(a);
  b := Transpose(b);
  for  var i:=0 to n-1 do begin
    for var j:=0 to n-1 do
      Print(b[i,j]);
    println;
    end;
end.
4,5(86 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ