МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра САПР
Звіт
до лабораторної роботи №2
на тему «ОСНОВНІ ПОНЯТТЯ АЛГОРИТМІЧНОЇ МОВИ С.
ОПЕРАТОРИ РОЗГАЛУЖЕННЯ ПРОГРАМИ У МОВІ С»
з курсу «Проблемно-орієнтовані мови програмування»
Мета роботи
Вивчення основних понять алгоритмічної мови С, операцій, стандартних функцій, операторів розгалуження програми.
Теоретичні відомості
C - універсальна мова програмування. Вона розроблялась в тісному зв’язку з системою UNIX, однак не є прив’язаною до цієї операційнї системи і може використовуватись у будь-яких операційних системах або машинах.
C - мова порівняно “низького рівня” У ній немає:
а) прямих операцій над такими об’єктами як множини, стрічки, списки і масиви;
б) операцій які маніпулюють з цілими масивами або стрічками, натомість використовуються структури;
в) засобів розподілу пам’яті окрім можливості визначення статичних змінних і стекового механізму при виділенні місця для локальних змінних функцій;
г) засобів вводу-виводу (READ, WRITE) і методів доступу до файлів.
Все це механізми високого рівня, які в мові C реалізуються за допомогою функцій.
Мова C містить засоби лише послідовного управління ходом обчислень: не містить засобів мультипрограмування і паралельних процесів.
Основна філософія мови C грунтується на тому що програміст знає, що робить і явно вказує ці наміри. Тому мова C не є “строго типізованою” мовою. Крім того, рівень пріоритетності виконання деяких операторів не є загальноприйнятим, деякі синтаксичні конструкції вимагають покращення. Не звертаючи увагу на деякі недоліки, мова C є ефективною і виразною мовою, придатною для широкого кола задач.
По аналогії з Паскалем і Фортраном програма на мові C складається з двох частин:
1) заголовка, 2)тіла програми.
Програма в мові C записується символами алфавіту, який містить:
1) великі і малі букви латинського алфавіту;
2) десяткові цифри від 0 до 9;
3) спеціальні символи: “,”, [,],(,),{,},+,-,/,%,\,;,:,?,<,>,+,-,|,^,&,*,#.
Із символів складаються базові елементи мови.
Правила запису імені змінної або іменованої константи (ідентифікатора):
Ідентифікатори складаються з букв, цифр і знаку підкреслення (“-”) (до складу ідентифікатора не може входити будь-який спеціальний символ).
Першим символом повинна бути буква. Не можна починати ідентифікатори із знаку підкреслення оскільки багато змінних бібліотечних програм починається саме з цього знаку.
Не можна плутати в ідентифікаторах великі і малі букви (Х і х - це два різні ідентифікатори). Здебільшого імена змінних набирають малими буквами, а іменовані константи - великими.
Ідентифікатори не можуть співпадати з ключовими словами мови C.
Довжина ідентифікатора: для зовнішніх імен не більше 6 символів; для внутрішніх - не більше 31 символа.
Для скалярних даних існують такі базові типи:
1) char - одиничний байт, що містить один символ;
2) int - ціле число;
3) float - число з плаваючою крапкою одиничної точності;
4) double - число з плаваючою крапкою подвійної тосності.
Для розширення базових типів використовуються кваліфікатори:
1) short - короткий; 2) long – довгий.
Ці кваліфікатори застосовуються до цілого типу: short int (можна писати просто short) - короткий цілий. Наприклад, якщо ціле число типу int може займати в пам’яті машини або 16 біт або32 біти, то long займає 32 біти, а short - 16 біт.
Кваліфікатор long може розширювати тип double. Тип long double - числа з плаваючою крапкою підвищеної точності.
Кваліфікатор 1) signed - із знаком; 2) unsigned - без знака - використовуються до типу int i char. Якщо значенню char відводиться 8 біт, то unsigned приймає значення від 0 до 255, а signed від -128 до 127.
У мові C не існує логічного або булевського типу, хоча логічні операції використовуються. Треба запам’ятати, що значенню “істина” відповідає “не нуль”, тобто будь-яке число, що не дорівнює нулю, а “не істина” - “нуль”.
Всі змінні в програмі C повинні бути описані (задекларовані) до того як будуть використані. Деякі декларації можуть бути неявними. Декларація вказує тип і містить список одної або кількох змінних.
В операторах і виразах бажано використовати змінні і константи однакового типу. Якщо у виразі є змішування типів компілятор автоматично перетворить типи за такими правилами.
Будь-яка програма складається з послідовності операторів. Ознакою закінчення оператора є крапка з комою “;”. Так запис S=5 не є оператором, це просто вираз, а S=5; це вже оператор присвоювання. Аналогічно Паскалю у мові C розрізняють прості оператори і блоки.
Блок - це група операторів, що міститься у фігурних дужках, вони використовуються:
1) щоб згрупувати кілька логічно зв’язаних операторів в один;
2) як тіло функції;
3) для локалізації дії описів.
Індивідуальне завдання
Скласти програму знаходження функції для різних значень аргументу . Вивести на друк значення аргументу, функції і проміжних змінних. Передбачити у програмі обхід алгебраїчних операцій, які можуть при певних значеннях аргумента та інших змінних мати невизначений результат, тобто ділення на нуль, добування кореня парного степеня з від’ємного числа, логарифма від’ємного числа і тому подібне.
6. ,,
,
, , , , .
Текст програми
#include <stdio.h>
#include <math.h>
int main()
{
printf("Enter the value of x=");
int x;
const double K=2.432;
const double L=8.14;
scanf("%d",&x);
if (x<=0) printf("Wrong input data");
else {
double a,b,y;
a=pow(K,-1/4)+pow((K/pow(x,1/4)),-3/7);
b=pow(L,log10(2))+pow(L,log10(x));
if (fabs(a)>=fabs(b)) y=asin(a+K*b);
else if (fabs(a)<fabs(b)) y=cos(5*a+3*b);
else y=0;
printf("Required it value =%2.5f",y);}
}
Блок-схема програми
Результати обчислень
Висновок: Я вивчив основні поняття алгоритмічної мови С, операції, стандартні функцій, оператори розгалуження програми. Використав свої теоретичні знання на практиці.