Циклы. Тексты программ

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску

Вывод последовательностей 1 2 3 4 5 и 5 4 3 2 1

var i: integer;
begin
// С помощью for
  for i := 1 to 5 do
    write(i,' ');
  writeln;
  
  for i := 5 downto 1 do
    write(i,' ');
  writeln;
  writeln;
  
// С помощью while
  i := 1;
  while i<=5 do
  begin
    write(i,' ');
    i := i + 1;
  end;
  writeln;
  
  i := 5;
  while i>=1 do
  begin
    write(i,' ');
    i := i - 1;
  end;
  writeln;
  writeln;

// С помощью repeat
  i := 1;
  repeat
    write(i,' ');
    i := i + 1;
  until i>5;
  writeln;

  i := 5;
  repeat
    write(i,' ');
    i := i - 1;
  until i<1;
  writeln;
end.

Вывод последовательности 1 3 5 7 9

var i,x: integer;
begin
// С помощью for и промежуточной переменной
  x := 1;
  for i := 1 to 5 do
  begin
    write(x,' ');
    x := x + 2;
  end;
  writeln;
  
// С помощью for без промежуточной переменной
  for i := 1 to 5 do
    write(2*i-1,' ');
  writeln;
  
// С помощью while
  x := 1;
  while x<10 do
  begin
    write(x,' ');
    x := x + 2;
  end;
  writeln;
  
// С помощью repeat
  x := 1;
  repeat
    write(x,' ');
    x := x + 2;
  until x>=10;
end.

Сумма и произведение введенных чисел

Код на Pascal

var 
  i: integer;
  s,p: real;
  x: real;
begin
  writeln('Введите 10 чисел: ');
  s := 0;
  p := 1;
  for i := 1 to 10 do
  begin
    read(x);
    s := s + x;
    p := p * x;
  end;
  writeln('Сумма введенных чисел = ',s);
  writeln('Произведение введенных чисел = ',p);
end.

Код на PascalABC.NET

var 
  s,p: real;
begin
  writeln('Введите 10 чисел: ');
  s := 0;
  p := 1;
  for var i := 1 to 10 do
  begin
    var x: integer;
    read(x);
    s += x;
    p *= x;
  end;
  writeln('Сумма введенных чисел = ',s);
  writeln('Произведение введенных чисел = ',p);
end.

Вычисление n!

Код на Pascal

var 
  n,fact: integer;
  i: integer;
begin
  write('Введите n (n<=13): ');
  readln(n);
  fact := 1;
  for i := 2 to n do
    fact := fact * i;
  writeln(n,'! = ',fact);
end.

Код на PascalABC.NET

var n: integer;
begin
  write('Введите n (n<=13): ');
  readln(n);
  var fact := 1;
  for var i := 2 to n do
    fact *= i;
  writeln(n,'! = ',fact);
end.

Вычисление An

Код на Pascal

var 
  n,i: integer;
  a,p: real;
begin
  write('Введите a,n: ');
  readln(a,n);
  p := 1;
  for i := 1 to n do
    p := p * a;
  writeln(a,' в степени ',n,' = ',p);
end.

Код на PascalABC.NET

var 
  n: integer;
  a: real;
begin
  write('Введите a,n: ');
  readln(a,n);
  var p := 1.0;
  for var i := 1 to n do
    p *= a;
  writelnFormat('{0} в степени {1} = {2}',a,n,p);
end.

Вывод цифр числа

var x: integer;
  
begin
  write('Введите x: ');
  readln(x);
  write('Цифры числа x в обратном порядке: ');
  while x<>0 do
  begin
    write(x mod 10,' ');
    x := x div 10;
  end;
end.

Вывод букв английского алфавита

var c: char;
  
begin
  for c := 'a' to 'z' do
    write(c,' ');
  writeln;  
  c := 'A';
  while c<='Z' do
  begin
    write(c,' ');
    c := succ(c);
  end;
end.

Числа Фибоначчи

Код на Pascal

const n = 25;

var 
  a,b,c: integer;
  i: integer;  
  
begin
  a := 1;
  b := 1;
  write(a,' ',b,' ');
  for i := 3 to n do
  begin
    c := a + b;
    write(c,' ');
    a := b;
    b := c;
  end;
end.

Код на PascalABC.NET

const n = 25;

begin
  var a := 1;
  var b := 1;
  write(a,' ',b,' ');
  for var i := 3 to n do
  begin
    var c := a + b;
    write(c,' ');
    a := b;
    b := c;
  end;
end.

Минимум из введенных

Код на Pascal

const n = 10;

var  
  min: integer;
  x: integer;
  i: integer;
  
begin
  writeln('Введите ',n,' значений: ');
  read(x);  
  min := x;  
  for i := 2 to n do
  begin
    read(x);
    if x<min then
      min := x;
  end;
  writeln('Минимальное значение = ',min);
end.

Код на PascalABC.NET

const n = 10;

var min: integer;

begin
  writelnFormat('Введите {0} значений: ',n);
  min := integer.MaxValue;  
  for var i := 1 to n do
  begin
    var x: integer;
    read(x);
    if x<min then
      min := x;
  end;
  writeln('Минимальное значение = ',min);
end.

Алгоритм Евклида поиска НОД

begin
  var (a,b) := ReadInteger2('Введите a,b: ');  
  while b<>0 do
  begin
    var c := a mod b;
    a := b;
    b := c;
  end;
  Writeln('Наибольший Общий Делитель = ',a);
end.

Вывод таблицы умножения

Код на PascalABC.NET

const n = 9;

begin
  for var i:=1 to n do
  begin
    for var j:=1 to n do
      write(i*j:4);
    writeln;  
  end;
end.

Определение простоты числа

begin
  var N := ReadlnInteger('Введите целое (>1): ');

  var IsPrime := True;
  for var i:=2 to Round(Sqrt(N)) do // если число составное, то один из его сомножителей <= sqrt(N) 
    if N mod i = 0 then
    begin
      IsPrime := False;
      break;
    end;
  
  if IsPrime then
    Writeln('Число ',N,' простое')
  else Writeln('Число ',N,' составное');  
end.

Ссылки