ОСНОВНІ ПОНЯТТЯ АЛГОРИТМІЧНОЇ МОВИ С. ОПЕРАТОРИ РОЗГАЛУЖЕННЯ ПРОГРАМИ У МОВІ С

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра САПР

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Програмно-орієнтовані мови програмування

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра САПР   ЗВІТ До виконання лабораторної роботи №1 На тему: “ОСНОВНІ ПОНЯТТЯ АЛГОРИТМІЧНОЇ МОВИ С. ОПЕРАТОРИ РОЗГАЛУЖЕННЯ ПРОГРАМИ У МОВІ С” З курсу “Проблемно-орієнтовані мови програмування” 1. МЕТА РОБОТИ Мета роботи - вивчення основних понять алгоритмічної мови С, операцій, стандартних функцій, операторів розгалуження програми. 2. ТЕОРЕТИЧНІ ВІДОМОСТІ C - універсальна мова програмування. Вона розроблялась в тісному зв’язку з системою UNIX, однак не є прив’язаною до цієї операційнї системи і може використовуватись у будь-яких операційних системах або машинах. C - мова порівняно “низького рівня” У ній немає: а) прямих операцій над такими об’єктами як множини, стрічки, списки і масиви; б) операцій які маніпулюють з цілими масивами або стрічками, натомість використовуються структури; в) засобів розподілу пам’яті окрім можливості визначення статичних змінних і стекового механізму при виділенні місця для локальних змінних функцій; г) засобів вводу-виводу (READ, WRITE) і методів доступу до файлів. Все це механізми високого рівня, які в мові C реалізуються за допомогою функцій. Мова C містить засоби лише послідовного управління ходом обчислень: не містить засобів мультипрограмування і паралельних процесів. Основна філософія мови C грунтується на тому що програміст знає, що робить і явно вказує ці наміри. Тому мова C не є “строго типізованою” мовою. Крім того, рівень пріоритетності виконання деяких операторів не є загальноприйнятим, деякі синтаксичні конструкції вимагають покращення. Не звертаючи увагу на деякі недоліки, мова C є ефективною і виразною мовою, придатною для широкого кола задач. 2.1. Алфавіт мови C Програма в мові C записується символами алфавіту, який містить: 1) великі і малі букви латинського алфавіту; 2) десяткові цифри від 0 до 9; 3) спеціальні символи: “,”, [,],(,),{,},+,-,/,%,\,;,:,?,<,>,+,-,|,^,&,*,#. Із символів складаються базові елементи мови. Правила запису імені змінної або іменованої константи (ідентифікатора): Ідентифікатори складаються з букв, цифр і знаку підкреслення (“-”) (до складу ідентифікатора не може входити будь-який спеціальний символ). Першим символом повинна бути буква. Не можна починати ідентифікатори із знаку підкреслення оскільки багато змінних бібліотечних програм починається саме з цього знаку. Не можна плутати в ідентифікаторах великі і малі букви (Х і х - це два різні ідентифікатори). Здебільшого імена змінних набирають малими буквами, а іменовані константи - великими. Ідентифікатори не можуть співпадати з ключовими словами мови C. Довжина ідентифікатора: для зовнішніх імен не більше 6 символів; для внутрішніх - не більше 31 символа. 2.2 Типи і розміри даних У мові C дані поділяються на 2 групи: 1) прості або скалярні; 2) складні або структуровані. Для скалярних даних існують такі базові типи: 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 не існує логічного або булевського типу, хоча логічні операції використовуються. Треба запам’ятати, що значенню “істина” відповідає “не нуль”, тобто будь-яке число, що не дорівнює нулю, а “не істина” - “нуль”. 2.3. Константи Константи можуть бути тих самих типів що і змінні: 1) цілого: 1024 2) цілий довгий: 124727119L - останне літера L (або l); 3) беззнаковий довгий: 124727429UL - останні літери UL (або ul); 4) з плаваючою крапкою 7.1425; 5) в експоненціальній формі 0.742е-1; 6) символьні константи ‘X’,’L’,’0’. Крім цього константи можуть бути представлені як вісімкове число, або як шістнадцяткове число; 7) вісімкове число 037 починається з цифри 0; 8) шістнадцяткове число 0Х1F - починається з 0Х. 2.4.Декларації Всі змінні в програмі C повинні бути описані (задекларовані) до того як будуть використані. Деякі декларації можуть бути неявними. Декларація вказує тип і містить список одної або кількох змінних int i,k,ms[20]; char C, cl; Одночасно з декларацією змінних можлива і їх ініціалізація (задання початкового значення): char ls=’0’; іnt k,l,lk[20], I=1; float eps=1. 0e-5. До будь-якої змінної в декларації можна використати кваліфікатор const, тоді змінна перетворюється в константу, тобто її значення при виконанні програми не змінюється. const int n=20; const double l=2.71828182. 3. СТРУКТУРА ПРОГРАМИ По аналогії з Паскалем і Фортраном програма на мові C складається з двох частин: 1) заголовка, 2)тіла програми. Заголовок складається з директив препроцесора і імені функції. Тіло програми або функції являє собою набір операторів і міститься в фігурних дужках “{}”, що аналогічно оператором Веgin і end у Паскалі. Ознакою закінчення оператора є символ крапка з комою “;”. В одному рядку може бути кілька операторів як і у Паскалі, але бажано дотримуватись правила “одна стрічка - один оператор” (як у Фортрані), тоді програма більш наглядна і легше читається. Коментарі в мові C обмежуються символами /* і */. Наведемо приклад простенької програми за допомогою якої вводимо з клавіатури символ, а на екран виводимо код цього символа. # include<stdio.h> /* заголовок */ main() { char ch; рrintf (введіть символ\n”); /*тіло функції}*/ scanf (“%с”, &ch); printf(“\n код символу %C:%d)\n”,ch,ch); } Кожна програма на мові C складається з функцій. Функції в C подібні до підпрограм і функцій в Фортрані і до процедур і функцій в Паскалі. В наведеному прикладі це функція main () -основна програма пусті дужки при імені функції означають, що ніяких вхідних параметрів основна програма не потребує. Стрічка # include<stdio.h>вказує компілятору, що необхідно включити інформацію, яка міститься у файлі stdio.h - стандартна бібліотека вводу-виводу. Значок # означає, що це директива препроцесора. Значки “<>” означають, що це стандартні файли, якими комплектується компілятор C. В наведеному прикладі функція main складається з 4 операторів. char ch; - опис типу змінної ch. рrintf (“введіть символ \n”); - виклик бібліотечної функції виводу на друк.В дужках задається список виводу. В даному випадку друкується стрічка символів, що міститься в подвійних лапках: введіть символ. Значок \n - перехід на наступну стрічку. scanf (“%с”, &ch); - виклик бібліотечної фукнції форматного вводу. Аргументами цієї функції є: 1) специфікатор формату: “%c”; 2) вказівник на змінну сh; &ch. Слід пам’ятати, що для того щоб ввести за допомогою функції scanf якесь значення і присвоїти його змінній одного з основних типів, перед іменем змінної необхідно записати символ “&”(крім char). Специфікатор формату відображає тип змінної, що виводиться на друк або вводиться з клавіатури. Розрізняють такі специфікатори формату: %d- десяткове ціле число: %f - число з плаваючою крапкою, десятковий запис; %e - число з плаваючою крапкою, експоненціальний запис; %g - число з плаваючою крапкою або десятковий або експоненціальний запис аналогічно формату G у Фортрані. Використовується тільки при виводі змінних; %c - один символ; %s - стрічка символів; %u - десяткове ціле без знаку; %o - вісімкове ціле число без знаку; %x - шістнадцяткове ціле число без знаку. Четвертий оператор тіла програми printf(“\n код символу ‘%с’:%d)\n”,ch,ch); виведе на екран повідомлення “код символу”, символ, який Ви набрали з клавіатури, в лапках, а тоді ціле число, що є кодом ASCII цього символа. 4. ОПЕРАЦІЇ Умовно операції в мові C можна розбити на такі групи: 4.1 Операції аналогічні операціям в мові Паскаль і Фортран. 1)Арифметичні операції: унарні: +;-; бінарні +;-;*;/; (додавання, віднімання, множення, ділення) До операції ділення в сові C потрібно відноситись дуже уважно. Якщо обидва операнди цілого типу, то і результат буде цілого типу, тому S=2/5; в результаті виконання цього оператора S присвоїться 0, щоб одержати правильний результат необхідно щоб хоча б один операнд був дійсного типу, тобто S = 2.0 /5.0; У мові C є ще одна бінарна операція % - знаходження залишку від ділення цілих чисел. K=7% 2; - присвоїти змінній цілого типу К значення 1, оскільки 7:2=3 і 1 залишок. До змінних дійсного типу ця операція не застосовується. 2) Операції порівняння: >; >=; <; <=; 3) Операційні рівності: = = - рівне; != - не рівне 4) Логічні операції: ! - логічне “ні”; || - логічне “або”; && - логічне “і”. 4.2 Операції відсутні в мовах Паскаль і Фортран: 4.2.1. Інкрементні та декрементні операції. Інкрементна операція ++ додає 1 до свого операнда. Оператор n++; можна записати n=n+1; Декриментна операція - - віднімає 1 від свого операнда. Розрізняють два види цих операцій: 1)префіксні ++n - змінна n збільшується на 1 до того, як використовується у виразі; 2)постфіксні n++ - змінна n збільшується на 1 після того, як її значення буде використано у виразі. Для ілюстрації цих операцій виконайте таку програму # include<stdio.h> main() { int a=1, b=1; int aplus, plusb; aplus=a++; plusb=++b рrintf (“a aplus b plusb”); printf(“%3d%5d%5d%5d\n”, a, aplus, b, plusb); } В результаті виконання цієї програми одержимо: а aplus b plusb 2 1 2 2 Значення а збільшилось на 1 після того як виконалась операція присвоєння. Значення b спочатку збільшилось на 1, а тоді виконалась операція присвоєння. 4.2.2. Побітові операції В мові C існує 6 операцій для роботи з бітами. & - побітове “і”; | - побітове “або”; ^ - побітове “виключаюче “або”; ~ - побітове “ні”; >> - зсув вправо; << - зсув вліво. & - побітове “і” - бінарна операція, що по розрядах порівнює два двійкові числа. Результат дорівнює 1, якщо обидва операнди рівні 1 у цьому розряді, тобто 10010011 00111101 _______ 00010001 | - побітове “або”. Результат 1, якщо хоча б у одного операнда у цьому розряді 1, тобто 10010011 00111101 _______ 10111111 ^ - побітове “виключаюче “або” Для кожного розряда результат допівнює 1, якщо один з двох відповідних розрядів дорівнює 1, але не обидва одночасно. 10010011 00111101 _______ 10101110 ~ - побітове “ні” - унарна операція, яка заміняє кожну 1 на 0, а 0 на 1. ~(10010011)= =01101100 >> - зсув вправо - зсуває розряди лівого, операнда вправо на кількість позицій вказаних у правому операнді (10010011)<<2= =(00100100) << - зсув вліво - зсуває розряди лівого операнда вліво на кількість розрядів, що вказані в правому операнді: (10010011)>>2= =(01001100) позиції, які звільняються заповнюються нулями. 4.2.3. Операція “?”:” Умовний оператор if у мові C можна замінити операцією виду “?”:” z=(a<b)?a:b; Цей оператор відповідає оператору умовного переходу такого виду: if(a<b) z=a; else z=b; 4.2.3. Операція присвоєння. У мовах Паскаль і Фортран такої операції не було. Було поняття “оператор присвоєння”. У мові C немає одностойкості у застосуванні термінів “оператор” і операція. Так у [1,2] термін “оператор” застосовується і як поняття інструкція і як поняття “операція”, в [3,4] ці поняття розділені аналогічно мовам Паскаль і Фортран. Операція присвоювання може мати такий вигляд: <змінна>=<вираз>; <змінна><знак операції>=<вираз>; наприклад: 1)S=S+4 2)S+=4 У першому випадку операція присвоювання аналогічна оператору присвоювання у Паскалі і Фортрані, у другому - знак арифметичної операції виноситься за знак “=”; В операції присвоювання можуть використовуватись такі операції: +,-,*,/,%,<<,>>,&,| 4.3. Пріорітет і порядок виконання операцій. В таблиці 1 приведено пріорітет і порядок виконання операцій Таблиця 1 Пріорітет Операції Позначення Порядок виконання   1. Виклик функції або вибір (); []; ->;. зліва-направо   2. Унарні операції +; --; !; &; *; ~ справа-наліво   3. Мультиплікативні *; /; % зліва-направо   4. Аддитивні +; - зліва-направо   5. Зсуву >>; << зліва-направо   6. Порівняння >; >=; <; <=; зліва-направо   7. Рівності ==; != зліва-направо   8. Побітове “і” & зліва-направо   9. Побітове виклакаюче “або” ^ зліва-направо  10. Побітове “або” | зліва-направо  11. Логічне “і” && зліва-направо  12. Логічне “або” || зліва-направо  13. Умови ?: справа-наліво  14. Присвоювання =; <знак>= справа-наліво  15. Кома , зліва-направо   Стандартні функції Основні математичні функції описуються в файлі <math.h> і приводяться в таблиці 2. Таблиця 2 Ім’я функції Математичний запис Тип і межі зміни аргументів Тип результату  sin(x) sin x double double  cos(x) cos x double double  tan(x) tg x double double  asin(x) arcsin x double x([-1,1] [-(/2,(/2]  acos(x) arccos x x([-1,1] [0,(]  atan(x) arctg x x([-(/2,(/2] double  sinh(x) sh x double double  cosh(x) ch x double double  tanh(x) th x double double  exp(x) ex double double  log(x) ln x x>0 double  log10(x) lg x x>0 double  pow(x,y) xy x(0; y>0 double  sqrt(x)  x(0 double  fabs(x) |x| double double  ldexp(x,n) x . 2n x-double, n-int double  fmod(x,y) Залишок від ділення дійсних чисел х на у double double   5. ПЕРЕТВОРЕННЯ ТИПІВ В операторах і виразах бажано використовати змінні і константи однакового типу. Якщо у виразі є змішування типів компілятор автоматично перетворить типи за такими правилами. Якщо операція виконується над змінними різних типів, то оббидві змінні переводяться до “вищого” з двох типів. Порядок типів від “вищого” до “нижчого” має такий вигляд: а) double; в) float; г) long; д) int; е) short; є) char. В операторах присвоювання результат перетворюється до типу змінної, якій присвоюється це значення. Це може бути як “підвищення” типу так і “пониження”, наприклад в програмі: #include<stdio.h> main() {int n,m; float s,p; n=5/7.0; m=4.8/9.2; s=5/7; p=4.8/9.2; printf(“n m s p \n”); printf(“%d%d%f%f\n”,n,m,s,p); } одержимо результат n m s p 0 0 0.00000 0.52174 Найкраще при написанні програми уникати перетворення типів, особливо в бік “пониження”. Але якщо Ви хочете явно вказати із змінними, або константами якого типу працюєте, існує явний вказівник (<iмя типу>)<змінна або константа>. Так у прикладі m=1.6+1.8; n=(int)1.6+(int)1.8; Змінній m присвоїться значення 3, оскильки спочатку додадуться два дійсних числа 1.6 і 1.8 від результату 3.4 відкинеться дробова частина. Змінній n присвоїться значення 2, оскільки (int)1.6=1, (int)1.8=1; 1+1=2. 6. ОПЕРАТОРИ Будь-яка програма складається з послідовності операторів. Ознакою закінчення оператора є крапка з комою “;”. Так запис S=5 не є оператором, це просто вираз, а S=5; це вже оператор присвоювання. Аналогічно Паскалю у мові C розрізняють прості оператори і блоки. Блок - це група операторів, що міститься у фігурних дужках, вони використовуються: 1) щоб згрупувати кілька логічно зв’язаних операторів в один; 2) як тіло функції; 3) для локалізації дії описів. 6.1 Оператор if Оператор if-else використовується для вибору одного з двох варіантів рішення. Синтаксичний опис оператора if-else: if(вираз) оператор 1; else оператор 2; Обчислюється “вираз”, якщо його значення “істина” (тобто не нуль) виконується “оператор 1”, якщо “не істина” (тобто нуль) виконується оператор 2. Частина else може бути відсутня. При вкладених if-else необхідно пам’ятати, що else відноситься до внутрішнього if. if(x>0) if(a>b) z=a; else z=b; Якщо треба змінити порядок необхідно використати фігурні дужки, тобто виділити блок. if(x>0) { if(a>b) z=a; } else z=b; Щоб розгалузити програму в кількох напрямках можна використати конструкцію: else if if(вираз 1) оператор 1; else if (вираз 2) оператор 2; else if (вираз 3) оператор 3; else оператор 4; Якщо <вираз 1> - “істина” виконується оператор1, якщо “не істина” перевіряється вираз 2. Якщо <вираз 2> - “істина”, виконується оператор 2 і так далі. 6.2. Оператор switch Оператор switch (перемикач) використовується для вибору одного з багатьох варіантів. Він подібний до оператора case у Паскалі. Синтаксис оператора switch: switch (вираз) { case <константа вибору 1>:оператор 1; case <константа вибору 2>:оператор 2; … default: оператор n } Якщо “вираз” співпадає з одною із констант вибору, то виконується відповідний оператор або блок операторів. Якщо “вираз” не співпадає ні з однією з констант вибору - виконується оператор після слова “default”. Для прикладу промоделюємо роботу світлофора. #include<stdio.h> main() { char ch; printf(“введи першу літеру кольору”); scanf(“%с\n”,ch); switch (ch)& { case `ч`: printf(“Зачекайте\n”); break; case `ж`: printf(“Увага\n”); break; case `з`: printf(“Ідіть\n”); break; default: printf(“такого кольору у світлофора нема”); break; } } “Вираз” і константи вибору повинні бути цілого типу, або типу char. Заборонено використовувати в якості константи вибору змінну. Оператор break здійснює негайний вихід з оператора switch. Якщо цього оператора немає, то будуть виконані оператори всіх варіантів після вибраного. 7. КОНТРОЛЬНІ ЗАПИТАННЯ Правила запису ідентифікаторів. Ідентифікатори складаються з букв, цифр і знаку підкреслення (“-”) (до складу ідентифікатора не може входити будь-який спеціальний символ). Першим символом повинна бути буква. Не можна починати ідентифікатори із знаку підкреслення оскільки багато змінних бібліотечних програм починається саме з цього знаку. Не можна плутати в ідентифікаторах великі і малі букви (Х і х - це два різні ідентифікатори). Здебільшого імена змінних набирають малими буквами, а іменовані константи - великими. Ідентифікатори не можуть співпадати з ключовими словами мови C. Довжина ідентифікатора: для зовнішніх імен не більше 6 символів; для внутрішніх - не більше 31 символа. Які Ви знаєте типи даних і як вони описуються? У мові C дані поділяються на 2 групи: 1) прості або скалярні; 2) складні або структуровані. Для скалярних даних існують такі базові типи: 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. По аналогії з Паскалем і Фортраном програма на мові C складається з двох частин: 1) заголовка, 2)тіла програми. Заголовок складається з директив препроцесора і імені функції. Тіло програми або функції являє собою набір операторів і міститься в фігурних дужках “{}”, що аналогічно оператором Веgin і end у Паскалі. Ознакою закінчення оператора є символ крапка з комою “;”. В одному рядку може бути кілька операторів як і у Паскалі, але бажано дотримуватись правила “одна стрічка - один оператор” (як у Фортрані), тоді програма більш наглядна і легше читається. Перелічіть операції аналогічні операціям у мовах Паскаль і Фортран. 1)Арифметичні операції: унарні: +;-; бінарні +;-;*;/; (додавання, віднімання, множення, ділення) 2) Операції порівняння: >; >=; <; <=; 3) Операційні рівності: = = - рівне; != - не рівне 4) Логічні операції: ! - логічне “ні”; || - логічне “або”; && - логічне “і”. Що таке побітові операції? В мові C існує 6 операцій для роботи з бітами. & - побітове “і”; | - побітове “або”; ^ - побітове “виключаюче “або”; ~ - побітове “ні”; >> - зсув вправо; << - зсув вліво. Що таке оператор, ознака закінчення оператора. Будь-яка програма складається з послідовності операторів. Ознакою закінчення оператора є крапка з комою “;”. Так запис S=5 не є оператором, це просто вираз, а S=5; це вже оператор присвоювання. Напишіть основні стандартні функції у мові C. sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), sinh(x), cosh(x), tanh(x), exp(x), log(x), log10(x), pow(x,y), sqrt(x), fabs(x), ldexp(x,n), fmod(x,y). Як здійснюється узгодження типів у виразах? Якщо операція виконується над змінними різних типів, то оббидві змінні переводяться до “вищого” з двох типів. Порядок типів від “вищого” до “нижчого”. В операторах присвоювання результат перетворюється до типу змінної, якій присвоюється це значення. Яка різниця між оператором і блоком у мові C? Блок - це група операторів, що міститься у фігурних дужках, вони використовуються: 1) щоб згрупувати кілька логічно зв’язаних операторів в один; 2) як тіло функції; 3) для локалізації дії описів. Синтаксис умовного оператора if. Оператор if-else використовується для вибору одного з двох варіантів рішення. Синтаксичний опис оператора if-else: if(вираз) оператор 1; else оператор 2; Напишіть приклад оператора switch. switch(p) { case '1': x=0.1; break; case '2': x=2.0; break; case '3': x=0.329; break; default: printf("error\n"); break; } Для чого використовується оператор break? Оператор break здійснює негайний вихід з оператора switch. Якщо цього оператора немає, то будуть виконані оператори всіх варіантів після вибраного. 11. ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ Скласти програму знаходження функції  для різних значень аргументу . Вивести на друк значення аргументу, функції і проміжних змінних. Передбачити у програмі обхід алгебраїчних операцій, які можуть при певних значеннях аргумента  та інших змінних мати невизначений результат, тобто ділення на нуль, добування кореня парного степеня з від’ємного числа, логарифма від’ємного числа і тому подібне. 28. , ,  , , , , . Програмний код: #include <stdio.h> #include <math.h> #include <conio.h> main () { clrscr(); const float K=1.01, L=3.14; float a,b,x,y; char p; scanf("%c\n",&p); switch(p) { case '1': x=0.1; break; case '2': x=2.0; break; case '3': x=0.329; break; default: printf("error\n"); break; } if ((7.002*K*x-1+0.1*(exp(2*x)+exp(-2*x)))>0) a=exp((1/5)*log(7.002*K*x-1+0.1*(exp(2*x)+exp(-2*x)))); else {a=0;printf("error\n");} b=log10(L*x)*cos(3.14*x/5)+K*cos(3*x/5); if((a*a+b*b)>0.1) y=sin(5*a*a+7*b*b); else y=cos(5*a*a+7*b*b); printf("\ny=%e\na=%e\nb=%e\nx=%e\n",y,a,b,x); getch(); return 0; } Результати виконання програми: 1 1 error y=9.754168e-01 a=0.000000e+00 b=5.061039e-01 x=1.000000e-01 2 2 y=9.751968e-01 a=1.000000e+00 b=6.130478e-01 x=2.000000e+00 3 3 y=-4.868161e-01 a=1.000000e+00 b=1.004211e+00 x=3.290000e-01 4 4 error error y=2.252019e-01 a=0.000000e+00 b=-3.672340e+01 x=5.883929e-39   12.ВИСНОВОК На цій лабораторній роботі я вивчив основні поняття алгоритмічної мови С, операцій, стандартних функцій, операторів розгалуження програми. Склав програму знаходження функції  для різних значень аргументу .
Антиботан аватар за замовчуванням

01.05.2013 22:44

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

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

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!