КОНКУРСИ

конкурс сайтов
Арифметичні операції, стандартні функції.
10.09.2013

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

Вказівка присвоювання

Вказівка присвоювання має вигляд: ім’я змінної := вираз;

Наприклад:
A := b + c; { в змінну A вкладається результат суми змінних b та c}
PROIZV := 6 * D;{в змінну PROIZV вкладається результат добутку числа 6 та змінної D}
SLOVO :=”книжка”;{ в змінну SLOVO вкладається вираз “книжка”}

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

Наприклад:

Var
A:real;
B,C:integer;

begin

A:=B+C;

End.

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

Вказівка введення даних

Загальний вигляд вказівок введення даних з клавіатури:
Read(список);
Readln(список);
Наприклад:
Read(X,Y);
Readln(X,Y,K,Z);

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

після введення значення однієї змінної необхідно натиснути клавішу ENTER. Потім вводиться значення другої і знову натискається клавіша ENTER. І так повторюється виконання дій до тих пір, поки не буде введено значення всіх змінних.

Між вказівками Read і Readln є деяка різниця:

Read(змінна) – дана команда зчитує дані введені з клавіатури і заносить їх у змінну вказану у дужках;

Readln(змінна);– також виконує зчитування даних введених з клавіатури, заносить х в змінну вказану в дужках та переводить курсор на наступний рядок.

Readln; – просто призупиняє виконання програми до натиснення на клавішу ENTER, що дає змогу користувачу побачити результати виконання програми, які виводяться на монітор.

“Побачити результати виконання програми”? Яким чином? З тими командами, які ми розібрали це ж просто неможливо. Доведеться ще трішки зачекати перш ніж написати програму, але обіцяю це остання затримка.

Вказівка виведення даних

Виведення даних виконується вказівками Write та Writeln.

Загальний вигляд цих вказівок:
Write(список);
Writeln(список);
Writeln(‘текстовий вираз’, список);
Наприклад:
Write(X,Y);
Writeln(X);
Writeln(‘A + B = ‘,Y);
Writeln(‘A / B = ‘,Y:2:2);

Write(змінна) – дана команда виводить зміст змінної на монітор.

Writeln(змінна) – дана команда виводить зміст змінної на монітор і переводить курсор на інший рядок.

Останій запис, write(‘A / B = ‘,A/B:2:1);, мабудь визиває питання. Справа в тому, що присутність операції ділення вказує на те, що результат даної операції буде дійсним. А дійсні числа обчислюються з дуже великою точністтю, тому й виводиться результат буде на монітор з точністтю до 18-го знаку. Але у більшості випадків така точність не потрібна тому мі й вказуємо біля результату вираз: A/B:2:1. Цей вираз вказує на те, що кількість знаків після зап’ятої буде рівна другому числу в записі.

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

Арифметичні операції

* – множення;

/ – ділення;

+ – додавання;

– різниця;

div – ділення без залишку;

mod – залишок від ділення цілих чисел.

Стандартні функції

sin(x) – синус;

cos(x) – косинус;

arctan(x) – арктангенс;

ехр(х) – eх (експонента);

ln(x) – натуральний логарифм;

sqr(х) – x2;

abs(x) – |x| (модуль);

trunс(x)– ціла частина числа х;

frac(x) – дробова частина числа х;

round(x) – округлення до цілого значення;

chr(I) – символ, порядковий номер якого дорівнює I;

ord(c) – порядковий номер зазначеного символу с;

pred(k) – попередній для k елемент у числення типі;

succ(k) – наступний для k елемент у числення типі

sqrt(x)

.

Піднесення до степеня.

ХY = exp(ln(X)*Y)

Ну ось і все, тепер можна переходити до написання нашої першої програми.

Задача №1. Якщо на одну шальку терезів посадити Вінні Пуха, яки важить, n кілограмів, і П’ятачка, який важить на 10 кілограмів менше, а на іншу поставити глечик з медом, що важить m кілограмів, що набагато більше за вагу обох друзів, то скільки кілограмів меду доведеться з’їсти героям, що шальки терезів вирівнялися?

Математичний розв’язок. Хай вага Вінні Пуха n кілограмів, тоді вага П’ятачка буде n-10, разом вага друзів зіставить s=n+n-10. Щоб терези були в рівновазі друзям потрібно з’їсти стільки меду, скільки становить різниця між їхньою вагою і вагою глечика, тобто a(кількість потрібного для рівноваги меду)=m-s.

Що ж, як бачите, задача досить легка тепер подивимося на текст програми, яка знайде розв’язок цієї задачі.

Program zadacha1;
Var n, m, a, s : byte;
Begin
Writeln(‘Введіть вагу Вінні Пуха в кг’);
Readln(n);
Writeln(‘Введіть вагу горшіка з медом в кг’);
Readln(m);
s:=n+n-10;
a:=m-s;
Writeln(‘Доведеться з’їсти:’,a:1:1);
Readln;
End.

Розбір програми:

1. Назва програми zadacha1;
2. Визначаємо кількість змінних та їх тип;
3. Починаємо програму;
4. Виводимо на монітор запитання провагу Вінні Пуха;
5. Зчитуємо введене значення з клавіатури і записуємо в змінну n;
6. Виводимо на монітор запитання провагу горшіку з медом;
7. Зчитуємо введене значення з клавіатури і записуємо в змінну m;
8. вираховуємо вагу друзів та записуємо її в змінну s;
9. вираховуємо різницю ваги між друзями та горшіком та записуємо її в змінну a;
10. Виводимо на монітор кількість меду, яку необхідно з’їсти, щоб вирівняти терези;
11. Затримуємо подальше виконання програми, для перегляду результату;
12. Кінець програми.

Задача №2. Невдаха Сашко сів виконувати домашнє завдання і просидів за столом 2 години. З них Х хвилин він чухав потилицю і дивився у вікно, У хвилин шукав у письмовому столі гумку, щоб стерти у підручнику з англійської мови карикатуру на свого товариша, на малювання якої він витратив перед цим К хвилин. Весь останій час Сашко перекладав англійскі слова. Скільки слів він встиг перекласти, якщо на перекладення одного слова у ньго йшло 5 хвилин.

Математичний розв’язок. Хай Сашко чухав потилицю x хвилин, шукав гумку У хвилин, на малювання карикатури товариша він витратив k хвилин, тоді всього він витратив годин: T := 2*60-x-y-k; щоб визначити скільки Сашко переклав слів, треба весь витрачений ним час поділити на 5 (ця операція повинна виконатись націло). Отже маємо слідуючу прогщраму:


Program zadacha2;
Var x, y, T, k : byte;
Begin
Writeln(‘Введіть скільки хв Сашко чухав вуха’);
Readln(x);
Writeln(‘Введіть скільки хв Сашко шукав гумку’);
Readln(y);
Writeln(‘Введіть скільки хв Сашко витратив на малювання карикатури:’);
Readln(k);
T := 2*60;
T := T-x-y-k;
T := T div 5;
Writeln(‘Кількість слів, що переклав Сашко: Т = ‘,T );
Readln;
End.

Розбір програми:

1. Назва програми zadacha2;
2. Визначаємо кількість змінних та їх тип;
3. Починаємо програму;
4. Виводимо на монітор 1-ше запитання;
5. Зчитуємо введене значення з клавіатури і записуємо в змінну х;
6. Виводимо на монітор 2-ге запитання;
7. Зчитуємо введене значення з клавіатури і записуємо в змінну у;
8. Виводимо на монітор 3-е запитання;
9. Зчитуємо введене значення з клавіатури і записуємо в змінну к;
10. Переводимо 2 години у хвилини і записуємо результат в змінну Т;
11. Вираховуємо час який Сашко дійсно витратив на уроки, при чтому результат записуємо в Змінну Т, а в самому виразі використовуємо її попередній зміст;
12. Вираховуємо кількість слів яку переклав Сашко, для цього фактичний час розділимо на час, що виділяється для перекладу одного слова. Команда Div означає що ділення буде цілочисленим, без залишку;
13. Виводимо на монітор кількість слів, яку Переклав Сашко;
14. Затримуємо подальше виконання програми, для перегляду результату;
15. Кінець програми.

Тепер спробуйте написати розв’язки цих задач самостійно, і по можливості не підглядаючи на зразки. Вийшло? Впевнений, що все отрималося як найкраще. Ну а тепер наступний крок: пропоную декілька задач для закріплення матеріалу. Розв’яжіть їх самостійно а потім порівняйте з рішеням яке отримав я. Можливо ви зовсім по іншому розв’яжете поставлені задачі, але результат повинен отримуватися той самий.

Задача №3 Петрусь задумав число. На запитання друзів він сказав: якщо подвоїти число, а потім додати до нього 5, то отримається число n. Напишіть програму яка визначить, яке ж число задумав Петрусь?

Задача №4 На бульдозі Жорику сидить х бліх, а на вівчарці Ладі – у. Після того, як вівчарка і бульдог зустрілися і поговорили, 12 Жорикових бліх перейшли до Лади, а 17 Ладиних – на Жорика. Скільки бліх тепер сидить на Ладі, а скільки на Жорику?

Задача №5 По номеру квартири визначити номер під’їзду і поверх. Квартира знаходиться в п’ятиповерховому будинку, на кожному поверсі по чотири квартири.

Сподіваюся задані задачі не визвали труднощів у розв’язанні. Тепер можна й порівняти ваші результати з тими, що отримав я. Якщо ж виникли запитання, щодо тексту програм, прошу писати мені в у відповідному розділі. Буду радий допомогти у засвоєнні матеріалу. Можливо ви також маєте цікаві задачі надсилайте їх за допомогою поштової форми нашого сайту з поміткою: «програмування – цікавинки». / написати можна тут/

Розв’язки задач


Program zadacha_3;
var ch_zadumka, rezultat: real;
begin
write(‘vvedite chislo: ‘);
readln(rezultat);
ch_zadumka:=(rezultat-5)/2;
write(‘zadumane chislo = ‘,ch_zadumka:2:0);
readln;
end.


Program zadacha_4;
var Jora, Lada, x,y: byte;
begin
write(‘Jora mae blih = ‘);
readln(x);
write(‘Lada mae blih = ‘);
readln(y);
Jora:=x+17-12;
Lada:=x-17+12;
writeln(‘Jora mae blih pislya zustrichi: ‘,Jora);
write(‘Lada mae blih pislya zustrichi: ‘,Lada);
readln;
end.


Program zadacha_5;
var n_kv,pid,pov:integer;
begin
write(‘vvedite N kvartiri: ‘);
readln(n_kv);
pid:=((n_kv-1) div 20)+1;
writeln(‘N pid”izdu = ‘,pid);
pov:= ((n_kv-1) div 4+1)-((pid-1)*5);
writeln(‘N poverhu = ‘,pov);
readln;
end.

Коментування від Vkontakte
Коментування стандартною формою




istanbul escort atakoy escort istanbul escort