Теоретичний матеріал:
https://inf8klas.blogspot.com/2018/03/a-pascal.html
Практична робота 003.
Програмування циклів мовою Pascal.
Завдання 1. Реалізувати цикл з предумовою на Pascal, що знаходить
суму усіх цифр, з яких складаються усі цілі числа від 1до випадкового цілого
двоцифрового числа n.
Алгоритм
на Pascal( на основі циклу з передумовою): (4 бали)
Program ZicL2;
{назва алгоритму Цикл2}
var a, b, d: integer; {змінні
величини a, b, d в алгоритмі будуть цілими числами}
begin a:=10+random(89); b:=a; d:=0; {присвоєння
випадкого двоцифрового числа}
writeln('початкове
число в циклі з передумовою =', a); {друк
початкового числа}
while a>0 do begin d:=d+(a div
10)+(a mod 10); a:=a-1; end; {Цикл з умовою}
writeln('кінцеве
число в циклі з передумовою =', a);
{друк
кінцевого числа}
writeln('сума
цифр для усіх цілих чисел від 1 до ', b, '
= ', d); {друк суми цифр}
writeln('**************************'); end. {кінець
алгоритму}
Протестувати
цей алгоритм для: 1) 2-цифрових парних чисел; 2) 2-цифрових непарних чисел; 3) 2-цифрових випадкових чисел, що діляться націло
на 6.
Завдання 2. Реалізувати цикл з післяумовою на Pascal, що знаходить
суму усіх цифр, з яких складаються усі непарні числа від 1до випадкового цілого 3-цифрового
числа n.
Алгоритм
на Pascal( на основі циклу з післяумовою): (4 бали)
program ZicL3; {назва
алгоритму Цикл3}
var a,b,d:
integer; {змінні величини a,
b, d в алгоритмі будуть цілими
числами}
begin a:=101+2*random(444); b:=a; d:=0;
{пошук випадкового
непарного числа}
writeln('початкове
непарне число в циклі з післяумовою =', a);
repeat {початок
циклу з післяумовою для
сумування цифр усіх непарних чисел}
d:=d +(a div 100)+(a mod 100) div 10 +(a mod
10); {тіло
циклу, -
сумує цифри}
writeln('сума цифр для усіх непарних чисел
від 1 до ', a,' =', d); a:=a-2;
writeln('a=', a); {друк числа-лічильника в циклі з післяумовою}
until a<0; {кінець
циклу з післяумовою для
сумування цифр усіх непарних чисел}
writeln('кінцеве число в циклі з післяумовою
=', a);
writeln('сума
цифр для усіх непарних чисел від 1 до ', b,'
=', d); {друк суми
цифр}
writeln('*********');
writeln('************'); end.
Протестувати
цей алгоритм для випадку: 1) 3-цифрових
парних чисел; 2) 3-цифрових цілих чисел;
3) 3-цифрових випадкових чисел, що
діляться націло на 6.
Завдання 3. Реалізувати цикл з лічильником на Pascal, що знаходить
суму усіх цифр, з яких складаються усі парні числа від 1до випадкового цілого 4-цифрового
числа n.
Алгоритм
на Pascal( на основі циклу з лічильником): (4 бали)
program ZycL4; {назва алгоритму Цикл4}
var a,b,d,n,i:
integer; {змінні
величини a, b, d в алгоритмі будуть цілими числами}
begin a:=1000+2*random(4499); b:=a; n:= a div 2; d:=0; {пошук парного
числа}
writeln('початкове
число в циклі з лічильником =', a);
for i:=1 to n do begin {початок циклу
з лічильником для сумування цифр чисел}
d:=d+(a div
1000)+(a mod 1000) div 100 +(a mod 100) div 10+(a mod 10); {тіло циклу}
writeln(''сума
цифр для усіх парних чисел від 1 до ', a,'
=', d); {тіло циклу}
a:=a-2; writeln(' лічильник циклу i =',
i); end; {кінець циклу з лічильником }
writeln('кінцеве
число в циклі з лічильником =', a);
writeln('сума
цифр для усіх парних чисел від 1 до ', b,'
=', d); {друк суми
цифр}
writeln('********');
writeln('**************'); end.
Протестувати
цей алгоритм для випадку: 1) 4-цифрових
непарних чисел; 2) 4-цифрових цілих чисел;
3) 4-цифрових випадкових чисел, що
діляться націло на 6.
Практична робота 004.
Програмування циклів мовою Pascal.
Програмування циклів мовою Pascal.
Завдання 1. Реалізувати цикл з лічильником на Pascal, що знаходить
суму усіх
10
елементів масиву (або рядка чисел),при чому елементи масиву являються
випадковими 4-цифровими числами цілими.
Алгоритм
на Pascal( на основі циклу з лічильником): (3 бали)
Program Masiv1;
{назва алгоритму Масив2}
var a:
array[1..10] of integer; {змінна
величина масив а[1..10]
з цілими числами}
i,s: integer; {змінні
величини i, s в
алгоритмі будуть цілими числами}
begin writeln( 'Задаються випадкові цілі 10 елементів масиву'); s:=0;
for i:=1 to 10 do begin a[i]:=1001+2*random(4499); writeln(i, '-ий елемент =', a[i]);
s:=s+a[i]; end; writeln( 'Сума усіх 10 елементів =', s);
writeln( '*******'); end.
Завдання 2. Реалізувати цикл з післяумовою на Pascal, що знаходить
суму усіх
10
елементів масиву (або рядка чисел),при чому елементи масиву являються
випадковими 4-цифровими парними числами, що
діляться на 3.
Алгоритм
на Pascal( на основі циклу з післяумовою): (3 бали)
Program Masiv2; const m=6; var a: array[1..m]
of integer; i,s: integer;
begin writeln( 'Задаються ',m,'
елементів масиву: '); s:=0; i:=1;
repeat
{ початок циклу з післяумовою}
a[i]:=996+6*random(1500); writeln(i, '-ий
елемент =', a[i]); s:=s+a[i];
i:=i+1; until i=m+1;
{ кінець циклу з післяумовою}
writeln( ' Cума усіх
',m,' елементів =', s); writeln( '***********'); end.
Завдання 3. Реалізувати усі три
види цикл ів (з лічильником, з післяумовою, з передумовою) на Pascal, що знаходить
суму усіх елементів масиву 3А+2В
(або рядка чисел),при чому елементи масиву А - це випадкові 3-цифрові числа, що діляться на 9, а елементи
масиву В – це від’ємні парні числа менше 100. (3 бали)
Алгоритм
на Pascal( на основі циклів з лічильником, з післяумовою, з передумовою ):
program Massiv_3A_Massiv_2B;
const n=1;
m=5; type Massiv = array [n..m]
of integer;
var
a, b,s: Massiv; i,t: integer; {оголошується
динамічні масиви в алгоритмі }
begin { початок циклу з
лічильником} for i:=n to m do begin a[i]:=99+9*random(100); writeln(' a[', i, ']=', a[i]); b[i]:=-2*random(100); writeln(' b[', i, ']=', b[i]); end; { кінець циклу з лічильником} i:=1; { початок циклу з
післяумовою} repeat s[i]:=3*a[i]+2*b[i]; writeln(' s[', i, ']=', s[i]); i:=1+i;
until i=m+1; { кінець циклу
з післяумовою} i:=1;
t:=0; {
початок циклу з передумовою} while
i<m do begin t:=t+s[i]; i:=i+1; end;
{ кінець циклу
з передумовою} writeln('сума усіх елементів масиву 3А+2В=',
t); end.
Завдання 4. Реалізувати цикли (з лічильником) на Pascal, що, знаходять найбільший
елемент із масиву B[1..14] та найменший елемент із масиву: А [1..10], при чому елементи масиву А - це випадкові 7-цифрові
числа, що
діляться на 9, а елементи масиву В – це від’ємні парні випадкові числа, що
діляться на 7,і менше 1000000. (3 бали)
program
ZadachaMIN_MAX; const n=10; k=14; var A : array [1..n] of
integer;
B :
array [1..k] of integer; min, max: integer; i: integer;
begin writeln
('Випадкові елементи масиву - це 7-цифрові числа ');
for
i:=1 to n do begin A[i]:=99999+9*random(1111111);
writeln (i, 'A-eл. = ',
A[i]); end;
for
i:=1 to k do begin B[i]:=-77777-7*random(1111111); writeln (i, 'B-eл. = ', B[i]); end;
min:=A[1]; max:= B[1];
for i:=2 to n
do if A[i]<min
then
min:=A[i]; {в цикл вкладена команда галуження}
for i:=2 to k do if B[i]>max then max:=B[i]; {в цикл вкладена команда галуження}
writeln ('мінімум із масиву A =' , min); writeln
('максимум із масиву В =' , max); end.
Довідка про масиви
Довідка про масиви
Тема. Структуровані типи даних
Неструктуровані типи даних мають наступне відміну від структурованих: одне ім'я - одне значення.
Класифікуються структуровані типи даних за такими ознаками:
Класифікуються структуровані типи даних за такими ознаками:
- однорідність (елементи однотипні);
- впорядкованість (між елементами визначено порядок проходження);
- тип доступу (прямий або послідовний);
- статична або динамічна.
1. Масиви
Масив - однорідна упорядкована статична структура прямого доступу. Масив можна назвати a сукупністю фіксованого числа однакових компонентів, кожна з яких забезпечується індексом. Для того щоб описати масив, необхідно задати тип компонента і тип індексу.
var <ідентифікатор>: array [тип індексу] of <тип компонент>;
var <ідентифікатор>: array [тип індексу] of <тип компонент>;
Найчастіше в якості типу індексу вживається інтервальний тип, може бути і перераховується тип, а також будь-яким скалярним порядковим типом.
Приклад оголошення масиву:
var mass : array [1..10] of real ; {приклад опису одновимірного масиву}
var a : array [1..15, 1..4] of integer ; {приклад опису двовимірного масиву}
Всі завдання можна умовно уявити з декількох основних блоків:
- блок введення значень елементів масиву (формування елементів масиву випадковим чином);
- блок виведення вихідного масиву;
- блок обробки масиву;
- блок виведення результатів обробки.
Найбільш часто використовувані масиви при вирішенні завдань: одномірні, двовимірні.
Немає коментарів:
Дописати коментар