Пошук

неділю, 10 січня 2010 р.

I. Лінійні алгоритми (частина 2)

ЗАДАЧА № 6

Постановка задачі:

Трикутник задано координатами своїх вершин. Знайти периметр та площу трикутника.

Аналіз алгоритму:

Периметр фігури – це сума її сторін. Площа фігури – це … Таким чином отримуємо висновок – для розв’язання цієї задачі необхідно знати довжини сторін трикутника. Оскільки сторона трикутника – це відрізок, що сполучає дві задані вершини, то обрахувати довжину сторони можна здійснити шляхом знаходження відстані між двома точками координатної площини за формулою , де (x1, y1) – координати першої точки, (x2, y2) – координати другої точки.

Текст програми:

Program Task_6;

Uses Crt;

Var

   Ax,Ay,Bx,By,Cx,Cy,AB,BC,AC,P,S:real;

Begin

 Clrscr;

 Write(‘Введіть через проміжок координати т. А: ‘);

 Readln(Ax,Ay);

 Write(‘Введіть через проміжок координати т. B: ‘);

 Readln(Bx,By);

 Write(‘Введіть через проміжок координати т. C: ‘);

 Readln(Cx,Cy);

 Writeln;

 AB:=sqrt(sqr(Bx–Ax)+sqr(By–Ay));

 BC:=sqrt(sqr(Cx–Bx)+sqr(By–Cy));

 AC:=sqrt(sqr(Cx–Ax)+sqr(Cy–Ay));

 P:=(AB+BC+AC)/2;

 Writeln(‘Периметр трикутника = ‘,P*2:5:2);

 S:=sqrt(P*(P–AB)*(P–BC)*(P–AC));

 Writeln(‘Площа трикутника = ‘,S:5:2);

 Readkey;

End.

ЗАДАЧА № 7

Постановка задачі:

Дане натуральне число n (n ≤ 9999). Чи вірно, що всі чотири цифри числа відмінні одна від одної?

Аналіз алгоритму:

Для розв’язання цієї задачі варто скористатися стандартними операціями цілочисельного ділення та остачі від ділення цілих чисел (операції div та mod). Результатом ділення числа націло на 10 буде ефект відкидання «молодшої» цифри числа (відповідно при діленні на числа 100, 1000, 10000 тощо будемо «відкидати» дві, три або чотири цифри числа). Результатом же операції знаходження залишку від ділення на 10 буде остання цифра числа (відповідно при знаходженні залишку від ділення на 100, 1000, 10000 будемо отримувати дві останні, три останні, чотири останні цифри числа).

Наприклад:

234 div 10 = 23

9213 div 100 = 92

52 mod 10 = 2

2845 mod 1000 = 845

 

Текст програми:

Program Task_7;

Uses Crt;

Var

   n,n1,n2,n3,n4:integer;

   flag:boolean;

Begin

 Clrscr;

 Write(‘Введіть n: ‘);

 Readln(n);

 n4:=n mod 10;

 n3:=(n mod 100) div 10;

 n2:=(n mod 1000) div 100;

 n1:=n div 1000;

 flag:=(n1<>n2) and (n1<>n3) and (n1<>n4) and
(n2<>n3) and (n2<>n4) and (n3<>n4);

 Writeln(‘Відповідь: ‘,flag);

 Readkey;

end.

ЗАДАЧА № 8

Постановка задачі:

Якщо на одну шальку терезів посадити Даринку, яка важить N кг, і Наталку, яка важить на 5 кг менше, а на іншу насипати M кг цукерок, то скільки кілограмів цукерок доведеться з’їсти дівчаткам, щоб шальки терезів зрівноважилися?

Аналіз алгоритму:

Введемо змінні для зберігання результатів: N – вага Даринки; М – вага цукерок; Р – вага цукерок, які необхідно з’їсти дівчаткам.

Текст програми:

Program Task_8;

Uses crt;

Var M, N, P : real;

Begin

Clrscr;

Write(‘Введіть вагу Даринки: ’);

Readln(N);

Write(‘Введіть вагу цукерок, що лежать на терезах: ’);

Readln(M);

Р := N + N – 5 – М; {N – 5 – вага Наталки}

Writeln(‘Дівчаткам необхідно з”їсти’,Р,‘ кг цукерок.’);

Readkey;

End.

ЗАДАЧА № 9

Постановка задачі:

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

Аналіз алгоритму:

Необхідні змінні: S – сума нарахувань сумісника; Р – реальна платня, яку він одержить у касі (за умовою вона становить 80 % від нарахувань).

Текст програми:

Program Task_9;

Uses crt;

Var P, S : real;

Begin

Clrscr;

Write(‘Введіть суму нарахувань робітника: ’);

Readln(S);

P := S*0.8;

Writeln(‘Платня сумісника становить: ‘, Р:8:2);

Readkey;

End.

ЗАДАЧА № 10

Постановка задачі:

За допомогою вбудованого динаміка відтворити мелодію дитячої пісеньки «Ялинка».

Текст програми:

Program Task_10;

Uses Crt;

Begin

Sound(785); Delay(10000); Nosound;

Sound(659); Delay(5000); Nosound;

Sound(659); Delay(5000); Nosound;

Sound(785); Delay(10000); Nosound;

Sound(659); Delay(5000); Nosound;

Sound(659); Delay(5000); Nosound;

Sound(785); Delay(5000); Nosound;

Sound(698); Delay(5000); Nosound;

Sound(659); Delay(5000); Nosound;

Sound(587); Delay(5000); Nosound;

Sound(523); Delay(20000); Nosound;

Sound(785); Delay(10000); Nosound;

Sound(1046); Delay(5000); Nosound;

Sound(880); Delay(5000); Nosound;

Sound(785); Delay(10000); Nosound;

Sound(659); Delay(5000); Nosound;

Sound(659); Delay(5000); Nosound;

Sound(785); Delay(5000); Nosound;

Sound(698); Delay(5000); Nosound;

Sound(659); Delay(5000); Nosound;

Sound(587); Delay(5000); Nosound;

Sound(523); Delay(20000); Nosound;

End.

Немає коментарів:

Дописати коментар