Зайцев М. Г. / Отчет по практике 2 Зайцев 2 семестр
.docxОтчет по практике№2
Задача№1
Найти минимальное число из двух чисел x,y и занести в y.
program z1;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var x,y:Real;
begin
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
write('x = ');readln(x);
write('y = ');readln(y);
if x < y then
y:= x;
write('min(x,y) = ',y:6:2);
readln;
end.
Задача№2
Найти максимальное число из двух чисел x,y и занести в z.
program z2;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var x,y,z:Real;
begin
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
write('x = ');readln(x);
write('y = ');readln(y);
z:=y;
if x > y then
y:= x;
write('max(x,y) = ',z:6:2);
readln;
end.
Задача№3
Упорядочить значения переменных x,y в порядке возрастания их значений, так чтобы x<=y.
program z3;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
t,x,y: Real;
begin
write('x = ');readln(x);
write('y = ');readln(y);
if x > y then
begin
t:= y;
y:= x;
x:= t
end; // x <= y
write('x = ',x:6:2,' y = ',y:6:2);
readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
X = 2, Y = 3 |
X = 2,Y = 3 |
Левая ветвь IFTHEN |
2 |
X = 3, Y = 2 |
X = 2,Y = 3 |
Правая ветвь IFTHEN |
Задача№4
Реализовать функцию нахождения максимального из трёх чисел d = max(x, y, z).
program Pmax;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
Max,x,y,z: Real;
begin
write('x = ');readln(x);
write('y = ');readln(y);
write('z = ');readln(z);
if x < y then
Max:= y; //Max = max(x,y)
if Max < z then
Max:= z; //Max = max(x,y,z)
write('max(x,y,z) = ',Max:6:2);
readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
X = 3, Y = 2, Z = 1 |
X = 1,Y = 2, Z = 3 |
Левая, левая ветвь IFTHEN |
2 |
X = 1, Y = 2, Z = 3 |
X = 1,Y = 2, Z = 3 |
Правая, правая ветвь IFTHEN |
3 |
X = 2, Y = 1, Z = 3 |
X = 1,Y = 2, Z = 3 |
Левая, правая ветвь IFTHEN |
4 |
X = 1, Y = 3, Z = 2 |
X = 1,Y = 2, Z = 3 |
Правая, левая ветвь IFTHEN |
Задача№5
Упорядочить значения переменных x,y,z в порядке убывания их значений, так чтобы x>=y>=z.
program Preorder;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
x,y,z,t: Real;
begin
write('x = ');readln(x);
write('y = ');readln(y);
write('z = ');readln(z);
if x > y then
begin t:= x; x:= y; y:= t end;//x = min(x,y)
if x > z then
begin t:= x; x:= z; z:= t end;//x = min(x,y,z)
if y > z then
begin t:= y; y:= z; z:= t end;//x <= y <= z
write('x = ',x:6:2,' y = ',y:6:2,' z = ',z:6:2);
readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
X = 1, Y = 2, Z = 3 |
X = 1,Y = 2, Z = 3 |
Левая, левая, левая ветвь IFTHEN |
2 |
X = 3, Y = 2, Z = 1 |
X = 1,Y = 2, Z = 3 |
Правая, правая, правая ветвь IFTHEN |
3 |
X = 2, Y = 1, Z = 3 |
X = 1,Y = 2, Z = 3 |
Правая, левая, левая ветвь IFTHEN |
4 |
X = 3, Y = 1, Z = 2 |
X = 1,Y = 2, Z = 3 |
Правая, правая, левая ветвь IFTHEN |
5 |
X = 2, Y = 3, Z = 1 |
X = 1,Y = 2, Z = 3 |
Левая, правая, правая ветвь IFTHEN |
6 |
X = 1, Y = 3, Z = 2 |
X = 1,Y = 2, Z = 3 |
Левая, правая, левая ветвь IFTHEN |
7 |
X = 1, Y = 2, Z = 1 |
X = 1,Y = 2, Z = 3 |
Левая, левая, правая ветвь IFTHEN |
8 |
X = 4, Y = 1, Z = 3 |
X = 1,Y = 2, Z = 3 |
Правая, левая, правая ветвь IFTHEN |
Задача№6 Сформировать значение логической переменной следующим образом: True если точка с координатами (x,y) принадлежит прямоугольной области V на плоскости, False - в противном случае
program ex6;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var x,y:real;b:boolean;const x1=1;x2=5;y1=1;y2=5;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write('введите координату точки x= ');readln(x);
write ('введите координату точки y= ');readln(y);
if (x>=x1) and (x<=x2) then if (y>=y1) and (y<=y2) then b:=true
else b:=false;
writeln(' ',b); readln;
end.
начало
Введите x, y
(x>=x1) and (x<=x2)
(y>=y1) and (y<=y2)
b:=false
b:=true
Вывести b
Конец
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
X = 1, Y = 2 |
true |
Правая, правая IFTHENELSE |
2 |
X = 3, Y = 2 |
true |
Правая, правая IFTHENELSE |
3 |
X = -1, Y = 0 |
false |
Правая, левая IFTHENELSE |
Задача№7 Z = {max(x,y), при x < 0; min(x,y), при x >= 0}
program ex7;
{$APPTYPE CONSOLE}
uses
SysUtils;
var x,y,max,min:real;
begin
write('x= ');readln(x);
write('y= ');readln(y);
if x<0 then begin if x>y then max:=x else max:=y;
writeln('max: ',max);
end;
else begin if x<y then min:=x else min:=y;
writeln('min: ',min);
end;
readln;
end.
начало
x<0
x>y
max:=x
max:=y
x<y
min:=x
min:=y
Вывести результат
конец
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
X = 1, Y = 2 |
Min = 1 |
|
2 |
X = 3, Y = 2 |
Min = 2 |
|
3 |
X = -1, Y = 0 |
Max = 0 |
|
Задача№8 Переменной k присвоить номер квадранта координатной плоскости, в котором находится точка с координатами x, y, 0 – для начала координат, -1 – для оси X, -2 – для оси Y.
program ex8;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var x,y:real;k:integer;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write ('x= ');readln(x);
write ('y= ');readln(y);
if (x=0) and (y=0) then k:=0;
if (x=0) and (y<>0) then k:=-2;
if (y=0) and (x<>0) then k:=-1;
if (x>0) and (y>0) then k:=1;
if (x>0) and (y<0) then k:=4;
if (x<0) and (y<0) then k:=3;
if (x<0) and (y>0) then k:=2;
writeln (' ',k);
readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
X = 1, Y = 2 |
K = 1 |
Левая, левая, левая, правая |
2 |
X = -0.5, Y = -1.5 |
K = 3 |
Левая, левая, левая, левая, левая, правая |
3 |
X = -1, Y = 0 |
K = -1 |
Левая, левая, правая |
(x < 0) and (y > 0)
Л
И
k= 2
(x > 0) and (y > 0)
Л
И
k= 1
1
2
Л
И
3
(x < 0) and (y < 0)
k= 3
(x > 0) and (y < 0)
Л
И
k= 4
4
Л
И
k= -2
5
(x = 0) and (y > 0) or (y < 0)
Л
И
k= -1
6
(y = 0) and (x > 0) or (x < 0)
(x = 0) and (y = 0)
Л
И
k= 0
7
Задача№9 Преобразовать символ, изображающий р-ичную цифру в целое число
program PDigToNum;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
ch: Char;
n: integer;
begin
write('ch = '); readln(ch);
case ch of
'0'..'9': n:= Ord(ch) - Ord('0');
'A'..'F': n:= Ord(ch) - Ord('A') + 10;
'a'..'f': n:= Ord(ch) - Ord('a') + 10;
else n:= -1;
end;
write('n = ',n);
readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
ch = ‘0’ |
n = 0 |
первая ветвь case |
2 |
ch = ‘9’ |
n = 9 |
первая ветвь case |
3 |
ch = ‘A’ |
n = 10 |
вторая ветвь case |
4 |
ch = ‘F’ |
n = 15 |
вторая ветвь case |
5 |
ch = ‘a’ |
n = 10 |
третья ветвь case |
6 |
ch = ‘f’ |
n = 15 |
третья ветвь case |
7 |
ch = ‘w’ |
n = -1 |
четвёртая ветвь case |
Задача№10 Преобразовать число, соответствующее р-ичной цифре в соответствующий ей символ.
program ex10;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var m:char;x:integer;
begin
setconsolecp(1251);
setconsoleoutputcp(1251); write('введите число: '); readln(x);
m:='p';
if x=0 then m:='0';
if (x=1) then m:='1';
if (x=2) then m:='2';
if(x=3) then m:='3';
if (x=4) then m:='4';
if (x=5) then m:='5';
if (x=6) then m:='6';
if (x=7) then m:='7';
if (x=8) then m:='8';
if(x=9) then m:='9';
if x=10 then m:='A';
if x=11 then m:='B';
if x=12 then m:='C';
if x=13 then m:='D';
if x=14 then m:='E';
if x=15 then m:='F';
if x>16 then writeln('введите повторно ') else
writeln('символ, который соответствует числу: ',m);readln;
end.
program ex10;
{$APPTYPE CONSOLE}
uses
SysUtils,
windows;
var m:char;ch:integer;
begin
setconsolecp(1251);
setconsoleoutputcp(1251); write('введите число: '); readln(ch);
case ch of
0..9:m:=chr(ord(‘0’)+ch);
10..15:m:=chr(ord(‘A’)+ch-10);
Else
Writeln(‘введите число от 0 до 15 ');
End;
Writeln(‘m= ‘,m);
Readln;
End.
ch
0..9
10..15
n:= chr(Ord('0')+Ch )
writeln
n:= chr(Ord('A') + Ch - 10)
-
Какое значение будет иметь переменная z после выполнения операторов:
Z:= 0;
if x > 0 then if y > 0 then z:= 1 else z:= 2;
при x = y = 1; x = 1,y = -1;x = -1,y = 1.
X=1, y=1, => z=1
X=1, y=-1 => z=2
X=-1, y=1 => z=0
Л и
X>0
Z:=0
Л и
y>0
z := 2
z := 1