субота, 20 квітня 2019 р.

Тест перевірки знань "Загальні знання про алгоритми"


https://inf8klas.blogspot.com/2018/03/a-pascal.html


ТЕСТ 31


Початковий курс
пошукачів різноманітних алгоритмів

1.Базові структури алгоритму - це ...

це проста мережа, що має персональні дані про користувача;
процес виявлення помилок в алгоритмічних текстах;
графічне зображення алгоритму у вигляді геометричних фігур;
структури, за допомогою яких створюється алгоритм для розв'язання певної задачі.

2.Алгоритм, який забезпечує отримання результату шляхом одноразового виконання послідовностей дій, незалежнотвід вхідних даних і проміжних результатів, називається

лінійним алгоритмом;
розгалуженим алгоритмом;
циклічним алгоритмом;
графічним алгоритмом.

3.Алгоритм, який у класичному варіанті розглядається як вибір дій у разі виконання або невиконання заданої умови, називається

оптимальним алгоритмом;
мінімальним алгоритмом;
розгалуженим алгоритмом;
максимальним алгоритмом.

4.Алгоритм, у якому передбачено повторення певної серії команд(однотипних дій), називається

основним алгоритмом;
циклічним алгоритмом;
другорядним алгоритмом;
підрядним алгоритмом.

5.Розгалуження, в якому різні дії визначені й у разі виконання умови, і деякі дії, у разі невиконання умови, називається

складене розгалуження;
просте розгалуження;
повне розгалуження;
неповне розгалуження.

6.Розгалуження, в якому різні дії визначені тільки у разі виконання умови(або вразі невиконання умови), називається

неповне розгалуження;
повне розгалуження;
лінійне розгалуження;
допоміжне розгалуження.

7. Алгоритм для розв'язання підзадачі, виділеної в окрему підструктуру, називається

допоміжний алгоритм;
основний алгоритм;
прикладний алгоритм;
прагматичний алгоритм.

8. Алгоритм для виконання головної задачі, називається

прямий алгоритм;
зручний алгоритм;
допоміжний алгоритм;
основний алгоритм.

9.Метод покрокової деталізації складається з 5-ти кроків, а саме ...:

1) модифікувати задачу в одну просту задачу;
2)якщо задачі чергового рівня стають досить простими, завершити процес деталізації;
3)активізувати для кожної допоміжної задачі свій допоміжний алгоритм, при необхідності об'єднати дані в масиви;
4)виявити помилкові результати проектування простих задач;
5)узагальнити роботу алгоритму за допомогою тестування. 
1) змінити задачу на інші прості задачі;
2)якщо задачі чергового рівня стають досить простими, зберегти процес деталізації;
3)перефразувати для кожної допоміжної задачі свій допоміжний алгоритм, при необхідності об'єднати дані в рядки;
4)підтасувати результати проектування простих задач;
5)дозволити роботу алгоритму за допомогою тестування. 
1) розділити задачу на декілька простих задач;
2)якщо задачі чергового рівня стають досить простими, закінчити процес деталізації;
3)скласти для кожної допоміжної задачі свій допоміжний алгоритм, при необхідності об'єднати дані в структури;
4)скомпонувати результати проектування простих задач;
5)проаналізувати роботу алгоритму за допомогою тестування. 
1) редагувати задачу у зрозумілу для ЕОМ задачу;
2)якщо задачі чергового рівня стають досить простими, форматувати процес деталізації;
3)індексувати кожну допоміжну задачу у свій допоміжний алгоритм, при необхідності об'єднати дані в стовбці;
4)перекомпонувати результати проектування простих задач;
5)систематизувати роботу алгоритму за допомогою тестування.

10.Переклад програми, при якому кожна інструкція програми перекладається в машинні коди та виконується, називається -

інтерпретація;
обчислення;
згортання;
розгортання.

11.Переклад програми, при якому весь текст програми збирається перед її виконанням та записується в память комп'ютера, називається

компіляція;
інтегрування;
диференціювання;
верифікація;

12. Засоби, які об'єднують редактор для введення та редагування програм, транслятор, засоби для збирання та налагодження програм, називають

процедурні інструменти програмування;
непроцедурні застосунки програмування;
інтегровані середовища програмування;
версійні програми для алгоритмів.
Завдання для самостійного опрацювання

Тест перевірки знань "Математичні операції в Pascal"


https://inf8klas.blogspot.com/2018/03/a-pascal.html

ТЕСТ 34 


Початковий курс
пошукачів різноманітних алгоритмів

1. Який запис мовою Pascal присвоює цілій змінній n округлене до цілого дійсне число x? ( n - набуває типу Integer або Longint).

n:=trunc(x);
n:=frac(x);
n:=int(x);
n:=round(x).

2. Який запис мовою Pascal присвоює цілій змінній m дробову частину від дійсного числа x? (відкидається ціла частина, а дробова частина записується як ціле число, тобто m - набуває типу Integer або Longint).

m:=frac(x);
m:=trunc(x);
m:=round(x);
m:=int(x).

3. Який запис мовою Pascal присвоює цілій змінній g цілу частину від дійсного числа h? (від числа h відкидається дробова частина, а g - набуває типу Longint )

g:=frac(h);
g:=round(h);
g:=trunc(h);
g:=int(h).

4. Який запис мовою Pascal присвоює дійсній змінній s цілу частину числа q? (s - набуває типу real).

s:=trunc(q);
s:=int(q);
s:=frac(q);
s:=round(q).

5. Який запис мовою Pascal присвоює дійсній змінній v модуль числа w?

v:=sqr(w);
v:=int(w);
v:=abs(w);
v:=odd(w).

6. Який запис мовою Pascal присвоює дійсній змінній k корінь квадратний з цілого числа z?

k:=sqrt(z);
k:=abs(z);
k:=sqr(z);
k:=odd(z).

7. Який запис мовою Pascal присвоює цілій змінній d збільшене на 1 цілe числo m?

d:=inc(m);
d:=dec(m);
d:=random(m);
d:=pred(m).

8. Який запис мовою Pascal логічна змінна logic(типу Boolean) – true, якщо число m парне або false в противному випадку?

logic:=sqrt(m);
logic:=abs(m);
logic:=sqr(m);
logic:=odd(m).

9. Який запис мовою Pascal присвоює порядковій змінній d наступне за m порядкове значення?

d:=random(m);
d:=pred(m);
d:=succ(m);
d:=frac(m).

10. Який запис мовою Pascal присвоює порядковій змінній n попереднє від g порядкове значення?

n:=pred(g);
n:=succ(g);
n:=abc(g);
n:=sqrt(g).

11. Який запис мовою Pascal присвоює цілій змінній d зменшене на 1 цілe числo m?

d:=dec(m);
d:=random(m);
d:=pred(m);
d:=succ(m);

12. Який запис мовою Pascal присвоює цілій змінній d випадкове цілe числo від 0 до m?

d:=succ(m);
d:=pred(m);
d:=random(m);
d:=frac(m).
Завдання для самостійного опрацювання

Тест перевірки знань з теми "АЛГОРИТМИ"

Початковий курс 

пошукачів властивостей 

алгоритмічних моделей

1. Що таке алгоритм?

 Алгоритм - це нескінченна послідовність команд(вказівок), що визначає, які дії та у якому порядку потрібно виконувати, щоб досягти поставленої мети за кінцеве число кроків.
 Алгоритм - це скінченна послідовність команд(вказівок), що визначає, які дії та у якому порядку потрібно виконувати, щоб досягти поставленої мети за кінцеве число кроків.
 Алгоритм - це множина команд(вказівок), що визначає, які дії не потрібно виконувати, щоб досягти поставленої мети за кінцеве число кроків.
 Алгоритм - це різні правила(вказівки), що визначають поведінку об'єкта і порядок його дій заради досягнення поставленої мети за кінцеве число кроків.

2. Вказати найточніше визначення поняття "виконавець алгоримту".

 Виконавець алгоримту - це жива чи нежива істота, яка може змінювати всі вказівки заданого алгоритму.
 Виконавець алгоримту - це техніка, яка може виконати і змінити всі вказівки заданого алгоритму.
 Виконавець алгоримту - це тільки жива істота, яка може виконати всі вказівки заданого алгоритму.
 Виконавець алгоримту - це жива чи нежива істота, яка може виконати всі вказівки заданого алгоритму.

3. Вказати найточніше визначення поняття "припустимі команди".

 Припустимі команди - команди, які можуть бути змінені виконавцем алгоритму.
 Припустимі команди - команди, які можуть бути невиконані виконавцем алгоритму.
 Припустимі команди - команди, які можуть бути виконані виконавцем алгоритму.
 Припустимі команди - команди, які можуть бути означені виконавцем алгоритму.

4. Вказати найточніше визначення поняття "неприпустимі команди".

 Неприпустимі команди - команди, які не можуть бути змінені виконавцем алгоритму.
 Неприпустимі команди - команди, які не можуть бути виконані виконавцем алгоритму.
 Неприпустимі команди - команди, які можуть бути проігноровані виконавцем алгоритму.
 Неприпустимі команди - команди, які не можуть бути визначені виконавцем алгоритму.

5. Вказати найточніше визначення поняття "система команд виконавця".

 Система команд виконавця - це основні три команди із усіх припустимих команд виконавця алгоритму.
 Система команд виконавця - це сукупність або множина усіх неприпустимих команд виконавця алгоритму.
 Система команд виконавця - це сукупність або множина усіх запам'ятованих команд виконавцем алгоритму.
 Система команд виконавця - це сукупність або множина усіх припустимих команд виконавця алгоритму.

6. Вказати найточніше визначення властивості алгоритму "дискретність".

 Дискретність алгоритму означає, що його виконання зводиться до виконання окремих дій(кроків) у певній послідовності, при цьому кожна команда повинна виконуватися за обмежений інтевал часу, а виконання наступної команди тільки після закінчення виконання попередньої.
 Дискретність алгоритму означає, що його виконання зводиться до виконання усіх дій(кроків) одночасно, при цьому кожна команда повинна виконуватися за обмежений інтевал часу.
 Дискретність алгоритму означає, що його виконання приводить до однозначних результатів.
 Дискретність алгоритму означає, що його виконання приводить до дискретитації отриманих результатів.

7. Вказати найточніше визначення властивості алгоритму "визначеність(однозначність)".

 Визначеність алгоритму означає, що кожна команда алгоритму неоднозначно визначає дії виконавця і допускає подвійного тлумачення. Алгоритм самостійно визначає порядок виконання оперцій.
 Визначеність алгоритму означає, що кожна команда алгоритму однозначно передбачає дії виконавця і припускає подвійне тлумачення результату дій. Необов'язкова визначати порядок виконання оперцій.
 Визначеність алгоритму означає, що кожна команда алгоритму однозначно закінчує дії виконавця і припускає подвійне тлумачення результату дій. Суворо визначеним є порядок виконання оперцій.
 Визначеність алгоритму означає, що кожна команда алгоритму однозначно визначає дії виконавця і не припускає подвійного тлумачення. Суворо визначеним є порядок виконання оперцій.

8. Вказати найточніше визначення властивості алгоритму "формальність".

 Формальність алгоритму означає, що будь-який виконавець, має чітко знати про форму подачі результатів дій алгоритму.
 Формальність алгоритму означає, що будь-який виконавець має передбачати зависання ПК під час виконання алгоритму.
 Формальність алгоритму означає, що будь-який виконавець, який володіє ПК, самостійно не осмислить суті задачі та результатів дій.
 Формальність алгоритму означає, що будь-який виконавець, який володіє заданою системою команд виконавця, може виконати алгоритм, не вдаючись до суті задачі.

9. Вказати найточніше визначення властивості алгоритму "виконуваність".

 Виконуваність алгоритму означає, що алгоритм призначений для певного виконавця, може передбачати випадок, коли не має розв'язків.
 Виконуваність алгоритму означає, що алгоритм призначений для певного виконавця, може містити не тільки команди, які входять до системи команд цього виконавця.
 Виконуваність алгоритму означає, що алгоритм призначений для певного виконавця, може містити і зайві команди, однак, які входять до системи команд цього виконавця.
 Виконуваність алгоритму означає, що алгоритм призначений для певного виконавця, може містити тільки команди, які входять до системи команд цього виконавця.

10. Вказати найточніше визначення властивості алгоритму "скінченість".

 Скінченість алгоритму означає, що виконання алгоритму закінчиться після обмеженої кількості кроків і за обмежений проміжок часу при довільних початкових даних.
 Скінченість алгоритму означає, що виконання алгоритму закінчиться після безмежної кількості кроків і за великий проміжок часу при довільних початкових даних.
 Скінченість алгоритму означає, що виконання алгоритму закінчиться після одного мільярду кроків і за деякий проміжок часу при дуже маленьких значеннях початкових даних.
 Скінченість алгоритму означає, що виконання алгоритму закінчиться після необмеженої кількості кроків і за обмежений проміжок часу при дуже великих значеннях початкових даних.

11. Вказати найточніше визначення властивості алгоритму "результативність".

 Результативність алгоритму означає, що виконання алгоритму обов'язково закінчуватися невизначеною ситуацією або зовсім не закінчуватися до тих пір, поки не будуть отримані очікувані результати.
 Результативність алгоритму означає, що виконання алгоритму не може закінчуватися невизначеною ситуацією або зовсім не закінчуватися до тих пір, поки не будуть отримані очікувані результати.
 Результативність алгоритму означає, що виконання алгоритму може закінчуватися адекватною ситуацією або зовсім закінчуватися до тих пір, поки не будуть отримані непередбачені результати.
 Результативність алгоритму означає, що виконання алгоритму може закінчуватися зависанням ПК або зовсім не закінчуватися до дих пір, поки не будуть отримані найнеймовірнісні результати.

12.Вказати найточніше визначення властивості алгоритму "масовість".

 Масовість алгоритму означає, що тільки однієї або не більше трьох задач, для яких є спільними умова роботи цього алгоритму.
 Масовість алгоритму означає, що тільки неживі істоти виконають усі задачі, для яких є спільними умова роботи цього алгоритму.
 Масовість алгоритму означає, що будь-який виконавець алгоритму може передбачати зміни початкових даних(вхідних даних) даних у деяких припустимих межах.
 Масовість алгоритму означає, що виконавець алгоритму не може передбачати зміни початкових даних(вхідних даних) даних у деяких припустимих межах.За нього це передбачення виконає алгоритм.
Завдання для самостійного опрацювання

субота, 6 квітня 2019 р.

Нелінійні алгоритми мовою Pascal


Практична робота 61. 
Нелінійні алгоритми   мовою Pascal

Завдання 1. Старовинний годинник з дванадцятигодинним циферблатом б’є в кінці останньої хвилини кожної години. Бій триває менше однієї хвилини. Кількість ударів відповідає показам годинникової стрілки (1 удар – о першій ночі і о першій дня,  по 2 удари – о другій години ночі та о другій дня і так далі, опівночі і опівдні він б’є, відповідно, по 12 разів.  Дано проміжок часу (відомо, що пройшло строго менше 24 годин).  Напишіть програму, що визначає, скільки ударів зробив годинник за цей час. 

Технічні умови: Вхідні дані: ви вводите з клавіатури у першому рядку початковий момент
часу, в другому рядку — кінцевий. Моменти часу задаються двома цілими числами,
що розділяються пропуском.
Перше число задає години (від 0 до 23, друге – хвилини (від 1 до 59).
Вихідні дані: ви виводите на екран одне число — кількість ударів,
які зробив годинник за цей відрізок часу.

Алгоритм мовою програмування Pascal
Program Godynnyk;           // Називаємо програму і оголошуємо змінні
var  g1,h1,g2,h2,i,s:integer;            // g1,g2 -початкова і кінцева години;i- циклічна змінна;
        //h1,h2 – початкова і кінцева хвилини; s-сума (кількість ударів)
begin
s:=0;
writeln('Bведіть початкову годину і хвилину через пробіл');
g1:=1+random(12); h1:=random(59);writeln(g1,'год  ', h1, 'хв '); {readln (g1,h1);} // початкові дані
writeln('Bведіть кінцеву годину і хвилину через пробіл');
g2:=12+random(12); h2:=random(59); writeln(g2,'год  ', h2, 'хв '); {readln (g2,h2);}
if g2>g1 then      // коли кінцевий момент часу більший за початковий
begin
if g2>12 then      // коли кінцевий час більший за 12
begin                   // спрацьовує цей фрагмент програми
for i:=g1+1 to 12 do s:=s+i; //циклічна змінна змінюється від наступної за початковою годиною
for i:=1 to g2-12 do s:=s+i; // до 12 години. Враховуємо ще один оберт малої стрілки.
end else begin           // коли кінцевий час менший за 12
for i:=g1+1 to g2 do s:=s+i;  // працює цикл для обчислення площі
end; end;
if g2<g1 then    // коли кінцевий момент часу менший за початковий
begin
for i:=g1+1 to 12 do s:=s+i; //рахуємо удари годинника від початкової до 12 години
for i:=1 to 12 do s:=s+i;   //рахуємо удари годинника від 1 до 12 год 
for i:=1 to g2 do s:=s+i;   //знову удари годинника від 1 до кінцевої години
end;
if g2=g1 then   // коли кінцевий момент часу дорівнює початковому
begin
s:=0;                 // якщо години співпадають то ударів не буде
end;
writeln ('Відповідь: годинник зробив ', s, ' ударів');
end.

  
Завдання 2. Два прожектори утворюють на стіні дві плями квадратної форми, одну – блакитного, а другу – жовтого кольору. Визначити площу плями зеленого кольору, яка утворилася внаслідок накладання двох плям – блакитної та жовтої.
 Вхідні дані: ви вводите з клавіатури у першому рядку координати лівої нижньої вершини кожного квадрата (натуральні числа x1,y1, х2, у2 <1000, розділені пропуском), у другому рядку – довжини сторін квадратів (натуральні числа а1, а2<100, розділені пропуском).
Вихідні дані: ви виводите на екран одне число – площу.

Алгоритм мовою програмування Pascal

Program Zeleny_kvadrat;
var   a,b,x1,y1,x2,y2,a1,a2,i,j: integer; //оголошення змінних
label start ;                       // оголошення мітки початку програми
begin
a:=0; b:=0;                          // початкові значення ширини і висоти зеленої плями
writeln ('Введіть координати початкових вершин двох квадратів через пробіл');
x1:=random(1000); y1:=random(1000); x2:=random(1000); y2:=random(1000);
writeln(' x1=',x1,' y1=',y1,' x2=',x2,' y2=', y2);        {readln(x1,y1,x2,y2);}
writeln ('Введіть розміри двох кольорових  квадратних плям  через пробі{readln(a1,a2);}л');
a1:=1+random(100);  a2:=2+random(100); writeln('a1=', a1, '   a2=',a2);   
for i:=x1 to x1+a1-1 do begin    // змінюємо і від початкової координати до ширини першої плями
for j:=x2 to x2+a2-1 do          // змінюємо j від початку до ширини другої плями
if i=j then  a:=a+1;          // якщо точки співпадають – збільшуємо ширину зеленої плями на 1
end;
for i:=y1 to y1+a1-1 do begin    //аналогічно вчиняємо з висотою зеленої плями
for j:=y2 to y2+a2-1 do
if i=j then b:=b+1;              //в разі співпадання висота збільшується на 1
end;
writeln (' площа зеленої плями ',a*b);
end.

Завдання для самостійного опрацювання