asyan.org
добавить свой файл
1 2 ... 17 18
Управління освіти Святошинської районної в м. Києві

Державної адміністрації
Спеціалізована школа №304
Розв’язок задач на мові програмування Pascal


Седлецька Галина Григорівна

Вчитель інформатики

Спеціаліст Вищої категорії

2012 р.


Зміст



Лінійні алгоритми 3

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

Алгоритми з розгалуженням 13

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

Циклічні алгоритми 32

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

Процедури і функції 49

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

Одновимірні масиви 68

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

Двовимірні масиви 125

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

Символи 181

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

Рядки 188

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

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



Паскаль - мова професійного програмування, яка названа на честь французького математика і філософа Блеза Паскаля (1623-1662) та розроблено в 1968-1971 рр.. Никлаусом Віртом. Спочатку була розроблена для навчання, але незабаром стала використовуватися для розробки програмних засобів в професійному програмуванні.

Паскаль популярний серед програмістів з наступних причин:

1. Простий для вивчення.

2. Відображає фундаментальні ідеї алгоритмів.

3. Дозволяє чітко реалізувати ідеї структурного програмування і структурної організації даних.

4. Використання простих і гнучких структур розгалужень, циклів.

5. Надійність розроблених програм.
Загальна структура програми на мові Паскаль наступна:

Рrogram ИМЯ..; {заголовок програми}

Uses ...; {раздвл опису модулів}

Var ..; {розділ оголошення змінних}

  ...

Begin {початок виконавчої частини програми}

  ... {послідовність

  ... операторів}

End. {кінець програми}
Оператор присвоювання - основний оператор будь-якої мови програмування. Загальна форма запису оператора:
Ім'я величини : = вираз

Наприклад, В : = ; або V : = +1;

За допомогою оператора присвоювання змінній можуть присвоюватися константи та вирази, значення змінних будь-якого типу.
Як тільки в програмі зустрічається змінна, для неї в пам'яті відводиться місце. Оператор присвоювання розміщує значення змінної або значення виразу у відведене місце.
Алгоритм - чітка послідовність дій, необхідна для виконання завдання.

Програма - алгоритм, записаний на мові програмування.

Алфавіт мови - набір елементарних символів, які використовуються для складання програм.

Алфавіт містить:

• 52 букви латинського алфавіту (малі і великі);

• арабські цифри (0-9);

• спеціальні символи;

• знаки математичних дій (+ - * /);

• знаки пунктуації (:.,; "`);

• дужки ([] () {});

• знак пробілу;

• знаки відношення (< > <> =).

Ідентифікатор (ім'я) - ім'я якого-небудь елементу програми, яке повинно задовольняти таким вимогам:

• довжина імені не повинна перевищувати 63 символи,

• першим символом не може бути цифра,

• змінна не може містити пробіл;

• ім'я не повинно збігатися з зарезервованим (службовим) словом,

• великі та малі літери сприймаються однаково.
Зарезервовані (службові) слова - це слова, що використовуються тільки за своїм прямим призначенням. Їх не можна використовувати в якості змінних, так як вони виконують певне смислове навантаження.

Приклади зарезервованих слів: AND, GOTO, PROGRAM, ELSE, IF, RECORD, NOT, ARRAY, REPEAT, UNTIL, BEGIN, IN, SET, END, CASE, CONST, USES, INTERFACE, STRING, LABEL, THEN, OF, DIV, TO, VAR, DO, TYPE, WHILE, DOWNTO, FILE, FUNCTION, PROCEDURE та інші.

Змінні (Var) - вид даних, що може змінювати своє значення в ході програми, описують змінні після зарезервованого слова Var.

Константи (Const) - вид даних, який є постійним на протязі виконання програми, описують константи після зарезервованого слова Const.

Коментарі - деяка запис, що служить для пояснення програми, який записується у фігурних дужках.

Для тимчасового зберігання інформації в оперативній пам'яті ЕВМ в мові Паскаль використовуються константи і змінні.

Вони можуть бути різних типів:
• цілі числа (integer);
• дійсні числа (real);
• символьний тип (Char);
• строковий тип (string);
• логічний тип (boolean);
Процедури Writeі WriteLn використовуються для виведення результату і для виведення різних повідомлень або запитів. Це дозволяє вести діалог з користувачем, повідомляти його, коли йому потрібно ввести значення, коли він отримує результат, коли він помилився та ін.
Процедури Read и ReadLn використовуються для введення інформації з клавіатури. Часто процедуру ReadLn без параметрів застосовують в кінці програми для затримки: до натискання на клавішу результат виконання програми залишається на екрані. Це дуже корисно робити для аналізу результатів.
Для розв’язування задач необхідні стандартні функції і процедури.

Функція - це така організація перетворення переданого їй значення, при якій це змінене значення повертається назад.

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

Арифметичні функції:

1. Abs (x), де аргумент і результат є змінними цілого або дійсного типу - обчислює модуль (абсолютну величину) числа х;

2. Cos (х), де аргумент і результат є змінними дійсного типу - обчислює косинус х;

3. Sin (х), де аргумент і результат є змінними дійсного типу - обчислює синус х;

4. Frac (х), де аргумент і результат є змінними дійсного типу - виділяє дробову частину числа х;

5. Int (х), де аргумент і результат є змінними дійсного типу - виділяє цілу частину числа х;

6. Pi, де результат є змінною дійсного типу - обчислює значення π;

7. Random (х), де аргумент і результат є змінними цілого типу - генерує випадкове число в межах від 0 до х включно. Якщо параметр х не заданий, то формується дійсне число від 0 до 1. Перед використанням даної функції потрібно ініціалізувати генератор випадкових чисел за допомогою процедури Randomize;

8. Sqr (х), де аргумент і результат є змінними цілого або дійсного типу - обчислює x2;

9. Sqrt (х), де аргумент і результат є змінними цілого або дійсного типу - обчислює √ х
Задача 1. Знайти середнє значение трьох чисел.

Program Srednee;
Uses   Crt;
Var
First, Second, Third ,Sum: integer;
Ser­_ar : real;
Begin
ClrScr;
Write (‘Введіть перше число=> ‘);
ReadLn(First);
Write (‘Введіть друге і третє числа через пробіл =>‘);
ReadLn(Second, Third);
Sum := First + Second + Third;
Ser_ar:= Sum/3;
Write (‘Среднєє значення ‘, First, ‘, ‘,Second, ‘ и ‘, Third, ‘ дорівнює ‘,
Ser_ar:5:2);
ReadLn;
End.

Задача 2. Створити за допомогою програми свою візитну картку.

********************************
*                Іванов Сергій                  *
*         Пролетарска 74 кв. 55             *
*              Телефон 445-72-88            *
********************************

Program Vizutka;
Uses   Crt;
Begin
ClrScr;
Writeln (‘******************************‘);
Writeln (‘* Іванов Сергій *‘);
Writeln (‘* Пролетарська 74 кв. 55 *‘);
Writeln (‘* Телефон 445-72-88 *‘);
Writeln (‘******************************‘);
ReadLn;
End.

Задача 3. Запросити у користувача два числа і вивести на екран результат суми, різниці, добутку, частки та цілочисельного ділення і залишок від цілочисельного ділення у вигляді таблиці. Наприклад, при введенні чисел 5 і 3 на екрані повинна бути така таблиця:

***************************************************************
*   X   *   Y   *   syma * riznuzya * dobytok * chastka * div   *   mod    *
***************************************************************
*    5    *    3    *     8    *     2     * 15 * 1.67 * 1 * 2 *
***************************************************************

Program Arufmet_dii;
Uses   Crt;
Var
x, y, syma, riznuzya dobytok, z_div, z_mod : integer;
chastka : real;
Begin
ClrScr;
Write (‘Введіть перше число=>‘);
ReadLn(x);
Write (‘Введіть друге числo=>‘);
ReadLn(y);
syma := x + y;
riznuzya := x - y;
dobytok := x * y;
chastka := x / y;
z_div := x div y;
z_mod := x mod y;
Writeln (‘***********************************************************‘);
Writeln (‘* X * Y * syma * riznuzya * dobytok * chastka * div * mod *‘);
Writeln (‘***********************************************************‘);
Writeln (‘* ’,x,’ * ,‘y,’ * ‘,syma,’ * ‘,riznuzya,’ * ‘,dobytok,’ * ‘,
chastka’, * ‘,z_div,’ * ‘,z_mod,’ *‘);
Writeln (‘***********************************************************‘);
ReadLn;
End.

Задача 4. З клавіатури задається число К. Викинути із запису числа цифру, що позначає сотні. Вивести отримане число на екран.

Program chuslo;
Uses   Crt;
Var
x, y, z, k : integer;
Begin
ClrScr;
Write (‘Введіть число=>‘);
ReadLn(x);
y := x div 1000;
y := y * 100;
z := x mod 100;
k := y + z;
Writeln (k);
ReadLn;
End.

Задача 5. Задано площу кільця й радіус зовнішнього кола. Визначити радіус внутрішнього колa.
Program kilze;

Uses crt;

Var

s1,s2,sk,r1,r2:real;

Begin

clrscr;

write('sk=>');

readln(sk);

write('r1=>');

readln(r1);

s1:=pi*sqr(r1);

s2:=s1-sk;

r2:=sqrt(s2/pi);

writeln('r2=',r2:4:1);

End.

Задача 6. Трикутник заданий координатами своїх вершин. Знайти периметр трикутника.
Program perumetr_trukytnuka;

Uses crt;

Var

x1,x2,x3,y1,y2,y3,a,b,c,p:real;

Begin

clrscr;

write('x1=>');

readln(x1);

write('y1=>');

readln(y1);

write('x2=>');

readln(x2);

write('y2=>');

readln(y2);

write('x3=>');

readln(x3);

write('y3=>');

readln(y3);

a:=sqrt(sqr(x2-x1)+sqr(y2-y1));

b:=sqrt(sqr(x3-x2)+sqr(y3-y2));

c:=sqrt(sqr(x1-x3)+sqr(y1-y3));

p:=a+b+c;

writeln('p=',p:4:2);

End.

Задача 7. Визначено чотиризначне число. Знайти добуток цифр цього числа.
Program Dobutok;

Var

a,b,c,d,n:integer;

Begin

Write('n=>');

Readln(n);

a:=n div 1000;

b:=(n mod 1000) div 100;

c:=(n mod 100) div 10;

d:=n mod 10;

writeln(a*b*c*d);

End.

Задача 8. Елементи кола пронумеровані таким чином:

1-радіус (R),

2-діаметр (D),

3-довжина (L),

4-площа круга (S).

Дан радіус кола. Скласти програму і вивести значення інших елементів даного кола (в тому ж порядку).
Program kolo;

Uses crt;

Var

r,d,l,s:real;

Begin

clrscr;

write('r=>');

readln(r);

write('1 – radiyc=>',r:4:2);

write('2 - diametr=>',2*r:4:2);

write('3 - dovghuna=>',2*pi*r:4:2);

write('4 - plocha=>',pi*sqr(r):4:2);

readln;

End.

Задача 9. Дано катети прямокутного трикутника. Знайти його гіпотенузу і площа.
Program pr_trukytnuk;

Uses crt;

Var

a,b,c,s:real;

Begin

clrscr;

write('a=>');

readln(a);

write('b=>');

readln(b);

c:=sqrt(sqr(a)+sqr(b));

s:=a*b/2;

write('c=>',c:4:2);

write('s =>',s:4:2);

readln;

End.

Задача 10. Обчислити площу прямокутного трикутника за формулою Герона, якщо задані його сторони.
Program trukytnuk;

Uses CRT

Var

a,b,c,p,s:real;

Begin

clrscr;

write('a=>');

readln(a);

write('b=>');

readln(b);

c:=sqrt(sqr(a)+sqr(b));

p:=(a+b+c)/2;

s:=sqrt(p*(p-a)*(p-b)*(p-c));

writeln('s =>',s:4:2)

readln;

End.

Задача 11. Визначити площу трапеції висотою h, з основами а і b.
Program trapeziya;

Uses CRT

Var

a,b,h,s:real;

Begin

clrscr;

write('a=>');

readln(a);

write('b=>');

readln(b);

write('h=>');

readln(h);

s:=(a+b)/2

writeln('s =>',s:4:2)

readln;

End.

Задача 12. Визначити кількість теплоти необхідне для нагрівання рідини масою m, що володіє теплоємністю с від температури t1 до температури t2.
Program teplota;

Uses CRT

Var

m,c,t1,t2,Q:real;

Begin

clrscr;

write('m=>');

readln(m);

write('c=>');

readln(c);

write('t1=>');

readln(t1);

write('t2=>');

readln(t2);

Q:=m*c*(t2-t1)

writeln('Q =>',Q:4:2)

readln;

End.

Задача 13. Обчислити об'єм паралелепіпеда зі сторонами a, b, c.
Program paralelepiped;

Uses CRT

Var

a,b,c,v:real;

Begin

clrscr;

write('a=>');

readln(a);

write('b=>');

readln(b);

write('c=>');

readln(c);

v:=a*b*c

writeln('v =>',v:4:2)

readln;

End.

Задача 14. Поміняйте між собою значення двох змінних А і В, скориставшись третьої змінної R для зберігання тимчасового значення.
Program perestanovka;

Uses CRT

Var

a,b,r:integer;

Begin

clrscr;

write('a=>');

readln(a);

write('b=>');

readln(b);

r:=a;

a:=b;

b:=r;

writeln('a =>',a)

writeln('b =>',b)

readln;

End.

Задача 15. Поміняти між собою значення двох змінних, не використовуючи третьої.
Program perestanovka;

Uses CRT

Var

a,b:integer;

Begin

clrscr;

write('a=>');

readln(a);

write('b=>');

readln(b);

a:=a+b;

b:=b+a;

a:=b-a;

b:=b-2*a;

writeln('a=',a);

writeln('b=',b);

readln;

End.

Задача 16. Змінна Х містить тризначне число. Помістити в змінну S суму цифр цього числа.
Program syma;

Var

x,a,b,c,s:integer;

Begin

Write('n=>');

Readln(n);

a:=x div 100;

b:=(x mod 100) div 10;

c:=x mod 10;

s:=a+b+c;

writeln(‘s=’,s);

End.



следующая страница >>