Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Labs_Pascal(2003).doc
Скачиваний:
3
Добавлен:
05.03.2016
Размер:
2.7 Mб
Скачать

Завдання для самостійного виконання:

  1. Програма рахує кількість слів у реченні.

  2. Програма дописує одну строку в кінець іншої.

  3. Програма виділяє перше слово в реченні.

  4. Програма порівнює дві строки.

  5. Програма розбиває строку на дві частини: до першого входження заданого символу та після нього.

  6. Програма вставляє текст першої строки в центр другої.

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

  8. Програма визначає в реченні номер позиції слова із заданим номером.

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

  10. Програма видаляє зі строки слово із заданим номером.

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

  12. Програма виділяє із строки задану кількість слів, починаючи зі слова із заданим номером.

  13. Програма вставляє в строку іншу строку, починаючи із заданої позиції.

  14. Програма дописує одну строку в початок іншої строки.

  15. Програма замінює в реченні всі входження заданого символу іншим заданим символом.

  16. Програма переписує всі символи строки в протилежному порядку.

  17. Програма визначає довжину слова із заданим номером.

  18. Програма копіює строку в іншу строку задану кількість раз.

  19. Програма визначає кількість входжень заданого символу в слово із заданим номером.

  20. Програма переводе всі букви строки на заголовні, та рахує кількість входження кожної букви. Припустимо, що речення буде складатись із латинських букв, які в таблиці символів знаходять в діапазоні [65..122].

Лабораторна робота №8. Процедури та функції користувача.

Метою лабораторної роботи є отримання практичних навичок у роботі з процедурами та функціями користувача та передачею параметрів.

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

Program lab8;

Uses crt;

var a,b: real;

Function f_max(a,b: real): real;

begin

if a>b then f_max:=a else f_max:=b;

end;

procedure p_max(a,b: real);

begin

if a>b then writeln(a) else writeln(b);

end;

Begin

Clrscr;

Writeln(‘Введите число a:’);

Readln(a);

Writeln(‘Введите число b:’);

Readln(b);

Writeln(f_max(a,b)); {виклик функції f_max}

Readln;

P_max(a,b); {виклик процедури p_max}

Readln;

End;

Завдання для самостійного виконання:

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

  1. Знайти площу дельтоїда за формулою S=(d1*d2)/2, де d1, d2 – сторони дельтоїда.

  2. Знайти площу ромба за формулою S=(AC * BD)/2, де AC і BD - діагоналі ромба та вводяться з клавіатури.

  3. Знайти площу кола за формулою S=2 * Pi * R^2, де R – радіус кола значення якого вводиться з клавіатури.

  4. Знайти об’єм конуса за формулою V=1/3 * Pi * R^2 * H, де R – радіус основи, H – висота, вводяться з клавіатури.

  5. Знайти площу трапеції за формулою S=((A + B) * H)/2, де A і B основи трапеції, H – висота, значення вводяться з клавіатури.

  6. Знайти площу трикутника за формулою S=(a*b*c)/4*R, де a, b, c – сторони трикутника, R – радіус описаного кола.

  7. Знайти довжину кола за формулою L=2*Pi*R, де R – радіус описаного кола.

  8. Знайти площу трапеції за формулою , де a, b, c, d – сторони трапеції.

  9. Знайти об’єм піраміди за формулою V=1/S*h, де S - площа основи, h – висота піраміди.

  10. Знайти об’єм кулі за формулою , де r – радіус кулі.

Лабораторна робота №9. Рекурсія.

Метою лабораторної роботи є отримання практичних навичок у роботі із рекурсивними функціями. Програма №9 демонструє елементарний приклад рекурсії – обчислення факторіала довільного числа.

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

Program lab9;

Uses crt;

var i: shortint;

function fact(_n: shortint): integer; {Рекурсивна функція fact}

begin

if _n=1 then fact:=1 else fact:=_n*fact(_n-1);

end;

Begin

Clrscr;

Writeln(‘Введите число для вычисления его факториала’);

Readln(i);

Writeln(fact(i));

Readln;

End.

Завдання для самостійного виконання:

Всі завдання повинні бути виконані за допомогою рекурсивної функції.

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

  2. Скласти програму яка містить рекурсивну функцію обчислення довжини строки.

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

  4. Скласти програму яка визначає кількість входжень заданого символу в строку.

  5. Скласти програму яка замінює в реченні всі входження заданого символу іншим заданим символом.

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

  7. Скласти програму яка обчислює кількість цифр у заданому натуральному числі.

  1. Скласти програму яка обчислює суму

  2. Скласти програму яка виводе таблицю символів за допомогою рекурсії.

  3. Скласти програму яка буде генерувати випадкові числа від 0 до n (яке задається з клавіатури), та виводити їх на екран, доти доки не згенерує число яке загадав користувач (число яке загадує користувач вводиться з клавіатури).

Лабораторна робота №10. Графічний режим: ініціалізація і атрибути. Основні графічні функції і процедури. Графічні примітиви.

Метою лабораторної роботи є отримання практичних у роботи із ініціалізацією графічного режиму, атрибутами та основними стандартними графічними функціями мови Pascal. Програма №10 демонструє ініціалізацію графічного режиму та деякі основні функції для роботи із графікою.

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

Program lab10;

Uses graph; {Підключаємо графічний модуль}

Var graph_device, graph_mode: integer;

BEGIN

graph_device:=detect; {Починаємо ініціалізацію}

InitGraph(graph_device, graph_mode, ‘’);

If GraphResult<>0 then writeln(‘Graph mode error’)

else writeln(‘Graph mode has been initialized’);

setfillstyle(1,green); {Починаємо малювати}

bar(0,350,639,479);

setfillstyle(1,lightblue);

floodfill(0,0,green);

setcolor(red);

circle(320,200,19);

setlinestyle(0,0,3);

rectangle(300,220,340,300);

line(320,300,300,350);

line(320,300,340,350);

line(300,240,250,250);

line(340,240,390,250);

setfillstyle(1,red);

floodfill(320,200,red);

floodfill(320,230,red);

setcolor(yellow);

circle(315,190,2);

circle(325,190,2);

line(315,210,325,210);

readln;

closegraph;{Закриваємо графічний режим}

END.

Завдання для самостійного виконання:

  1. За допомогою функцій графічних примітивів намалювати квадрат, залити його жовтим кольором.

  2. За допомогою функцій графічних примітивів намалювати коло, залити його красним кольором а фон білим.

  3. За допомогою функцій графічних примітивів намалювати ромб жирною пунктирною лінією.

  4. Розкреслити екран на 6 рівних частин на зробити заливку цих частин різними кольорами.

  5. Намалювати трикутник та заповнити його діагональними лініями.

Лабораторна робота №11. Деякі типові задачі комп`ютерної графіки примітивів: зображення текстової інформації, графіки функцій.

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

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

Program lab11;

Uses graph;

Var graph_device, graph_mode: integer;

BEGIN

graph_device:=detect; {Починаємо ініціалізацію}

InitGraph(graph_device, graph_mode, ‘’);

If GraphResult<>0 then writeln(‘Graph mode error’)

else writeln(‘Graph mode has been initialized’);

OutTextXY(320,200,’Example text’);

Readln;

CloseGraph;

END.

Завдання для самостійного виконання:

  1. Вивести на екран графік F(x)=x2 та підписати його.

  2. Вивести на екран графік F(x)=+2 та підписати його.

  3. Вивести на екран графік F(x)= та підписати його.

  4. Вивести на екран графік F(x)=-5 та підписати його.

  5. Вивести на екран графік F(x)=x2 +4 та підписати його.

  6. Вивести на екран графік f(x) = x3 − 9x та підписати його.

  7. Вивести на екран графік f(x) = x3 − 3x та підписати його.

  8. Вивести на екран графік f(x) = sin(x) та підписати його.

  9. Вивести на екран графік f(x) = cos(x) та підписати його.

  10. Вивести на екран графік f(x) = sin2(x) та підписати його.

Лабораторна робота №12. Деякі типові задачі комп`ютерної графіки примітивів: анімаційні ефекти, фрактальні зображення.

Метою цієї лабораторної роботи є практичне ознайомлення та отримання навичок із використання анімаційних ефектів, та інших графічних можливостей мови Pascal зокрема фрактального зображення. Функція delay.

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

Program lab12;

Uses graph;

Var graph_device, graph_mode: integer;

text: string;

i, k, p: integer;

BEGIN

graph_device:=detect; {Починаємо ініціалізацію}

InitGraph(graph_device, graph_mode, ‘’);

If GraphResult<>0 then writeln(‘Graph mode error’)

else writeln(‘Graph mode has been initialized’);

text:=’Demo Animation. Language: Turbo Pascal 7.1’;

setcolor(4); k:=0;

for i:=1 to 25 do

begin

k:=k+10;

line (70,70,70,70+k);

delay(10000);

end;

p:=k; k:=0; {вертикальна лінія}

for i:=1 to 25 do

begin

k:=k+10;

line(70,70+p,70+k,70+p);

delay(10000);

end;

p:=k; k:=0; {горизонтальна лінія}

for i:=1 to 25 do

begin

k:=k+10;

line(70+p,70+p,70,70);

setcolor(red);

line(70+p,70+p,70+k,70);

setcolor(10);

line(70+p,70+p,70,70+k);

line(70+k,70,70,70);

delay(10000);

end;

for i:=1 to length(text) do {Вивід фрази}

begin

outtext(text[i]);

delay(10000);

end;

readln;

CloseGraph;

END.

Завдання для самостійного виконання:

В ході лабораторної роботи кожен студент повинен скласти програму із власною довільною анімацією.

Лабораторна робота №13. Поняття структур даних. Одновимірні масиви: поняття, базові процедури і алгоритми оброблення.

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

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

Program lab1;

Uses crt;

Var m: array [0..9] of integer;

I, max: integer;

Begin

Randomize; {инициализация генератора случайных чисел}

For i:=0 to 9 do

M[i]:=random(100);

Max:=-9999;

For i:=0 to 9 do

If max>m[i] then max:=m[i];

Clrscr;

Writeln(‘max value =’,max);

Readln;

End.

Завдання для самостійного виконання:

  1. Існує одномірний масив типу integer та деяке ціле число. Знайти на якому місці знаходиться це число в масиві.

  2. Існує одномірний масив типу integer. Знайти полусуму найменшого та найбільшого числа.

  3. Існує одномірній масив типу integer. Визначити чи має масив числа в діапазоні від A до B. Якщо має, то вивести їх на екран. A і B вводяться із клавіатури.

  4. Існує одномірній масив. Програма повинна визначити кількість додатних, від’ємних та нульових елементів. Результат вивести на екран.

  5. Існує одномірний масив типу Integer. Заповнити масив випадковими числами. Знайти максимальне число, мінімальне, та середнє арифметичне чисел масиву.

  6. (+) Існує одномірний масив типу integer в якому зібрані оцінки студентів. Елементи масиву можуть приймати значення 2,3,4,5. Обчислити відсоток двійок, трійок, а також четвірок та п’ятірок. Наприклад: «Двійок: 5%, Трійок: 20%, Четвірок та п’ятірок: 75%».

  7. (+). Існує одномірний масив типу Integer. Для кожного додатного числа визначити, чи існує в масиві від’ємний елемент із протилежним значенням. Якщо існує, то замінити такi елементи на 0.

Лабораторна робота №14. Багатовимірні масиви: поняття, базові процедури і алгоритми оброблення.

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

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

Program lab2;

Uses crt;

Var i,j,c,value: integer;

M: array [0..2,0..2] of integer;

Begin

For i:=0 to 2 do

For j:=0 to 2 do

Begin

Readln(value);

M[i,j]:=value;

end;

c:=0;

For i:=0 to 2 do

For j:=0 to 2 do

If m[i,j]>0 then c:=c+1;

Writeln(‘c=’,c);

Readln;

End.

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

  1. Існує двовимірний масив довільної розмірності. Замінити всі від’ємні числа в масиві на додатні.

  2. Існує двовимірний масив довільної розмірності. Замінити усі елементи із від’ємними значеннями на середнє арифметичне значення усіх додатних елементів.

  3. Існує двовимірний масив довільної розмірності. Замінити всі від’ємні числа в масиві на додатні, а додатні на від’ємні.

  4. Існує двомірний масив типу integer довільної розмірності. Знайти суму додатних елементів масиву, які відповідають вимогам a<M[i]<b. A і B вводяться з клавіатури.

  5. Існує двомірний масив типу integer довільної розмірності. Знайти середнє арифметичне елементів, кожних з парних стовбців цієї матриці.

  6. Існує двомірний масив типу integer довільної розмірності. Знайти середнє арифметичне елементів, кожних з непарних рядків цієї матриці.

  7. Існує двомірний масив типу integer довільної розмірності. Знайти середнє арифметичне усіх додатних елементів матриці.

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

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

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

Лабораторна робота №15. Записи: поняття, оголошення, іменування структурних частин, основні процедури оброблення.

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

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

Program lab3;

type establishment=record

name: string;

workers: integer;

area: integer;

end;

var i, max, pos: integer;

est_list: array [0..3] of establishment;

Begin

Writeln(‘Enter establishment data:’);

For i:=0 to 3 do

Begin

Writeln(‘Enter name of establishment:’);

Readln(est_list[i].name);

Writeln(‘Enter number of workers’);

Readln(est_list[i].workers);

Writeln(‘Enter area of est.’);

Readln(est_list[i].area);

End;

Max:=-9999;

For i:=0 to 3 do

If max<est_list[i].workers then

Begin

max:=est_list[i];

pos:=i;

End;

Writeln(‘Max workers(’,max,’) in ’,est_list[pos].name);

Readln;

End;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]