Завдання 1.
Скласти і реалізувати алгоритм підрахунку різних букв у слові мовою Pascal.
program
Wordlitera; { оголошення назви алгоритму }
var
s:string; r:real; i,j,n:integer;
{оголошення змінних величин алгоритму: рядкові, дійсні, цілі}
begin
{оголошення початку алгоритму }
r:=0;
{оголошення присвоєння нуля дійсній
змінній}
readln(s); {оголошення про зчитування з екрану рядкової змінної }
for
i:=1 to length(s) do begin {оголошення циклу з лічильником i в алгоритмі}
n:=0;
{ оголошення про
присвоєвоння нуля }
for
j:=1 to length(s) do begin {оголошення циклу з лічильником j в алгоритмі}
if s[i]=s[j] then inc(n); { оголошення про перевірку на однаковість
букв}
end; { оголошення про кінець циклу }
r:=r+1/n; {оголошення лічильника кількості різних букв}
end; writeln('кількість різних букв у
слові r = ', r:1:0); end. { оголошення про кінець циклу, алгоритму }
Протестувати правильність виконання
алгоритму: Ввести: карта; агов; математика; інформатика-а-а.
Завдання 2.
Скласти і реалізувати алгоритм знаходження цілих дільників натурального числа
мовою Pascal.
program Numer; { оголошення назви алгоритму }
var a,n,c,d: integer; {оголошення
змінних величин a,n,c,d в
алгоритмі: цілі}
begin {початок
алгоритму }
readln(a); {оголошення про зчитування з
екрану змінної }
n:=1; { оголошення про присвоєвоння
лічильнику 1 }
while ( n <= sqrt(a) ) do begin {оголошення циклу з передумовою(допоки … виконати…) в алгоритмі}
c:=a mod n; {оголошення про знаходження
остачі від ділення a:n}
d:=a div n; {оголошення
про знаходження цілої частини від ділення a:n}
if c = 0 then begin writeln(n);
{Перевірка подільності націло, якщо остача =0, то написати дільник}
if n <> d then writeln( d ); {Перевірка неоднаковості дільників, якщо дільники різні, то написати дільник}
end; inc(n); end; end. { оголошення про кінець циклу
та алгоритму }
Протестувати правильність
виконання алгоритму: Ввести чисел: 4; 6; 8; 94;
96; 80; 99; 100; 272; 558; 997
Завдання 3.
Скласти і реалізувати алгоритм знаходження простих натуральних чисел мовою Pascal.
Program
Prime;
const LIMIT = 50; {оголошення постійної величини в алгоритмі: цілі}
var i,j,lim: integer; {оголошення
змінних величин i, j, lim в алгоритмі: цілі}
begin {початок основної програми алгоритму}
writeln; {початок з нового рядку}
for i:=1 to LIMIT do begin {оголошення про початок циклу з лічильником i}
j:=2;
lim:=round(sqrt(i)); { оголошення про присвоєвоння лічильнику
2
}
while (i
mod j <> 0) and (j <= lim) do inc(j); {цикл з складеною передумовою}
if (j > lim) then write( i,' ' ); end; end. { перевірка, вивід і оголошення про кінець}
Протестувати правильність
виконання алгоритму: Замінити: LIMIT = 50 на LIMIT = 100; LIMIT = 997.
Завдання 4.
Скласти і реалізувати алгоритм знаходження суми цифр натурального числа мовою Pascal.
Program Summa;
var a,x, i,s: integer;
begin
writeln('введіть ціле число'); readln(a);
x:=a; s:=0;
while ( x < > 0 ) do begin
s := s + (x mod 10);
x := x div 10; end;
writeln( 'Сума цифр числа ', a, ' s= ', s);
end.
Протестувати правильність
виконання алгоритму: Ввести чисел: 4; 6; 8; 94;
96; 80; 99; 100; 272; 558; 997
Завдання 5.
Самостійно скласти і реалізувати алгоритм знаходження послідовності чисел, що утворюється сумою
усіх цифр натурального числа та
додаванням цієї суми до самого
числа мовою Pascal.
Наприклад: А(15 )=1+5+15=26, А(20)=2+0+20=22, А(95 )=9+5+95=109, А(24)=2+4+24=30, А(111)=1+1+1+111=114.
Завдання 6.
Самостійно скласти і реалізувати алгоритм знаходження послідовності чисел, що утворюється
добутком усіх цифр натурального числа та
множенням цього добутку на саме
число мовою Pascal.
Наприклад: А(15 )=1*5*15=75, А(20)=2*0*20=0,А(95 )=9*5*95=4275, А(24)=2*4*24=192, А(111)=1*1*111=111.
Циклічними називаються обчислювальні процеси, в яких неодноразово виконуються одні й ті ж дії, але з різними даними. Тіло циклу складається з операторів, що повторюються у програмі. Для організації циклу необхідно задати початкове значення змінної, яка буде змінюватися у циклі, її кінцевого значення та крок її зміни. Треба контролювати значення цієї змінної для перевірки умови виходу з циклу. Умовою може бути: перевищення параметром циклу кінцевого значення, виконання заданого числа повторень, досягнення заданої точності обчислення.
Цикли бувають арифметичні та ітеративні. В арифметичних циклах число повторень визначається на основі зміни параметра циклу; в ітеративних циклах - цикл повторюється доти, доки не буде виконана умова виходу з циклу.
В мові Паскаль є три спеціальні оператори організації циклів: WHILE, REPEAT та FOR.
Цикл WHILE є циклом з передумовою. Загальний вигляд:
WHILE умова (виконання) do оператор; |
де умова – це вираз, який після обчислення приймає значення True або False;
оператор – простий або складний оператор.
Цикл REPEAT є циклом з післяумовою. Загальний вигляд:
REPEAT оператор UNTIL умова (завершення); |
де умова – це вираз, який після обчислення приймає значення True або False;
оператор – простий або складний оператор.
Організацію циклу за допомогою оператора REPEAT розглянемо на прикладі типової задачі.
Приклад. Скласти програму для обчислення значень функції.
Програма рішення задачі має вигляд:
Var X, X1, X2, A, B, H, Y: Real;
Begin
Write(‘Введіть X1, X2, A, B, H :’);
ReadLn(X1,X2,A,B,H);
X:=X1;
REPEAT
Y:=A*SQR(X)+B;
WriteLn(‘X=’,X,’Y=’,Y);
X:=X+H;
UNTIL X>X2;
End. |
Немає коментарів:
Дописати коментар