русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Case sim


Дата додавання: 2014-11-27; переглядів: 1649.


'+': s:=a+b;

'-': s:=a-b;

'*': s:=a*b;

'/': s:=a/b;

end;

writeln ('результат',a,sim,b,' = ',s);

End.

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

Питання для повторення:

1. Скільки рядків може бути записано в списку вибору?

2. Чи може в операторі вибору бути відсутній частина else?

3. Сформулюйте, що може бути ключем вибору?

4. Чи можна оператор вибору замінити умовним оператором if . then?

5. Скільки операторів if thenзнадобилося б для вирішення задачі 3 10?

Завдання для самостійної роботи:

1. Відредагуйте задачу zadacha3_11 так, щоб при введенні довільного символу програма видавала відповідь: "Введена некоректна арифметична операція";

2. Вводиться число від 1 до 10. Дати назву цього числа (1 - один, 2 - два, 10 - десять);

3. Вводиться число від 1 до 7, визначаюче день тижня. Дати назву цього дня (1 - понеділок, 2 - вівторок, 7 - неділя);

4. В спортивних змаганнях Кулька, кіт Матроськін, дядько Федір і листоноша Печкін зайняли відповідно 1, 2, 3 і 4 місця. Скласти програму, яка по номеру місця видає ім'я учасника змагань.

5. Вводиться число від 1 до 15. Вивести дане число, записане римськими цифрами (I, II, III, IV, V, VI .., XV);

6. Вводиться число від 1 до 15. Вивести дане число, записане в двійковій системі счислення (1, 10, 11, 100, 101 .., 1111);

7. Вводиться число від 1 до 12, визначаюче місяць року. Дати назву цього місяця року (1 -Январь, 2 - Лютий .., 12 Грудень);

8. Вводиться номер місяця. Вивести пору року для цього місяця (1 - зима ..., 3 - весна .., 8 - літо.);

9. Вводитися номер пори року. Вивести назви місяців для цієї пори року (1 – грудень, січень, лютий . . .);

10. Вводится число від 1 до 100. Дати назву цього числа (1 - один, 2 - два .., 100 - сто);

11. Дано натуральне число N (N<20), що визначає суму грошей в рублях. Дати для цього числа найменування: "рубель", "рубля", "рублів";

12. Дано натуральне число N (N<100), що визначає вік людини в літах. Дати для цього числа найменування: "рік", "роки", "літ";

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

Тема заняття:

Умовний оператор.

Оператор вибору.

Практикум по рішення задач на розгалуження.

Мета :

1. Закріпити навики написання алгоритмів з розгалудженнями;

2. Здійснити проміжний контроль знань;

3. Вдосконалення уміння будувати програми мовою Паскаль. Виховувати уважність, активність на уроці.

Завдання для самостійної роботи:

1. Дані дійсні числа х, у. Отримати:

a) max(x,y);

b) min(x,y);

c) max(x,y) і min(x,y);

2. Дані дійсні числа х, у, z. Отримати:

a) max(x,y,z);

b) min(x,y,z);

3. Задано натуральне число а. Чи є воно парним?

4. Задано натуральне число а. Чи є воно кратним 9?

5. Дано тризначне число. Чи кратна сума його цифр семи?

6. Дано ціле число a>9. Чи менше цифра десятків цифри одиниць?

7. Дано тризначне число. Чи є сума його цифр двозначним числом.

8. Дано три натуральні числа x, у, z. Обчислити кількість чисел менших 50.

9. Знайти кількість позитивних чисел серед чотирьох заданих чисел а,b,c,d.

10. Дано два дійсні числа. Зменшити друге число в п'ять разів, якщо воно більше першого по абсолютній величині.

11. Вводиться назва місяця. Вивести пору року для цього місяця (січень - зима .., березень - весна .., серпень - літо.);

12. Вводитися пора року. Вивести назви місяців для цієї пори року.

13. Скласти програму, яка по введеній назві країни Європи виводитиме на екран назву столиці (наприклад, вводимо Греція - одержуємо "Столиця Греції Афіни");

14. Скласти програму, яка по введеному на російській мові назві домашньої тварини виведе переклад його на англійську мову (наприклад, вводимо кіт - одержуємо cat);

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

16. Задане x. Обчислити у

a) б)

 

 

17. Задано два числа.

a) Чи є кожне з цих чисел великим 10?

b) Чи є хоча б одне з цих чисел великим 10?

c) Чи є тільки одне з цих чисел великим 10?

18. Задано два числа.

a) Чи є кожне з цих чисел парним?

b) Чи є хоча б одне з цих чисел парним?

c) Чи є тільки одне з цих чисел парним?

19. Задані два натуральні числа. Чи є перше число двухзначным, а друге однозначним?

20. Задано два числа. Чи є перше число негативним, а друге позитивним?

21. Дано двозначне число. Чи є сума його цифр двозначним числом кратним трьом.

22. Перевірити, чи є число тризначним, у якого цифри утворюють геометричну прогресію (наприклад: 139, 842).

23. Задані x1, y1, x2, y2 (x1,y1,x2,y2 ?0). Чи лежать крапки (x1, y1) і (x2, y2):

a) в одній четверті;

b) в різних четвертях.

24. Задані дійсні x і у. Чи належить точка (x, у) гілки параболи (y=x2) лежачої в другій четверті?

25. Задані дійсні x і у. Чи належить точка (x, у) заштрихованої частини площини:

 

 


26. Визначити, чи є дане ціле число N парним тризначним числом.

a. Дано натуральне число N (N<100), що визначає суму грошей в рублях. Дати для цього числа найменування: "рубель", "рубля", "рублів".

28. Дані дійсні позитивні числа x, у, z.

a) З'ясувати, чи існує трикутник з довжинами сторін x,y,z.

b) Якщо трикутник існує, то відповісти – чи є він гострокутним.

29. Дані дійсні позитивні числа а, b, з, x, у. З'ясувати, чи пройде цеглину з ребрами а, b, з в прямокутний отвір із сторонами x і у. Просовувати цеглину в отвір дозволяється тільки так, щоб кожне його ребро паралель або перпендикулярно кожної із сторін отвору.

30. Дано натуральне число n (n £ 9999).

a) Чи є це число палиндромом (перевертышем) з урахуванням чотирьох цифр, як, наприклад, числа 2222, 6116, 0440 і т.д.?

b) Чи вірно, що це число містить рівно три однакові цифри, як, наприклад, числа 6676, 4544, 0006 і т.д.?

c) Чи вірно, що всі чотири цифри числа різні?

31. Поле шахівниці визначається парою натуральних чисел, кожне з яких не перевершує восьми: перше число – номер вертикалі, друге – номер горизонталі. Дані натуральні числа до, l, m, n, кожне з яких не перевершує восьми. Потрібен:

a) З'ясувати, чи є поля (к,l) і (m,n) полями одного кольору.

b) На полі (до, l) розташований ферзь. Чи загрожує він полю (m, n)?

c) Аналогічно b), але ферзь замінюється на коня.

d) З'ясувати, чи можна з поля (до, l) одним ходом тури потрапити на поле (m, n). Якщо ні, то з'ясувати, як це можна зробити за два ходи (вказати поле, на яке приводить перший хід).

e) Аналогічно d), але тура замінюється на ферзя.

Тема заняття:

Алгоритми з повтореннями.

Цикл з параметром FOR.

Мета :

1. Сформувати поняття про цикли;

2. Навчитися використовувати рахунковий цикл FOR;

3. Отримати навики рішення алгоритмів з повтореннями.

В мові Паскаль існує трьох різних операторів за допомогою яких можна запрограмувати фрагменти програми, що повторюються (трьох операторів циклу):

- рахунковий цикл FOR;

- цикл WHILE з предусловием;

- цикл REPEAT.UNTIL з постусловием.

На першому нашому занятті постараємося познайомитися і навчимося використовувати рахунковий цикл FOR.

Змінна усередині циклу змінюється автоматично від до до n (n>k) з кроком 1.

Формат запису циклу: for i:=k to n do

або

від n до до (n>k) з кроком -1.

Формат запису циклу: for i:=n dawnto до do

Якщо в циклі повинні виконуватися декілька операторів, то використовуємо операторні дужки: begin .. end;

Цикл FOR зручно використовувати тоді, коли точно відома кількість повторень.

Розглянемо декілька прикладів:

Знайти суму всіх натуральних чисел від 1 до n.

program zadacha3_1;

var i,n,s:integer;

Begin

writeln('введіть натуральне n'); readln(n);

s:=0;

for i:=1 to n do

s:=s+i;

writeln('сумма від 1 до',n,' = ',s);

End.

В даному циклі змінна i автоматично змінюється від 1 до n з кроком 1. Тому до змінної s додається i спочатку рівна 1, потім 2, потім 3, і т.д. до n, відповідно змінна s приймає значенні 1, 3, 6, 10, 15 ...

Задане натуральне n. Обчислити суму ряду:

S=1 - 1/2 + 1/3 - 1/4 + 1/5-........±1/n

program zadacha3_2;

var i,n,a:integer;

s:real;

Begin

writeln('Введіть n');

readln(n);

s:=1;a:=1;

for i:=2 to n do

Begin

а:=(-1)*a;

s:=s+a/i;

end;

writeln('Сумма ряду S= ',s);

End.

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

program zadacha3_3;

var с1,с2,с3,i,n,kol:integer;

Begin

writeln('Введіть n');

readln(n);

kol:=0;

for i:=100 to 999 do

Begin

c1:=i div 100;

c2:=(i div 10) mod 10;

c3:=i mod 100;

if c1+c2+c3=n then kol:=kol+1;

end;

writeln('Кількість таких чисел = ',kol);

End.

Питання для повторення:

1. Для чого призначений оператор циклу?

2. Які існують цикли в мові Паскаль?

3. Який формат запису має оператор FOR?

4. Як працює оператор FOR?

5. В яких випадках застосовується оператор FOR?

6. Скільки разів буде виконаний цикл, і чому буде рівна змінна S після виконання:

s:=0; n=6;

for i:=3 to n do

s:=s+i;

7. Як в тілі циклу виконати декількох операторів?

Завдання для самостійної роботи:

1. Знайти суму всіх непарних тризначних чисел.

2. Знайти суму позитивні кратні 7 чисел, менших 100.

3. Знайти всі числа, які діляться на N серед:

a) всіх двухзначных чисел;

b) всіх тризначних чисел.

4. Скласти програму обчислення суми квадратів чисел від 1 до n.

5. Серед двозначних чисел знайти ті, сума квадратів цифр яких ділиться на 13.

6. Знайти всіх дільників для заданого числа n.

7. Дано натуральне число n. Обчислити:

a) 2n; b) 3n з) n!;

8. Серед чотиризначних чисел вибрати ті, у яких:

a) всі чотири цифри різні (наприклад: 3167, 9012);

b) є три однакові цифри (наприклад: 1311, 7779);

c) цифри попарно різні (наприклад: 1331, 7979, 2255);

d) цифри утворюю зростаючу послідовність (наприклад: 1389, 4678);

9. Написати програму пошуку чисел <1000, які при розподілі на 2 дають в залишку 1, при розподілі на 3 дають в залишку 2, при розподілі на 4 - в залишку 3, при розподілі на 5 - в залишку 4, при розподілі на 6 - в залишку 5 а при розподілі на 7 дають в залишку 6.

Тема заняття:

Алгоритми з повтореннями.

Цикл з передумовою WHILE.

Цикл з післяумовою REPEAT.

Мета :

1. Закріпити поняття про цикли;

2. Познайомитися з циклами WHILE і REPEAT;

3. Отримати навики рішення алгоритмів з повтореннями.

На минулому занятті ми познайомилися і навчилися використовувати рахунковий цикл FOR.

Продовжимо роботу по цій темі і познайомимося з ще двома циклами:

- цикл WHILE з предусловием;

- цикл REPEAT.UNTIL з постусловием.

Ці цикли зручно використовувати тоді, коли наперед невідомо число повторень.

Вирішимо задачу zadacha3_1 використовуючи цикли WHILE і REPEAT

спробуємо зрозуміти принцип роботи цих циклів.

Знайти суму всіх натуральних чисел від 1 до n.

1) цикл FOR

program zadacha3_1a;

var i,n,s:integer;

Begin

writeln('введіть натуральне n'); readln(n);

s:=0;

for i:=1 to n do

s:=s+i;

writeln('сумма від 1 до',n,' = ',s);

End.

2) цикл WHILE

program zadacha3_1b;

var i,n,s:integer;

Begin

writeln('введіть натуральне n'); readln(n);

s:=0; i: =1;

while i<=n do

Begin

s:=s+i;

i:=i+1;

end;

writeln('сумма від 1 до',n,'=',s);

End.

Цикл WHILE виконуватиметься до тих пір, поки виконується умова i<=n. Причому змінну i змінюємо усередині циклу.

3) цикл REPEAT

program zadacha3_1c;

var i,n,s:integer;

Begin

writeln(' введіть натуральне n'); readln(n);

s:=0; i:=1;

Repeat

Begin

s:=s+i;

i:=i+1;

end;

until i>n;

writeln('сумма від 1 до',n,' = ',s);

End.

Цикл REPEAT. UNTIL виконуватиметься до тих пір, поки не виконатися умова i>n.

Задано натуральне число n. Обчислити суму цифр числа.

program zadacha3_4;

var n,sum,cif:integer;

Begin

writeln('Введіть n'); readln(n);

sum:=0;

while n>0 do

begin

cif:=n mod 10;

sum:=sum+cif;

n:=n div 10;

end;

writeln('Сумма цифр введеного числа = ',sum);

End.

Знайти мінімальне натуральне число, яке при розподілі на 2 дає в залишку 1, при розподілі на 3 дає в залишку 2, при розподілі на 4 - в залишку 3, при розподілі на 5 - в залишку 4, при розподілі на 6 - в залишку 5 а при розподілі на 7 дають в залишку 6.

program zadacha3_5;

var i, kl:longint;

Begin

kl:=0; i:=0;

while kl=0 do

begin

i:=i+1;

if (i mod 2=1) and (i mod 3=2) and (i mod 4=3) and (i mod 5=4) and (i mod 6=5) and (i mod 7=6) then kl:=1;

end;

writeln(i);

End.

Питання для повторення:

1. Які цикли існують в мові Паскаль?

2. Який формат запису мають цикли WHILE і REPEAT?

3. В яких випадках зручно застосовувати ці цикли?

4. Чим відрізняється цикл WHILE від циклу REPEAT?

5. Чи буде зупинено виконання даного циклу? Чому?

s:=0; i: =1;

while i<=4 do

s:=s+i;

Завдання для самостійної роботи:

1. Дано натуральне число n.

a) Скільки цифр в числі n?

b) Скільки парних цифр в числі n?

2. Дано натуральне число n.

a) Обчислити, чи входить цифра 3 в запис числа n2.

b) Поміняти порядок цифр числа n на зворотний.

c) Переставити першу і останню цифри числа n.

d) Приписати по одиниці в початок і в кінець запису числа n.

e) Чи є число n - палиндромом? (9889 - так, 9878 -нет)

3. Дано натуральне число n. Чи є n ступенем 3.

4. Для даного натурального числа m>1. Знайдіть максимальне до, для якого ще виконується рівність 2k<m. (наприклад, якщо m=10, то k=3).

5. Для даного натурального числа m>1знайдіть мінімальне до, для якого вже виконується рівність до!>m. (Наприклад, якщо m=10, то k=4).

Тема заняття:

Вкладені цикли.

Мета :

1. Закріпити знання по використовуванню різних типів циклів;

2. Отримати навики рішення алгоритмів з вкладеними циклами;

3. Вдосконалення уміння будувати програми мовою Паскаль. Виховувати уважність, активність на уроці.

Для вирішення задачі достатньо часто вимагається використовувати декілька вкладених один в одного циклічних конструкцій. Такі конструкції називають вкладеними циклами.

Розглянемо декілька прикладів:

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

program zadacha3_6;

var s, а, b:longint;

Begin

writeln('Введіть s'); readln(s);

for а:=1 to s do

for b:=1 to s do

if a*b=s then writeln ('сторони ',a,' і ',b);

End.

Дану задачу можна було вирішити, використовуючи тільки один цикл. Подумайте, як це зробити.

Дані натуральні числа n, m. Отримати всі натуральні числа, менші n, сума квадратів цифр яких рівна m.

program zadacha3_7;

var n, m, i, а, sum, cif:longint;

Begin

writeln('введіть n і m');readln(n, m);

for i:=1 to n do

Begin

а:=i;sum:=0;

while a>0 do

Begin

cif:=a mod 10;

sum:=sum+sqr(cif);

а:=a div 10;

end;

if sum=m then write(i,' ');

end;

End.

 
 


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

Оскільки тут всього три букви, то для вирішення достатньо написати три вкладені цикли, і перебрати всі варіанти складання тризначних чисел.

program zadacha3_8a;

var до, t, про, kto, kot, tok:longint;

Begin

for до:=0 to 9 do

for t:=0 to 9 do

for про:=0 to 9 do

Begin

kto:=k*100+t*10+o;

kot:=k*100+o*10+t;

tok:=t*100+o*10+k;

if (k<>t) and (k<>o) and (t<>o) and (kto+kot=tok) then

writeln(kto,'+',kot,'=',tok);

end;

End.

В даному алгоритмі тіло циклу виконувалося 10•10•10=1000 разів. (говоритимемо складність алгоритму =1000)

Якщо ж для вирішення складніших ребусів буде потрібно написати 8-10 вкладених циклів, то такий повний перебір працюватиме достатньо довго.

Можна трохи спростити даний алгоритм, якщо побачити що 1?k?4, t?2.

for до:=1 to 4 do

for t:=2 to 9 do

for про:=0 to 9 do

Тепер складність алгоритму 4•8•10=320. Просте косметичне виправлення дало збільшення швидкості в 3 рази.

Але і даний алгоритм не є оптимальним. Подивіться, при k=2і t=2 програма перебере всі 10 варіантів про. В таких випадках коли k=t цикл по провзагалі необхідно не виконувати.

Назвемо такий метод - контрольований перебір.

program zadacha3_8c;

var до, t, про, kto, kot, tok:longint;

Begin

for до:=1 to 4 do

for t:=2 to 9 do

if k<>t then

for про:=0 to 9 do

if (k<>o) and (t<>o) then

begin

kto:=k*100+t*10+o;

kot:=k*100+o*10+t;

tok:=t*100+o*10+k;

if kto+kot=tok then writeln(kto,'+',kot,'=',tok);

end;

End.

Такий алгоритм навіть при 8-10 вкладених циклах працює дуже швидко.

Питання для повторення:

1. Чи може у вкладених циклах використовуватися одна і та ж змінна, наприклад i?

2. Чи можна вкладати один в одного різні цикли: FOR в WHILE або REPEAT в FOR?

Завдання для самостійної роботи:

1. Старовинна задача. Скільки можна купити биків, корів і телят, якщо бик коштує 10 рублів, корова – 5 рублів, теля – полтінік (0,5 рублі), за умови, що на 100 рублів треба купити 100 голів худоби.

2. Задане натуральне n. Для всіх чисел від 1 до n знайти:

a) кількість дільників; b) суму парних дільників.

3. Знайти всі рішення наступних числових ребусів:

a) БАБКА+ДЕДКА+РЕПКА=СКАЗКА (4 рішення)

b) КОРОВА+ТРАВА+ДОЯРКА=МОЛОКО (2 рішення)

c) АЛЕНКА+ИВАН+КОЗЛИК=СКАЗКА (1 рішення)

d) ВЕТКА+ВЕТКА+СТВОЛ=ДЕРЕВО (3 рішення)

e) ВОРОТА+ТРАВА=ФУТБОЛ (3 рішення)

Тема заняття:

Алгоритми з повтореннями.

Практикум по розв’язуванню задач

з повтореннями.

Мета :

1. Закріпити навики написання алгоритмів з повтореннями;

2. Здійснити проміжний контроль знань;

3. Вдосконалення уміння будувати програми мовою Паскаль. Виховувати уважність, активність на уроці.

Завдання для самостійної роботи:

1. Дано натуральне число n. Обчислити:

.

2. Дані дійсне число а, натуральне число n. Обчислити:

a) an;

b) а(а + 1).(а + n – 1).

3. Дано натуральне число n. Обчислити твір перших n сомножетелей:

a) ;

b) .

4. Обчислити 1 - наступними чотирма способами:

a) послідовно зліва направо;

b) послідовно зліва направо обчислюються і, потім друге значення віднімається з першого;

c) послідовно справа наліво;

d) послідовно справа наліво віднімаються суми, виписані в би), потім віднімання.

Чому при обчисленнях кожним з цих способів виходять різні результати?

5. Знайти всі двозначні числа, які містять цифру N.

6. Складіть програму зведення натурального числа в квадрат, використовуючи наступну закономірність:

12 = 1

22 = 1 + 3

32 = 1 + 3 + 5

42 = 1 + 3 + 5 + 7

. . .

n2 = 1 + 3 + 5 + 7 + 9 + . + (2n – 1).

7. Скласти програму зведення заданого числа в третій ступінь, використовуючи наступну закономірність:

13 = 1

23 = 3 + 5

33 = 7 + 9 + 11

43 = 13 + 15 +17 + 19

53 = 21 + 23 + 25 + 27 + 29

8. Серед двозначних чисел знайти ті, сума квадратів цифр яких ділиться на задане число n.

9. Написати програму пошуку двозначних чисел, що задовольняють наступній умові: якщо до суми цифр числа додати квадрат цієї суми, то вийде саме число.

10. Написати програму пошуку тризначних чисел, квадрат яких закінчується трьома цифрами, що становлять початкове число.

11. Написати програму пошуку чотиризначного числа, яке при розподілі на З дає в залишку B, а при розподілі на B дає в залишку D.

12. Знайти суму позитивних непарних чисел, менших N.

13. Знайти суму цілих позитивних чисел з проміжку від А до В, кратних до (значення змінних А і У вводяться з клавіатури).

14. Знайти суму цілих позитивних чисел, великих А, менших B, кратних 3 і що закінчуються на 2, 4 або 8.

15. В тризначному числі закреслювали старшу цифру, коли отримане двозначне число помножили на 7, то отримали дане число. Знайти це число.

16. Сума цифр тризначного числа кратна 7, саме число також ділиться на 7. Знайти всі такі числа.

17. Серед чотиризначних чисел вибрати ті, у яких всі чотири цифри різні.

18. Дано натуральне число. Знайти всіх його дільників і їх суму.

19. В 1626 році індійці продали острів Манхеттен за 20$. Якби ці гроші були поміщені в банк на поточний рахунок і щорічний приріст склав k%, то була яка б сума в поточному році?

20. Серед двозначних чисел знайти ті, які діляться на число q, а сума їх цифр рівна n (0 < n £ 18).

21. Знайти мінімальне число, більше N, яке без остачі ділиться на До (До, N - натуральні числа).

22. Приписати по цифрі 1 в початок і в кінець запису числа n.

(Наприклад, введення n = 923, висновок 19231).

23. Поміняти місцями першу і останню цифри числа.

(Наприклад, введення n = 9423, висновок 3429).

24. Приписати до початкового числа n таке ж число.

(Наприклад, введення n = 423, висновок 423423).

25. З'ясувати, скільки разів в натуральному числі зустрічається його максимальна цифра.

(Наприклад, введення 4423, висновок 2 рази; введення 9077, висновок 1 разів).

26. З'ясувати, чи є різниця максимальної і мінімальної цифр числа парної.

27. Дано натуральне число n. Вимагається з'ясувати, чи можна відрекомендувати його у вигляді суми квадратів трьох натуральних чисел? Якщо можна, то:

вказати трійку x, у, z таких натуральних чисел, що

x2 + y2 + z2 = n;

вказати всі трійки таких чисел, що x2 + y2 + z2 = n.

28. Скласти програму, друкуючу к-ю цифру послідовності:

- 12345678910., в якій виписані підряд всі натуральні числа;

- 14916253649., в якій виписані підряд квадрати всіх натуральних чисел;

29. Скласти програму для знаходження всіх натуральних чисел n, m, до з інтервалу [а, b], удовлеовторяющих співвідношенню n2 + m2 = k2 (а і b задані).

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

Тема заняття:

Двомірні масиви: опис, введення і висновок масивів по рядках.

Приклади розв’язування задач з використанням двомірних масивів.

 

Мета :

1. Отримати навики розробки програм по роботі з елементами двомірного масиву;

2. Практична робота з масивами на комп'ютері;

3. Вдосконалення уміння будувати програми мовою Паскаль. Виховувати уважність, активність на уроці.

Двомірні масиви мають рядки і стовпці. Елемент масиву задається номером рядка і номером стовпця, на перетині яких він знаходиться

 
 

 

 


Якщо кількість рядків = кількості стовпців масив називається квадратною матрицею, в особливому випадку - прямокутної.

Задана прямокутна матриця розміру n рядків і m стовпців.

Заповнити її цілими числами. Роздрукувати по рядках. Знайти і вивести суму всіх елементів і їх середнє арифметичне значення.

program zadacha5_3_1;

var

i, j, s,m,n : integer;

sr : real;

а:array[1..10, 1..20] integer; {опис масиву}

Begin

Write('Кіл. рядків, кіл. стовпців?');

readln( n,m);

for i:=1 to n do

for j:=1 to m do

begin

write('Введіть а[', i, ',', j, ']'); {Введення елементів

readln (а[ i, j ]); масиву}

end;

writeln('Введенний масив');

for i:=1 to n do {Висновок ел. масиву}

begin

for j:=1 to m do

write (а[ i, j ],’ ’); {Висновок ел. масиву}

writeln;

end;

s:=0;

for i:=1 to n do

for j:=1 to m do {Знаходження суми}

s:=s + а[ i, j ];

writeln('Сума =', s);

sr:=s / (n*m); {Знаходження середнього}

writeln('Середнє =', sr:8:3)

End.

 

Задача. Серед непарних стовпців заданої цілочисельної матриці розмірністю n*m знайти стовпець з максимальною сумою модулів елементів.

program zadacha5_3_2;

var

i, j, m, n, до, s, max :integer;

а : array[1..10, 1..20] integer; {опис масиву}

Begin

Write('Кіл. рядків, кіл. стовпців?'); readln( n,m);

{Заповнити таблицю}

{Вивести таблицю по рядках}

{Спочатку рахуватимемо суму модулів елементів першого стовпця максимальної}

s:=0;

for i:=1 to n do {Знаходження суми першого стовпця}

-3
-12 -6
-5 -5

10 18 20 21 19

max сумма мод. Пар. стовп. = 20

номер стовпця = 3

s := s + abs ( а[i, 1]);

max := s ;

до:=1; j :=3;

while j <= m do

begin

s := 0;

for i:=1 to n do

s := s + abs ( а[ i,j ]);

if s > max

then begin

max := s; до:=j;

end;

j := j+2; {Перехід до чергового непарного

end; індексу стовпця }

writeln( 'Номер стовпця з максим. сумою модулів елементів ='

до, 'знач. макс.=', max);

end.

Завдання для самостійної роботи:

1. Є цілочисельний масив n*m елементів. Знайти номер рядка з мінімальною сумою модулів елементів.

2. Є цілочисельний масив n*m елементів. Знайти

індекси максимального елемента таблиці і значення

максимуму.

3. Є цілочисельний масив n*m елементів.

Яких елементів в масиві більше негативних або позитивних?

4. Є цілочисельний масив n*m елементів. Повідомити чи є в таблиці негативні елементи.

5. Є цілочисельний масив n*m елементів. Знайти середнє

арифметичне елементів масиву. Визначити і вивести

кількість елементів масиву, значення яких перевищує

це середнє значення.

Тема заняття:


<== попередня лекція | наступна лекція ==>
Оператор вибору. | Пошук максимального (мінімального) елемента.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн