Циклы. Тексты программ: различия между версиями
Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
Mikst (обсуждение | вклад) |
Mikst (обсуждение | вклад) |
||
Строка 276: | Строка 276: | ||
=== Алгоритм Евклида поиска НОД === | === Алгоритм Евклида поиска НОД === | ||
<source lang="Delphi">var a,b | <source lang="Delphi">begin | ||
var (a,b) := ReadInteger2('Введите a,b: '); | |||
while b<>0 do | while b<>0 do | ||
begin | begin | ||
c := a mod b; | var c := a mod b; | ||
a := b; | a := b; | ||
b := c; | b := c; | ||
end; | end; | ||
Writeln('Наибольший Общий Делитель = ',a); | |||
end.</source> | end.</source> | ||
Текущая версия от 00:01, 22 января 2019
Вывод последовательностей 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.