Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Загальні вимоги до оформлення звітів з лабораторних робіт
Звіт з лабораторної роботи повинен мати в своєму складі:
Рекомендації до виконання роботи.
arccos(x)=arctg, де x 1. (1)
Стандартом мови Паскаль не передбачена операція піднесення до степеня ха, де а>2. Для обчислення степеня можна використати формулу:
xa=ealnx (2)
Обчислення логарифмів:
logax=ln x / ln a (3)
В заданому виразі частина повторюєтья двічи, тому доцільно ввести додаткову проміжну змінну :
.
Вхідний вираз набуває вигляду:
Приклад виконання роботи
.
Вхідні дані |
Дії |
Вихідні дані |
x, z дійсного типу. Обмеження: ; x0. |
a дійсне. |
Враховуючи те, що мовою Паскаль не передбачено обчислення функція arccos, здійснено перетворення даного виразу за формулою 1:
Як приклад розглянемо 3 випадки:
Вхідні дані |
Вихідні дані |
Розрахунок вручну |
Паскаль |
Сі |
|
x=0.5, z=-0.7 |
1.08395 |
.0839 |
.0840 |
x=2.5, z=0.5 |
1.618022 |
1.6180 |
.6180 |
x=7, z=0 |
3.315958 |
.3160 |
.3160 |
Похибка, що отримана під час програмного розрахунку не перебільшує 0.001, тому можна вважати програмні розрахунки вірними.
Після запуску програми на екран виводиться повідомлення-запрошення про введення даних. Необхідно ввести значення x та z, враховуючи обмеження на дані, що визначені в математичній постановці задачі.
Після розрахунку на екран виводиться значення а.
Для завершення роботи програми необхідно натиснути будь-яку клавішу на клавіатурі.
Uses Crt; |
#include <stdio.h> |
Var |
#include <conio.h> |
a, x, z : real; |
#include <math.h> |
begin |
main() |
ClrScr; |
{ |
Write(Введіть значення змінних x, z : ); |
float a, x, z; |
ReadLn(z, x); |
clrscr(); |
a:=Sqrt(x*arctan(1/sqrt(1-sqr(x))); |
printf(“Введіть значення змінних x, z: ”); |
WriteLn(a= , a:9:4) ; |
scanf(“%f%f”, &x, &z); |
readkey; |
a= sqrt(x*acos(z)); |
End. |
printf(“\n a= %9.4f \n”, a); |
getch(); |
|
} |
Варіанти завдань
1.
Приклад виконання роботи
Для визначення площі та периметру прямокутника необхідно знати довжини двох його сторін. Введемо позначення:
а довжина прямокутника, задається в метрах(м);
b ширина прямокутника (м);
P периметр прямокутника (м);
S площа прямокутника (м).
Вхідні дані |
Дії |
Вихідні дані |
a,b дійсного типу. Обмеження: a,b>0. |
P, S дійснi. |
Як приклад розглянемо 3 випадки:
Вхідні дані |
Вихідні дані |
Розрахунок вручну |
Паскаль |
Сі |
P |
S |
P |
S |
P |
S |
|
a=5 , b=10 |
30.0 |
.0 |
.0 |
.0 |
.0 |
.0 |
a=0.5 , b=0.7 |
2.4 |
.35 |
.4 |
.35 |
.4 |
.35 |
a=3 , b=1.5 |
9.0 |
.5 |
.0 |
.5 |
.0 |
.5 |
Результати розрахунків співпадають, похибки не виникло, тому можна вважати програмні розрахунки вірними.
Після запуску програми на екран виводиться повідомлення-запрошення про введення сторін прямокутника. Необхідно ввести значення довжини а прямокутника та ширини b, що виражені в метрах .
Після розрахунку на екран виводяться значення P, S.
Для завершення роботи програми необхідно натиснути будь-яку клавішу на клавіатурі.
#include <stdio.h> |
|
Uses Crt; |
#include <conio.h> |
Var |
main() |
a, b, P, S: real; |
{ |
begin |
float a, b, P=0, S=0; |
ClrScr; |
clrscr(); |
Write(Введіть довжину a (м) та ширину b (м) : ); |
printf(“Введіть довжину a (м) та ширину b (м) : ”); |
ReadLn(a, b); |
scanf(“%f%f”, &a, &b); |
P:=(a+b)*2; |
P=(a+b)*2; |
S:=a*b; |
S=a*b; |
WriteLn(Периметр = , Р:9:4, Площа = , S:9:4) ; |
printf(“\n Периметр = %9.4f \n Площа = %9.4f \n”, P, S); |
|
|
readkey; |
getch(); |
End. |
} |
Приклад виконання роботи
Вхідні дані |
Дії |
Вихідні дані |
x дійсного типу. |
Якщо виконується 0x5, тоді y=x, інакше y= cos x |
y дійсне. |
Для перевірки правильності МПЗ та складеної програми розглянемо таки випадки:
Вхідні дані |
Розрахунок вихідних даних |
вручну |
Паскаль |
Сі |
|
x=3 |
9 |
.0 |
.0 |
x=0 |
.0 |
.0 |
|
x=5 |
.0 |
.0 |
|
x=-4 |
-0,653644 |
-0,653644 |
-0,653644 |
x=9 |
-0,911130 |
-0,911130 |
-0,911130 |
По всіх тестових прикладах розрахунки, що були отримані вручну та програмно співпадають, це доводить правильність роботи програми.
Після запуску програми на екран виводиться повідомлення-запрошення про введення значення х. Необхідно ввести дійсне значення x. Обмежень на значення х не встановлюється.
Після розрахунку на екран виводиться значення у.
Для завершення роботи програми необхідно натиснути будь-яку клавішу на клавіатурі.
Uses Crt; |
#include <stdio.h> |
#include <conio.h> |
|
Var |
#include <math.h> |
x, y : real; |
main() |
{ |
|
begin |
float x, y; |
ClrScr; |
clrscr(); |
Write(Введіть значення x : ); |
printf("Input x:"); |
ReadLn(x); |
scanf("%f", &x); |
if (x>=0) and (x<=5) then y=sqr(x) |
if (x>=0 && x<=5) y=pow(x, 2); |
else y=cos(x); |
else y=cos(x); |
WriteLn(y= , y:9:6) ; |
printf("\ny=%9.6f", y); |
readkey; |
getch(); |
End. |
} |
Варіанти завдань
Рекомендації до виконання роботи.
Варіанти завдань
№ квартири |
Тип квартири |
1,2,3,4, 16,17 |
однокімнатна |
5,7,9,12,13 |
двокімнатна |
6,8,10,14,15 |
трикімнатна |
11,18,19,20 |
чотирьохкімнатна |
Отже, за введеним номером квартири вивести її тип.
Рекомендації до виконання роботи
В залежності від типу клавіатури на ній можуть бути розташовані 83/84, 101/102, 122 клавіші. Але принцип розташування та призначення основних клавіш на всіх типах клавіатури однакові.
При натисненні або відпусканні клавіші на клавіатурі генерується електричний сигнал, який розпізнається контролером клавіатури. Контролер клавіатури передає код відповідної клавіші(скен-код) для подальшої обробки. В залежності від типу клавіші генеруються прямі або розширені коди.
Прямий скен-код клавіші розміром один байт і його значення співпадає з кодом відповідного символу в таблиці ASCII-кодів.
Розширений скен-код займає два байти: старший нульовий, молодший код клавіші.
старший байт |
молодший байт |
00 |
код клавіші |
Алфавітно-цифрова група клавіш, клавіши Esc, Tab, BackSpace, Enter, пробіл(Space), клавіші правої цифрової групи (крім Del) повертають прямі скен-коди.
Функціональні клавіші та клавіші управління урсором повертають розширені скен-коди.
Зсувні клавіші Shift, Ctrl, Alt, клавіші CapsLock (фіксування режиму прописних букв) та Num Lock(фіксування режиму введення цифр), PrintScrn(друк екрану), ScrollLock(блокування прокрутки екрану), Pause/Break() не повертають кодів. Але якщо зсувні клавіші використовуються в комбінаціями з клавішами алфавітно-цифрової клавіатури, вони повертають розширений скен-код. Наприклад, якщо натиснути на клавіатурі кнопку з латинською буквою a, буде повернений код 97, при натисканні Shift+a буде повернений код 65 це символ А.
Esc 27 |
12 функціональних клавіш (розширений код) |
Панель індикаторів |
|||
Back spase 8 |
NL |
||||
Tab 9 |
Алфавітно-цифрові клавіші |
Клавіші управління (розширений код) |
Права цифрова група клавіш |
||
Caps Lock Ø |
Enter 13 |
Shift Ø |
Shift |
Ctrl Ø |
Alt Ø |
SPACE (“Any key”) 32 |
Alt Ø |
Ctrl Ø |
Del |
|||||
Рис. ?? Загальна схема розташування клавіш |
Клавіши управління курсором (розширений код) |
Права цифрова група клавіш (прямий код) |
Print Scrn |
Scroll Lock |
Pause Break |
Num Lock |
/ |
* |
|
|
Ø |
Ø |
Ø |
Ø |
||||
Insert |
Home |
PgUp |
Home |
PgUp |
+ |
||
82 |
|||||||
Delete |
End |
PgDn |
|||||
83 |
|||||||
End |
PgDn |
Enter |
|||||
Ins |
Del |
||||||
75 |
:83 |
||||||
Рис. ??. Розташування та коди клавіш управління курсором та правих цифрових. |
|
#include <stdio.h> |
#include <conio.h> |
|
main() |
|
{ |
|
int c; |
|
clrscr(); |
|
do |
|
{ |
|
printf("Натисніть клавішу\n"); |
|
c=getch(); |
|
if (c==0) |
|
{ |
|
c=getch(); |
|
printf("Розширений код >>>%d", c); |
|
} |
|
else |
|
printf("Код клавіші >>>%d\n", c); |
|
printf("\n <ESC> для виходу або будь-яку клавішу для продовження \n"); |
|
} |
|
while (getch() != 27); |
|
} |
Рекомендації до виконання роботи.
В математичній постановці задачі необхідно визначити:
Для прямої рівняння визначається за формулою:
,
де x, y, x, y координати двох точок, що належать прямій.
Для кола:
де xс, yс координати центра, R радіус.
Приклад виконання роботи
В якості приклада буде розглянуто математичну постановку задачі(МПЗ) для двох варіантів областей, що задані на рис 1. та рис.2. Інші пункти прикладу виконання роботи будуть продовжувати МПЗ для рис. 1.
Приклад 1(рис. 1)
Задана на рис. 1 область обмежена колом, центр якого знаходиться в точці (3, 2) і радіусом 2 та прямою, що проходить через пару точок (3, 4), (5, 2).
Після перетворень отримуємо: .
По-друге, для того щоби потрапити в задану область точка повинна бути нижче прямої, отже, її координати повинні задовольняти умові:
Приклад 2(рис. 2)
Задана на рис. 2 область обмежена трьома прямими, які описуються рівняннями:
y=2, y=0, x=4,
та півколом з координатами центру (2,2) і радіусом 2.
Рівняння кола буде:
Точка з координатами (х, у) буде належати заданій області, якщо вона потрапляє в коло, тобто виконується умова:
,
або до прямокутника, для якого виконуються умови:
x2 x4 y0 y4.
Ці чотири умови обєднані конюнкцією (логічне “І”) тому, що кожна з них повинна виконуватися для того, щоби точка за координатами (х, у) потрапляла всередину прямокутника.
Отже, точка належить області заданій на рис. 2, якщо вона потрапляє АБО до кола, АБО до прямокутника. Ці дві умови можна обєднати в один логічний вираз операцією дизюнкції (логічне “АБО”):
(x2 x4 y0 y4).
Вхідні дані |
Дії |
Вихідні дані |
x, y координати точки дійсного типу. |
Якщо виконується , тоді вивести на екран |
Належить |
інакше вивести на екран |
Не належить |
Для перевірки правильності МПЗ та складеної програми розглянемо таки випадки:
Умова виконується.
Умова не виконується.
Вхідні дані |
Розрахунок вихідних даних |
вручну |
Паскаль |
Сі |
|
x=3, y=1 |
Належить |
Належить |
Належить |
x=3, y=4 |
Належить |
Належить |
Належить |
x=4, y=2 |
Належить |
Належить |
Належить |
x=4.5; y=3 |
Не належить |
Не належить |
Не належить |
x= 1, y=1 |
Не належить |
Не належить |
Не належить |
x=6, y=5 |
Не належить |
Не належить |
Не належить |
По всіх тестових прикладах результати, що були отримані вручну та програмно співпадають, це доводить правильність роботи програми.
Після запуску програми на екран виводиться повідомлення-запрошення про введення значення координат точки (х, у). Необхідно ввести дійсне значення. Обмежень на значення х не встановлюється.
На екран виводиться повідомлення ”належить” чи “не належить” в залежності від результатів перевірки.
Після виведення результатів на екрані зявляється повідомлення:
“Для виходу з програми нажміть ESC”.
Для продовження роботи програми необхідно натиснути будь-яку клавішу на клавіатурі, для виходу з програми <ESC>.
#include <stdio.h> |
|
Uses Crt; |
#include <conio.h> |
#include <math.h> |
|
Var |
main() |
x, y : real; |
{ |
float x, y; |
|
begin |
do |
repeat |
{ |
ClrScr; |
clrscr(); |
Write(Введіть координати (x, у): ); |
printf("Введіть координати (x, у): "); |
ReadLn(x, y); |
scanf("%f%f", &x, &y); |
if (sqr(x-3)+sqr(y-4)<=4) and (y<=7-x) then WriteLn(Належить) |
if (pow(x-3, 2)+pow(y-4, 2)<= 4 && x<=5) printf(“Належить\n”); |
else WriteLn(Не належить); |
else printf(“Не належить\n”); |
WriteLn(Для виходу нажміть ESC) |
printf("Для виходу нажміть ESC"); |
until readkey=#27; |
} |
while (getch() != 27); |
|
End. |
} |
Варіанти завдань
2 - варіант завдання обирається студентом відповідно до його номеру в списку академгрупи.
27