Розробка програм засобами мов програмування Pascal та C++

 

Зміст


Вступ

Розділ 1. Мова програмування С++

. 1 Опис мови програмування

.2 Прості та умовні оператори мови С++

.3 Організація циклів

.4 Одновимірні масиви

.5 Робота з двовимірними масивами. Пошук та сортування даних

.6 Структури в мові С++. Робота з файлами

.7 Робота з динамічними структурами даних

Розділ 2. Мова програмування Delphi

.1 Опис мови програмування Delphi

.2 Розробка програмного продукту «Анкета студента»

.3 Розробка програмного продукту «Проста програма»

.4 Розробка програмного продукту «Проста програма»

.5 Розробка програмного продукту «Обмін валюти»

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

.7 Задача про суму ряду

.8 Задача про min/max функції

.9 Задача табулювання функції


Вступ


Метою навчальної практики є закріплення теоретичного матеріалу, отриманого при вивченні спеціальних дисциплін програмування, одержання практичних навичок розробки програмного забезпечення за допомогою сучасних систем розробки, набуття практичних навичок розробки програм засобами мов програмування Pascal та C++, застосування теоретичних знань при освоєнні системи швидкої розробки програмного забезпечення Borland Delphi.

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

Перший розділ присвячено розвязуванню задач за допомогою мови програмування С++. Програми розроблені в середовищі програмування Microsoft Visual Studio. В другому розділі описані практичні роботи, виконані в середовищі Delphi. Третій розділ містить завдання на мові програмування Pascal. Для розвязування задач третьої частини практики нам було дано право вибору середовища програмування: Borland Pascal або Delphi, я вирішив обрати для розробки програм середовище візуального програмування, оскільки воно дає можливість більш наочно продемонструвати реалізацію алгоритмів.

Четвертий розділ присвячено питанням охорони праці при роботі з персональним компютером.


Розділ 1. Мова програмування С++


.1 Опис мови програмування

++ - мова програмування високого рівня з підтримкою декількох парадигм програмування: об'єктно-орієнтованої, узагальненої та процедурної. Розроблена Б'єрном Страуструпом в AT&T Bell Laboratories (Мюррей-Хілл, Нью-Джерсі) у 1979 році та названа «Сі з класами». Страуструп перейменував мову у C++ у 1983 р. Базується на мові С.

У 1990-х роках С++ стала однією з найуживаніших мов програмування загального призначення. Мову використовують для системного програмування, розробки програмного забезпечення, написання драйверів, потужних серверних та клієнтських програм, а також для розробки розважальних програм таких як відео ігри. С++ суттєво вплинула на інші, популярні сьогодні, мови програмування: С# та Java.

При створенні С++ прагнули зберегти сумісність з мовою С. С++ має синтаксис, заснований на синтаксисі С.

Нововведеннями С++ порівняно з С є:

підтримка об'єктно-орієнтованого програмування через класи;

підтримка узагальненого програмування через шаблони;

доповнення до стандартної бібліотеки;

додаткові типи даних;

обробка винятків;

простори імен;

вбудовані функції;

перевантаження операторів;

перевантаження імен функцій;

посилання і оператори управління вільно розподіленою пам'яттю.

1.2 Прості та умовні оператори мови С++


Завдання 1. Лінійні алгоритми.

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


z1=;2=.

файл програма delphi алгоритм

Блок - схема алгоритму розвязування задачі зображена на рисунку 1.1


Рисунок 1.1


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


Результат виконання


Рисунок 1.2 - Результати виконання завдання 1


Завдання 2. Розгалужені обчислювальні процеси.

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


Рисунок 1.3 - Графік до завдання 2


Математична постановка задачі

Даний графік складається з 4 областей:


y=


) y=3 - рівняння прямої паралельна осі Ох;

)y= - рівняння півкола з радіусом 3;

) - рівняння прямої з кутовим коефіцієнтом;- тангенс кута b - це число яке відтіняє пряма на Ох;

Блок - схема алгоритму розвязування задачі зображена на рисунку 1.4


Рисунок 1.4


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


Результат виконання


Рисунок 1.5 - Результати виконання завдання 2


Завдання 3. Написати програму, яка визначає, чи попадає точка з заданими координатами в область, замальовану на малюнку сірим кольором. Результат роботи вивести у вигляді текстового повідомлення.


Рисунок 1.6 - Графік до завдання 3


Математичний аналіз

Дано дві фігури перша - чверть кола, друга трикутник. Рівняння кола з радіусом задається х22=R2, а оскільки фігура знаходиться в першій чверті то всі у-ки та х-си додатні.

Друга фігура прямокутний трикутник у 3 чверті, значить х-си та у-ки відємні, а гіпотенуза служить діагоналлю квадрата з вершинами -R, рівняння якої служить D=*R

Блок - схема алгоритму розвязування задачі зображена на рисунку 1.7


Рисунок 1.7


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



Результат виконання


Рисунки 1.8 - Результати виконання завдання 3


.3 Організація циклів


Завдання 1. Обчислити та вивести на екран у вигляді таблиці значення функції, заданої графічно (див. завдання 2.1, заняття 1), на інтервалі від хпоч до хкін з кроком dx. Інтервал та крок задати таким чином, щоб перевірити всі гілки програми (продумати та продемонструвати контрольний приклад).

Рисунок 1.9 - Графік до завдання 3


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



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

Блок - схема алгоритму розвязування задачі зображена на рисунку 1.10

Рисунок 1.10


Результат виконання:


Рисунок 1.11 - Результати виконання завдання 1

Завдання 2. Для десяти вистрілів, координати яких задаються з клавіатури, вивести текстові повідомленні про попадання в мішень з завдання 2.2 день1. Кожне попадання дає 10 балів, суму балів вивести в останньому повідомленні.

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



Блок - схема алгоритму розвязування задачі зображена на рисунку 1.12


Рисунок 1.12

Результат виконання


Рисунок 1.13 - Результати виконання завдання 2


Завдання 3. Обчислити та вивести на екран у вигляді таблиці значення функції заданої з допомогою ряда Тейлора від хпоч до хкін з кроком dx та з точністю e. Кожен рядок таблиці повинен містити значення функції, значення аргументу та кількість просумованих членів ряду.



Блок - схема алгоритму розвязування задачі зображена на рисунку 1.14


Рисунок 1.14

Текст програми та результат виконання:


Рисунок 1.15 - Результат виконання завдання 3


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


Завдання. В одновимірному масиві що містить n цілих елементів(ввід з клавіатури), обчислити:

1)номер максимального елементу;

2)добуток елементів масиву, розташованих між першим та другим нульовими елементами.

Перетворити масив таким чином, щоб на початку розмістились всі непарні елементи, а за ними всі парні.

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



Результат виконання:


Рисунок 1.16 - Результати виконання завдання

Між двома нулями знаходяться числа 3,4,5. Добуток цих чисел дорівнює 60, максимальний елемент дорівнює 8. Спочатку виводяться непарні елементи, а потім парні елементи.

Блок - схема алгоритму розвязування задачі зображена на рисунку 1.17


Рисунок 1.17


1.5 Робота з двовимірними масивами. Пошук та сортування даних


Завдання.

1.Для заданої матриці 4х4 знайти такі k, для яких k-ий рядок співпадає з k-им стовпцем.

2.Знайти суму елементів в тих рядках, які містять хоча б один відємний елемент (оформити у вигляду функції).

Блок - схема алгоритму розвязування задачі зображена на рисунку 1.18

Рисунок 1.18


Опис задачі 1. Рядок може збігатись із стовпцем лише на головній діагоналі, тому якщо рядок дорівнює стовпцю і рядок дорівнює елементу, тоді вони співпадають.

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



Результат виконання


Рисунок 1.19 - Результати виконання завдання

1.6 Структури в мові С++. Робота з файлами


Завдання. Написати програму для визначення каталогу країн світу. Створити меню за допомогою якого можна:

ввести з клавіатури інформацію про країну;

здійснити пошук інформації;

впорядкувати всю інформацію по зростанню кількості жителів;

для реалізації зберігання інформації у файл описати структуру; COUNTRY, що містить наступні поля:

назва держави;

столиця;

площа території;

кількість жителів.

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



Результат виконання


Рисунок 1.20 - Результати виконання Рисунок


.21 - Результати виконання (ввід з клавіатури) (пошук)

Рисунок 1.22 - Результати виконання


Рисунок 1.23 - Результати виконання завдання завдання (запис у файл) (впорядковано по зростанню кількості жителів)


1.7 Робота з динамічними структурами даних


Завдання. Написати програму для реалізації телефонного довідника. Реалізувати зберігання даних у вигляді лінійного списку. Створити меню та контроль помилок при вводі. У кожному елементі списку міститься інформація: прізвище, імя, по-батькові абонента, адреса, борг за міські переговори, борг за міжміські переговори, номер телефону.

Програма повинна забезпечити:

початкове формування довідника

-вивід телефонного довідника

вибір абонента за вказаним номером

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


Результат виконання

Рисунок 1.24 - Результати виконання

Рисунок 1.25 - Результати виконання (початкове формування довідника) (вибір абонента за вказаним номером)


Рисунок 1.26 - Результати виконання завдання (вивід телефонного довідника)


Розділ 2. Мова програмування DELPHI


.1 Опис мови програмування Delphi

- мова програмування, що ґрунтується на діалекті мови Pascal від компанії Borland. До версії 7.0 мала назву ObjectPascal. Окрім того Delphi - середовище розробки (IDE) для однойменної мови. Ця плутанина часто викликає непорозуміння. По суті, Delphi є об'єктно-орієнтованим розширенням мови Pascal.

Спочатку на Delphi можна було програмувати під MS Windows 3.1. Починаючи з версії 2.0 на Delphi можна створювати програми під будь-яку з 32-бітних версій MS Windows.

В 2000 році була спроба створити варіант Delphi під операційну систему на базі ядра Linux, така модифікація Delphi мала назву Kylix. Було випущено 3 версії Kylix, проте експеримент виявився невдалим і 2003 року проект був заморожений.

року була створена модифікація мови під платформу Microsoft.NET, що отримала назву Delphi.NET. Цей варіант мови послідовно розвивається в версіях Delphi 8, 2005, 2006, 2007.

Частково Delphi підтримується також у відкритому проекті FreePascal, що потенційно дозволяє створювати програми під велику кількість платформ.

Для виконання практичних завдань було використано середовище розробки Embarcadero Rad Studio XE4, оскільки воно дозволяє розробляти програми на компютерах з 64-бітною версією ОС Windows 8, яка була встановлена на компютері.


2.2 Розробка програмного продукту «Анкета студента»


Завдання: створити форму «Анкета студента» з заданими атрибутами, в тому числі двома фотографіями, які перекривають одна одну і мають зявлятися в результаті натискання кнопки.

Конструктор форми зображено на рисунку 2.1.


Рисунок 2.1 - Конструктор форми


Результати виконання програми зображені на рисунках 2.2-2.3.


Рисунок 2.2 - Вікно робочої програми

Рисунок 2.3 - Вікно робочої програми


Як видно при натисканні на кнопку «Джабулані» на формі зявляється відповідне фото. При натисканні кнопки «Забрати фотографію» фото зникає і кнопка стає неактивною. Із іншими діями при натисканні на кнопки можна ознайомитись у програмному коді нижче.

Текст программного коду:

TForm1.Button1Click(Sender: TObject);.Visible:=true;.Visible:=false;.Visible:=false;;TForm1.Button4Click(Sender: TObject);.visible:=false;.Visible:=false;.Visible:=false;.Enabled:=false;;TForm1.Button5Click(Sender: TObject);image2.visible=true then begin.Visible:=false;.Visible:=false;.Visible:=true;endimage1.visible=true then begin.Visible:=false;.Visible:=false;.Visible:=true; endimage3.visible=true then begin.Visible:=false;.Visible:=false;.Visible:=true;;;.


2.3 Розробка програмного продукту «Проста програма»


Завдання. Ввести і вивести за допомогою компонентів TLabel, TEdit, TBatton значення змінних, заданих в таблиці згідно свого варіанту.

Конструктор форми зображено на рисунку 2.4


Рисунок 2.4 - Вікно робочої програми

Результати виконання програми зображені на рисунку 2.5


Рисунок 2.5- Вікно робочої програми


Текст програмного коду кнопки «Вивід даних»:

procedure TForm1.Button1Click(Sender: TObject);,N:string;:=Edit1.text;:=Edit2.text;.Caption:='F='+F;.Caption:='N='+N;;


2.4 Розробка програмного продукту «Проста програма»


Завдання. Створити проект, блок-схему алгоритму, діалогове вікно і програму для обчислення значень функцій:


Конструктор форми зображено на рисунку 2.6


Рисунок 2.6


Результати виконання програми зображені на рисунку 2.7-2.8


Рисунок 2.7- Вікно робочої програми


Рисунок 2.8 - Вікно робочої програми

Як видно при натисканні на кнопку «Обчислити» обчисляється значення M та N, якщо х<у, то обчислюється M та N інакше обчислюється тільки N.

Текст программного коду кнопки «Обчислити»:

TForm1.Button1Click(Sender: TObject);1;,n,x,y,z:real;:integer;:=StrToFloat(Edit1.Text); y:=StrToFloat(edit2.Text); z:=StrToFloat(edit3.Text);:=1;

: if x<=y then:=(0.8*cos(sqr(y))+sqr(x))/(1.3+sqr(cos(sqr(y))));.Caption:='M='+FloatToStrF(m,ffFixed,7,3);else begin:=(2*(sqrt(x)*x)*z+ln(x))/(exp(x+0.2)+sqr(y)+sqr(z));.Caption:='N='+FloatToStrF(n,ffFixed,7,3);;:=0.92;:=i+1;i<=2goto 1; end;


2.5 Розробка програмного продукту «Обмін валюти»


Завдання: створити форму з назвою «Обмін валюти», на якій можна змоделювати операції обміну валюти в обмінному пункті.

Конструктор форми зображено на рисунку 2.9


Рисунок 2.9


Результати виконання програми зображені на рисунку 2.10-2.11


Рисунок 2.10 та 2.11- Результати, отримані від операції купівлі та продажу

Додаткові завдання:

1)створити кнопку для очистки полів введення суми в доларах та обчисленої суми в гривнях;

2)забезпечити появу підказки при наведенні курсора миші на поля редагування курсів купівлі та продажу;

)передбачити 1% збору у пенсійний фонд від операції купівлі-продажу;

)передбачити зміну операцій при натисканні на стрілку;

Текст коду до завдання 1:

TForm1.Button3Click(Sender: TObject);.Text:='';.Text:='';.Text:='';.Text:='';;


Для забезпечення появи підказки при наведенні курсора миші на поля редагування курсів купівлі та продажу було використано властивість Hint, значенням якої є «Введіть курс купівлі» для обєкта Edit1та «Введіть курс продажу» для обєкта Edit2 відповідно. Результати продемонстровані на рисунках 2.12 та 2.13.

Рисуноки 2.12 та 2.13- Поява підказки для обєкта edit1 та edit2


Для того, щоб обчислити суму, яка повинна бути переведена до пенсійного фонду був використаний код::=suma/100;.Caption:='Збір до пенсійного фонду 1%='+FloatToStrF(p,ffFixed,0,2);- змінна, що має значення суми в гривнях. Даний фрагмент коду було додано до процедури натискання кнопки «Обчислити» (Button1Click).

Для того, щоб при натисканні на стрілку відбувалась зміна операції на протилежну була використана процедура:.Caption:= '<=';.Checked:=true;

Наступним завданням було спростити форму та замінити код кнопки «Обчислити» так, щоб її можна було використати для переведення миль у кілометри і навпаки в залежності від положення перемикача. У створену форму додати пару обєктів Checkbox для вибору звичайної або морської милі.

Конструктор форми продемонстровано на рисунку 2.14.


Рисунок 2.14


Результати виконання програми зображені на рисунках 2.15-2.16


Рисунки 2.15 та 2.16-Результат переведення з звичайної і морської милі в кілометри

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


Завдання 1. Якщо точка М(х,у) належить внутрішній області трикутника з вершинами А(а,0), В(0,b), Про(0,0), то надрукувати його площу, інакше його периметр (a>0, b>0).

Конструктор форми зображено на рисунку 2.17


Рисунок 2.17


Результати виконання програми зображені на рисунках 2.18-2.19


Рисунки 2.18 та 2.19-Результати з обчисленням площи та периметру

Текст коду до завдання 1:

TForm1.Button1Click(Sender: TObject);a,b,x,y,S,P,i,o,r,v:real;:=strtofloat(edit1.Text);:=strtofloat(edit2.Text);:=strtofloat(edit3.Text);:=strtofloat(edit4.Text);:=sqrt(sqr(a)+sqr(b));:=b;:=a;:=i+b+a;:=P/2;:=(sqrt(v-(v-i)+(v-a)+(v-b)));((2 * ord(a > 0) + ord(b > 0)) = (2 * ord(x > 0) + ord(y > 0))) and (abs(y) < abs(b) * (1 - abs(x) / abs(a))) then.Caption:='S='+FloatToStr(S).Caption:='P='+FloatToStr(P);;


Завдання 2. Скласти програму, що визначає, чи проходить графік функції y=x2+2x+2 через точку А(x,y).

Конструктор форми зображено на рисунку 2.20


Рисунок 2.20


Результати виконання програми зображені на рисунках 2.21та 2.22


Рисунок 2.21- Вікно робочої програми


Рисунок 2.22- Вікно робочої програми


Текст коду:

TForm1.Button1Click(Sender: TObject);x,y,t:integer;x:=strtoint(edit1.text);:=strtoint(edit2.text); :=sqr(x)+2*x+2; (t=y) then .Caption:='Точка належить функції' else .Caption:='Точка не належить функції'; ;


Завдання 3. Вважаючи рік не високосним по номеру місяця вивести повідомлення про кількість днів цього місяця.

Конструктор форми зображено на рисунку 2.23


Рисунок 2.23


Результати виконання програми зображені на рисунках 2.24та 2.26


Рисунок 2.24-2.26- Вікна робочих програм

Текст коду:

TForm1.Button1Click(Sender: TObject);n:integer;:=StrToint (edit1.Text);(n) of

:ShowMessage('У місяці 31 день');

:ShowMessage('У місяці 28 днів');

:ShowMessage('У місяці 31 день');

:ShowMessage('У місяці 30 днів');

:ShowMessage('У місяці 31 день');

:ShowMessage('У місяці 30 днів');

:ShowMessage('У місяці 31 день');

:ShowMessage('У місяці 31 день');

:ShowMessage('У місяці 30 днів');

:ShowMessage('У місяці 31 день');

:ShowMessage('У місяці 30 днів');

:ShowMessage('У місяці 31 день');ShowMessage('Такого місяця нема');;


.7 Задача про суму ряду


Завдання. Скласти програму для обчислення f(x). Значення N і x вводяться з клавіатури. Розрахунок факторіалу оформити у вигляді підпрограми. Передбачити можливість виведення значень функції залежно від x, який змінюється в діапазоні [x1, x2] із заданим кроком h:


Конструктор форми зображено на рисунку 2.27


Рисунок 2.27


Результати виконання програми зображені на рисунку 2.28


Рисунок 2.28 - Вікно робочої програми


Для розрахунку факторіалу використовувалася процедура CalkFact:

CalkFact(Zn:integer; var Rez:integer); j: Integer; :=1; j := 1 to Zn do Rez:=Rez*j; ;


Текст програмного коду:

TForm1.Button1Click(Sender: TObject);x1,x2,h:real; :integer; :integer; :real; :integer; :string;.Clear;:=StrToInt(Edit1.Text); :=StrToFloat(Edit2.Text); :=StrToFloat(Edit3.Text); :=StrToFloat(Edit4.Text); :=0;i:=1 to n do(i,ZnFact);:=sum+2*n*ln(1+ZnFact)/ZnFact+x1;;:= 'f('+FloatToStr(x1)+') = '+ FloatToStrF(sum,ffFixed,7,3);.Lines.Add(stroka);:=x1+h;x1>x2; ;


2.8 Задача про min/max функції


Завдання. Скласти програму пошуку мінімального та максимального значення функції на відрізку [а, b]. Значення а, b і кроку h вводяться з клавіатури. Розрахунок функції оформити як підпрограму-функцію: 2+x-x2

Конструктор форми зображено на рисунку 2.29


Рисунок 2.29


Результати виконання програми зображені на рисунку 2.30


Рисунок 2.30- Вікно робочої програми

Для розрахунку значень функції використовувалася підпрограма-функція ZnFun:

ZnFun(x:real):real; :=5*sqr(x)-7*x+100; ;


Текст програмного коду:

TForm1.Button1Click(Sender: TObject);a, b, h : real;, MinY, MaxX, MaxY : real;.Clear; :=StrToFloat(Edit1.Text); :=StrToFloat(Edit2.Text); :=StrToFloat(Edit3.Text);:=1e38; :=-1e38; a<b do ZnFun(a)<MinY then :=ZnFun(a); :=a; ;ZnFun(a)>MaxY then :=ZnFun(a); :=a; ; :=a+h; ; .Lines.Add('Max при x = '+FloatToStrF(MaxX,ffFixed,10,5)+

' y = '+FloatToStrF(MaxY,ffFixed,0,3)); end;


2.9 Задача табулювання функції


Завдання. Створити форму для розвязування та відображення результатів табулювання функції.

Конструктор форми зображено на рисунку 2.31


Рисунок 2.31 - Конструктор форми


Додаткові завдання:

1)Додати до контекстного меню команду «Кінець та запрограмувати її».

Текст коду:

TForm1.N4Click(Sender: TObject);;;


2)Створити ще одне контекстне меню з командами «Зняти прапорці», Встановити всі прапорці», «Встановити інверсивно».

Текст коду:

TForm1.N9Click(Sender: TObject);{Процедура зняття прапорців}.Checked := False;.Checked := False;.Checked := False;;TForm1.N10Click(Sender: TObject);{Процедура встановлення прапорців}.Checked := True;.Checked := True;.Checked := True;;TForm1.N11Click(Sender: TObject);{Процедура встановлення прапорців інверсивно}checkbox1.Checked then checkbox1.Checked := Falseelse checkbox1.Checked := True;checkbox2.Checked then checkbox2.Checked := Falseelse checkbox2.Checked := True;checkbox3.Checked then checkbox3.Checked := Falseelse checkbox3.Checked := True;;

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

Результат табулювання функції з похідною та роботи прапорця-«Похідна» продемонстровано на рисунках 2.32 та 2.33


.

Рисунок 2.32-Табулювання без похідної


Табулювання функції з похідною та графік зображено на рисунку 2.33


Рисунок 2.33-Табулювання з похідною та побудова графіком

До меню програми додаємо команду «Побудувати графік», а на формі кнопку «Графік».

Текст команди:

TForm1.Button1Click(Sender: TObject);x,y,y1,h,a,b:real;:=strtofloat(Edit1.Text); b:=strtofloat(Edit2.Text); h:=strtofloat(Edit3.Text);Series1 do;:=a; if checkbox2.checked thenx<=b+h/2 do.AddXY(x, 3*sqr(x)+2*x,'',clRed); x:=x+h;x<=b+h/2 doSeries1.AddXY(x, sqr(x)*x+sqr(x)-7,'',clRed);:=x+h; ; ;


Зміст Вступ Розділ 1. Мова програмування С++ . 1 Опис мови програмування .2 Прості та умовні оператори мови С++ .3 Організація циклів .4 О

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ