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

Приклад програм з оператором While та Repeat

Задача 1.

Дано натуральне число N. Визначити кількість цифр у числі.

Текст програми:

Program E3;

Uses crt;

Var N: integer; k: integer;

Begin

Clrscr;

Write('Введіть число: ');

Readln(N);

k:= 0;

While N > 0 do Begin

k:=k+1; {Підрахунок кількості цифр}

N:=N div 10; {Відкидання останньої цифри}

End;

Writeln('Кількість цифр у наданому числі дорівнює', k);

Readkey; End.

Задача 2

Обчислити значення функції на проміжку [-5;5] з кроком 0,2

Y= 5x, якщо х<0,

10x, якщо x>=0

Текст програми:

Оператор повторення while

Оператор повторення repeat

Program xxx;

Var x,y:real;

Begin

X:=-5; (початкове значення х)

While x<=5 do begin

If x < 0 then y:= 5* x else y:= 10*x;

Writeln(‘x=’,x:8:2, ‘y=’,y:8:2)

X:=x+0.2 (збільшення значення х на величину крока 0,2)

End;

Readln;

End.

Program xxx1;

Var x,y:real;

Begin

X:=-5;

Repeat

If x < 0 then y:= 5* x else y:= 10*x;

Writeln(‘x=’,x:8:2, ‘y=’,y:8:2)

X:=x+0.2

Until x>5

Readln;

End.

Задача 3

Знайти суму елементів послідовності, які більші заданого числа d.

Розв’язок: Тут краще використати цикл з параметром For. Ми знаємо скільки разів він буде виконуватись.

Текст програми:

Program pr1;

Var s, d, a:real;

I, N:integer;

Begin

Writeln (‘введіть кількість елементів’); (виведення на екран підказки)

Readln(n); (введення кількості елементів)

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

Readln(d); (введення значення числа d)

S:=0; (занулення суми)

For i:=1 to n do begin (початок циклу)

Writeln(‘Введіть елемент послідовності’); (виведення на екран підказки)

Readln(a); (введення значення а)

If a > d then s:=s+a; (знаходження суми елементів більших за d)

End;

Writeln(‘s=’,s:8:2); (виведення відповіді)

Readln; (при зупинка виведення)

End.

Задача 4.

Знайти добуток непарних від’ємних членів послідовності.

Текст програми:

Program pr2;

Var d, a:real;

I, N:integer;

Begin

Writeln (‘введіть кількість елементів’);

Readln(n);

d:=1; (початкове значення добутку)

For i:=1 to n do begin

Writeln(‘Введіть елемент послідовності’);

Readln(a);

If a mod 2 < > 0 then d:=d*a; (знаходження добутку непарних елементів )

End;

Writeln(‘d=’,d:8:2);

Readln;

End.

Задача 5.

Знайти суму всіх тризначних чисел, кратних 123.

Текст програми:

Program r123;

Var I, S:integer;

Begin

S:=0;

For I:=123 to 999 do

If I mod 123=0 then S:=S+I;

Writeln(‘S=’,S);

Readln;

End.

Задача 6.

У числі 333** дописати справа дві цифри так, щоб дане число ділилося на 55.

Розвязок:

Program r333;

Var I:longint;

Begin

For I:=33300 to 33399 do

If I mod 55=0 then writeln (‘Це число є’,i);

Readln;

End.

Задача 7.

Протабулювати функцію y=X*cosX на проміжку [0,2] з кроком 0,1. Знайти суму і кількість додатних значень функції.

Текст програми:

Var x,y,s:real;

K:integer;

Begin

K:=0; S:=0;

X:=0; (початкове значення х)

While x<=2 do begin

Y:=X*COS(X);

If Y > 0 then begin

S:=S + y;

K:=K + 1;

X:=X+0.1;

End;

Writeln(‘S=’,S:8:2, ‘K=’,K)

Readln;

End.