четвер, 8 березня 2018 р.

Алгоритми властивостей цілих чисел


Практична робота 18 «Алгоритми властивостей цілих чисел на мові Pascal»
Завдання 1. Скласти і реалізувати алгоритм  для знаходження   кількості цифр, суми цифр натурального числа, подільності на цифри, якщо ціле число задане випадковим чином.
program SummaNumer;                     {назва    алгоритму підрахунку суми цифр цілого числа}
var  m, n, i, m1, k, s: integer;                {оголошення  змінних величин: цілі числа}
begin                            {початок   виконання алгоритму і введення випадкових натуральних чисел}
m:=(10+random(5))*(20+random(7)) *(random(20)) + 1+random(3) ;   
writeln( ' Якщо натуральне число  m=', m); writeln;  m1:=m; k:=0; s:=0; n:=0;
repeat    n:=m mod 10; k:=k+1; s:=s+n;  m:=m div 10;   until m=0; 
     {виконання циклу з  післяумовою  для обчислення}
writeln('Сума цифр числа ', m1,   ' дорівнює числу: ', s); writeln;
writeln('Кількість цифр числа ', m1,   ' дорівнює числу: ', n); writeln;
if (m1 mod 2) =0 then writeln(m1,   ' - це парне число ');  writeln;
if (m1 mod 2) =1 then  writeln(m1,   ' - це непарне число ');  writeln;
if (s mod 3) =0 then writeln(m1,   ' - це число має вигляд 3k, ділиться на 3 націло');  writeln;
if (s mod 3) =1 then writeln(m1,   ' - це число  має вигляд 3k+1');  writeln;
if (s mod 3) =2 then writeln(m1,   ' - це число  має вигляд 3k+2');  writeln; m:= m1 mod 100;
if (m mod 4) =0 then writeln(m1,   ' - це число  має вигляд 4k, ділиться на 4 націло');  writeln;
if (m mod 4) =1 then writeln(m1,   ' - це число  має вигляд 4k+1');  writeln;
if (m mod 4) =2 then writeln(m1,   ' - це число  має вигляд 4k+2');  writeln;
if (m mod 4) =3 then writeln(m1,   ' - це число  має вигляд 4k+3');  writeln; m:= m1 mod 10;
if (m mod 5) =0 then writeln(m1,   ' - це число  має вигляд 5k, ділиться на 5 націло');  writeln;
if ( (s mod 3) =0)  and ((m mod 2)=0) then writeln(m1,   ' - це число  має вигляд 6k, ділиться на 6 націло');  writeln;
if (m mod 7) =0 then writeln(m1,   ' - це число  має вигляд 7k, ділиться на 7 націло');  writeln;
m:=m1; m:= m mod 1000;
if (m mod 8) =0 then writeln(m1,   ' - це число  має вигляд 8k, ділиться на 8 націло');  writeln;
if (s mod 9) =0 then writeln(m1,   ' - це число має вигляд 9k, ділиться на 9 націло');  writeln;
if (m mod 10) =0 then writeln(m1,   ' - це число має вигляд 10k, ділиться на 10 націло');  writeln;
end.   {закінчення алгоритму}
Протестуйте алгоритм  чотири рази та перевірте правильність результатів.
Завдання 2. Скласти і реалізувати алгоритм  знаходження   кількості першої цифри  від початку у цілому числа, що задане випадковим чином.
Program Cifr1;                                                     {оголошення  назви алгоритму}
var n, x,c,c1,k: integer;                                          {оголошення  змінних величин: цілі числа}
begin
    n:=(10+random(5)) *(20+random(7)) *(random(20)) + 1+random(3);     {випадкове число}
writeln( ' Якщо натуральне число  n=', n); writeln;            {виведення на екран випадкового числа}
x:=n;     while n>9 do      n:=n div 10;    c1:=n;    k:=0;                   {цикл з передумовою}
repeat
       c:= x mod 10;       if c=c1 then k:=k+1;      x:=x div 10;   until x=0;  {цикл з післяумовю}
writeln(' Кількість першої цифри дорівнює:   '
, k);  end.
Протестуйте алгоритм  чотири рази та перевірте правильність результатів.
Завдання 3. Скласти і реалізувати алгоритм  знаходження   кількості другої від початку цифри у цілому числа, що задане випадковим чином.
Program Cifr2;                                                                                            {оголошення  назви алгоритму}
var n, x,c,c1,k: integer;                                                           {оголошення  змінних величин: цілі числа}
begin
    n:=(10+random(5)) *(20+random(7)) *(random(20)) + 1+random(3);          {випадкове число}
writeln( ' Якщо натуральне число  n=', n); writeln;            {виведення на екран випадкового числа}
x:=n;     while n>100  do  n:=n div 10; c1:=n div 10;                                              {цикл з передумовою}
writeln('n=', n); end;  c1:=n mod 10; writeln('c1=',c1); writeln('n=',n);     k:=0;                 
repeat       c:= x mod 10;   if c=c1 then k:=k+1;   x:=x div 10;   until x=0;            {цикл з післяумовoю}
writeln('Кількість другої цифри дорівнює:'
, k);  end.
Протестуйте алгоритм  чотири рази та перевірте правильність результатів.


неділя, 7 січня 2018 р.

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

Практична робота 1. 
Лінійні алгоритми мовою Pascal

Завдання 1(6 балів). Скласти і реалізувати алгоритм в програмному середовищі, який виконує взаємний обмін числовими значеннями двох цілих змінних; і виводить на екран  два початкових значення змінних і два кінцеві значення цих змінних. Використовувати в алгоритмі більше двох цілих змінних не можна.

Алгоритм  мовою Pascal
program SuperposiziaNumer;
{алгоритм обміну числовими значеннями двох змінних}
var       {оголошується опис змінних величин, які використовує алгоритм}
x,y: integer;            {оголошуються дві цілі змінні у даному  алгоритмі}
begin                     {оголошується початок алгоритмічних дій}
write('x=');       {на екрані запит на введення з клавіатури цілого числа: х}
readln(x);     {зчитування числового значення і внесення його в змінну  х}
write('y=');      { на екрані запит на введення з клавіатури цілого числа: у}
readln(y);     {зчитування числового значення і внесення його в змінну  у}
 write('початкове значення x='); writeln(x,'  ');  { перевірка початкового: х}
 write('початкове значення y='); write(y,'  ');     { перевірка початкового: у}
x:=x+y; y:=x-y; x:=x-y;                {взаємний обмін числами за допомогою арифметичних дій.}
writeln;                                     {поставити курсор на екрані з нового рядка}
 write('кінцеве значення x=');         {виведення на екран  повідомлення}
writeln(x,'    ');             {виведення на екрані  числового значення змінної х}
 write('кінцеве значення y=');        {виведення на екран  повідомлення}
write(y,'    ');                {виведення на екрані  значення значення змінної у}
 writeln;                       {поставити курсор на екрані з нового рядка}                 
end.                              {закінчення дій алгоритму}

Протестувати правильну роботу цього алгоритму  для двох цілих  чисел:
  -9 і 17;     0 і 7;       100 і; 250;           -900 і - 1000.
Завдання 2(6 балів). Cамостійно скласти і реалізувати алгоритм program SuperposiziaNumer, який виконує взаємний обмін числовими значеннями між трьома цілими  змінними; і виводить на екран  три початкових значення змінних і три  кінцеві значення цих змінних. Використовувати в алгоритмі більше чотирьох  цілих змінних не можна.
Протестувати правильну роботу цього алгоритму  для трійок цілих  чисел:
 -2;  -9 і 17;      -1;  0 і 7;      7;  100 і 250;         -300;  -900 і - 1000.
Практична робота 2. Лінійні алгоритми мовою Pascal
Завдання 1(6 балів). Скласти і реалізувати алгоритм в програмному середовищі, який визначає із двох довільних дійсних чисел найменше число та найбільше число. Значення  двох дійсних змінних вводяться зклавіатури; і виводить на екран  найменше значення із двох  чисел  та найбільше значення із двох  чисел. Використовувати в алгоритмі більше трьох дійсних змінних не можна.
Алгоритм  мовою Pascal
program  МАхМіnNumer;  {алгоритм знаходження МАХ(x;y) та МІN(x;y) }
var     {оголошується опис змінних величин, які використовує алгоритм}
x,y,z: real;            {оголошуються три дійсні  змінні у даному  алгоритмі}
begin                        {оголошується початок алгоритмічних дій}
write('x=');     {на екрані запит на введення з клавіатури цілого числа: х}
readln(x);     {зчитування числового значення і внесення його в змінну  х}
write('y=');   { на екрані запит на введення з клавіатури цілого числа: у}
readln(y);    {зчитування числового значення і внесення його в змінну  у}
 write('початкове значення x='); writeln(x,'  '); { перевірка початкового: х}
 write('початкове значення y='); write(y,'  '); { перевірка початкового: у}
 z:=abs(x-y); x:=0.5*(x+y-z);  y:=x+z;    {знаходження МАХ(x;y) та МІN(x;y)}
 writeln;                                 {поставити курсор на екрані з нового рядка}
 write('найменше значення x=');   {виведення на екран  повідомлення}
writeln(x,'  ');    {виведення на екран   числового значення змінної х}
 write('найбільше значення y=');    {виведення на екран  повідомлення}
write(y,'  ');     {виведення на екрані  числового значення змінної y}
 writeln;              {поставити курсор на екрані з нового рядка}                 
end.                                             {закінчення дій алгоритму}
Протестувати правильну роботу цього алгоритму  для двійок цілих  чисел:       -9 і -17;      0 і -8;    -2 і 0;    -1 і 1;    100 і 250;    900  і - 1000.
Завдання 2(6 балів). Cамостійно скласти і реалізувати алгоритм в програмному середовищі, який визначає із трьох довільних дійсних чисел найменше число та найбільше число. Значення  трьох дійсних змінних вводяться з клавіатури; і результат  виводить на екран  найменше значення із трьох  чисел  та найбільше значення із трьох  чисел. Використовувати в алгоритмі більше чотирьох дійсних змінних не можна.
Протестувати правильну роботу цього алгоритму  для трійок цілих  чисел:

 -2;  -9 і -17;      -1;  0 і - 7;      7;  100 і 250;         300;  300 і - 300.


Сайти для навчання програмуванню

Code.orgсередовища навчання програмуванню  для початківців
Code School  -  Практичні завдання для навчання програмуванню.
Codecacademy – інтерактивне навчання програмуванню.
Stuk.io - Навчання з нуля для майбутніх програмістів.
Udaccityкурси від  Google, Facebook та інших великих компаній.
Platzi курси по дизайну, маркетингу, програмуванню.
Learnable -  курси веб-розробці.
Code School  -  Практичні завдання для навчання програмуванню.
Code.orgсередовища навчання програмуванню  для початківців
BasePails - Навчання Рубі та Раілз та іншим веб-технологіям
Treehouse - Розробка на   HTML, CSS, та додатків на ІОS.
One Month – навчання основам створення веб-додатків за місяць.
Dash – створення веб-сайтів.