Конвертация кода С++ в паскаль - Pascal ABC

  1. Здравствуйте, нужно переконвертировать код с++ в паскаль. Спасибо за помощьC++1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 #include <iostream> #include <cstddef> #include <cstdlib> #include <ctime>   int main() {    const size_t m = 3;    const size_t n = 4;      int matrix[m][n];      std::srand(std::time(NULL));    for(size_t i = 0; i < m; ++i)    {       for(size_t j = 0; j < n; ++j)       {      matrix[i][j] = std::rand() % 10 - 5;      std::cout.width(4);      std::cout << matrix[i][j];       }       std::cout << "\n";    }      size_t cnt = 0;      for(size_t j = 0; j < n; ++j)    {       if(matrix[0][j] != 0)       {            bool q = matrix[0][j] > 0;      for(size_t i = 1; i < m; ++i)         if((matrix[i][j] == 0) || ((matrix[i][j] > 0) != q))            goto SKIP_LABEL;                ++cnt;       }      SKIP_LABEL:;    }      std::cout << "result: " << cnt << "\n"; }


textual

Код:

const m=3; n=4;
label SKIP_LABEL;
var
  matrix: array [1..m,1..n] of integer;
  i, j, cnt: integer;
  q: boolean;
begin
  Randomize;
  for i:=1 to m do begin
    for j:=1 to n do begin
      matrix[i,j]:=Random(10)-5; Write(matrix[i,j]:4);
    end; WriteLn;
  end;
  cnt:=0; { глобальную переменную можно нулем не инициализировать }
  for j:=1 to n do begin
    if matrix[1,j]<>0 then begin
      q:=matrix[1,j]>0;
      for i:=1 to m do
        if (matrix[i,j]=0) or ((matrix[i,j]>0)<>q) then
          goto SKIP_LABEL;
      inc(cnt);
    end;
SKIP_LABEL:
  end;
  WriteLn('result: ',cnt);
end.


Похожие ответы
  1. Задача. Маша попала в уборную в торговом центре и решила поиграть с умывальниками. Умывальники расположены в ряд, в каждом из них либо течет вода, либо не течёт. За один раз Маша выбирает несколько подряд стоящих умывальников, открывает краны там, где вода не текла и закрывает там, где вода текла. Маше показалось скучным менять состояния всех подряд идущих умывальников, поэтому каждый раз она меняет состояния либо всех чётных, либо всех нечетных умывальников на подотрезке. Ваша задача – определить состояния всех умывальников после того, как Маша закончит играть.Формат вводаВ первой строке через пробел даны два целых числа n и m – количество умывальников и количество запросов, 1≤n,m≤2⋅10^5. В следующих m строках даны описания запросов. В i-й строке даны три целых числа a, b и c, где [a,b] – подотрезок на котором Маша будет менять состояние умывальников ( 1≤a,b≤n), а c – четность умывальников ( c=0 или 1). Если c=0, значит Маша меняет состояние всех чётных умывальников, а если c=1 – всех нечетных. Четность умывальника определяется от начала всего массива. Первый умывальник нечётный, второй – чётный и так далее. Изначально, во всех умывальниках вода не течет.Формат выводаВыведите через пробел состояния всех умывальников после того, как Маша закончит играть.Мой код program umivalniki; var N, M, a, b, c: integer; s: string; begin readln(N, M); for l: integer := 1 to N do s:=s+'0'; for z: integer := 1 to M do begin readln(a, b, c); for i: integer := a to b do if c=0 then begin if i mod 2 = 0 then if s[i]='0' then s[i]:='1' else s[i]:='0'; end else begin if i mod 2 = 1 then if s[i]='0' then s[i]:='1' else s[i]:='0'; end; end; for i: integer := 1 to n do write(s[i], ' '); end.Как его оптимизировать?

  1. Помогите перевести код на паскаль.C++1 2 3 4 5 6 7 8 9 10 #include #include int main(){  double x;  std::cin>>x;  if(x>0) std::cout<<68.1*tan(x); else  if(x<0) std::cout<>0.5;  std::cin.get(); }

  1. Кто знает как помогите)C#1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class Program {     static void Main(string[] args)     {         double[] array = new double[] { 1, 3, 7, 1, 7, 3 };           Console.WriteLine("Исходный массив: " + string.Join(" ", array));           double min = array[0];           foreach (double i in array)             if (i < min)                 min = i;           for (int i = 0; i < array.Length; i++)             if (array[i] == min)                 array[i] = -min;           Console.WriteLine("Измененный массив: " + string.Join(" ", array));         Console.ReadKey();     } }

  1. Можно ли так писать? while (b[3]<>b1[3]) and (b[2]<>b1[2]) and (b[1]<>b1[1]) do begin?Добавлено через 9 минут Сообщение от Arxans Можно ли так писать? while (b[3]<>b1[3]) and (b[2]<>b1[2]) and (b[1]<>b1[1]) do begin? (b,b1:array[1.100] of integer

  1. Pascal1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 var a:array[1..20] of integer;     i,j,n,m,c:integer; begin   writeln('Элементов:');readln(n);   for i:=1 to n do   begin     writeln('a[',i,']=');readln(a[i]);     end;     for i:=1 to n-1 do     begin       m:=i;       for j:=i+1 to n do         if a[j]

  1. Здравствуйте. Данная тема уже обсуждалась на форуме, однако и после её прочтения, у меня не получилось выполнить моё задание. Мне необходимо привести русские и английские буквы к верхнему регистру. По сути для этого используется следующая процедура:

  1. Составить программу,которая выводит на экран все символы международной страницы кода

  1. Только учу паскаль, прошу помощи ! Вроде бы что то написал, но не уверен что правильно, в результате выводит только первые символы слов, помогите ! Нужно ввести строки, и отсортировать их в алфавитном порядке с использованием ASCII кода

  1. Delphi1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 procedure TForm1.Button1Click(Sender: TObject); const n=8; var x:array[1..n] of real;     y,z:array[1..n,1..n] of real;     i,j:byte; begin randomize; for i:=1 to n do  begin   x[i]:=1+3*random;   stringgrid1.Cells[i-1,0]:=floattostrF(x[i],ffFixed,6,3);   y[1,i]:=x[i];   stringgrid2.Cells[i-1,0]:=floattostrF(y[1,i],ffFixed,6,3);   z[1,i]:=1;   stringgrid3.Cells[i-1,0]:=floattostrF(z[1,i],ffFixed,6,3);  end; for i:=2 to n do for j:=1 to n do  begin   y[i,j]:=y[i-1,j]*x[j];   stringgrid2.Cells[j-1,i-1]:=floattostrF(y[i,j],ffFixed,6,3);   z[i,j]:=z[i-1,j]*x[j];   stringgrid3.Cells[j-1,i-1]:=floattostrF(z[i,j],ffFixed,6,3);  end; end;