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

Завдання 6:

  1. Змініть програму так, щоб можна було обробляти цілі числа з діапазону Longint.

  2. Замініть цикл for у програмі, на цикли While і Repeat ...Until

Задача 16:

Дано натуральне число n. Потрібно підрахувати кількість цифр цього числа.

Розв'язання: Підрахунок цифр розпочнемо з останньої цифри числа. Число ділимо на 10, прибираючи останню цифру і так далі. Нехай m – це число, n - лічильник цифр.

Program ex2;

var

m,n : Longint;

k : Integer;

begin

writeln(‘введіть ціле число’);

readln(n); m:=n; k:=0;

While m< >0 Do

begin Inc(k); m:=m Div 10 end;

writeln (‘У числі’,n,’ - ‘,k,’ цифр ‘);

end.

Завдання 7.

Модифікуйте програму ех2, вирішіть наступні завдання:

  1. знайдіть суму цифр числа;

  2. знайдіть першу цифру числа;

  3. змініть порядок цифр числа на обернений;

  4. знайдіть кількість парних цифр числа

  5. знайдіть найбільшу цифру числа;

  6. знайдіть суму цифр числа, більшу за 5;

  7. Дайте відповідь на питання, скільки разів ця цифра зустрічається в числі Задача 17:

Натуральне число р називається простим, якщо воно ділиться тільки на 1 і на себе. За угодою 1 не вважають простим числом. Початок послідовності простих чисел має вигляд: 2,3,5,7,11,13, 17, 19, 23, ....

Розв'язання: У програмі ех3 визначається, чи є це число простим. Ми шукаємо дільники числа n в інтервалі від 2 до n div 2, хоча можна було б обмежитися інтервалом від 2 до цілої частини √n

program ex3;

Var

i, n :Longint;

Begin

Writeln(‘Введіть натуральне число’);

Readln(n);

i:=1;

Repeat

inc(i)

Until (i>n div 2) or (n mod i = 0);

if i> n div 2 Then Writeln(‘число ’,n,’просте’);

Еlse Writeln(‘Число ‘,i,’- перший дільник

числа’, n, ‘ , більший за 1’);

end.

Завдання 8

  1. Розв'яжіть задачу з використанням оператора While.

  2. Змініть програму так, щоб в ній здійснювалося виведення усіх дільників числа n.

Підказка. Логічний вираз у операторі Repeat....Until спроститься, а залишиться тільки умова i>n div 2, а в тілі циклу з'явиться оператор

if n mod i = 0 Then Writeln(....,i).

Вкадені цикли.

Для вирішення завдач досить часто вимагається використати дві і більше циклічні конструкції, одна з яких розташована усередині іншої(інших). Такі конструкції називають вкладеними циклами. Які саме цикли при цьому використовуються, ролі не грає, вони можуть бути організовані за допомогою будь-яких розглянутих раніше операторів (For, While, Repeat ... Until).

Задача 18

Скільки можна купити биків, корів і телят, якщо бик коштує 10 рублів, корову - 5 рублів, теля - полтинник(0,5 рубля), за умови, що на 100 рублів потрібно купити 100 голів худоби.

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

Позначимо через b- кількість биків, k - кількість корів, t - кількість телят. Після цього можна записати два рівняння: 10b+5k+0,5t=100 і b+k+t=100 Перетворимо їх: 20b+10k+t=200 и b+k+t=100 На 100 рублів можна купити: •

не більше 10 биків, т.е. 0<=b<=10;

• не більше 20 корів, т.е. 0<=k<=20;

• не більше 200 телят, т.е. 0<=t<=200;

Таким чином отримуємо:

Program skot;

Var

b,k,t : integer;

Begin

For b:=0 to 10 do

For k:=0 to 20 do

For t:=0 to 200 do

if (20*b+10*k+t=200) and (b+k+t=100) then

writeln(‘биків ‘,b,‘ корів ’,k,’ телят ’,t);

end.

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