Структура програми основні математичні функції введення І висновок даних. Формати висновку. Складання лінійних алгоритмів. Коментарі в програмі > Розгалуження
Вид материала | Документы |
- Практичне завдання на створення програми опрацювання табличних величин. Білет №3 Структура, 56.42kb.
- Програма фахового вступного випробування для зарахування на навчання за окр «магістр», 385.53kb.
- Календарне планування з інформатики для 11 класу на 2011-2012 навчальний рік, 75.51kb.
- Інтерфейс системи керування базами даних access. Створення бази даних. Таблиці. Запити, 156.05kb.
- Тема уроку: Базові структури алгоритмів. Слідування, розгалуження, повторення. Мета, 51.73kb.
- Інститут комп’ютерних технологій, автоматики І метрології, 129.38kb.
- Опис середовища Visual C+ Введення- виведення даних, 447.69kb.
- Називається комплекс програмних та мовних засобів, які використовуються для створення, 149.17kb.
- План уроку: Порівняльна характеристика типів баз даних. Особливості реляційних баз, 83.01kb.
- 1. Етика як наука: етимологія терміну, поняття, структура, завдання та функції. Основні, 139.33kb.
program zadacha3_6a;
var а,b:real;
Begin
writeln('Введіть два числа');
readln(а,b);
if (a>0) and (b>0) then writeln('числа одного знаку');
if (a<0) and (b<0) then writeln('числа одного знаку');
if (a>0) and (b<0) then writeln('числа різних знаків');
if (a<0) and (b>0) then writeln('числа різних знаків');
End.
На сьогоднішньому занятті ми не просто вивчатимемо нову тему, але і спробуємо з'ясувати для себе, що добрий програміст завжди уважно обдумує навіть вже написану і відладжену програму. Адже майже завжди можна застосувати правило: "Будь-яку програму можна переписати так, що вона стане більш короткою, або більш красивою".
А чи можна зробити нашу програму більш красивої або більш короткої? Так, можна. Давайте об'єднаємо першу і другу складові умови.
program zadacha3_6b;
var а,b:real;
Begin
writeln('Введіть два числа');
readln(а,b);
if ((a>0)and(b>0)) or ((a<0)and(b<0))
then writeln('числа одного знаку')
else writeln('числа різних знаків');
End.
Програма стала дійсно коротшою. Але в прикладі 3_6b складова умова складається у свою чергу з двох складових умов. Перегляньте, як розставлені дужки. А чи можна і цю програму зробити більш красивою або більш короткою? Можна. Приведемо нову версію перевірки умови для даної програми:
if a*b>0 then writeln('числа одного знаку')
else writeln('числа різних знаків');
Замініть умову в комп'ютері і переконайтеся, що воно працює вірно.
Дано натуральне число. Перевірити, чи є число двозначним, у якого перша цифра рівна останній.
program zadacha3_7;
var а:integer;
Begin
writeln('Введіть натуральне число');
readln(a);
if (а mod 10=a div 10) and (a>9) and (a<=99)
then writeln('является') else writeln('не является');
End.
Питання для повторення:
1. Що таке складова умова?
2. В чому відмінність складової умови від простої?
3. Які союзи використовуються при написанні складової умови?
4. Навіщо в задачі 3_6b використовуються подвійні дужки?
Завдання для самостійної роботи:
- Задане x. Обчислити у
a) б)
- Задано два числа. Чи є вони обидва великими 20?
- Задано два числа. Чи є вони обидва парними?
- Задано два числа. Чи є хоча б одне число парним?
- Задано два числа. Чи є хоча б одне число позитивним?
- Дано двухзначное число. Чи є обидві цифри числа парними?
- Дано тризначне число. Чи входить в нього цифра 4?
- Перевірити, чи є число тризначним, у якого перша цифра рівна останній.
- Визначити, чи є дане ціле число N непарним чотиризначним числом.
- Вивести на екран номер четверті, якій належить крапка з координатами (x,y), за умови, що x і у відмінні від 0.
- Задані дійсні x і у. Чи належить точка (x, у) заштрихованої частини площини:
- Дано натуральне число N (N<100), що визначає вік людини в літах. Дати для цього числа найменування: "рік", "роки", "літ".
Вивчаємо “Розгалуження в Pascal”
Тема уроку:
Операторні дужки.
Складовий оператор.
Мета заняття:
- Сформувати поняття про складового оператора;
- Отримати навики використовування операторних дужок;
- Закріпити знання і уміння по складанню програм на розгалудження.
Операторні дужки
Після службового слова then, або після службового else виконуватиметься тільки один оператор. Якщо необхідно, щоб виконувалося декілька операторів їх потрібно узяти в операторні дужки:
begin
end;
Групу операторів що знаходиться усередині операторних дужок називатимемо складовим оператором. Фактично, всім розділом операторів, усередині операторних дужок, є один складовий оператор.
Для того, щоб при великій кількості операторних дужок, програма була більш читана, end бажано записувати під begin.
Дані дійсні числа x, у (x?y). Менше з цих двох чисел замінити їх сумою, а більше - їх добутком.
program zadacha3_8;
var а,b,sa,sb:longint;
Begin
writeln('Введіть два числа');
readln(а,b);
sa:=a; sb:=b;
if a>b then
begin
b:=sa+sb;
а:=sa*sb;
end
else
begin
а:=sa+sb;
b:=sa*sb;
end;
writeln ('первоначальные числа a=',sa,' b=',sb);
writeln ('полученные числа a=',a,' b=',b);
End.
Скласти програму вирішальну квадратне рівняння вигляду ax2+bx+c=0.
program zadacha3_9;
var а,b,c:integer;
x,d,x1,x2:real;
Begin
writeln('введіть коефіцієнти а,b,c');
readln(а,b,c);
d:=b*b-4*a*c; {обчислення дискримінанта}
if d<0 then writeln('рівняння не має коренів');
if d=0 then
begin
writeln('рівнянн має 1 корінь');
x:=-b/(2*a);
writeln('x= ',x);
end;
if d>0 then
begin
writeln('рівняння має 2 кореня');
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln('x1= ',x1);
writeln('x2= ',x2);
end;
End.
Питання для повторення:
- В яких випадках після службових слів then і else потрібно писати begin. end, а в яких ні?
- Чим є складовий оператор?
- Чому end бажано записувати під begin?
- Для чого в задачі 3 8 введені змінні sa, sb?
- В якій з наступних структур допущена помилка? Яка?
Завдання для самостійної роботи:
- Дані дійсні числа x, у (x?y). Менше з цих двох чисел замінити їх напівсумою, а більше - їх подвоєним твором.
- Дано два цілі числа M, N. Якщо M ділиться без остачі на N, то вивести на екран приватне від розподілу, в осоружному випадку - повідомлення "M на N без остачі не ділиться".
- Дано три числа. Подвоїти їх, якщо вони впорядковані за збільшенням, інакше негативні замінити їх модулями.
- Дано три числа. Подвоїти їх, якщо вони цілі, інакше нецілі замінити їх цілими частинами.
- Дано натуральне число n (n 9999). Якщо число чотиризначне, то отримайте і виведіть перевертыш цього числа (3528 > 8253), інакше виведіть відповідь "Число не чотиризначне".
- Дано натуральне число n. Якщо воно двухзначное, то впишіть в середину нуль (для 56 > 506), інакше виведіть відповідь "Число не двухзначное".
- Дані натуральні числа до, l ( 1 до, l 8). На клітці (до, l) розташована шахова фігура:
- кінь b) ферзь
- Вивести на екран координати кліток, на які може бути схожою дана фігура, при цьому враховуйте, що не можна виходити за межі дошки.
Вивчаємо “Розгалуження в Pascal”
Тема уроку:
Оператор вибору.
Мета заняття:
- Познайомитися із структурою оператора вибору;
- Навчитися використовувати оператор вибору;
- Вдосконалення уміння будувати програми мовою Паскаль. Виховувати уважність, активність на уроці.
Оператор вибору.
Оператор вибору дозволяє вибрати одне з декількох можливих продовжень програми.
Структура оператора вибору така:
case <ключ вибора>
<список вибора>
[else <оператори>]
end;
Розглянемо декілька прикладів:
Вводитися число від 1 до 4, визначаюче пору року. Дати назву цієї пори року (1 - зима, 2 - весна, 3 - літо, 4 - осінь).
program zadacha3_10;
var
n:byte;
Begin
writeln('Введіть номер пори року');
readln(n);
case n
1: writeln('зима');
2: writeln('весна');
3: writeln('літо');
4: writeln('осінь');
else
writeln('неправильно ввели номер пори року');
end;
End.
Складемо програму "КАЛЬКУЛЯТОР", яка після введення двох чисел і одного із знаків +, - * / проведе обчислення, а результат видасть на екран.
program zadacha3_11;
var
а,b,s:real;
sim:char;
Begin
writeln('Введіть два числа');
readln(а,b);
writeln('Введіть знак операції');
readln(sim);
case sim
'+': s:=a+b;
'-': s:=a-b;
'*': s:=a*b;
'/': s:=a/b;
end;
writeln ('результат',a,sim,b,' = ',s);
End.
В даній програмі відсутня частина else і тому, якщо ввести замість даних арифметичних знаків, ввести будь-який символ, то програма працюватиме, але працюватиме невірно.
Питання для повторення:
- Скільки рядків може бути записано в списку вибору?
- Чи може в операторі вибору бути відсутній частина else?
- Сформулюйте, що може бути ключем вибору?
- Чи можна оператор вибору замінити умовним оператором if . then?
- Скільки операторів if then знадобилося б для вирішення задачі 3 10?
Завдання для самостійної роботи:
- Відредагуйте задачу zadacha3_11 так, щоб при введенні довільного символу програма видавала відповідь: "Введена некоректна арифметична операція";
- Вводиться число від 1 до 10. Дати назву цього числа (1 - один, 2 - два, 10 - десять);
- Вводиться число від 1 до 7, визначаюче день тижня. Дати назву цього дня (1 - понеділок, 2 - вівторок, 7 - неділя);
- В спортивних змаганнях Кулька, кіт Матроськін, дядько Федір і листоноша Печкін зайняли відповідно 1, 2, 3 і 4 місця. Скласти програму, яка по номеру місця видає ім'я учасника змагань.
- Вводиться число від 1 до 15. Вивести дане число, записане римськими цифрами (I, II, III, IV, V, VI .., XV);
- Вводиться число від 1 до 15. Вивести дане число, записане в двійковій системі счислення (1, 10, 11, 100, 101 .., 1111);
- Вводиться число від 1 до 12, визначаюче місяць року. Дати назву цього місяця року (1 -Январь, 2 - Лютий .., 12 Грудень);
- Вводиться номер місяця. Вивести пору року для цього місяця (1 - зима ..., 3 - весна .., 8 - літо.);
- Вводитися номер пори року. Вивести назви місяців для цієї пори року (1 – грудень, січень, лютий . . .);
- Вводится число від 1 до 100. Дати назву цього числа (1 - один, 2 - два .., 100 - сто);
- Дано натуральне число N (N<20), що визначає суму грошей в рублях. Дати для цього числа найменування: "рубель", "рубля", "рублів";
- Дано натуральне число N (N<100), що визначає вік людини в літах. Дати для цього числа найменування: "рік", "роки", "літ";
- Вводиться число від 1 до 7, визначаюче день тижня. Вивести розклад уроків у вашому класі цього дня.
Вивчаємо “Розгалуження в Pascal”
Тема уроку:
Умовний оператор.
Оператор вибору.
Практикум по рішення задач на розгалуження.
Мета заняття:
- Закріпити навики написання алгоритмів з розгалудженнями;
- Здійснити проміжний контроль знань;
- Вдосконалення уміння будувати програми мовою Паскаль. Виховувати уважність, активність на уроці.
Завдання для самостійної роботи:
- Дані дійсні числа х, у. Отримати:
- max(x,y);
- min(x,y);
- max(x,y) і min(x,y);
- Дані дійсні числа х, у, z. Отримати:
- max(x,y,z);
- min(x,y,z);
- Задано натуральне число а. Чи є воно парним?
- Задано натуральне число а. Чи є воно кратним 9?
- Дано тризначне число. Чи кратна сума його цифр семи?
- Дано ціле число a>9. Чи менше цифра десятків цифри одиниць?
- Дано тризначне число. Чи є сума його цифр двозначним числом.
- Дано три натуральні числа x, у, z. Обчислити кількість чисел менших 50.
- Знайти кількість позитивних чисел серед чотирьох заданих чисел а,b,c,d.
- Дано два дійсні числа. Зменшити друге число в п'ять разів, якщо воно більше першого по абсолютній величині.
- Вводиться назва місяця. Вивести пору року для цього місяця (січень - зима .., березень - весна .., серпень - літо.);
- Вводитися пора року. Вивести назви місяців для цієї пори року.
- Скласти програму, яка по введеній назві країни Європи виводитиме на екран назву столиці (наприклад, вводимо Греція - одержуємо "Столиця Греції Афіни");
- Скласти програму, яка по введеному на російській мові назві домашньої тварини виведе переклад його на англійську мову (наприклад, вводимо кіт - одержуємо cat);
- Придумайте програми перекладачі, енциклопедії, словники і ін. По подібності попереднього завдання.
- Задане x. Обчислити у
a) б)
- Задано два числа.
- Чи є кожне з цих чисел великим 10?
- Чи є хоча б одне з цих чисел великим 10?
- Чи є тільки одне з цих чисел великим 10?
- Задано два числа.
- Чи є кожне з цих чисел парним?
- Чи є хоча б одне з цих чисел парним?
- Чи є тільки одне з цих чисел парним?
- Задані два натуральні числа. Чи є перше число двухзначным, а друге однозначним?
- Задано два числа. Чи є перше число негативним, а друге позитивним?
- Дано двозначне число. Чи є сума його цифр двозначним числом кратним трьом.
- Перевірити, чи є число тризначним, у якого цифри утворюють геометричну прогресію (наприклад: 139, 842).
- Задані x1, y1, x2, y2 (x1,y1,x2,y2 ?0). Чи лежать крапки (x1, y1) і (x2, y2):
- в одній четверті;
- в різних четвертях.
- Задані дійсні x і у. Чи належить точка (x, у) гілки параболи (y=x2) лежачої в другій четверті?
- Задані дійсні x і у. Чи належить точка (x, у) заштрихованої частини площини:
26. Визначити, чи є дане ціле число N парним тризначним числом.
- Дано натуральне число N (N<100), що визначає суму грошей в рублях. Дати для цього числа найменування: "рубель", "рубля", "рублів".
- Дані дійсні позитивні числа x, у, z.
- З'ясувати, чи існує трикутник з довжинами сторін x,y,z.
- Якщо трикутник існує, то відповісти – чи є він гострокутним.
- Дані дійсні позитивні числа а, b, з, x, у. З'ясувати, чи пройде цеглину з ребрами а, b, з в прямокутний отвір із сторонами x і у. Просовувати цеглину в отвір дозволяється тільки так, щоб кожне його ребро паралель або перпендикулярно кожної із сторін отвору.
- Дано натуральне число n (n 9999).
- Чи є це число палиндромом (перевертышем) з урахуванням чотирьох цифр, як, наприклад, числа 2222, 6116, 0440 і т.д.?
- Чи вірно, що це число містить рівно три однакові цифри, як, наприклад, числа 6676, 4544, 0006 і т.д.?
- Чи вірно, що всі чотири цифри числа різні?
- Поле шахівниці визначається парою натуральних чисел, кожне з яких не перевершує восьми: перше число – номер вертикалі, друге – номер горизонталі. Дані натуральні числа до, l, m, n, кожне з яких не перевершує восьми. Потрібен:
- З'ясувати, чи є поля (к,l) і (m,n) полями одного кольору.
- На полі (до, l) розташований ферзь. Чи загрожує він полю (m, n)?
- Аналогічно b), але ферзь замінюється на коня.
- З'ясувати, чи можна з поля (до, l) одним ходом тури потрапити на поле (m, n). Якщо ні, то з'ясувати, як це можна зробити за два ходи (вказати поле, на яке приводить перший хід).
- Аналогічно d), але тура замінюється на ферзя.
Вивчаємо “Цикли”
Тема уроку:
Алгоритми з повтореннями.
Цикл з параметром FOR.
Мета заняття:
- Сформувати поняття про цикли;
- Навчитися використовувати рахунковий цикл FOR;
- Отримати навики рішення алгоритмів з повтореннями.
В мові Паскаль існує трьох різних операторів за допомогою яких можна запрограмувати фрагменти програми, що повторюються (трьох операторів циклу):
- рахунковий цикл 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);
0>