Основні прийоми роботи в середовищі ТР

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Актюбинский Політехнічний коледж

Звіт

по навчальній практиці

з програмування

Виконала:

Волоснова А.С

учнівська

групи 202АС

Перевірила:

Гайсагалеева Б.М

Актобе 2010

ЩОДЕННИК.


ДАТА

ТЕМА


Виконані роботи


ПЕРЕВІРКА


14.06.10

Види завантаження. Основні прийоми роботи в середовищі ТР. Редагування тексту програми, процес налагодження.

Вивчили основні види завантаження і прийоми роботи в ТР і процес налагодження.



14.06.10

Вивчення команд редагування налагодження програм за допомогою командного меню Pascal.

Вивчили команди редагування налагодження програм за допомогою командного меню Pascal.



14.06.10

Оформлення програми. Розділи. Опис розділів. Призначення кожної частини програми.

Вивчили, як оформляти програми, а також призначення кожної частини програми.



15.06.10

Розробка постановки завдання. Розробка найпростіших програм з використанням команд привласнення, введення, виведення.

Навчилися складати програми з використанням найпростіших операторів введення, виведення, присвоєння.



15.06.10

Формати вводу, виводу. Команди Read, Readln, Write, Writeln.

Вивчили формати введення і виведення і команди Read, Readln, Write, Writeln.



15.06.10

Визначення типів даних. Оголошення даних. Константи. Мітки. Коментарі. Роздільники. Ознаки кінців рядків на Pascale

Вивчили різні типи даних і ознаки решт рядка на Pascal



16.06.10

Команди розгалуження. Повні і не повні команди розгалуження.

Вивчили повну і не повну форми команд розгалуження.



16.06.10

Складові оператори. Службові дужки. Використання власних операторів команди розгалуження.

Вивчили різні види складових операторів.



16.06.10

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

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



17.06.10

Складові умови. Оформлення складових умов. Союзи складових умов. Приклади застосування складових умов.

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



17.06.10

Рішення завдань з вибору функції за значенням аргументу. Команда вибору. Визначення належності точки до фігури, до функції. Словесні умови.

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



17.06.10

Рішення задач. Застосування. Обмеження налагодження.

Вирішували завдання щодо обмеження налагодження



18.06.10

Організація циклу з умовою продовження. Складові оператори в циклі WHILE DO. Застосування. Рішення задач. Блок-схема. Налагодження.

Вивчали складові оператори в циклі WHILE DO. Вирішували завдання.



18.06.10

Оператор циклу з умовою закінчення UNTIL, REPEAT. Правила застосування.

Вивчили оператор циклу з умовою закінчення UNTIL, REPEAT. Вирішували завдання.



18.06.10

Рішення задач. Блок-схема. Налагодження. Результати.

Рішення задач.



19.06.10

Оператор цікла с параметром FOR TO DO. Правила застосування. Складові оператори в циклі. Рішення задач з використанням оператора циклу з параметром.

Вивчили оператор циклу з параметром FOR TO DO. Рішення задач.



19.06.10

Знаходження суми, твори елементів ряду. Параметр циклу.

Навчилися знаходити суму та добуток елементів ряду.



19.06.10

Цикл з параметром, з вибіркою кінця. Застосування.

Вивчили оператор циклу з параметром



21.06.10

Похідні типи. Одновимірні масиви. Типи індексу. Використання значень регулярного типу.

Розглянули одновимірні масиви, похідні типи. Виконали практичну роботу.



21.06.10

Багатовимірні масиви.

Розглянули багатовимірні масиви. Виконали практичну роботу.






21.06.10

Синтаксис завдання регулярного типу.

Вивчили синтаксис регулярного типу



22.06.10

Двовимірний масиви. Матриця матриць. Створення формування і робота з двовимірними масивами. Пошук елементів в матрицях.

Вивчили двовимірний масив і роботу з двовимірним масивом.



22.06.10

Упорядкування та сортування елементів. Рішення задач на матриці.

Навчилися сортувати елементи масиву. Вирішували завдань на матриці.



22.06.10

Складання програм з використанням матриць.

Складали програми з використанням матриць.



23.06.10

Процедури без параметрів. Процедури з параметрами. Параметри - значення. Параметри-змінні

Вивчили різні види процедур: з параметрами, без параметрів, параметри-значення, параметр-змінні.



23.06.10

Параметри довільних типів. Синтаксис процедур.

Розглянули параметри довільних типів. І синтаксис процедур.



23.06.10

Визначення оператора процедури. Приклади використання процедур

Вивчили оператора процедури та його застосування.



24.06.10

Опис процедури-функції. Виклик функції. Побічні ефекти. Рекурсивні функції.

Вивчили опис процедури-функції, її виклик. Побічні ефекти.



24.06.10

Параметри-функції і параметри-процедури.

Вивчили параметри-функції і параметри-процедури.



24.06.10

Процедури і крокова деталізація.

Розглянули крокову деталізацію.



25.06.10

Строкові величини. Робота з рядковими величинами. Формування рядків з урахуванням кінця рядка. Підрахунок, заміна елементів. Видалення символів, ведучих, відомих прогалин. Пошук потрібного символу.

Навчилися працювати із строковими величинами.



25.06.10

Робота зі стандартними функціями рядків-Concat, Copy, Insert, Delete, POS, Length.

Навчилися працювати зі стандартними строковими функціями: Concat, Copy, Insert, Delete, POS, Length.



25.06.10

Функції STR, Val, UpCase.

Вивчили функції: STR, Val, UpCase.



26.06.10

Найпростіші комбіновані типи. Опис комбінованих типів. Робота з елементами комбінованого типу. Вибірка елементів.

Вивчили найпростіші комбіновані типи, їх опис, принцип роботи.



26.06.10

Багаторівневі запису.

Вивчили багаторівневі записи



26.06.10

Оператор приєднання.

Вивчили оператор приєднання.



28.06.10

Позначення множин в Паскалі. Завдання множинного типу та множинна змінна. Операції над множинами.

Вивчили множини в Паскалі.



28.06.10

Процедури роботи з множинами.

Вивчили процедури роботи з множинами.



28.06.10

Приклади використання множинного типу

Розглянули приклади множинного типу



29.06.10

Файли і робота з ними. Доступ до файлів. Імена файлів. Файли логічних пристроїв. Ініціація файлу.

Вивчили файли, доступ до них, їх імена.



29.06.10

Процедури і функції для роботи з файлами Reset, Rewrite, Append, Assign

Вивчили процедури і функції для роботи з файлами: Reset, Rewrite, Append, Assign



29.06.10

Процедури і функції для роботи з файлами Reset, Rewrite, Append, Assign

Вивчили процедури і функції для роботи з файлами: Reset, Rewrite, Append, Assign



30.06.10

Текстові файли. Їх оголошення. Робота з ними.

Вивчили текстові файли, і роботу з ними.



30.06.10

Буферна змінна і її використання.

Вивчили буферну змінну.



30.06.10

Буферна змінна і її використання.

Вивчили буферну змінну.



01.07.10

Робота з графікою в Паскалі. Графічний режим. Установка драйверів графіки. Ініціалізація драйверів графіки. Опис драйверів.

Виконували роботи в графічному режимі Паскаль.



01.07.10

Команди викреслювання точок, линів, кіл, дуг, секторів і простих геометричних фігур.

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


01.07.10

Команди викреслювання точок, линів, кіл, дуг, секторів і простих геометричних фігур.

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



02.07.10

Модуль Граф. Модулі установки кольорів. Модулі вибору стилів заливок - SetLineStile, SetFileStile, FlodFileStile.

Вивчили модуль Граф. І різні модулі заливки і стилів.



02.07.10

Викреслювання геометричних фігур з анімацією та організація руху та переміщення фігур по екрану.

Вивчили викреслювання геометричних фігур з анімацією і організацією руху та переміщення фігур по екрану.



03.07.10

Розробка програми графіки з використанням всіх модулів Граф.

Вивчили розробку програм з використанням модуля Граф.



03.07.10

Розробка програми графіки з використанням всіх модулів Граф.

Вивчили розробку програм з використанням модуля Граф.



03.07.10

Модулі роботи з текстом у графічному режимі. Модуль CRT. Системний модуль System.

Вивчили принцип роботи в графічному режимі.


ЗМІСТ.

Лінійна програма на Паскаль.

Програма з розгалуження.

Циклічна програма.

Масиви.

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

Файлові дані в Паскалі.

Записи в Паскалі.

Строки.

Графіка в Турбо-Паскалі.

Розділ: Лінійні алгоритми

1.Описание: Програма обчислення периметра трикутника.

program one;

uses crt;

var a, b, P: integer;

begin clrscr;

writeln ('a =');

readln (a);

writeln ('b =');

readln (b);

P: = (a + b) * 2;

writeln ('P =', P);

end.


2.Опісаніе: Програма обчислення площі трикутника.

program one;

uses crt;

var a, b, h, s: real;

begin clrscr;

writeln ('A = B = H =');

readln (a, b, h);

s: = h * (a + b) / 2;

writeln ('S =', s: 0:4);

readln;

end.



3.Описание: Програма обчислення кількості теплоти за формулою 'Q = c * m * (t 2 - t 1)


program one;

uses crt;

var Q, c, m, t2, t1: integer;

begin clrscr; textcolor (10);

writeln ('c =');

readln (c);

writeln ('m =');

readln (m);

writeln ('t2 =');

readln (t2);

writeln ('t1 =');

readln (t1);

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

writeln ('Q = c * m * (t2-t1) =', Q);

end


4.Опісаніе: Програма обчислення величини сили струму I на ділянці кола з R Ом і U В.

program one;

uses crt;

var I, U, R: real;

begin clrscr; textcolor (10);

writeln ('U ='); readln (U);

writeln ('R =');

readln (R);

I: = U / R;

writeln ('I =', I: 5:0);

end.

5.Опісаніе: Програма обчислення відстані між двома точками з даними координатами x1, y 1, x 2, y 2


program one;

uses crt;

var r: real; x1, x2, y1, y2: integer;

begin clrscr;

writeln ('znachenie x1 =');

readln (x1);

writeln ('znachenie x2 =');

readln (x2);

writeln ('znachenie y1 =');

readln (y1);

writeln ('znachenie y2 =');

readln (y2);

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

writeln ('rasstoyanie =', r);

end.

6.Опісаніе: Відома сума грошей, наявна у покупця і вартість однієї од. товару. Скільки од. товару може купити покупець і яка його здача?

program one;

uses crt; var a, b, c: real; begin clrscr;

writeln ('summa deneg =');

readln (a);

writeln ('cena ed.tovara =');

readln (b);

c: = a / b;

writeln ('ostatok =', c);

end.

7.Описание: Сума цифри введеного тризначного натурального числа.

program one;

uses crt;

var a: integer; s, d, e, f: real;

begin clrscr;

writeln ('vvedi 3-hznachnoe chislo');

readln (a);

s: = a div 100;

d: = a mod 100 div 10;

e: = a mod 100 mod 10;

writeln (d: 5:0); writeln (s: 5:0); writeln (e: 5:0);

f: = d + s + e; writeln (f: 5:0);

end.




8.Опісаніе: Знайти площу за відомою стороні рівностороннього трикутника.

program one;

uses crt;

var a, S: real;

begin clrscr;

writeln ('Vvedite storonu treugolnika');

readln (a);

S: = 0;

S: = a * a * sqrt (3) / 4;

writeln ('Ploshad ravna:', S: 3:1);

readln;

end.


9.Опісаніе: Бабуся в'яже на тиждень 3 пари дитячих шкарпеток, пару жіночих і пару чоловічих і продає їх. Вважаючи, що в місяці 4 тижні, визначити, який прибуток бабуся має за місяць.




program one;

uses crt; var det, jen, muj, ned, mes: integer;

begin clrscr;

writeln ('det :=');

readln (det);

writeln ('jen :=');

readln (jen);

writeln ('muj :=');

readln (muj);

ned: = muj + jen + det;

mes: = 4 * ned;

writeln ('dohod =', mes);

end


10.Опісаніе: Піраміда з зірочок

program one;

uses crt;

var j, i: integer;

begin clrscr; textcolor (9 +5);

for i: = 1 to 25 do begin gotoxy (40-i, i);

for j: = 2 to 2 * i do write ('*');

end;

readln;

end.


11.Опісаніе: Обчислити твір

Program one;

Uses crt;

Var a, b, p: integer;

begin clrscr; textcolor (9 +5);

writeln ('a = b =');

readln (a, b);

p: = a * b;

textcolor (9 +16);

writeln ('p =, p');

end.


12.Опісаніе: Обчислення радіуса

Program one;

Uses crt;

Var l: real; r: integer;

begin clrscr; textcolor (5);

writeln ('R =');

readln (r);

l: = 2 * pi * r;

writeln ('radius =, r');

end.

13.Опісаніе: Обчислення периметра квадрата

Program one;

Uses crt; Var а: integer;

begin clrscr; textcolor (5);

writeln ('a =');

readln (a);

p: = 4 * a;

writeln ('perimetr =, р');

end.


14.Опісаніе: Виведення введеного числа

Program one;

Uses crt; Var s: integer;

begin clrscr; textcolor (5);

writeln ('s =');

readln (s);

writeln ('ви ввели число, s ');

end.

15.Опісаніе: Обчислення щільності за кількістю жителів і площі.

Program one;

Uses crt; Var k, s: integer; p: real;

begin clrscr; textcolor (5);

writeln ('число жителів = ');

readln (k);

writeln ('plosh =');

readln (s);

p: = s / k;

writeln ('plotnost =', p);

end.


Розділ: Розгалужуються алгоритми


1.Описание: Обчислення рівняння

program one;

var x, y: integer;; begin write ('x ='); readln (x); if x> 0 then y: = sqr (sin (x)) else y: = 1-2 * sin (sqr (x )); writeln (y); end.


2.Опісаніе: Розподіл без остачі

Program ch;

Uses crt;

Var a, m, n: integer;

Begin clrscr;

Writeln ('m = n =');

Readln (m, n);

a: = m mod n;

If a = 0 then write (m div n)

Else write ('net resh')

End.


3. Опис: Написати програму мовою Pascal для реалізації разветвляющегося алгоритму, де x - відомі величини.




program one;

var x, y: real;

begin writeln ('');

write ('Vvedite x =');

readln (x); if x <= 0.8 then

y: = exp (x-1) +3.14 else if (0.8 <x) and (X <= 5.27) then

y: = ln (x +5.96) else y: = 2 * x;

writeln ('y =', y: 4:2); readln; end.


4. Опис: Написати програму мовою Pascal для реалізації разветвляющегося алгоритму, де x - відомі величини.


program one; var x, y, z: real; begin writeln (''); write ('Vvedite x ='); readln (x); write ('Vvedite y ='); readln (y);

if xy> 0 then z: = 1 / (x * y) else z: = sqr (x) * sqr (y); writeln ('z =', z: 4:2); readln; end.


5. Опис: Написати програму мовою Pascal для реалізації разветвляющегося алгоритму, де x = ln a 2, y = 1/arctg b; a, b - відомі величини.

program one; var x, y, z, a, b: real; begin writeln (''); write ('Vvedite a ='); readln (a); write ('Vvedite b ='); readln (b) ; x: = ln (sqr (a)); y: = 1/arctan (b); if xy> 0 then z: = 1 / (x * y) else z: = sqr (x) * sqr (y) ; writeln ('z =', z: 4:2); readln; end.

6. Опис: Задано два прямокутні паралелепіпеда. Чи можна розмістити їх один в іншому?

program one; var a1, a2, b1, b2, c1, c2: integer; begin writeln ('vvedite shiriny, dliny, vusoty 1');

readln (a1, b1, c1); writeln ('vvedite shiriny, dliny, vusoty 2'); readln (a2, b2, c2); if ((a1 <= a2) and (b1 <= b2) and (c1 < = c2)) or ((a1> a2) and (b1> b2) and (c1> c2)) then writeln ('mogno') else writeln ('nelzya'); readln; end.


7. Опис: номер клітини на шаховій дошці 8х8 визначається двома цілими числами - номер вертикалі і номер горизонталі. Дано 4 цілих позитивних числа a, b, c, d. З'ясувати, б'є чи ферзь, що знаходиться на клітці (a, b) клітину (c, d)

program one; var a, b, c, d: integer; begin read (a, b); read (c, d); if (a = c) or (b = d) or (abs (ca) = abs ( db))

then write ('ga') else write ('HeT');

readln

end



8. Опис: Можливо, чи побудувати трикутник з даними сторонами

program one;

uses crt;

var a, b, c: real;

begin clrscr;

writeln ('Сторони трикутника =   ');

readln (a, b, c);

if (a <b + c) and (b <a + c)

and (c <a + b) then write ('можна')

else write ('неможливо');

readkey;

end.

9. Опис: Дано три нерівних числа a, b, c. Скласти програму знаходження квадрата більшого з цих чисел.


program one; var a, b, c: real; begin read (a, b, c); if (a> b) and (a> c) then write ('a ^ 2 =', a * ​​a: 1: 4); if (b> a) and (b> c) then write ('b ^ 2 =', b * b: 1:4); if (c> a) and (c> b) then write (' c ^ 2 = ', c * c: 1:4); readln end.

10.Опісаніе: Обчислення більшого з двох чисел

Program b_ch;

Uses crt;

Var a, b: integer;

Max: integer;

Begin clrscr;

Writeln ('a = b =');

Readln (a, b);

If a> b then max: = a else max: = b

Writeln ('max =', max);

End.

11.Опісаніе: Обчислення меншого з двох чисел

Program m_ch;

Uses crt;

Var a, b: integer;

Min: integer;

Begin clrscr;

Writeln ('a = b =');

Readln (a, b);

If a <b then min: = a else min: = b

Writeln ('min =', min);

End.

12.Опісаніе: Розподіл без остачі

Program ch;

Uses crt;

Var a, b, c: integer;

Begin clrscr;

Writeln ('a = b =');

Readln (a, b);

C: = a mod b;

If c = 0 then write (a div b)

Else write ('net resh')

End.

13.Опісаніе: Порівняння чисел тризначного числа





Program ch;

Uses crt;

Var a, b, c, d, e, i: integer;

Begin clrscr;

Writeln ('a =');

Readln (a);

D: = a div 100;

E: = b mod 100 div 10;

C: = I mod 10;

writeln (d, e, c);

if (a <b) and (b <i) then writeln ('ravny')

else writeln ('ne ravny');

End.

14.Опісаніе: Чи належить число інтервалу

Program ch;

Uses crt;

Var a: integer;

Begin clrscr;

Writeln ('a =');

Readln (a);

if (a> = (-5)) and (a <= 3) then writeln ('prinadl')

else writeln ('ne prinadl');

End.

15.Опісаніе: Порівняти 3 сторони трикутника

Program ch;

Uses crt;

Var a, b, c: integer;

Begin clrscr;

Writeln ('a = b = c =');

Readln (a, b, c);

if (a = c) or (a = b) then writeln ('ravnobedr')

else writeln ('ne ravnobedr');

End.











Розділ: Алгоритми циклічної структури:


1.Описание: Написати програму мовою Pascal для реалізації циклічного алгоритму n, х - відомі величини.

var i, j, fact, n: integer;

s, x: real;

begin

writeln;

write ('Vvedite n =');

readln (n);

write ('Vvedite x =');

readln (x);

s: = 0;

for i: = 1 to n do begin fact: = 1;

for j: = 1 to i do Fact: = fact * j;

s: = s + (1/fact + sqrt (abs (x)));

end;

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

readln;

end.

2.Опісаніе: Написати програму мовою Pascal для реалізації циклічного алгоритму



n - відомі величини. program one;

var i, j, n, zn, factorial: integer; s, x: real; begin writeln; write ('Vvedite n ='); readln (n); s: = 0; factorial: = 1; zn: = 1 ; for i: = 1 to n do begin zn: = zn * (-1); factorial: = factorial * i; s: = s + (zn * (i +1) / factorial); end; writeln ('s = ', s: 4:3); readln; end.

3.Описание: Написати програму мовою Pascal для реалізації циклічного алгоритму


s = 1 / 1 * 2-1/2 * 3 + ... + (-1) n +1 / n (n +1) n - відомі величини.


program one;

var i, j, n, zn: intege r; s, x: real; begin writeln; write ('Vvedite n ='); readln (n); s: = 0; zn: =- 1; for i: = 1 to n do begin zn: = zn * (-1); s: = s + zn / (i * (i +1)); end; writeln ('s =', s: 4:2); readln; end.

4.Опісаніе: Написати програму мовою Pascal для реалізації циклічного алгоритму



n - відомі величини. program one;

var i, j, n: integer; stepen: integer; s: real; begin writeln; write ('Vvedite n ='); readln (n); s: = 0; for i: = 1 to n do begin stepen: = 1; for j: = 1 to 5 do begin stepen: = stepen * i; end; s: = s +1 / stepen; end; writeln ('s =', s: 4:2); readln; end.


5. Опис: Написати програму, яка виводить цілі парні числа з клавіатури і складає їх, поки не буде введено число 0.

Program 5;

Uses crt;

Var n, s: integer.;

Begin clrscr;

S: = 0;

Repeat;

Writeln (vvedi chislo);

Readln (n);

S: = s + n;

Until n = 0;

Writeln (s =, s);

Readln;

End.


6. Опис: Скласти програму, підрахунку суми S перших 1000 членів гармонійного ряду 1 +1 / 2 +1 / 3 + ​​... +1 / N

Program 1;

Uses crt;

Var s: real; n; integer;

Begin clrscr;

S: = 0; n: = 0;

Repeat;

N: = n +1;

S: = s +1 / n;

Until n = 1000;

Writeln (s);

End.


7. Опис: Надрукувати 20 перших ступенів числа 2.

Program 2;

Uses crt;

Var n, s: longint;

Begin clrscr;

S: = 1;

N: = 1;

Repeat S: = s * 2;

Writeln (s,);

N: = n +1;

Until n> 20; Readln;

End.


8. Опис: Відомі оцінки з інформатики кожного з 20 учнів класу. На початку списку Перераховано всі «5», потім інші оцінки. Скільки учнів мають оцінку «5»?

Program 5;

Uses crt;

Var x, n: word;

Begin clrscr;

Writeln (vvedi ocenki);

Readln (x);

N: = 0;

While x = 5 do begin n: = n +1;

Writeln (vvedi ocenki);

Readln (x);

End;

Writeln (imeyut 5, n, uchenikov);

Readln;

End.


9. Опис: Обчислити найбільший спільний дільник двох натуральних чисел А і В, використовую для цього алгоритм Евкліда. Будемо зменшувати щораз більше з чисел на величину меншого до тих пір, поки обидва числа не стануть рівними.

Program nod;

Uses crt;

Var a, b: integer;

Begin clrscr;

Writeln (vvedi 2 chisla);

Readln (a, b);

While a <> b do if a> b then a: = ab else b: = ba;

Writeln (nod =, a); Readln;

End.


10.Опісаніе: Програма підрахунку суми S перших 1000 членів гармонійного ряду 1 +1 / 2 +1 / 3 +1 / 4 + ... +1 / N

Program S;

Uses crt;

Var s: real; n: integer;

Begin clrscr;

S: = 0; N: = 0;

While n <1000 do begin N: = n +1;

S: = s +1 / n;

End;

Writeln (s);

Readln;

End.


11.Опісаніе: Є чотири (A, B, C, D) числа. Необхідно відповісти на запитання: «Чи правда що всі серед цих чисел є рівні?» Відповідь вивести у вигляді тексту: «Правда», або «Неправда».

Program z 1;

var a, b, c, d: integer; {описуємо наявні змінні}

begin writeln ('vvedite chislo a '); {вводимо всі числа по черзі}

readln (a);

writeln ('vvedite chislo b');

readln (b);

writeln ('vvedite chislo c');

readln (c);

writeln ('vvedite chislo d');

readln (d);

if (a = b) or (a = c) or (a = d) or (b = c) or (b = d) or (d = c) then writeln ('pravda') else writeln ('nepravda') ;

readln;

end.


12.Опісаніе: Скласти програму обчислення і видачі на друк суми (твору) N елементів нескінченного ряду. Оформити перевірку завдання. Y = (-512) * 256 * (-128) * 64 ... ... Загальна формула має вигляд: y = ± 2 10 - i

program z 2;

var i, j, zn, n: integer; s: real;

begin writeln;

writeln ('vvedite kolichestvo elementov ryada');

write ('N ='); {вводимо кількість елементів ряду}

readln (n);

s: = 1;

for i: = 1 to n do begin zn: = 1;

for j: = 1 to i +1 do begin zn: = zn * (-1);

end;

s: = s * (-zn) * (exp ((10-i) * ln (2))); {вводимо формулу}

end;

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

readln;

end.

13.Опісаніе: Дана функція Y = 1 - [x -2] ^ 2 / 10 обчислити і надрукувати значення цієї функції для послідовних значень x = c, x = c + (b +1), x = c +2 (b + 1), x = c +3 (b +1) де а = 1; b = 9; з = 2. Порахувати до тих пір поки сума Y +6 не стане негативною.

program zad3;

const b = 9; c = 2;

var x, n: integer; f, s: real; function y (x: integer): real;

begin y: = 1 - (sqr (xc)) / (b +1);

end;

begin writeln ('Y = 1 - [x-2] ^ 2 / 10');

n: = 0;

repeat x: = c + n * (b +1);

inc (n);

f: = y (x);

write ('x', n, '=', x, '');

writeln ('y', n, '=', f: 6:5)

until f +6 <0;

readln

end.


14.Опісаніе: Є масив А з N довільних чисел (A (n)), серед яких є позитивні, негативні та рівні нулю. Надрукувати лише ті числа з масиву які більше попереднього числа.

program z4;

uses Crt;

const MAX = 100;

var mas: array [1 .. MAX] of integer; n, i: byte; k, p: integer;

begin ClrScr;

Write ('N :=');

Readln (n);

for i: = 1 to n do begin Write ('vvedite', i, 'element massiva :>'); Readln (mas [i]); end;

begin k: = 0;

for i: = 1 to n do begin if mas [i]> mas [(i-1)] then writeln (mas [i]); end;

readln; end;

end.


15.Опісаніе: Скласти програму обчислення числового ряду для відомого числа членів ряду N. Y = (7 +3 5 / 1) (8-3 -4 / 2) (9 +3 3 / ​​3) ....

program z5;

var i, j, zn, n: integer; s: real;

begin writeln;

writeln ('vvedite kolichestvo elementov ryada');

write ('N =');

readln (n);

s: = 1;

for i: = 1 to n do begin zn: = 1;

for j: = 1 to i +1 do begin zn: = zn * (-1); end;

s: = s * ((6 + i) + exp ((zn * (6-i)) * ln (3)) / i); end;

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

readln;

end.


Розділ: Масиви


1 Опис: Знайти, скільки разів кожен елемент зустрічається в масиві

Додаткових масивів не створювати.

Program msv;

Const Size = 10; Diap = 10;

var a: array [1 .. Size] of integer; i, n, k, j: integer;

begin writeln;

repeat write ('Введіть розмірність 1 масиву (від 2 до', Size ,'):');

Read (n);

Until (n> 1) and (n <= Size); Randomize;

a [1]: = Random (Diap);

Write ('A =', a [1], '');

For i: = 2 to n do begin A [i]: = Random (Diap);

Write (a [i], ''); End;

writeln;

k: = 0;

For i: = 1 to n do if a [i] = 0 then Inc (k);

If k> 0 then writeln ('0: ', k);

For i: = 1 to n-1 do if a [i] <> 0 then begin K: = 1;

For j: = i +1 to n do if a [i] = a [j] then begin A [j]: = 0;

Inc (k); End;

writeln (a [i], ':', k); end;

end.


2. Опис: Об'єднати 2 упорядкованих масиву за зростанням.

Program msv;

const Size = 10; Step = 5;

var a, b: array [1 .. Size] of integer; c: array [1 .. 2 * Size] of integer; i, n1, n2, ia, ib, ic: integer;

begin writeln;

repeat write ('Введіть розмірність 1 масиву (від 2 до', Size ,'):');

read (n1);

until (n1> 1) and (n1 <= Size);

Randomize;

a [1]: = Random (Step);

write ('A =', a [1], '');

for i: = 2 to n1 do begin a [i]: = a [i-1] + Random (Step);

write (a [i], ''); end;

writeln;

repeat

write ('Введіть розмірність 2 масиви (від 2 до', Size ,'):');

read (n2);

until (n2> 1) and (n2 <= Size);

b [1]: = Random (Step);

write ('B =', b [1], '');

for i: = 2 to n2 do begin b [i]: = b [i-1] + Random (Step);

write (b [i], '');

end;

writeln;

ia: = 1; ib: = 1;

write ('C =');

for i: = 1 to n1 + n2 do begin if a [ia] <= b [ib] then begin c [i]: = a [ia];

if ia <n1 then Inc (ia) else begin a [n1]: = b [ib];

if ib <n2 then Inc (ib); end; end

else begin c [i]: = b [ib];

if ib <n2 then Inc (ib) else begin b [n2]: = a [ia];

if ia <n1 then Inc (ia); end; end;

write (c [i], '');

end;

writeln;

end.


3. Опис: Дано масив чисел. Знайти найбільше.

Program msv;

Uses crt;

Var i, n, max: integer; a: array [1 .. 100] of integer;

begin clrscr;

read (n);

for i: = 1 to n do read (a [i]); {введення чисел в масив}

max: = a [1];

for i: = 2 to n do if a [i]> max then max: = a [i]; {порівнюється з вже знайденим найбільшим,}

write ('maksimalnoe chislo =', max);

readln;

end.


4. Опис: Знайти суму елементів числового масиву

Program msv;

uses crt;

Var i, n, s: integer; a: array [1 .. 1000] of integer;

begin clrscr;

read (n);

for i: = 1 to n do read (a [i]); {введення значень в масив}

s: = 0;

for i: = 1 to n do s: = s + a [i];

write ('Summa =', s); readln;

readln;

end.


5. Опис: Дан числовий масив. Обчислити суму елементів, що мають парне значення індексу. Обчислювальну частина організувати у вигляді функції

Program msv;

Uses crt;

type mas = array [1 .. 100] of integer;

Var a: mas; i, n: integer; function calc (b: mas; m: integer): integer;

var i, s: integer;

begin s: = 0;

for i: = 1 to m do;

if i mod 2 = 0 then s: = s + b [i];

calc: = s;

end;

begin clrscr;

read (n);

for i: = 1 to n do read (a [i]);

write ('Сума кожного другого елементу =', calc (a, n));

readln;

readln;

end.


6. Опис: Дано масив символів. Обчислити, скільки в ньому елементів 'a'

Program msv;

Uses crt;

Var i, n, s: integer; a: array [1 .. 100] of char;

begin clrscr;

readln (n); {Оголошення а: array [1 .. 1000] of char означає,}

for i: = 1 to n do readln (a [i]);

s: = 0;

for i: = 1 to n do readln (a [i]);

s: = 0;

for i: = 1 to n do if a [i] = 'a' then s: = s +1;

write ('Kolichestvo elementov ravnyh "a" =', s);

readln;

end.


7. Опис: Дан двовимірний масив цілих чисел розмірністю NxN. Знайти суму його елементів

Program msv;

Uses crt;

Var s, i, j, n: integer; a: array [1 .. 10,1 .. 10] of integer;

begin clrscr;

read (n);

for i: = 1 to n do for j: = 1 to n do read (a [i, j]);

for i: = 1 to n do for j: = 1 to n do s: = s + a [i, j];

write ('Сума елементів =', s);

readln;

readln;

end.


8. Опис: По заданому масиву X [7] сформувати масив Y, елементи якого обчислюються за формулою

Y [i] = | X [i] - B |, де B - максимальний елемент масиву X

program msv;

const Size = 7; {Розмірність масиву}

var x: array [1 .. Size] of real; b: real; i: integer;

begin writeln;

writeln ('Чекаю введення елементів масиву розмірністю', Size ,':');

for i: = 1 to Size do begin write ('x [', i ,']=');

readln (x [i]); end;

b: = x [1];

for i: = 2 to Size do if x [i]> b then b: = x [i];

writeln ('Максимальний елемент =', b: 10:3);

writeln ('Вихідний Новий');

writeln ('масив масив');

for i: = 1 to Size do begin write (x [i]: 10:4);

x [i]: = abs (x [i]-b);

writeln (x [i]: 10:4); end;

end.


9. Опис: Знайти максимальний елемент у лінійному масиві.

Вивести результат на екран

program msv;

uses crt;

const

nn = 10; var max, i: integer; a: array [1 .. nn] of integer; begin clrscr;

for i: = 1 to nn do a [i]: = random (500);

max: = a [1];

for i: = 2 to nn do if a [i]> max then max: = a [i];

for i: = 1 to nn do write (a [i], ''); writeln;

writeln ('Max =', max);

readkey;

end.


10. Опис: Відсів. Видалити в заданому масиві x (n) зайві (крім першого) елементи так, щоб залишилися утворювали зростаючу послідовність (за один перегляд масиву)

program msv;

uses crt;

const n = 10; {dlina massiva}

var a: array [1 .. n] of integer; i, max, j, k, mi: integer; begin clrscr; randomize;

for i: = 1 to n do begin a [i]: = random (51);

write (a [i], ''); end;

max: = a [1];

k: = 2; {tk uslovie zadachi "preobarzovat 'za odin prosmotr massiva", to}

{K ne mozhet bit 'bol'she N, chem mi vospol'zuemsya v cikle}

for i: = 2 to n do begin if k> n then break;

if a [i] <= max then {esli a [i] <= max to udalyaem etot element}

begin for j: = i to n - 1 do {etogo cikl mog bi ne viiti, no u nas est 'K}

a [j]: = a [j + 1];

dec (i); end;

if a [i]> max then begin max: = a [i];

mi: = i; {MI - poziciya maksimuma v massive} end;

inc (k); {uvelichivaem K, k = [2 .. n]} End;

Write (# 10 # 13, a [1], '');

For i: = 2 to mi do Write (a [i], '');

readkey;

end.


11. Опис: У масиві X з n елементів кожен з елементів дорівнює 0, 1 або 2. Переставити елементи масиву так, щоб спочатку розташовувалися нулі, потім одиниці і двійки. Додатковий масив не використовувати.

Програма розширена для можливості переставляти елементи масиву, що є будь-якими числами (не тільки 0, 1, 2)

Program msv;

Const n = 10; {к-вл елементів масиву}

var a, b, t: integer; X: array [1 .. n] of integer; {сам масив з n елементів}

BEGIN For a: = 1 to n do {введення масиву X} Begin Write ('Введіть X [', a, ']:');

Readln (X [a]); End;

for a: = 1 to n do begin t: = X [a];

b: = a - 1;

While (b> = 0) and (t <X [b]) do Begin X [b +1]: = X [b];

B: = b - 1; End;

X [b +1]: = t; end;

for a: = 1 to n do {висновок результату}

Write (X [a]: 2);

END. {Кінець програми}


12. Опис: Операції з масивом, сортування суммірованіе.В одновимірному масиві, що складається з N речових елементів, обчислити: 1) кількість елементів масиву, рівних 0; 2) суму елементів масиву, розташованих після мінімального елемента.

Упорядкувати елементи масиву за зростанням модулів елементів.

Program msv;

Uses CRT;

Const N = 10; {скільки всього елементів}

Var a: Array [1 .. N] of Real; i, j: Byte; Zero: Byte; Min: Real; Summ: Real;

Procedure Print;

Begin For i: = 1 to N do Write (a [i]: 0:1, '');

Writeln; End;

Procedure CreateMassive;

BeginWriteln ('Вихідна послідовність');

For i: = 1 to N do Begin a [i]: = Random (4);

a [i]: = a [i] - 2; {Цей і попередній оператори можна об'єднати}

End;

Print;

Writeln; End;

Begin ClrScr; Randomize;

CreateMassive;

Min: = a [1];

For i: = 2 to N do Begin Summ: = Summ + a [i];

If (a [i] <Min) then Begin Min: = a [i];

Summ: = 0; End; End;

Writeln ('Мінімальний елемент', Min: 0:1, '. Сума елементів після:', Summ: 0:1);

For i: = 1 to N do Begin For j: = i + 1 to N do If (abs (a [j]) <abs (a [i])) then Begin a [i]: = a [i] + a [j];

a [j]: = a [i] - a [j];

a [i]: = a [i] - a [j]; End; End;

Writeln (# 13 # 10, 'Отсортіровання послідовність '); Print;

For i: = 1 to N do If a [i] = 0 then Inc (Zero);

Write (# 13 # 10, 'Нульових елементів: ', Zero); ReadKey;

End.


13. Опис: Обчислити кут між двома заданими векторами розмірності 8, використовуючи функцію скалярного твори a = arccos ((x, y) / ((x, x) * (y, y)))

program msv;

uses crt;

type TVector = array [1 .. 8] of Real;

function scal (var Vec1, Vec2: TVector): real; var p: Real; i: integer;

begin p: = 0;

for i: = 1 to 8 do p: = p + (Vec1 [i] * Vec2 [i]);

scal: = p; end;

var Vec1, Vec2: TVector; i: integer; sc, a, angle: Real;

BEGIN writeln ('Умова:');

writeln ('обчислити кут між двома заданими векторами розмірності 8,');

writeln ('використовуючи функцію скалярного твори');

writeln;

Writeln ('Введення першого вектора');

for i: = 1 to 8 do begin Write ('Vec1 [', i, ']:');

Readln (Vec1 [i]); end;

Writeln ('Введення другого вектора');

for i: = 1 to 8 do begin Write ('Vec2 [', i, ']:');

Readln (Vec2 [i]); end;

sc: = scal (Vec1, Vec2);

a: = sc / sqrt (scal (Vec1, Vec1) * scal (Vec2, Vec2)); {Обчислюється косинус}

if a = 0 then angle: = 90 else angle: = arctan (sqrt (1-a * a) / a) * 180/pi;

if a =- 1 then angle: = 180;

if angle <0 then angle: = 180 + angle;

writeln ('Кут між векторами:', angle: 7:3, 'градусів');

END.


14. Опис: Обчислити суму двох векторів, перший з яких вводиться, а елементи другого обчислюються за формулою b [i]: = sin (i * x), де 0 <= x <= 3.14

program msv;

const Nm = 10; {розмірність вектора}

var Vec1, Vec2, ResVec: array [1 .. Nm] of Real; i: integer; x: Real; N: integer;

BEGIN writeln ('Умова:');

writeln ('обчислити суму двох векторів, перший з яких вводиться, а елементи ");

writeln ("другого обчислюються за формулою b [i]: = sin (i * x), де 0 <= x <= 3.14 ');

writeln;

Write ('введіть розмірність вектора (N <', Nm, '):');

Readln (N);

if n <= Nm then begin Writeln ('Введення вектора');

for i: = 1 to N do begin Write ('Vec1 [', i, ']:');

Readln (Vec1 [i]); end;

Write ('Введіть X (від 0 до 3.14):'); Readln (x);

if (X <= 3.14) and (X> = 0) then begin for i: = 1 to N do begin Vec2 [i]: = sin (Vec1 [i] * X); ResVec [i]: = Vec1 [i ] * Vec2 [i]; {відразу ж обчислюємо проізведніе} end;

Write ('Результуючий вектор:'); {виводимо на екран результат}

for i: = 1 to N do Write (ResVec [i]: 6:2); end else Writeln ('Введено невірне X ');

end else Writeln ('невірна розмірність');

END.


15. Опис: Складається випадковий масив з 5 елементів. Замінити всі парні значення на 1, непарні - на 0.

Program msv;

uses crt;

const n = 5;

var a: array [1 .. n] of integer; i: integer;

begin clrscr; randomize;

for i: = 1 to n do begin a [i]: = random (9);

write (a [i]); end;

writeln;

for i: = 1 to n do begin if odd (a [i]) = false then a [i]: = 1 else a [i]: = 0;

write (a [i]);

end;

readkey;

end.

Розділ: Процедури і функції


1.Описание: Знайти послідовності цілих чисел ті, які зустрічаються в ній рівно два рази.

program one;

uses crt;

type mas = array [1 .. 100] of integer; func = function (var x: mas): integer; var a: mas; j, n, m, x: integer;

function kolichestvo (var c: mas): integer; var k, i: integer;

begin k: = 0;

for i: = 1 to n do if c [i]> m then k: = k +1;

kolichestvo: = k; end;

procedure deist (var b: mas; operation: func);

begin writeln ('b [j]');

for j: = 1 to n do readln (b [j]);

for j: = 1 to n do write (b [j], ''); writeln;

x: = operation (a); end;

begin clrscr;

writeln ('vvedite celoe chislo mi razmer massiva (n)');

readln (m, n);

deist (a, kolichestvo);

writeln ('kolichestvo =', x);

readkey;

end.


2.Опісаніе: Процедура відображення рамки в текстовому режимі

program frame;

uses Crt;

procedure Frm (l: integer; t: integer; w: integer; h: integer);

var x, y: integer; i: integer; c1, c2, c3, c4, c5, c6: char;

begin clrscr;

c1: = chr (218); c2: = chr (196);

c3: = chr (191); c4: = chr (179);

c5: = chr (192); c6: = chr (217); GoToXY (l, t);

write (c1);

for i: = 1 to w-2 do write (c2);

write (c3);

y: = t +1;

x: = l + w-1;

for i: = 1 to h-2 do begin GoToXY (l, y);

write (c4);

GoToXY (x, y);

write (c4);

y: = y +1; end;

GoToXY (l, y);

write (c5);

for i: = 1 to w-2 do write (c2);

write (c6);

end;

begin Frm (2,2,15,10);

readln;

end.


3.Описание: Твір непарних елементів

Program one;

type massiv = array [1 .. 100] of integer;

var A1, A2: massiv; i, j: integer; n1, n2: integer; function pr_nec (m: massiv; n: integer): integer;

var i, j, pr: integer;

begin pr: = 1;

for i: = 1 to n do if odd (m [i]) then pr: = pr * m [i];

pr_nec: = pr;

end;

begin writeln ('Vvedite PERVYI massiv:');

write ('ego razmer "n":'); readln (n1);

for i: = 1 to n1 do begin write ('A1 [', i ,']='); readln (A1 [i]); end;

writeln ('_______________________');

writeln ('Vvedite VTOROI massiv:');

write ('ego razmer "n":'); readln (n2);

for i: = 1 to n2 do begin write ('A2 [', i ,']='); readln (A2 [i]); end;

writeln ('_______________________');

writeln;

writeln ('Vi vveli:');

write ('A1:'); for i: = 1 to n1 do write (A1 [i], ''); writeln;

write ('A2:'); for i: = 1 to n2 do write (A2 [i], ''); writeln;

writeln;

writeln ('Proizvedenie iz A1 =', pr_nec (A1, n1));

writeln ('Proizvedenie iz A2 =', pr_nec (A2, n2));

readln;

end.


4.Опісаніе: Знаходження тангенса tg і котангенс ctg кута, використовуючи вирази sin (x) cos (x) і зворотне йому.

Program one;

uses crt;

var y1, y2, z: real; function tg (x: real): real;

begin tg: = sin (x) / cos (x);

end;

function ctg (x: real): real;

begin ctg: = cos (x) / sin (x);

end;

Begin clrscr;

write ('input x:');

readln (z);

y1: = tg (z); y2: = ctg (z);

writeln ('tg (', z: 0:2 ,')=', y1: 0:2);

writeln ('ctg (', z: 0:2 ,')=', y2: 0:2); readln;

End.


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

program one;

uses crt;

var a, b, c, d, z, x, y, x1, y1: integer; function max (x, y: integer): integer;

begin if x> y then max: = x else max: = y;

end;

begin clrscr;

writeln ('Vvedite chisla');

readln (a, b, c, d);

x1: = max (a, b); y1: = max (c, d); z: = max (x1, y1);

writeln ('max =', z);

readkey;

end.


6.Опісаніе: Обчислити день тижня за датою

program Kalendar;

uses crt; var y, d, m, c, w: integer; {m-mesiac, d-den, y-god} Procedure WriteDay (d, m, y: Integer);

constDays_of_week: rray [0 .. 6] of String [11] = ('Voskresen `e', 'Ponedelnik', 'Vtornik', 'Sreda', 'Chetverg', 'Piatnica', 'Subbota');

Begin if m <3 then begin m: = m + 10;

y: = y - 1; end else m: = m - 2; c: = y div 100; y: = y mod 100; w: = (d + (13 * m-1) div 5 + y + y div 4 + c div 4-2 * c +777) mod 7;

WriteLn (Days_of_week [w]); end;

Procedure InputDate (var d, m, y: Integer);

Begin Write ('Vvedite datu v formate DD MM GG');

ReadLn (d, m, y);

if (d> = 1) and (d <= 31) and (m> = 1) and (m <= 12) and (y> = 1582) and (y <= 4903) then Writeday (d, m, y ) else begin writeln ('Nekorrektnyj vvod!'); end; end;

BEGIN clrscr;

InputDate (d, m, y);

readkey;

End.


7. Опис: Знаходження відсотка від числа

Program one;

uses crt;

var k, n: byte; x: real; function procent (n, m: byte): real;

begin procent: = m * 100 / n;

end;

begin clrscr;

writeln ('Vvedite chisla');

readln (k, n);

x: = procent (k, n);

writeln ('x =', x: 5:2);

readkey;

end.

8. Вивести задане число зірочок.

program one;;

uses crt;

var n: byte; function zvezda (n: byte): real; var i: integer; s: string;

begin i: = 1;

s :='';

while i <= n do begin s: = s +'*';

inc (i); end;

writeln (s); end;

begin clrscr;

writeln ('Vvedite chislo'); readln (n);

zvezda (n); readkey;

end.


9. Опис: Функція піднесення числа до степеня. З урахуванням дробових чисел та окремих випадків, коли числа негативні або дорівнювати нулю

program one;

Uses crt;

var x, y, z: real; Function Pow (A, B: Real): Real; Var T, R: Real; L: integer;

Begin T: = Abs (A);

If A <0 Then R: = (-1) * Exp (B * Ln (T)) else if A> 0 Then R: = Exp (B * Ln (T)) else R: = 0;

L: = round (B);

If (L mod 2 = 0) Then R: = Abs (R);

If (B = 0) Then R: = 1;

Pow: = R;

End;

BEGIN clrscr;

Writeln ('vvedite chislo:');

readln (x);

Writeln ('vvedite stepen:');

readln (y);

z: = Pow (x, y);

Writeln (z: 0:2);

readkey;

END.


10. Опис: Вивести заданий символ задану кількість разів

program one;

uses crt;

var n: byte; l: string; function zvezda (n: byte; l: string): real; var i: integer; s: string;

begin i: = 1;

s :='';

while i <= n do begin s: = s + l;

inc (i); end;

writeln (s); end;

begin clrscr;

writeln ('Vvedite chislo'); readln (n);

writeln ('Vvedite simvol'); readln (l);

zvezda (n, l);

readkey;

end.


11.Опісаніе: Визначити до чого ближче менше з двох чисел: до їх середнього арифметичного або середнього геометричного.

Program one;

vara, b: real; average: real; geometricmean: real; minstr: string; function min (a, b: real): real;

begin min: = a;

minstr: = 'Pervoe';

if (b <a) then begin min: = b;

minstr: = 'Vtoroe'; end; end;

beginwrite ('Vvedite 1-e chslo:'); readln (a);

write ('Vvedite 2-e chslo:'); readln (b);

average: = (a + b) / 2;

geometricmean: = sqrt (a * a + b * b);

a: = min (a, b);

writeln ('Naimenshee chislo -', minstr, '(', a: 0:3 ,')');

write ('Blize k srednemu');

if (abs (average - a) <abs (geometricmean - a)) thenbegin writeln ('arifmeticheskomu (', average: 0:3 ,')');

end else begin writeln ('geometricheskomu (', geometricmean: 0:3 ,')'); end;

readln;

end.


12.Опісаніе: Зведення в ступінь для цілого показника, обчислюваного за час log2 (ступінь).

Program power_maximal;

Uses crt;

Var a, b, c: integer; function power (x, pow: integer): integer; var res: integer;

begin res: = 1;

while (pow> 0) do beginif (pow and 1 = 1) then res: = res * x;

x: = x * x;

pow: = pow shr 1; end;

power: = res; end;

Begin Clrscr;

Writeln ('input a, b:');

Readln (a, b);

c: = power (a, b);

Writeln ('a ^ b =', c);

Readkey;

End. '


13.Опісаніе: арккосинуса числа. Знаходження з математичних міркувань

var ca, al, albeg: real; function ArcCos (arg: real): real;

var r: real;

begin if (abs (arg)> 1) then begin writeln ('Unavailable argument');

halt; end;

if abs (arg) <0.000001 then r: = pi / 2 else r: = ArcTan (sqrt (1/arg/arg-1)); {arccos}

if arg <0 then r: = pi-r;

ArcCos: = r; end;

begin albeg: = pi / 2 +0.2;

ca: = cos (albeg);

al: = arccos (ca);

writeln ('ArcCos (', ca: 10:7 ,')=', al: 10:7, 'AlBeg =', albeg: 10:7,

'ChekSum =', al-albeg, 'Must be sero');

readln;

end.


14.Опісаніе: Чи є в рядку числові значення

Function NumInStr (S: String): Boolean;

VAR C, I: INTEGER; N: BOOLEAN;

BEGIN; I: = 0;

Repeat;

I: = I +1;

C: = Ord (S [I]);

N: = ((C> = 48) AND (C <= 57));

Until (NOT N) OR (I = Length (S));

NumInStr: = N;

END;


15.Опісаніе: Знаходження функції методом половинного ділення

program half_del;

uses crt;

type ms = array [1 .. 100] of real; {[x, y]}

var Eps, XH, DX, Y, z, X, YH, P, S, A, B: real; N, U, Er: integer; masx, masy: ms; Function F (X: real): real;

beginF: = exp (x) + x * x-2

end;

Function FuncA (Eps, s, p, YH: real): real;

begin if F (p) * F (s) <0 then begin YH: = 0.5 * (p + s);

while abs (F (YH))> EPS do begin If F (p) * F (YH) <0 then S: = YH else P: = YH;

YH: = 0.5 * (P + S) end; end else er: = 1;

FuncA: = YH; end;

procedure P1 (a, b, XH: real; N: integer); var z, q: real; u: integer;

begin if x> 1 then begin Z: = sqrt (X * sqrt (X-1));

a: = FuncA (Eps, s, p, YH);

for U: = 1 to N do begin masx [U]: = X;

masy [U]: = sin (x) / z;

X: = X + DX; end;

{Else writeln ('Error: x <1');} end; end;

Begin clrscr;

write ('vvedite eps:'); readln (eps);

Write ('vvedite dx:'); readln (DX);

write ('vvedite N:'); readln (N);

write ('vvedite x> 1:'); readln (x);

if x1; writeln;

Writeln ('--------------------');

Writeln ('| X | Y');

writeln ('--------------------');

P1 (a, b, XH, N);

for U: = 1 to N do writeln ('', masx [u]: 10:7, '', masy [u]: 10:7); readln;

end.


Розділ: Файли


1.Описание: Вирішує найпростіші арифметичні приклади записані у файл.

program pn12;

var f: text; s, sa, sb: string; c: char; i, a, b, o, j, code: integer; m, op: set of char;

begin m: = ['1 ', '2', '3 ', '4', '5 ', '6', '7 ', '8', '9 ', '0'];

op :=['+','-','*','/'];

assign (f, 'file.txt'); reset (f);

while not (eof (f)) do begin readln (f, s);

writeln (s);

for i: = 2 to length (s) -1 do if (s [i] in op) and (s [i-1] in m) and (s [i +1] in m) then begin j: = 1 ;

sa :='';

while (s [ij] in m) and (ij> 0) do begin sa: = s [ij] + sa;

j: = j +1 end;

j: = 1;

sb :='';

while (s [i + j] in m) and (i + j <= length (s)) do begin sb: = sb + s [i + j];

j: = j +1 end;

val (sa, a, code); val (sb, b, code);

case s [i] of '+': O: = a + b;

'-': O: = ab;

'*': O: = a * b;

'/': O: = a div b; end;

writeln (a, s [i], b ,'=', O, '')

end; end; close (f);

readln;

end.


2.Опісаніе: Робота з текстовими файлами передбачає собою: створення, редагування, додавання, видалення.

Program one;

uses Dos, Crt;

var f: text;

FileName: string [9];

st: string; ch: char; vibor: byte;

procedure Head;

begin Writeln ('esli vy otkazyvaetes ot deistviya, to naberite v nazvanii faila simvola ""');

Write ('vvedite imya faila :>');

Readln (FileName);

if FileName = '~' then halt (1) else Assign (f, FileName); end;

procedure TextEdit;

begin Writeln ('Seichas vy smojetedobavlyat informaciyu v file.');

Writeln ('esli vyzahotite prekratit vvod, to naberite sleduschuyu posledovatelnost :"~~"');

repeat Write ('>'); Readln (st);

if st <>'~~' then Writeln (f, st);

until st ='~~'; end;

procedure WriteToFile;

begin Head;

ReWrite (f);

TextEdit;

Close (f);

Writeln ('Vy okonchili vvodit info v file.Najmite lubuyu knopku ...');

ReadKey; end;

procedure ReadFromFile;

Head;

Reset (f);

if IOresult <> 0 then begin Writeln ('file', FExpand (filename), 'ne sushestvuet.');

Writeln ((Y / N ).');

ch: = ReadKey;

if (ch = 'Y') or (ch = 'y') then ReadFromFile;

end else begin Writeln ('Soderjimoe faila:'); Writeln;

while not eof (f) do begin Readln (f, st);

Writeln ('>', st); end;

Close (f);

Writeln;

Writeln ('Najmite lubuyu knopku');

ReadKey; end; end;

procedure AddToFile;

begin Head;

Append (f);

if IOresult <> 0 then begin

Writeln ('faila', FExpand (filename), 'ne sushestvuet.');

Writeln ('hotite vvesti drugoe imya faila? (Y / N ).');

ch: = ReadKey;

if (ch = 'Y') or (ch = 'y') then AddToFile; end else begin TextEdit; Close (f);

Writeln ('Vy okon4ili vvodit info v file.Najmite lubuyu knopku ...');

ReadKey; end; end;

procedure DelFile;

begin Head;

Reset (f);

if IOresult <> 0 then begin Writeln ('file', FExpand (filename), 'ne sushestvuet.');

Writeln ('hotite vvesti drugoe imya file?? (Y / N ).');

ch: = ReadKey; if (ch = 'Y') or (ch = 'y') then DelFile; end else begin Writeln ('vy uvereny 4to hotite udalit etot file? (Y / N)');

ch: = ReadKey; if (ch = 'Y') or (ch = 'y') then Erase (f);

Writeln ('vy tolko 4to udalili file.Najmite lubuyu klavishu ..');

Readkey; end; end;

procedure Menu;

begin repeat repeat ClrScr;

Writeln ('1. Record file / sozdanie faila ');

Writeln ('2. Read file ');

Writeln ('3. Dobavlenie info v file ');

Writeln ('4. Delet file ');

Writeln ('5. Exit ');

Write ('Vash vybor :>'); Readln (vibor);

until (vibor> 0) and (vibor <6);

Writeln;

Write (', л ўлЎа «Е:');

case vibor of 1: begin Writeln ('record file / sozdanie faila');

WriteToFile; end;

2: begin Writeln ('read file');

ReadFromFile; end;

3: begin Writeln ('Dobavlenie info v file');

AddToFile; end;

4: begin Writeln ('delet file');

DelFile; end; end;

until vibor = 5; end;

begin Menu;

end.


3.Описание: Дан файл, що містить текст і арифметичні вирази виду, а * у, де * - один із знаків +, -, *, /. Виписати всі арифметичні вирази і обчислити їх значення

program pn12;

var f: text; s, sa, sb: string; c: char; i, a, b, o, j, code: integer; m, op: set of char;

begin m: = ['1 ', '2', '3 ', '4', '5 ', '6', '7 ', '8', '9 ', '0'];

op :=['+','-','*','/'];

assign (f, 'e: \ tp \ tp6 \ Arif.dat'); reset (f);

while not (eof (f)) do begin readln (f, s);

writeln (s);

for i: = 2 to length (s) -1 do if (s [i] in op) and (s [i-1] in m) and (s [i +1] in m) then begin j: = 1 ;

sa :='';

while (s [ij] in m) and (ij> 0) do begin sa: = s [ij] + sa;

j: = j +1 end;

j: = 1; sb :='';

while (s [i + j] in m) and (i + j <= length (s)) do begin sb: = sb + s [i + j];

j: = j +1 end;

val (sa, a, code); val (sb, b, code);

case s [i] of '+': O: = a + b;

'-': O: = ab; '*': O: = a * b; '/': O: = a div b; end;

writeln (a, s [i], b ,'=', O, '')

end; end;

close (f);

end.

4.Опісаніе: Вивести максимальне число з файлу in. Txt

Program one;

var t: text; i, p, code: integer; s: string; m: array [1 .. 100] of real; max: real;

begin assign (t, 'in.txt'); reset (t);

read (t, s);

i: = 0;

repeat p: = pos ('', s);

inc (i);

val (copy (s, 1, p-1), m [i], code);

delete (s, 1, p);

until p = 0;

max: = m [1];

for p: = 2 to i do if m [p]> max then max: = m [p];

writeln ('MAX =', max);

close (t);

readln;

end.


5.Опісаніе: Перекодування файлу з формату DOS у формат Windows.

Program one;

var f, g: text; i, p, n: integer; m: array [1 .. 100] of string; s: string;

begin assign (f, 'in.txt'); reset (f);

assign (g, 'out.txt'); rewrite (g);

while not eof (f) do begin readln (f, s); {зчитуємо чергову рядок}

i: = 0; {ставимо лічильник слів на 0}

repeat inc (i); {збільшуємо лічильник поточного ПРОПОЗИЦІЇ}

p: = pos ('', s); {дивимося де знаходиться пробіл}

m [i]: = copy (s, 1, p-1); {записуємо поточне слово в масив}

delete (s, 1, p); {те слово, яке запрісалі в масив - видаляємо}

until p = 0; {****************}

n: = i +1; {кінець масиву}

if s [length (s )]='.' then begin m [n]: = copy (s, 1, length (s) -1); m [1]: = m [1 ]+'.' {то цю точку переміщаємо на 1 слово}

end else m [n]: = s; {а якщо немає точки - то просто його записуємо в масив}

writeln (g);;

for i: = n downto 1 do write (g, m [i], ''); {йдемо з кінця масиву в початок і записуємо слова в зворотному порядку} end;

writeln ('PEREZAPISANO ...'); readln;

close (f); close (g);

end.


6.Опісаніе: Видалення наступних один за одним декількох прогалин з файлу.

Program one;

const

FileName: String = 'Strings.txt';

VAR f: Text; S: String;

BEGIN Assign (f, FileName); {$ I-} Reset (f); {$ I +}

if IOResult = 0 then begin ReadLn (f, S); Close (f) end;

WriteLn ('input string:', S);

while (POS ('', S)> 0) do delete (S, POS ('', S), 1);

if (length (S)> 1) and (S [1] = '') then Delete (S, 1, 1);

if (length (S)> 1) and (S [length (S)] = '') then Delete (S, length (S), 1);

writeln ('output string:', s);

readln;

END.

7.Описание: Вивести вміст файлу в зворотному порядку в новий файл.

program one;

uses crt;

var fl1, fl2: text; a, b: string; i, l: longint;

begin clrscr;

assign (fl1, 'input.txt');

assign (fl2, 'output.txt'); reset (fl1); readln (fl1, a);

close (fl1);

l: = length (a);

for i: = l downto 1 do b: = b + a [i];

rewrite (fl2); write (fl2, b);

close (fl2);

write (b); readln;

end.


8.Опісаніе: Бінарний пошук елемента в тіпізрованном longint файлі.

program searches;

uses crt, dos;

type longint_file = file of longint;

procedure files_names_query (var read_file, error: string; var search_value: longint);

var f: text;

begin error :='';

write (''зчитує файл: ');

readln (read_file);

assign (f, read_file);

reset (f);

if (ioresult = 0) then begin close (f);

write ('находиме значення = ');

readln (search_value);

end else begin error: = 'помилка: файл НЕ існує '; end; end;

function bin_search (left, right, search_value: longint; var f: longint_file): boolean;

var center, value, new_left, new_right, right_value, center_value: longint;

begin if (left = right) then begin seek (f, left);

read (f, value);

if (value = search_value) then begin bin_search: = TRUE;

end else begin bin_search: = FALSE; end;

end else begin center: = ((left + right) div 2) +1;

seek (f, right);

read (f, right_value);

seek (f, center);

read (f, center_value);

if ((search_value> = center_value) and (search_value <= right_value)) then begin new_left: = center;

bin_search: = bin_search (new_left, right, search_value, f);

end else begin new_right: = center-1;

bin_search: = bin_search (left, new_right, search_value, f); end; end; end;

function search (read_file: string; search_value: longint): boolean;

var f: longint_file;

finded: boolean;

elements_count: longint;

begin assign (f, read_file);

reset (f);

finded: = FALSE;

elements_count: = filesize (f);

finded: = bin_search (0, elements_count-1, search_value, f);

close (f);

search: = finded; end;

procedure writing_to_file (write_file: string; finded: boolean; begin_time: longint);

var f: text; hour, minutes, seconds, seconds100: word; end_time: longint; time: real;

begin gettime (hour, minutes, seconds, seconds100);

end_time: = minutes * 60 * 100 + seconds * 100 + seconds100;

time: = (end_time-begin_time) / 100;

assign (f, write_file);

rewrite (f);

if (finded) then writeln (f, 'ok') else writeln (f, 'error');

writeln (f, time: 4:2);

close (f); end;

procedure writing (finded: boolean; begin_time: longint);

begin if (finded) then begin writeln ('Element finded complete');

end else begin writeln ('Element not finded'); end;

readln; end;

var read_file, write_file, error, search_value_string: string; hour, minutes, seconds, seconds100: word;

begin_time, search_value: longint; k: integer; result: boolean;

begin gettime (hour, minutes, seconds, seconds100);

begin_time: = minutes * 60 * 100 + seconds * 100 + seconds100;

if (paramstr (1 )<>'') then begin read_file: = paramstr (1);

search_value_string: = paramstr (2);

val (search_value_string, search_value, k);

write_file: = paramstr (3);

result: = search (read_file, search_value);

writing_to_file (write_file, result, begin_time);

end else begin files_names_query (read_file, error, search_value if (error ='')

then begin result: = search (read_file, search_value);

writing (result, begin_time);

end else begin writeln (error);

writeln ('натисніть Enter для продовження. ");

readln; end; end;

end.


9.Опісаніе: Вивести таблично результати розрахунку функції y = sin (x) / x на вказаному діапазоні у файл.

Program one;

Const M = 24;

Var FName: Text; AB, H, X: Real;

Function F (X: Real): Real;

Begin F: = Abs (Sin (X) / X);

End;

Begin Write ('vvedite na4alo diapazona:');

ReadLn (A);

Write ('vvedite konec diapazona:');

ReadLn (B);

WriteLn ('sozdayu LA-BA.TAB');

H: = (BA) / M;

X: = A;

Assign (FName, 'LA-BA.TAB');

ReWrite (FName);

WriteLn (FName, 'X | F (X)');

While (X <= B) Do Begin WriteLn (FName, X, '|', F (X));

X: = X + H;

End;

Close (FName);

End.

10.Опісаніе: Дан файл, що містить текст. Скільки слів у тексті? Скільки цифр в тексті?

program one;

Const mn = ['0 '.. '9'];

Var f3: text; i, j, ch, sl: integer; name: string; s: char; wrd: string;

Begin writeln ('vvedite imya faila');

readln (name);

assign (f3, name);

reset (f3);

s: = ''; sl: = 0; ch: = 0;

while not eof (f3) do begin readln (f3, wrd);

i: = 1;

While i <= length (wrd) do begin if wrd [i] <> '' then sl: = sl +1;

while (wrd [i] <> '') and (i <= length (wrd)) do inc (i);

inc (i) end; end;

close (f3);

reset (f3);

while not eof (f3) do begin while not eoln (f3) do begin read (f3, s);

if (s in mn) then ch: = ch +1;

end; readln (f3); end;

writeln ('4 islo slov: ', sl,' 4islo cifr: ', ch);

close (f3);

End.


11.Опісаніе: Замінити синонімами слова у файлі

program;

var f1, f2, f3: text; i, n, k, l: integer; s, sout, ss, slovoT, slovo, sinonim: string;

begin assign (f1, 'text1.txt');

assign (f2, 'text2.txt'); assign (f3, 'text3.txt');

rewrite (f1);

writeln (', ўҐ ¤ Е⥠⥪бв: ');

repeat readln (s);

writeln (f1, s)

until s ='';

close (f1); reset (f1);

rewrite (f3);

while not (eof (f1)) do begin readln (f1, s);

s: = s + '';

sout :='';

while length (s)> 0 do begin l: = pos ('', s);

slovoT: = copy (s, 1, l-1);

delete (s, 1, l);

reset (f2);

while not (eof (f2)) do begin readln (f2, ss);

k: = pos (',', ss); sinonim: = copy (ss, 1, k-1);

if sinonim = slovoT then slovoT: = copy (ss, k +1, length (ss)-k) end;

close (f2);

sout: = sout + slovot + '' end;

writeln (s);

writeln (f3, sout) end;

close (f3); reset (f3);

while not (eof (f3)) do begin readln (f3, s);

writeln (s) end;

close (f3); readln

end.


12.Опісаніе: Очистити файл, залишивши лише перший рядок.

program one;

uses crt;

var fl1: text; a: string; i, l, poz: longint; label m;

begin clrscr;

assign (fl1, 'input.txt');

reset (fl1); readln (fl1, a); close (fl1);

l: = length (a);

rewrite (fl1);

for i: = 1 to l do if a [i ]='.' then begin poz: = i; goto m; end;

m: for i: = 1 to poz do write (fl1, a [i]); close (fl1);

writeln ('complete !!!');

readkey;

end.


13.Опісаніе: Виведення статистики по файлу

program one; uses crt; var infile: text; file_name, s: string; i, commas, points, blanks, lines: integer; begin clrscr; commas: = 0; points: = 0; blanks: = 0; lines: = 0; write ('vvedite imya faila'); readln (file_name); assign (infile, file_name); reset (infile); while not eof (infile) do begin readln (infile, s); for i: = 1 to length (s) do begin case s [i] of ',': inc (commas); '.' : Inc (points); '': inc (blanks); end; end; inc (lines); end; close (infile); gotoxy (1,3); writeln ('zapyatih:', commas); writeln (' predlogenii: ', points); writeln (' probelov: ', blanks); writeln (' strok: ', lines); readln; end.


14 Задано файл F, компонентами якого є цілі числа. Переписати у файл G спочатку всі негативні, потім всі нульові, а потім всі позитивні числа, упорядкувавши їх за зростанням модуля величини. Файл G - текстовий. Program Pascal; Const fname = 'num.txt'; fname2 = 'num2.txt'; Var f, g: text; stroka: string; k, code, i, j, tmp: integer; a: array [1 .. 20] of integer; begin Assign (F, fName); ReSet (F); k: = 0; While Not Eof (F) Do Begin ReadLn (F, Stroka); k: = k +1; val (Stroka, tmp, code); a [k]: = tmp; writeln (a [k]); End; close (f); writeln; writeln (k); writeln; for i: = 2 to k do for j: = k downto 2 do if a [j-1]> a [j] then begin tmp: = a [j-1]; a [j-1]: = a [j]; a [j]: = tmp; end; for i: = 1 to k do write (a [i], ''); Assign (g, fName2); rewrite (g); for i: = 1 to k do begin writeln (g, a [ i]); end; close (g); writeln; readln; end.


15 Задано тектовий файл, що містить текст. Визначити скільки разів зустрічається в ньому найдовше слово.

program tp7; const razd = ['','.',',','?','!',':',')','(']; var f: text; s, slo, slovo, name: string; k, i: integer; begin write ('Введіть ім'я файлу: '); readln (Name); assign (f, name); reset (f); slovo :=''; k: = 0; while not (EOF (F)) do begin readln (f, s); slo :=''; for i: = 1 to length (s) do begin if s [i] in razd then begin if (i> 1) and not (s [i-1] in razd) then begin if (length (slo) = length (slovo)) and (slo = slovo) then k: = k +1; if length (slo)> length (slovo) then begin slovo: = slo; k: = 1 end; end; slo: =''end else begin slo: = slo + s [i] end; end; if (length (slo) = length (slovo)) and (slo = slovo) then k: = k +1; if length (slo) > length (slovo) then slovo: = slo; end; writeln ('слово', slovo, 'зустрічається', k, 'раз'); close (f); readln end.


Розділ: Записи


1.Описание: У файл вводяться імена, стать і зріст людини. Програма зчитує дані з файлу і видає збіги, якщо в ньому є чоловіки одного зросту.

program one;

const n = 2;

type group = record

ser: string [30]; p: string [1]; h: 100 .. 250;

end;

var person: array [1 .. n] of group; f: text; r: boolean; ar: array [1 .. n] of integer; i, j, z, obr: integer;

begin assign (f, 'AAAAAAA.txt');

rewrite (f);

for i: = 1 to n do with person [i] do begin writeln ('person', i);

writeln (f, 'person', i);

writeln ('sername');

readln (ser);

writeln (f, 'sername:', ser, '');

writeln ('pol');

readln (p);

writeln (f, 'pol:', p, '');

writeln ('rost');

readln (h);

writeln (f, 'rost:', h, '');

writeln (f);

writeln; end;

close (f);

reset (f);

append (f);

writeln (f, 'poisk dvuh men s odinakovim rostom');

j: = 1; for i: = 1 to n do begin with person [i] do begin if (p = 'm') or (p = 'M') then begin ar [j]: = h;

j: = j +1; z: = j-1; end; end; end;

r: = false;

for j: = 1 to z do begin obr: = ar [j]; i: = j;

repeat if ar [i +1] = obr then r: = true else i: = i +1;

until (i> z) or (r); end;

if r = true then writeln (f, 'sovpadenie naydeno');

if r = false then writeln (f, 'sovpadenie ne naydeno');

close (f);

readln;

end.


2.Опісаніе: Телефонний довідник

program one; type Zapis = record fam: string; tel: string;

end; var out: file of Zapis; nam: Zapis; kon: char; begin assign (out, 'nomera'); rewrite (out); repeat write ('fam?'); readln (nam.fam); write ( 'nomer?'); readln (nam.tel); write (out, nam); writeln ('prodolgim? y / N'); readln (kon); until kon <> 'y'; reset (out); while not eof (out) do begin read (out, nam); writeln (nam.fam ,'-', nam.tel); end; close (out); end.


3.Описание: Програма, яка створює файл з описом студентів:

program one;

type TStudentInfo = record name: string [30]; kurs: string [20]; ekz: array [1 .. 5] of byte; end; var f: file of TStudentInfo; st: TStudentInfo; p: byte; begin assign ( f, 'students.dat'); reset (f); {Відкриємо   файл. Позиція   на   даний   момент   в   самому   початку} if ioresult <> 0 then rewrite (f);   {Якщо   помилка,   занчіт   файлу   немає,   і   значить   откоем   його   поіншому} seek (f, filesize (f));

with st do repeat write ('Введіть   ім'я   студента   (Порожню   рядок   для   виходу):   '); Readln (name); if name =''then break; write (' Введіть   курс: '); readln (kurs); for p: = low (ekz) to high (ekz) do begin write (' Введіть   оцінку   по   іспиту   № ', p,':   '); Readln (ekz [p]); end; write (f, st);   {Ось   ця   рядок   і   записує   інформацію   про   студента   в   файл} until false; close (f);   {Цю   команду   ми   ще   НЕ   розглядали,   але   про   цьому   я   розповім   в   Наприкінці} end.


4.Опісаніе: Виконується введення дати послідовно: число, місяць, рік. Програма перевіряє наявність помилок при введенні.

program lab 4;

uses crt;

type day = 1 .. 31; mon = 1 .. 12; year = 1 .. 3000;

var data: record

d: day; m: mon; y: year; end; s: boolean;

function vernaydat: boolean;

begin with data do begin write ('chslo:');

readln (d);

write ('mesyc:');

readln (m);

write ('god:');

readln (y);

s: = true;

if y> 3000 then s: = false;

if m> 12 then s: = false;

case m of 1,3,5,7,8,10,12: begin if d> 31 then s: = false; end;

4,6,9,11: begin if d> 30 then s: = false; end;

2: begin if (y mod 4) <> 0 then if d> 28 then s: = false;

if (y mod 4) = 0 then if d> 29 then s: = false;

end; end;

if s = true then write ('OK');

if s = false then write ('ERROR'); end; end;

begin clrscr;

writeln ('Vvedite datu');

Vernaydat; readln;

end.


5.Опісаніе: Формування бази даних інформації про студентів. Висновок з таблиці список студентів:-отримали оцінку 4;-які отримали оцінки 4 та 5;-прізвище яких починається на "А".

Program Laba6;

Uses Crt;

Type Exam = Record

Name: String [20]; Year: Integer; Lesson: String [10]; Prise: Integer;

End;

Mass = Array [1 .. 30] Of Exam;

Var Student: Mass; Prise1, Prise2, Num, I: Integer; Letter: Char;

Procedure InputStudent (Var InpNum: Integer);

Var I: Integer;

Begin ClrScr;

Write ('4 islo studentov: ');

ReadLn (InpNum);

For I: = 1 To InpNum Do Begin Write ('vvvedite familiyu stud nomer', I, '[20]:'); ReadLn (Student [I]. Name);

Write ('god rojden stud nomer', I, ':'); ReadLn (Student [I]. Year);

Write ('predmet studenta nomer', I, '[10]:'); ReadLn (Student [I]. Lesson);

Write ('ocenka stud nomer', I, ':'); ReadLn (Student [I]. Prise);

WriteLn; End; End;

Procedure OutLine (Line: Integer);

Begin Write (Student [Line]. Name: 20);

Write (Student [Line]. Year: 6);

Write (Student [Line]. Lesson: 10);

Write (Student [Line]. Prise: 7);

WriteLn; End;

Procedure OutStudent (OutNum: Integer); Var I: Integer;

Begin ClrScr;

WriteLn ('familiya': 20, 'god': 6, 'predmet': 10, 'ocenka': 7);

For I: = 1 To OutNum Do OutLine (I); End;

Procedure OutStudentPrise1 (OutNum, OutPrise: Integer); Var Col, I: Integer;

Begin WriteLn;

Col: = 0;

WriteLn ('dannye o stud-h polu4ivshih ocenki:', OutPrise);

For I: = 1 To OutNum Do If (Student [I]. Prise = OutPrise) Then Begin Col: = Col +1;

OutLine (I); End;

WriteLn ('4 islo stud polu4ivshih ocenku ', OutPrise,': ', Col); End;

Procedure OutStudentPrise2 (OutNum, OutPrise1, OutPrise2: Integer);

Var I: Integer;

Begin WriteLn;

WriteLn ('dannye o stud polu4ivshih ocenku:', OutPrise1, 'Е', OutPrise2);

For I: = 1To OutNum Do If ((Student [I]. Prise = OutPrise1) Or (Student [I]. Prise = OutPrise2)) Then OutLine (I);

End;

Procedure OutStudentName (OutNum: Integer; OutLetter: Char); Var I: Integer;

Begin WriteLn;

WriteLn ('dannye o studentah 4i familii na4inayutsa na "', OutLetter ,'"');

For I: = 1 To OutNum Do If (Copy (Student [I]. Name, 1,1) = OutLetter) Then OutLine (I); End;

Begin InputStudent (Num);

OutStudent (Num); Prise1: = 4;

OutStudentPrise1 (Num, Prise1); Prise2: = 5;

OutStudentPrise2 (Num, Prise1, Prise2); Letter: = 'Ђ';

OutStudentName (Num, Letter);

ReadLn;

End.


6.Опісаніе: Дана таблиця матеріалів з ​​наступною інформацією по кожному матеріалу: назва, питома вага, вид провідності (діелектрик, напівпровідник, провідник). Виписати з таблиці всі напівпровідники та їх питома вага.

program one;

Uses CRT;

Const Veshestvo = 1;

Type Material = Record

Name: String [20]; Weight: Real; Provod: Integer;

End;

Var Result, I, J, N: Integer; F: Array [1 .. 20] Of Material; Begin

F [1]. Name: = 'med'; F [1]. Weight: = 4.00; F [1]. Provod: = 2;

F [2]. Name: = 'bumaga'; F [2]. Weight: = 66.0; F [2]. Provod: = 0;

F [3]. Name: = 'ЉаҐ ¬ Е ©'; F [3]. Weight: = 5.40; F [3]. Provod: = 1;

F [4]. Name: = 'germany'; F [4]. Weight: = 21.5; F [4]. Provod: = 1;

F [5]. Name: = 'arsenid gallia'; F [5]. Weight: = 3.00; F [5]. Provod: = 1;

F [6]. Name: = 'alluminiy'; F [6]. Weight: = 50.0; F [6]. Provod: = 2;

F [7]. Name: = 'keramika'; F [7]. Weight: = 9.90; F [7]. Provod: = 0;

F [8]. Name: = 'rezina'; F [8]. Weight: = 80.0; F [8]. Provod: = 0;

F [9]. Name: = 'ftoroplast'; F [9]. Weight: = 4.00; F [9]. Provod: = 0;

ClrScr;

N: = 9;

Result: = 0;

Writeln ('naimenovanie materiala udelny ves provodimost');

Writeln ('----------------------------------------------- ------------');

For I: = 1 to N Do If (F [I]. Provod = Veshestvo) Then Begin

Write (F [I]. Name: 22, F [I]. Weight: 15:2);

Case F [I]. Provod Of

0: WriteLn ('izolyator': 15);

1: WriteLn ('poluprovodnik': 15);

2: WriteLn ('provodnik': 15); End;

Result: = Result + 1; End;

Writeln ('----------------------------------------------- ------------');

Writeln ('naideno', Result, 'material.');

If Result = 0 Then WriteLn ('takogo materiala net'); Readln;

End.


7.Описание: Вивести з введеної рядка слова з максимальною кількістю входжень буквл 'l' і 'o' і підрахувати кількість цих входжень.

Type Info = record

wrd, num: Byte; ch: Char;

End;

Var S, Temp: String; P, I: Byte; M, N: Info;

Function CalkChar (A: String; C: Char): Byte; Var I, Result: Byte;

Begin Result: = 0;

For I: = 1 To Length (A) Do If UpCase (A [I]) = UpCase (C) Then Inc (Result);

CalkChar: = Result;

End;

Begin WriteLn ('vvedite frazu po-angl:');

ReadLn (S);

I: = 1;

M.num: = 0; M.wrd: = 0; M.ch: = 'l';

N.num: = 0; N.wrd: = 0; N.ch: = 'o';

While Pos ('', S) <> 0 Do Begin P: = Pos ('', S);

Temp: = Copy (S, 1, P);

If M.wrd <CalkChar (Temp, M.ch) Then Begin M.num: = I;

M.wrd: = CalkChar (Temp, M.ch); End;

If N.wrd <CalkChar (Temp, N.ch) Then Begin N.num: = I;

N.wrd: = CalkChar (Temp, N.ch); End;

Delete (S, 1, P); Inc (I); End;

If M.wrd <CalkChar (S, M.ch) Then Begin M.num: = I;

M.wrd: = CalkChar (S, M.ch); End;

If N.wrd <CalkChar (S, N.ch) Then Begin N.num: = I;

N.wrd: = CalkChar (S, N.ch); End;

WriteLn ('-------------');

If M.wrd <> 0 Then WriteLn ('bukva', M.ch, '4 asche vstre4aetsa v ', M.num,' - ¬ slove, celyh ', M.wrd,' raz () ');

If N.wrd <> 0 Then WriteLn ('bukva', N.ch, '4asche vstre4aetsa v', N.num, '-m slove, celyh', N.wrd, 'raz ()'); readln;

End.


8.Опісаніе: З вихідної таблиці іграшок з полями: назва іграшки, вартість, вікові обмеження, виписати відомості для іграшок вартістю менше 4 рублів, що підходять дітям 5 років.

Uses CRT;

Const Vozrast = 5;

Cena = 400;

Type Toy = Record

Name: String [20]; Sale: Integer; Min: Integer; Max: Integer;

End;

Var Sum, Result, I, J, N: Integer; F: Array [1 .. 20] Of Toy;

Begin

F [1]. Name: = 'mya4'; F [1]. Sale: = 400; F [1]. Min: = 1; F [1]. Max: = 9;

F [2]. Name: = 'kukla'; F [2]. Sale: = 660; F [2]. Min: = 3; F [2]. Max: = 7;

F [3]. Name: = 'samolet'; F [3]. Sale: = 540; F [3]. Min: = 3; F [3]. Max: = 5;

F [4]. Name: = 'pupsik'; F [4]. Sale: = 210; F [4]. Min: = 1; F [4]. Max: = 3;

F [5]. Name: = 'knijka'; F [5]. Sale: = 300; F [5]. Min: = 1; F [5]. Max: = 5;

F [6]. Name: = 'mashinka'; F [6]. Sale: = 500; F [6]. Min: = 3; F [6]. Max: = 8;

F [7]. Name: = 'parovoz'; F [7]. Sale: = 990; F [7]. Min: = 4; F [7]. Max: = 7;

F [8]. Name: = 'ula'; F [8]. Sale: = 800; F [8]. Min: = 2; F [8]. Max: = 5;

F [9]. Name: = 'konstruktor'; F [9]. Sale: = 400; F [9]. Min: = 6; F [9]. Max: = 9;

ClrScr;

N: = 9;

Result: = 0;

Sum: = 0;

Writeln ('igryshka cena, kop. Min vozrast Max vozrast');

Writeln ('----------------------------------------------- ------------');

For I: = 1 to N Do If (F [I]. Min <= Vozrast) And (Vozrast <= F [I]. Max) And (F [I]. Sale <= Cena) Then Begin

WriteLn (F [I]. Name: 20, F [I]. Sale: 12, F [I]. Min: 14, F [I]. Max: 13);

Result: = Result + 1; Sum: = Sum + F [I]. Sale; End;

Writeln ('----------------------------------------------- ------------');

Writeln ('stoimost pokupki:', Sum/100: 3:2, 'rub.');

If Result = 0 Then WriteLn ('pokupku sovershit nevozmojno!');

Readln;

End.


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

Uses CRT;

Type Line = Record

A, B, C: Integer;

End;

Var Result, I, J, N: Integer; F, G: Array [1 .. 20] Of Line;

Begin

F [1]. A: = 1; F [1]. B: = 9; F [1]. C: = 2;

F [2]. A: = 2; F [2]. B: = 6; F [2]. C: = 3;

F [3]. A: = 3; F [3]. B: = 5; F [3]. C: = 1;

F [4]. A: = 4; F [4]. B: = 2; F [4]. C: = 4;

F [5]. A: = 3; F [5]. B: = 3; F [5]. C: = 1;

F [6]. A: = 2; F [6]. B: = 5; F [6]. C: = 2;

F [7]. A: = 1; F [7]. B: = 9; F [7]. C: = 5;

F [8]. A: = 2; F [8]. B: = 6; F [8]. C: = 1;

F [9]. A: = 3; F [9]. B: = 5; F [9]. C: = 2;

ClrScr;

N: = 9; Result: = 0; I: = 1;

For J: = 2 to N Do If (F [I]. A = F [J]. A) And (F [I]. B = F [J]. B) Then Begin Write ('liniya', I, 'paralelna linii', J, '');

WriteLn (F [I]. A, 'X +', F [I]. B, 'Y +', F [I]. C);

Result: = Result + 1; End;

Writeln ('naideno', Result, 'liniy');

If Result = 0 Then WriteLn ('takih liniy net');

Readln;

End.


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

uses crt; type bagaj = record ves: double; kol_veshei: integer; end; var bagage: array [1 .. 20] of bagaj; i, j, n, temp: byte; rez, k: double; a: boolean; begin clrscr; writeln ('Vvedite kol-vo passajirov (n <= 20 ):'); readln (n); for i: = 1 to n do begin writeln (' Vvedite svedeniya o ', i,'-om bagaje passajira : '); writeln (' Vvedite ves bagaja: '); readln (bagage [i]. ves); writeln (' Vvedite kol-vo veshei bagaja: '); readln (bagage [i]. kol_veshei); end; clrscr ; writeln ('Bagage, sredniy ves odnoi veshi otlichaetsya ne bolee'); writeln ('chem na 0.3 kg ot obshego srednego vesa:'); writeln; a: = true; for i: = 1 to n do begin rez: = bagage [i] .ves / bagage [i]. kol_veshei; if (abs (bagage [i]. ves - rez) <= 0.3) then begin a: = false; writeln ('Bagage nomer', i); writeln ( 'ves bagaja:', (bagage [i]. ves): 5:2, 'kg'); writeln ('kol-vo veshei:', bagage [i]. kol_veshei); writeln; end; end; if ( a) then writeln ('Takogo bagaja net!'); writeln; writeln ('Kol-vo passajirov imeyushih bolee 2 veshei:'); writeln; temp: = 0; for i: = 1 to n do if (bagage [i ]. kol_veshei> 2) then temp: = temp +1; writeln ('Takih passajirov', temp, 'chelovek'); if temp = 0 then writeln ('Takih passajirov net!'); writeln; writeln ('Kol- vo veshei bolshe srednego chisla veshei: '); writeln; rez: = 0; temp: = 0; for i: = 1 to n do rez: = rez + bagage [i]. kol_veshei; for i: = 1 to n doif (bagage [i]. kol_veshei> (rez / n)) then temp: = temp +1; writeln ('Takih veshei', temp); if temp = 0 then writeln ('Takih veshei 0');. writeln; writeln ('Bagage iz 1 veshi s vesom ne menee 30 kg'); writeln; temp: = 0; for i: = 1 to n doif bagage [i]. kol_veshei = 1 thenif bagage [i]. ves> = 30 thentemp: = temp +1; writeln ('Imeetsya', temp, 'passajirov s takim bagajom'); readln; end.


11.Опісаніе: 1.Спісок книг складається з 10 записів. Запис містить поля: Прізвище автора, назва книги, рік ізданія.Найті назва книг даного автора, виданих з 1960 року. Program df; Uses crt; Type knigi = record Fam: string [15]; Naz: string [30]; Gad: integer; End; Var s: array [1 .. 10] of knidi; I, k: integer; Av : string; Begin clrscr; For i: = 1 tio 10 do begin with s [i] do begin Writeln (vvedi fam, i); Readln (fam); Writeln (vvedi nazv, i); Readln (nazv); Writeln ( god); Readln (god); End; end; Writeln (vvedi av); Readln (avt); K: = length (av); For i: = 1 to 10 do begin With s [i] do begin If (copy (fam, 1, k) = av) and (god> 1960) then writeln (nazv, nazv); End; End; End.

12.Опісаніе: З відомості 3-х студентів з їх оцінками (порядковий номер, П.І.Б. та три оцінки) визначити кількість відмінників і середній бал кожного студента. Program Spic; Type wed = record n: integer; fio: string [40]; bal: array [1 .. 3] of integer end; Var spisok: wed; i, j, kol, s: integer; sr: real; Begin kol: = 0; with spisok do For i: = 1 to 3 do begin n: = i; Write ('Vvedite FIO #', i, ''); Readln (fio); s: = 0; For j: = 1 to 3 do begin write ('Vvedite ocenky:'); readln (bal [j]); s: = s + bal [j]; end; if s = 15 then kol: = kol +1; sr: = s / 3; writeln (fio, ', Sredniy bal =', sr: 4:1); end; writeln ('Kolichestvo otlichnikov =', kol); readln; end.


13.Опісаніе: програма показує приклад об'єднання координат точок до запису. Тут використовується масив із записів типу RecPoint. Кожна така запис містить в собі поля з координатами x, y, z і поле коментаря. Таким чином, один запис описує одну точку, а масив із записів представляє собою набір крапок. Program Records; Uses crt; type RecPoint = record x, y, z: real; comment: string end; var Point: array [1 .. 10 ] of RecPoint; i: integrer; delta: real; begin Clrscr; for i: = 1 to 10 do begin Point [i]. x: = 2 * i - 3; Point [i]. y: = 3 * Point [ i]. x + 2; Point [i]. z: = 6 * Point [i]. y - 2 * Point [i]. x + 1; delta: = Point [i]. z - Point [i]. x; if delta> 100 then Point [i]. comment: = 'z - x> 100.' else Point [i]. comment: = 'Немає коментарів. '; end; Writeln (' Результа розрахунку (поля запису ):'); Write ('': 7, 'x'); Write ('': 8, 'y'); Write ('': 8, 'z'); Writeln ('коментарі'); for i: = 1 to 10 do begin Write (Point [i]. x: 8:3, ''); Write (Point [i]. y: 8:3, ''); Write (Point [i]. z : 8:3, '': 2); Writeln (Point [i]. comment); end; Readkey; end.


14.Опісаніе: Вирівнювання тексту

uses crt;

const

l = 79; {kolvo liter, umeshayushihsya na ekrane v DOSe}

var t: text; i, j: integer; s: string; c, ost: byte;

begin clrscr;

assign (t, 'input.txt'); reset (t);

while not EoF (t) do begin readln (t, s);

for i: = 1 to length (s) do if s [i] = '' then incc;

ost: = l - length (s); {ost - kolichestvo probelov, kotorie nado}

j: = 1;

while ost> 0 do begin for i: = 1 to length (s) + c - 1 do if (s [i] = '') then begin if ost <= 0 then break;

insert ('', s, i); dec (ost); inc (i, j); end;

inc (j); {tk pri prohozhdenii cikla FOR mi vstrechaem pervii probel} end;

c: = 0; {obyazatel'no obnulayem kol-vo strok v stroke}

writeln (s); end;

close (t); readkey;

end.


15.Опісаніе: Програма контролю студентів за літературе.Форміруется файл питань і відповідей

program zavd1;

uses crt;

const qfile = 'quest.txt'; afile = 'ansver.txt'; var f1, f2: text; i, k: integer; name, ansv: string;

begin clrscr;

assign (f1, qfile);

assign (f2, afile);

rewrite (f2);

reset (f1);

write ('vvedi imya? ¬ `п, gruppu:');

readln (name);

writeln (f2, name);

while not eof (f1) do begin readln (f1, name);

writeln (name);

write (', і ў? ¤ Ї ® ў? ¤ м: ');

readln (name);

writeln (f2, name);

readln (f1, ansv);

if ansv = name then k: = k +1;

i: = i +1; end;

writeln (f2, ', бм ® Ј ® ЇЕв  ­ м: ');

writeln (f2, i);

writeln (f2, 'Џа   ўЕ «м ­ Її ЇЕв  ­ м: ');

writeln (f2, k);

close (f1); close (f2);

end.


Розділ: Рядки


1. Опис: Із рядка повторюваних слів, відокремлених комами і закінчуються крапкою, виписати всі голосні літери в алфавітному порядку, які входять не більш ніж в одне слово.

program one;

Uses CRT;

Type MyType = Set Of Char; Var S, W: String; I, K, L: Integer; J: Char; M, N: MyType; B, C: Array [1 .. 32] of MyType;

Begin ClrScr;

M: = ['', 'Г', 'з', 'Е','®',' г', 'л', 'н', 'про', 'п']; S: = 'є « ҐЎ ,¬®«® Є ®, аЎг §, алЎ, ᥠ«Г ¤ Є. '; K: = 1;

writeln (s);

While pos (',', S)> 0 Do Begin W: = copy (S, 1, pos (',', S));

B [K]: = [];

For I: = 1 To Length (W) Do B [K]: = B [K] + [W [I]];

Inc (K);

delete (S, 1, pos (',', S)); End;

W: = S; B [K]: = [];

For I: = 1 To Length (W) Do B [K]: = B [K] + [W [I]];

For I: = 1 To K Do Begin C [I]: = B [I]; For L: = 1 To K Do If I <> L Then C [I]: = C [I] - B [L]; End;

N: = [];

For I: = 1 To K Do N: = N + C [I];

M: = M * N;

For J: = '' To 'п' Do If J in M Then Write (J, '');

WriteLn; ReadKey;

End.


2.Опісаніе: Основа алгоритму гри, відповідно до якої з слова зразка, яка є першим в рядку (у даному випадку Pascal), складаються інші слова з тих же букв. Кількість входжень однієї і тієї ж букви повинно бути не більше, ніж у зразку.

program one;

Uses CRT;

Var S, T: String; N, I, J: Integer; A: Array [1 .. 100] of String; F: Boolean;

Begin ClrScr;

S: = 'pascal cal lasca nosok pasca sapca lapca caplan capla';

N: = 1;

While pos ('', S)> 0 Do Begin A [N]: = copy (S, 1, pos ('', S) -1);

delete (S, 1, pos ('', S));

inc (N); End;

A [N]: = S;

For I: = 2 To N Do Begin F: = True;

T: = A [I];

For J: = 1 To Length (T) Do Begin If (pos (T [J], A [1]))> 0 Then T [J]: = '*' Else F: = False; End;

If F Then WriteLn (A [I]); End;

readln;

End.


3.Описание: Вивести кожне слово пропозиції задом наперед.

Program Stroki;

const chars =['.',',','!','?',' ']; var S, S_out, slovo: string; i, j: integer;

begin Writeln ('Vv stroku');

Readln (S);

S: = S + '';

for i: = 1 to Length (S) do if not (S [i] in chars) then Slovo: = slovo + S [i] else if slovo <>''then begin for j: = Length (slovo) downto 1 do S_out: = s_out + slovo [j];

s_out: = s_out + '';

slovo :=''; end;

Writeln (S_out);

Readln;

end.


4.Опісаніе: Розташувати слова в порядку зростання їх довжини в тексті.

program one;

uses crt;

var a, d, sl1, sl2: string; i, l, k, j: longint; b: array [1 .. 50] of string;

begin clrscr;

write ('input s:'); readln (a); l: = length (a);

if a =''then halt;

if a [l] <> '' then begin inc (l); a [l]: = ''; end;

for i: = 1 to l do if a [i] = '' then begin inc (j); b [j]: = d; d :=''; end else d: = d + a [i];

for i: = 1 to j-1 do for k: = i +1 to j do begin sl1: = b [i]; sl2: = b [k];

if length (sl1)> length (sl2) then begin b [i]: = sl2; b [k]: = sl1; end; end;

for i: = 1 to j do write ('', b [i]); readln;

end.

5.Опісаніе: Знайти і замінити певні символи в тексті (замінні) введеним символом з клавіатури (замінює). Кожну заміну супроводжувати підтвердженням.

program one;

uses crt;

var i, l: longint; a, a1, a2, p: string;

begin clrscr; textcolor (11);

write ('vvedite text:'); readln (a);

write ('zamenyaemyi simvol:'); readln (a1);

write ('zamenyauschiy simvol:'); readln (a2);

if (length (a1)> 1) or (length (a2)> 1) then halt; l: = length (a);

for i: = 1 to l do if a [i] = a1 then begin clrscr; a [i ]:='_';

writeln (a);

writeln ('Vy podtverzhdaete zamenu', i, '-ogo simvola? (y / n)'); readln (p);

if p = 'y' then a [i]: = a2 [1] else a [i]: = a1 [1]; end;

clrscr;

write (a); readln;

end.


6.Опісаніе: Знайти схоже слово в реченні, яке відрізняється не більше, ніж на два символи. Приклад: Pascal = Paskal = Pacsal.

program one;

var s, sl: string; m: array [1 .. 100] of string; i, j, k, p, n, kol: integer;

beginwrite ('Vvedite TEXT (slova cerez PROBEL):'); readln (s);

write ('ISCEM -?:'); readln (sl);

i: = 0;

repeat inc (i);

p: = pos ('', s);

m [i]: = copy (s, 1, p-1);

delete (s, 1, p);

until p = 0; n: = i; m [n]: = s;

writeln ('Naideno:'); writeln;

for i: = 1 to n do begin kol: = 0;

for j: = 1 to length (sl) do if pos (sl [j], m [i]) <> 0 then inc (kol);

if (length (m [i])-kol) <3 then writeln ('*', m [i]); end; readln;

end.


7.Описание: Підрахунок кількості слів у тексті.

program one;

uses crt;

var tec: string; l, i, n: longint;

begin clrscr;

write ('input s:'); readln (tec);

l: = length (tec) +1; tec [l]: = '';

for i: = 1 to l do if tec [i] = '' then n: = n +1;

write ('in s', n, 'words');

readln;

end.


8.Опісаніе: Максимальне слово в прдложеніі

program one;

Uses CRT;

Var MaxL, C: String; Pb: Byte;

Begin ClrScr;

WriteLn (vvedite predlojenie: '); ReadLn (C);

MaxL: ='';

While Pos ('', C) <> 0 Do Begin Pb: = Pos ('', C);

If Length (MaxL) <Length (Copy (C, 1, Pb-1)) Then MaxL: = Copy (C, 1, Pb-1);

Delete (C, 1, Pb); End;

If Length (MaxL) <Length (C) Then MaxL: = C;

WriteLn;

WriteLn ('Samaya bolshayaposledovatelnost'simvolov v predlojenii:');

WriteLn (MaxL);

ReadLn;

End.


9.Опісаніе: Виписати слова з рядка, які починаються з заданої літери.

program one;

uses crt;

var a, aa, b: string; i, l, o, oo: longint;

begin clrscr;

write ('string:'); readln (a);

write ('bukva:'); readln (aa); l: = length (a);

if length (aa)> 1 then halt;

if a [l] <> '' then begin inc (l); a [l]: = ''; end;

for i: = 1 to l do if a [i] = '' then begin if b [1] = aa then writeln (b) else inc (o); inc (oo); b :='';

end else b: = b + a [i];

if o = oo then write ('takix slov net!'); readln;

end.


10.Вводітся 10 літер, а потім слово. Перевіряється можливість скласти введене слово з цих символів.

program one;

uses crt;

var as: Array [1 .. 10] of Char; s, s2: String; i, b: Byte;

beginclrscr;

Writeln ('vvedite 10 simvolov:');

for i: = 1 to 10 do begin rite ('ь', i, ':');

readln (mas [i]); end;

write ('vvedite stroku:'); readln (s);

for i: = 1 to Length (s) do for b: = 1 to 10 do if s [i] = mas [b] then begin s2: = s2 + mas [b];

mas [b]: = ''; b: = 10; end;

if s2 = s then write ('Iz etih simvolov mozhno sostavit' slovo ', s) else writeln (' Iz etih simvolov nelzya sostavit slovo ', s);

readln;

end.


11.Опісаніе: Знайти в рядку мінімальне та максимальне слова

program gdy;

label 1;

var s: string; m: array [1 .. 100] of string; i, p, n: integer; ax, min: string; c: char;

begin 1: write ('Vvedite stroky:'); readln (s);

if s [length (s )]<>'.' then begin writeln ('ERROR: konec stroki okancivaetsia na "."'); goto 1; end;

if length (s)> 79 then begin writeln ('ERROR: stroka doljna biti <= 79 simvolov'); goto 1; end;

write ('Vvedite ZADANII SIMVOL:'); readln (c);

i: = 0;

repeat p: = pos ('', s);

if pos (c, copy (s, 1, p-1)) <> 0 then begin inc (i); m [i]: = copy (s, 1, p-1); end; delete (s, 1 , p); until p = 0; n: = i; f pos (c, copy (s, 1, length (s) -1)) <> 0 then begin n: = i +1; m [n]: = copy (s, 1, length (s) -1); end;

max: = m [1]; min: = m [1];

for i: = 2 to n do begin if length (m [i])> length (max) then max: = m [i];

if length (m [i]) <length (min) then min: = m [i]; end; writeln;

writeln ('MakS:', max);

writeln ('MIN:', min);

readln; readln;

end.


12.Опісаніе: Рахунок кількості входжень кожного символу в рядок.

program one;

Var I: Word; M: Array [0 .. 255] Of Byte; S: String;

Begin For I: = 0 To 255 Do M [I]: = 0;

writeln ('input string');

Readln (S);

For I: = 1 To Length (S) Do Begin Inc (M [ORD (S [I ])]); End;

For I: = 0 To 255 Do Begin If M [I]> 0 Then WriteLn (CHR (I): 3, M [I]: 3); End; readln;

End.


13.Опісаніе: Видалення пробілів з ​​заданого рядка і вивід результату.

program one;

Var S, T: String; I: Integer;

Begin writeln ('input string');

readln (s);

T: ='';

For I: = 1 To Length (S) Do Begin If (S [I] <> '') Then T: = T + S [I];

End;

WriteLn (T);

ReadLn;

End.

14.Опісаніе: Вивести заданий символ задану кількість разів

program one;

uses crt;

var n: byte; l: string; n function zvezda (n: byte; l: string): real; var i: integer; s: string;

begin i: = 1;

s :='';

while i <= n do begin s: = s + l;

inc (i); end;

writeln (s); end;

begin clrscr;

writeln ('Vvedite chislo'); readln (n);

writeln ('Vvedite simvol'); readln (l);

zvezda (n, l);

readkey;

end.


15.Опісаніе: Замінити рядок зірочками, якщо рядок містить лапки

Program one;

var S: string; i: integer;

found: boolean;

begin Write ('vvedite stroku simvolov:');

Readln (S); Found: = FALSE;

for i: = 1 to Length (S) do {Length (s) = довжина рядки, стандартна функція}

if s [i] =''''then found: = TRUE; if Found then {якщо знайдено символ "", замінюємо}

for i: = 1 to Length (S) do s [i]: = '*'; Writeln ('Rezultiruyuschaya stroka:', S);

readln;

end


Розділ: Графіка

1.Описание: Зелений перевернутий листок папороті, що заповнює точками.

program Fract;

uses Graph, Crt;

var Dt, M: integer; R, A, B, C, D, E, F, NewY, NewX, X, Y: real;

begin Dt: = Detect;

InitGraph (Dt, M ,'');

Randomize;

X: = 0; Y: = 0;

repeat R: = Random;

if R> 0.93 then begin A: = -0.15; B: = 0.28; C: = 0.26; D: = 0.24; E: = 0; F: = 0.44;

end else if R> 0.86 then begin A: = 0.2; B: = -0.26; C: = 0.23; D: = 0.23; E: = 0; F: = 1.6;

end else if R> 0.01 then begin A: = 0.85; B: = 0.02; C: = -0.02; D: = 0.85; E: = 0; F: = 1.6;

end else begin A: = 0; B: = 0; C: = 0; D: = 0.16; E: = 0; F: = 0; end;

NewX: = A * X + B * Y + E; NewY: = C * X + D * Y + F; X: = NewX; Y: = NewY;

PutPixel (Round (X * 50) +100, Round (Y * 50) +50, Green);

until (Keypressed);

CloseGraph;

end.


2.Опісаніе: Стрілочні годинник з бистроідущей секундною стрілкою і показом реального часу.

Program 4as;

uses graph, crt, dos;

type TPoint = record

x, y: Real; end;

var H, M, S, Hund: Word; Xc, Yc, i: Integer; P, P2, P3, P4, P5, P6: TPoint;

procedure Dec2Polar (Ang, Len: Real; var P: TPoint);

begin Ang: = Ang - 90; {Correlation for our coord system}

Px: = Xc + Len * cos (Ang * Pi / 180);

Py: = Yc + Len * sin (Ang * Pi / 180); end;

begin i: = 0;

InitGraph (i, i,'');

Xc: = GetMaxX div 2; Yc: = GetMaxY div 2; SetColor (10);

Circle (Xc, Yc, Yc - 30); SetColor (2); Circle (Xc, Yc, 3); SetColor (14);

for i: = 0 to 23 do begin Dec2Polar (i * 15, Yc - 40, P);

Circle (Round (Px), Round (Py), 2 + 3 * Byte (i mod 2 = 0)); end; {SetLineStyle (0, 0, 3);}

while not keypressed do begin {Erase} SetColor (0); Line (Round (P2.x), Round (P2.y), Round (Px), Round (Py));

Line (Round (P4.x), Round (P4.y), Round (P3.x), Round (P3.y));

Line (Round (P6.x), Round (P6.y), Round (P5.x), Round (P5.y));

GetTime (H, M, S, Hund); {Second arrow}

Dec2Polar ((S + Hund/100) * 6, Yc - 50, P);

Dec2Polar ((S + Hund/100) * 6, 5, P2); {Minute arrow}

Dec2Polar ((M + S/60) * 6, Yc - 100, P3);

Dec2Polar ((M + S/60) * 6, 5, P4); Dec2Polar ((H + M/60) * 30, Yc - 150, P5);

Dec2Polar ((H + M/60) * 30, 5, P6); {Redraw} SetColor (15);

Line (Round (P2.x), Round (P2.y), Round (Px), Round (Py)); SetColor (9);

Line (Round (P4.x), Round (P4.y), Round (P3.x), Round (P3.y)); SetColor (7);

Line (Round (P6.x), Round (P6.y), Round (P5.x), Round (P5.y)); delay (1000); end; CloseGraph;

end.


3.Описание: скаче м'яч з поступовим зниженням амплітуди.

program ufo;

uses crt, graph; const r = 20; h = 5; var gd, gm, i, n, t, x, y, p: integer;

begin clrscr;

gd: = Detect;

initgraph (gd, gm, 'c: \ bp \ bgi'); setcolor (4); setlinestyle (0,1,1);

line (0,479,639,479);

x: = r; y: = r; t: = 479-2 * r; n: = t div h; p: = h;

while n <> 0 do begin for i: = 1 to n do begin setcolor (2); circle (x, y, r); setfillstyle (1,2);

floodfill (x, y, 2); delay (10);

setcolor (0); circle (x, y, r);

setfillstyle (1,0); floodfill (x, y, 0);

y: = y + p; x: = x +1; end;

if p> 0 then begin t: = round (3 * t / 4); n: = t div h end;

p: =- p end; setcolor (12); circle (x, y, r);

setfillstyle (1,2);

floodfill (x, y, 12);

repeat until keypressed; closegraph

end.


4.Опісаніе: НЛО в замкнутому просторі на тлі зоряного неба.

program ufo;

uses graph, crt;

const r = 20; pause = 50; var d, m, e, xm, ym, x, y, lx, ly, rx, ry, size, i, dx, dy, width, height: integer; saucer: pointer;

label loop;

begin d: = detect;

initgraph (d, m ,'');

e: = graphresult;

if e <> grok then writeln (grapherrormsg (e)) else begin x: = r * 5; y: = r * 2;

xm: = getmaxx div 4; ym: = getmaxy div 4;

ellipse (x, y, 0,360, r, r div 3 +2); ellipse (x, y-4, 190,357, r, r div 3);

line (x +7, y-6, x +10, y-12); line (x-7, y-6, x-10, y-12);

circle (x +10, y-12, 2); circle (x-10, y-12, 2);

floodfill (x +1, y +4, white);

lx: = xr-1; ly: = y-14;

rx: = x + r +1; ry: = y + r div 3 +3;

width: = rx-lx +1; height: = ry-ly +1;

size: = imagesize (lx, ly, rx, ry);

getmem (saucer, size); getimage (lx, ly, rx, ry, saucer ^);

putimage (lx, ly, saucer ^, xorput);

rectangle (xm, ym, 3 * xm, 3 * ym);

setviewport (xm +1, ym +1,3 * xm-1, 3 * ym-1, clipon); xm: = 2 * xm; ym: = 2 * ym;

for i: = 1 to 200 do

putpixel (random (xm), random (ym), white);

x: = xm div 2;

y: = ym div 2;

dx: = 10; dy: = 10; repeat putimage (x, y, saucer ^, xorput); delay (999);

putimage (x, y, saucer ^, xorput);

loop: x: = x + dx; y: = y + dy;

if (x <0) or (x + width +1> xm) or (y <0) or (y + height +1> ym) then begin x: = x-dx; y: = y-dy;

dx: = getmaxx div 10-random (getmaxx div 5); dy: = getmaxy div 30-random (getmaxy div 15); goto loop end until keypressed;

if readkey = # 0 then x: = ord (readkey);

closegraph end

end.

5.Опісаніе: Заповнення квадрата випадковими лініями різних кольорів.

program graphik;

uses graph, crt;

var d, r, e: integer; x1, y1, x2, y2: integer;

begin clrscr;

d: = detect;

initgraph (d, r ,'');

e: = graphresult;

if e <> grok then writeln (grapherrormsg (e)) else begin x1: = getmaxx div 3;

y1: = getmaxy div 3;

x2: = 4 * x1; y2: = 4 * y1;

rectangle (x1, y1, x2, y2);

setviewport (x1 +1, y1 +1, x2-1, y2-1, clipon);

repeat setcolor (succ (random (16)));

line (random (x2-x1), random (y2-y1), random (x2-x1), random (y2-y1))

until keypressed;

if readkey = # 0 then d: = ord (readkey);

closegraph

end end.


6.Опісаніе: Повільно виїжджає шматок пирога або піци.

program pie;

uses crt, graph;

var graphdriver, graphmode, errorcode: integer; j, v, l, m, k, i: integer;

begin graphdriver: = detect;

initgraph (graphdriver, graphmode ,'');

errorcode: = graphresult;

if errorcode <> grOk then begin writeln ('ЋіЕЎЄ Ја дЕЄЕ:', graphErrorMsg (errorcode));

writeln ('Џа ® Ја ¬ ¬ ў АЕ © ® § ўҐаіЕ «а Ў ® вг ...');

halt (1); end;

setcolor (yellow);

circle (200,200,50);

floodfill (199,199, yellow);

delay (30000);

setcolor (black);

pieslice (200,200,30,60,50);

for i: = 1 to 20 do begin setcolor (yellow);

pieslice (200 + i ,200-i, 30,60,50);

setcolor (black);

pieslice (200 + i ,200-i, 30,60,50);

delay (30000);

i: = i +1; end;

readkey;

closegraph;

end.


7.Описание: Статичне зображення двоколісного велосипеда.

program gr;

uses graph;

var grDriver: integer;

grMobe: integer;

Begin grDriver: = Detect;

InitGraph (grDriver, grMobe ,'');

SetColor (12);

circle (200,150,30); circle (200,150,23); circle (330,150,30); circle (330,150,23); line (200,150,280,150); line (280,150,320,110); line (320,110,210,110); line (210,110,250,150); line ( 200,150,210,110); circle (200,150,5); circle (270,150,10); line (270,150,270,170); line (265,170,275,170); line (200,145,270,140); line (200,155,270,160); line (330,150,320,110); line (320,110,320,98); line (320,98,310,98); line (210,110,210,100); circle (210,100,5); line (210,100,220,100); line (270,150,270,130); line (265,130,275,130); readln;

End.


8.Опісаніе: Наближення на наглядача квадрат. Збільшення розмірів за часом.

program gr;

uses graph, crt;

VAR x, y, i: integer;

PROCEDURE grafika_on;

Var drv, mode: integer;

BEGIN drv: = 9; {VGA} mode: = 2; {VGAHi}

initgraph (drv, mode ,''); END;

BEGIN grafika_on;

x: = 300; y: = 200;

for i: = 1 to 100 do begin setcolor (9);

rectangle (xi, yi, x + i, y + i);

delay (100); setcolor (0); rectangle (xi, yi, x + i, y + i);

end; readkey; closegraph;

END.


9. Опис: Будівництво вежі по блоках.

program gr;

Uses crt, Graph; Var P: pointer; Size: Word; X1, Y1: Word; gd, gm: integer;

Begin gd: = detect;

InitGraph (gd, gm ,'');

IF GraphResult <> 0 THEN Halt (1);

SetViewPort (0,0,640,80, TRUE);

ClearViewPort;

SetBkColor (black); SetColor (yellow);

SetLineStyle (0,1, Thickwidth); Rectangle (120,400,200,440);

Size: = ImageSize (120,400,200,440);

GetMem (p, Size);

GetImage (120,400,200,440, P ^);

Y1: = 440;

WHILE Y1> = 40 DO begin X1: = 120;

begin PutImage (X1, Y1, p ^, CopyPut); Delay (59000);

X1: = X1 +80 end;

Y1: = Y1-40 end; x1: = x1-160; WHILE X1 <= 280 DO Begin PutImage (X1, Y1, p ^, CopyPut);

X1: = X1 +160 end;

setfillstyle (8, red);

Bar (200,40,280,500); Bar (40,40,120,500);

SetColor (11); SETTEXTSTYLE (6,7,6);

outtextxy (350,100, 'BASHNYA!'); Readln;

CloseGraph End.


10. Опис: пульсуюче серце (анімація).

program gr;

uses crt, graph; var driver, mode, error: integer; l, n, m, x, y, r: integer;

begin driver: = detect;

initgraph (driver, mode ,'');

error: = graphresult;

if error <> grOk then begin writeln ('ЋіЕЎЄ Ја дЕЄЕ:', graphErrorMsg (error));

writeln ('Џа ® Ја ¬ ¬ ў АЕ © ® § ўҐаіЕ «а Ў ® вг ...'); halt (1); end;

m: = 1; l: = 1; x: = 1; y: = 1; r: = 1; n: = 1;

repeat x: = 1; y: = 1; r: = 1; l: = 1;

repeat begin setcolor (cyan);

arc (170-x, 150,0,180,20 + r); arc (210 + x, 150,0,180,20 + r);

line (150-2 * x, 150,190,200 + y); line (230 +2 * x, 150,190,200 + y);

floodfill (149,150, cyan);

x: = x +1; y: = y +1; r: = r +1;

delay (20); clearviewport;

l: = l +1; end; until l = 20;

x: = 1; y: = 1; r: = 1; m: = 1;

repeat setcolor (cyan);

arc (150 + x ,150,0,180,40-r); arc (230-x ,150,0,180,40-r);

line (110 +2 * x ,150,190,220-y); line (270-2 * x ,150,190,220-y);

floodfill (149,150, cyan);

x: = x +1; y: = y +1; r: = r +1; m: = m +1; ​​delay (20);

clearviewport; until m = 20; n: = n +1; until n = 20; closegraph;

end.


11. Опис: Динамічне зображення планети Сатурн за допомогою еліпсів.

program graphik;

uses graph, crt;

var a, b, e: integer;

begin a: = detect;

initgraph (a, b ,'');

e: = graphresult;

if e <> grok then writeln (grapherrormsg (e))

else begin repeat setlinestyle (2,5,2 * 2 +5);

setcolor (random (3));

ellipse (300,250,128,52, random (300), random (100));

setcolor (random (8));

ellipse (300,250,0,360, random (200), 200);

until keypressed;

closegraph; end

end.


12.Опісаніе: Повільно піднімається вгору повітряна куля.

Program one;

uses crt, graph;

var gd, gm, y, size: integer; p: pointer;

begin initgraph (gd, gm ,''); size: = imagesize (50,200,150,400); getmem (p, size); setcolor (14);

setfillstyle (1,14); arc (100,250,0,180,50); line (50,250,150,250);

floodfill (120,240,14); setcolor (1); line (50,250,75,350);

line (150,250,125,350); setcolor (4); setfillstyle (1,4);

bar (75,350,125,400);

getimage (50,200,150,400, p ^); setfillstyle (1,0);

for y: = 480 downto 0 do begin putimage (50, y, p ^, 1); delay (1000); cleardevice;

bar (50, y, 150, y +100);

end; readln; closegraph;

end.


13.Опісаніе: Сніговики стоять у кілька рядів один за іншим.

program snegovik;

uses graph;

var i, j, x, y: integer; grdriver: integer; grmode: integer; begin grdriver: = detect; initgraph (grdriver, grmode, 'c');

x: = 50; y: = 30;

for i: = 1 to 10 do begin for j: = 1 to 10 do begin setcolor (blue);

circle (x, y, 10); circle (x, y +30,20);

circle (x, y +80,30); circle (x-30, y +30,10);

circle (x +30, y +30,10); setcolor (5);

line (x, y-5, x +15, y); line (x, y +5, x +15, y); setcolor (white);

line (x-5, y +5, x +5, y +5);

putpixel (x-5, y-5, white); putpixel (x +5, y-5, white);

putpixel (x, y +20, white); putpixel (x, y +30, white);

putpixel (x, y +40, white); putpixel (x, y +60, white);

putpixel (x, y +70, white); putpixel (x, y +80, white);

putpixel (x, y +90, white); putpixel (x, y +100, white); setcolor (3);

line (x-5, y-10, x +5, y-10); line (x +5, y-10, x, y-20); line (x, y-20, x-5, y- 10);

x: = x +90; end;

y: = y +160; ​​x: = 50;

end; readln

end.


14.Опісаніе: Снежіка, мальованої в залежності від довжини та кількості променів і глибини рекурсії.

Program Snezhinka;

Uses crt, graph;

const k = 150; n = 8; g = 4;

var gd, gm: integer; procedure Snezhinka_v_zh (x, y: word; r, c: byte); var alpha: real; i: byte; xd, yd: integer;

begin if c <1 then exit;

for i: = 1 to n do

begin alpha: = 2 * Pi * i / n;

xd: = round (x + r * cos (alpha));

yd: = round (y + r * sin (alpha));

moveto (x, y); lineto (xd, yd);

Snezhinka_v_zh (xd, yd, r div 3, c - 1); end; end;

BEGIN initgraph (gd, gm, 'h: \ tp \ bgi'); setcolor (11);

snezhinka_v_zh (320, 240, k, g); readkey;

closegraph;

END.

15.Опісаніе: Намалювати веселку, використовуючи еліпсно дуги різних кольорів.

Program Raduga;

Uses Graph;

var D, M, y, i: Integer;

begin D: = Detect;

InitGraph (D, M ,'');

if GraphResult <> grOk then WriteLn (GraphErrorMsg (GraphResult)) else begin y: = 200;

for i: = 1 to 30 do begin if i <5 then SetColor (4); if (i> 5) and (i <10) then SetColor (14); if (i> 10) and (i <15) then SetColor (2); if (i> 20) and (i <25) then SetColor (1); if i> 25 then SetColor (13);

Ellipse (325, y, 10,170,240,150); inc (y); end;

Readln; CloseGraph; end;

end.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Звіт з практики
369.4кб. | скачати


Схожі роботи:
Операції над папками текстовими документами та ярликами в середовищі Windows Основні прийоми р
Основні прийоми роботи в Ехсеl
Робота з текстами Основні прийоми роботи із текстом виділення фільтри
Робота із таблицями Основні прийоми роботи із таблицею в редакторі створення редагування
Пошук даних в ОС Windows Основні прийоми роботи із пошуком в ОС WINDOWS
Програма провідник Основні прийоми роботи із програмою Провідник опис усіх пунктів меню
Автоматизація роботи користувача в середовищі MS Office
Автоматизація роботи і алгорітмірованія в середовищі MS Office
Norton Commander інструментарій роботи в середовищі MS DOS
© Усі права захищені
написати до нас