Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
samost_pascal_delphi_2012.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.33 Mб
Скачать

Задача 12.

Знайти найбільший спільний дільник (НСД) двох чисел. НСД - це найбільше ціле число, на яке діляться без остачі обидва числа.

Розв'язання: Задані числа а і b, для чисел а і b виконується рівність НОД(а,b)=НОД(b,r), где r–остача від ділення а на b . r= a mod b=a- (a div b)*b

Наприклад, нехай а=48, b=18.

A

b

Результаты

48

18

48 mod 18 = 12

18

НОД(48,18)=НОД(12,18)

12

18 mod 12 = 6

НОД(12,18)=НОД(12,6)

12 mod 6 = 0

6

НОД(12,6)=НОД(0,6)

0

6

НОД(0,6)=6

Program NOD;

var

a,b:longint;

begin

writeln(‘введите два числа’);

readln(a,b);

REPEAT

if a>b then a:=a mod b else b:=b mod a

UNTIL (a=0) or (b=0);

writeln(‘НОД=’, a+b);

readln;

end.

Задача 13.

Написати програму на вгадування числа із заданою кількістю спроб.

Розв’язання:

program ugaday;

var npop,comp,igrok,n:integer;

begin

randomize;

comp:=random(50)+1;

writeln('вгадай число від 1 до 50 ');

writeln('введіть кількість спроб);

readln(npop);

while (n<npop) and (comp <> igrok) do

begin

write('введіть число -> ');

readln(igrok);

if comp<igrok then writeln ('меньше');

if comp>igrok then writeln('більше');

n:=n+1;

end;

if comp = igrok

then writeln('вы вгадали за ',n,' спроб')

else writeln('вы не вгадали, комп'ютер загадав число',comp);

end.

Завдання 4:

  1. Модифікуйте дану програму так, щоб використати оператор з після умовою

  2. Модифікуйте дану програму так, щоб використати оператор з параметром.

Задача 14. (Таблиця функції Y=X2)

program tablf;

var x,y:integer;

n:integer;

begin

write('|');

for n:=1 to 35 do

write('-');

write('|');

writeln;

writeln('| ТАБЛИЦЯ ЗНАЧЕНЬ ФУНКЦІЇ |');

write('|');

for n:=1 to 35 do

write('-');

write('|');

writeln;

writeln('| X | У |');

write('|');

for n:=1 to 35 do

write('-');

write('|');

writeln;

for x:=1 to 10 do

begin

у:=x*x;

writeln('| ',X:2,' | ',Y:2,' |');

end;

write('|');

for n:=1 to 35 do

write('-');

write('|');

writeln;

end.

Завдання 5:

  1. Модифікуйте дану програму так, щоб використати оператор з перед умовою

  2. Модифікуйте дану програму так, щоб використати оператор з після умовою

  3. Модифікуйте дану програму так, щоб обчислювати функцію: y=4x2-3x+5

Задача 15:

Дано натуральне число n (n<=9999). Визначити, чи є воно палиндромом ("перевертышем"), з урахуванням чотирьох цифр. Наприклад, палиндромами являються числа: 2222, 6116, 0440.

Нехай, у нас чотиризначне число, тому змінна оператора, оператора For змінюється від 1 до 4. У змінній m зберігається "залишок" числа, спочатку він дорівнює введеному числу. У змінній з ім'ям r формуємо значення числа - "перевертыша". Основними операціями є: r:=10*r + m Mod 10 m:=m Div 10.

Результат трасування приведений в таблиці:

i

m

r

-

3994

0

1

399

0*10+3994 mod 10= 0+4=4

2

39

4*10+399 mod 10=40+9=49

3

3

49*10+39 mod 10=490+9=499

4

0

499*10+3 mod 10=4990+3=4993

Program ex1;

Var

n,m,r,i : Integer;

Begin

writeln(‘Введіть ціле число, менше ніж 10000’);

readln(n);

m:=n; r:=0;

For i:=1 to 4 do

begin

r:=r*10+m mod 10; m:=m Div 10;

end;

if r=n Then Writeln(‘Да’);

Else Writeln(‘Нет’);

readln;

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]