Программирование линейных алгоритмов и разветвляющих алгоритмов
Принадлежность точки заданной области
Задание: Даны действительные числа х и у. Определить принадлежит ли точка с координатами (х, у) заштрихованной части плоскости.
Код программы
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var x,y: real;
begin
write('Vvod x, y: '); readln(x,y);
if (sqr(x) + sqr(y) < = 49) and (sqr(x) + sqr(y) >= 4) and (y <= 6/7 * x + 6) and (y <= -6/7 * x + 6) then
writeln('true') else
writeln('false');
readln;
{ TODO -oUser -cConsole Main : Insert code here }
end.
Простейшая арифметика
Задание:Дано трехзначное натуральное число, записанные в виде abcd, где a, b, c, d – соответствующие цифры числа. Найти ab + cd.
Код программы:
program Project2;
{ TODO -oUser -cConsole Main : Insert code here }
{$APPTYPE CONSOLE}
uses
SysUtils;
var n,a,b1,b,c1,c,d,f:integer;
begin
write('n='); read(n);
a:=n div 1000;
b1:=n mod 1000;
b:=b1 div 100;
c1:=b1 mod 100;
c:=c1 div 10;
d:=c1 mod 10;
writeln('a,b,c,d=' , a, b, c, d);
f:=a*b+c*d; writeln('f=' , f);
readln;
end.
Программирование циклических алгоритмов.
Вычисление сумм и произведений
Код программы:
program Project2;
{$APPTYPE CONSOLE}
uses SysUtils;
var k,x,m:integer; a,b,c,s,eps:real;
begin
write('x='); readln(x);
write('eps='); readln(eps);
a:=1; b:=1; m:=1; k:=1; s:=0; c:=1/2;
while abs(c) >= eps do
begin
s := s + c;
a := (x * x) * a;
b := b * k;
m := m * (-1);
c := (m * (a / (2 * b)));
k:=k+1;
writeln('s = ', s:10:3);
end;
readln;
end.
Обработка последовательностей
Код программы:
program Project2;
{$APPTYPE CONSOLE}
uses SysUtils;
var a,b,c,v:real; i,n:integer;
begin
{ TODO -oUser -cConsole Main : Insert code here }
write('n='); readln(n);
a:=0; c:=0; b:=1.5;
for i:=4 to n do
begin
v:=((i+1)/(i*i+1))*b-a*c;
c:=a; a:=b; b:=v;
end;
writeln('v[' , n , ']=', v:3:6);
readln;
end.
Целочисленная арифметика
Задание:Дано натуральное число n. Встречается ли в записи числа n2 цифры 3 и 5?
Код программы:
program Project2;
{ TODO -oUser -cConsole Main : Insert code here }
{$APPTYPE CONSOLE}
uses SysUtils;
var a,b,n,i,n1: integer;
begin
write('n= '); readln(n);
n1:=sqr(n);
while n>0 do
begin
if (n1 mod 10 = 3) and (n1 mod 10=5) then
n1:=n1 div 10;
end;
readln;
end.
Одномерные массивы
Формирование одномерных массивов
Задание:Дан символьный массив, состоящий из n элементов, среди которых имеются по – крайней мере две цифры. Сформировать новый массив из элементов, расположенных между максимальной и минимальной цифрами.
Код программы:
program Project2;
{$APPTYPE CONSOLE}
uses SysUtils;
const
D = ['0'..'9']; M = 10;
var
Arr : array[1..M] of Char;
i, IMin, IMax : Integer; S : String;
begin
repeat
Writeln('razmernost massiva (1..', M, ')');
IMin := 0; IMax := 0;
for i := 1 to M do
begin
Write('element ', i:2, ': '); Readln(Arr[i]);
if Arr[i] in D then
begin
if (IMin = 0) or (Arr[i] < Arr[IMin]) then IMin := i;
if (IMax = 0) or (Arr[i] > Arr[IMax]) then IMax := i;
end;
end;
if IMin = 0 then
Writeln('net takoy posledovatelnosti')
else
if IMin = IMax then
Writeln('net takoy posledovatelnosti', #13#10'Index Min = Index Max = ', IMin)
else
if IMin < IMax then
Writeln('poluchennaya posledovatelnost "', Copy(Arr, IMin + 1, IMax - IMin - 1), '"',#13#10'Index Min = ', IMin, ', Index Max = ', IMax)
else
Writeln('poluchennaya posledovatelnost "', Copy(Arr, IMax + 1, IMin - IMax - 1), '"',#13#10'Index Min = ', IMin, ', Index Max = ', IMax);