Зайцев М. Г. / отчет практика 3 Зайцев 2 семестр
.doc2.Посчитать количество цифр k в десятичной записи целого неотрицательного n, используя цикл DOUNTIL, WHILEDO.
program z2wd;
{$APPTYPE CONSOLE}
uses
SysUtils,windows;
var n: integer;
k: byte;
begin
write('n='); readln(n);
if n=0 then k:=1;
while n>=1 do
begin
inc(k);
n:=n div 10;
end;
writeln(k);
readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
n = 15 |
2 |
Цикл выполняется |
2 |
n = 5 |
1 |
Цикл не выполняется |
3 |
n = 1589 |
4 |
Цикл выполняется |
k:=1
inc(k); n:=n
div 10;
4. Сформировать строку, содержащую двоичное представление неотрицательного целого числа.
program problem;
{$APPTYPE CONSOLE}
uses
SysUtils,windows;
var
sDv: string;
iMod, iDch, iDchr :integer;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
Write('десятичное число: ');
Readln(iDch);
iDchr := iDch;
while iDch >= 2 do
begin
iMod := iDch mod 2;
iDch := iDch div 2;
sDv := IntToStr(iMod) + sDv;
end;
sDv := IntToStr(iDch) + sDv;
Writeln(iDchr, '(10) = ', sDv, '(2)');
Readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
2 |
10 |
|
2 |
8 |
1000 |
|
3 |
1569 |
11000100001 |
|
iDchr:=iDch;
iMod
:= iDch mod 2; iDch
:= iDch div 2; sDv
:= IntToStr(iMod) + sDv;
sDv
:= IntToStr(iDch) + sDv;
14. Найти максимальное значение r среди разрядов целого числа a. Например, а = 12543, r = 5.
uses SysUtils, windows; var m,n,max:integer; begin setconsolecp(1251); setconsoleoutputcp(1251); repeat write('n= '); readln(n); until n>0; m:=n; while m div 10 >0 do begin if m mod 10 > max then begin max:=m mod 10;
end; m:=m div 10; end; writeln( 'max= ',max ); readln; end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
145879 |
9 |
|
2 |
156 |
6 |
|
16. Найти сумму s значений разрядов целого числа a. Например, а = 12543, s = 15.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,windows;
var a,x:integer;
i,s:integer;
begin
setconsolecp(1251);
setconsoleoutputcp(1251);
write('введите целое число ');
readln( a ); x:=a;
s:=0;
while ( x<>0 ) do
begin
s := s + (x mod 10);
x := x div 10;
end;
writeln( 'Сумма разрядов числа ',a,' = ', s );
readln;
end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
7856 |
26 |
|
2 |
123 |
6 |
|
x:=a;
s:=0;
s
:= s + (x mod 10); x
:= x div 10;
18. Найти номер разряда, в котором находится максимальное значение r среди разрядов целого числа a. Разряды числа, пронумерованы справа налево, начиная с единицы. Например, а = 12543, r = 3.
uses SysUtils, windows; var m,n,max,i,kol,pos:integer; begin setconsolecp(1251); setconsoleoutputcp(1251); repeat write('n= '); readln(n); until n>0; m:=n; kol:=1; while m div 10 >0 do begin kol:=kol+1; m:=m div 10; end; max:=-1; pos:=1; m:=n;
for i:=kol downto 1 do begin if m mod 10 > max then begin max:=m mod 10; pos:=i; end; m:=m div 10; end; writeln( 'max= ',max, 'pos= ', pos ); readln; end.
Номер теста |
Исходные данные |
Ожидаемый результат |
Путь прохождения |
1 |
7856 |
8 |
|
2 |
123 |
3 |
|