Главная Случайная страница


Категории:

ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника






Написать и оттестировать функцию. Функция получает символ, изображающий 16 - ичную цифру, возвращает соответствующее ему целое число.

Задача 1

Написать и оттестировать функцию. Функция получает символ, изображающий 16 - ичную цифру, возвращает соответствующее ему целое число.

 

program z1;

{$APPTYPE CONSOLE}

uses

SysUtils;

//----------описание функции------------

function DigToNum(ch: Char): integer;

begin

case ch of

'0'..'9': Result:= Ord(ch) - Ord('0');

'A'..'F': Result:= Ord(ch) - Ord('A') + 10;

'a'..'f': Result:= Ord(ch) - Ord('a') + 10;

else Result:= -1;

end;

end;

//------------------------------------------------

var

ch: Char;

n: integer;

begin

write('ch = '); readln(ch);

writeln('DigToNum(',ch,') = ',DigToNum(ch));

n:= DigToNum(ch);

writeln('DigToNum(',ch,') = ',n);

readln;

end.

 

 

 

Номер теста Исходные данные Ожидаемый результат Путь прохождения
ch = ‘0’ result = 0 первая ветвь case
ch = ‘9’ result = 9 первая ветвь case
ch = ‘A’ result = 10 вторая ветвь case
ch = ‘F’ result = 15 вторая ветвь case
ch = ‘a’ result = 10 третья ветвь case
ch = ‘f’ result = 15 третья ветвь case
ch = ‘w’ result = -1 четвёртая ветвь case

 

 


Задача 2

Написать и оттестировать функцию. Функция получает целое число, соответствующее 16 - ичной цифре, возвращает соответствующий ему символ.

 

program z2;

{$APPTYPE CONSOLE}

uses

SysUtils;

//----------описание функции------------

function NumToDig(d: integer): Char;

begin

case d of

0..9: Result:= Chr(d + Ord('0'));

10..15: Result:= Chr(d + Ord('A') - 10);

else Result:= Chr(0);

end;

end;

//-------------------------------------------------

var

n: integer;

s: string;

begin

write('n = '); readln(n);

writeln('PStr = ',NumToDig(n));

s:= NumToDig(n);

writeln('PDig = ',s);

readln;

end.

 
 

 


Номер теста Исходные данные Ожидаемый результат Путь прохождения
ch = 0 result = ‘0’ первая ветвь case
ch = 9 result = ‘9’ первая ветвь case
ch = 10 result = ‘A’ вторая ветвь case
ch = 15 result = ‘F’ вторая ветвь case
ch = 16 result = #0 вторая ветвь case

 

 


Задача 3

Написать и оттестировать функцию. Функция получает целое неотрицательное десятичное число, возвращает его р - ичное представление (p принадлежит интервалу от 2 до 16).

 

program z3;

{$APPTYPE CONSOLE}

uses

SysUtils;

 

//функция получает целое число, возвращает соответствующую ему цифру

function NumToDig(d: integer): Char;

begin

case d of

0..9: Result:= Chr(d + Ord('0'));

10..15: Result:= Chr(d + Ord('A') - 10);

else Result:= Chr(0);

end;

end;

 

//функция получает целое число, возвращает соответствующее p-ичное представление

function NumToPStr(n,p: integer): String;

var

b: cardinal;

begin

while n > p - 1 do

begin

b:= n mod p;

n:= n div p;

result:= NumToDig(b) + result;

end;

result:= NumToDig(n) + result;

end;

 

var

n: integer;

p: integer = 16;

s: String;

begin

write('n = '); readln(n);

writeln('PStr = ',NumToPStr(n,p));

s:= NumToPStr(n,p);

writeln('PStr = ',s);

readln;

end.

 

 

Номер теста Исходные данные Ожидаемый результат
n = 0, p = 2
n = 1, p = 2

 

Задача 4

Написать и оттестировать процедуру. Процедура, обменивает значениями три вещественных переменных a,b,c так, чтобы в результате их значения соотносились следующим образом: c<=b<=a.

 

program z4;

{$APPTYPE CONSOLE}

uses

SysUtils;

//----------описание процедуры--------------

procedure Exchange( var a,b: real);

var t: real;

begin

t:= a;

a:= b;

b:= t;

end;

//----------описание процедуры--------------

procedure Reorder3( var x,y,z: real);

begin

if x > y then

Exchange(x,y);//x = min(x,y)

if x > z then

Exchange(x,z);//x = min(x,y,z)

if y > z then

Exchange(y,z);//x <= y <= z

end;

 

var

x,y,z: Real;

begin

write('x = ');readln(x);

write('y = ');readln(y);

write('z = ');readln(z);

Reorder3(x,y,z);

write('x = ',x:6:2,' y = ',y:6:2,' z = ',z:6:2);

readln;

end.

 

Номер теста Исходные данные Ожидаемый результат Путь прохождения
X = 1, Y = 2, Z = 3 X = 1,Y = 2, Z = 3 Левая, левая, левая ветвь IFTHEN
X = 3, Y = 2, Z = 1 X = 1,Y = 2, Z = 3 Правая, правая, правая ветвь IFTHEN

 

 


Задача 5

Написать и оттестировать функцию. Функция получает три вещественных значения и возвращает наибольшее из них.

 

program z5;

{$APPTYPE CONSOLE}

uses

SysUtils;

//----------описание функции--------------

function max(a,b,c: integer): integer;

Var maxi:integer;

begin

maxi:=a;

If b>maxi then maxi:=b;

If c>maxi then maxi:=c;

max:= maxi

end;

 

var a, b, c: integer;

begin

write('3 4isla: ');

readln(a, b, c);

writeln('max: ', max(a,b,c));

readln;

end.

 

Номер теста Исходные данные Ожидаемый результат
X = 1, Y = 2, Z = 3 Max 3
X = 4, Y = 2, Z = 1 Max 4

 

 


Задача 6

Написать и оттестировать функцию. Функция получает два неотрицательных целых числа и возвращает их наибольший общий делитель (НОД).

 

program z6;

{$APPTYPE CONSOLE}

uses

SysUtils;

//----------описание функции--------------

function gcd(m, n: integer): integer;

var modulo: integer;

begin

modulo := m mod n;

if modulo = 0 then

gcd := n

else

gcd := gcd (n, modulo)

end;

 

var a, b, answer: integer;

begin

write('2 4isla: ');

readln(a, b);

answer := gcd(a, b);

writeln('NOD: ', answer);

readln;

end.

 

 

Номер теста Исходные данные Ожидаемый результат
X = 4, Y = 2 НОД 2
X = 6, Y = 3 НОД 3

 

 


Задача 7

Задача 8

Задача 9

Задача 10

Написать и оттестировать функцию. Функция получает неотрицательное десятичное целое значение и номер его разряда, возвращает значение разряда целого числа по номеру. Нумерация разрядов с права налево, начиная с 1.

 

program z10;
{$APPTYPE CONSOLE}

uses
SysUtils;

function razr(a, n: integer): integer;
Var b, i:integer;
Begin

b:=a;
i:=1;
While i<>n Do
Begin
b:=b div 10;
inc(i);
End;
n:=b mod 10 ;
razr:=n;
end;

var a, n: integer;
begin

writeln(‘vvedi chislo’);readln(a);

writeln(‘vvedi razryad’);readln(n);
write('4islo razr: ',razr(a,n));

readln;
end.

 

Задача 1

Написать и оттестировать функцию. Функция получает символ, изображающий 16 - ичную цифру, возвращает соответствующее ему целое число.

 

program z1;

{$APPTYPE CONSOLE}

uses

SysUtils;

//----------описание функции------------

function DigToNum(ch: Char): integer;

begin

case ch of

'0'..'9': Result:= Ord(ch) - Ord('0');

'A'..'F': Result:= Ord(ch) - Ord('A') + 10;

'a'..'f': Result:= Ord(ch) - Ord('a') + 10;

else Result:= -1;

end;

end;

//------------------------------------------------

var

ch: Char;

n: integer;

begin

write('ch = '); readln(ch);

writeln('DigToNum(',ch,') = ',DigToNum(ch));

n:= DigToNum(ch);

writeln('DigToNum(',ch,') = ',n);

readln;

end.

 

 

 

Номер теста Исходные данные Ожидаемый результат Путь прохождения
ch = ‘0’ result = 0 первая ветвь case
ch = ‘9’ result = 9 первая ветвь case
ch = ‘A’ result = 10 вторая ветвь case
ch = ‘F’ result = 15 вторая ветвь case
ch = ‘a’ result = 10 третья ветвь case
ch = ‘f’ result = 15 третья ветвь case
ch = ‘w’ result = -1 четвёртая ветвь case

 

 


Задача 2

Последнее изменение этой страницы: 2016-08-11

lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда...