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

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

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

Рік:
2009
Тип роботи:
Методичні вказівки до лабораторної роботи
Предмет:
Програмування
Група:
МЕ

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет «Львівська політехніка» Кафедра «Телекомунікації»  ЦИКЛІЧНІ ОПЕРАТОРИ МОВИ ПРОГРАМУВАННЯ С Методичні вказівки до лабораторної роботи з дисципліни «Інформатика телекомунікаційних систем та мереж, ч.IІ» для студентів базового напряму 6.0924 «Телекомунікації» Затверджено на засіданні кафедри «Телекомунікації» Національного університету «Львівська політехніка», протокол №___ від______2009р. Львів 2009 МЕТА РОБОТИ: дослідити властивості циклічних операторів мови програмування С. Попередні відомості. Циклічні обчислення ( багатократне виконання груп операторів ) застосовуються в програмуванні дуже широко. Оскільки в мові "Сі" визначене поняття оператора: вираз; та складеного оператора: { вираз; вираз; вираз; ... вираз; } який застосовується замість одного, в описі операторів циклу слово "оператор" відноситься як до першого, так і до другого. 1. Цикл WHILE: while (вираз) оператор; Виконання підоператора повторюється, доки значення виразу залишається ненульовим. Перевірка виконується перед кожним виконанням оператора while. Вираз може бути арифметичного або логічного типів. Цикл може бути виконаний один раз, декілька разів або не виконуватися жодного разу. Приклад: main() { int j=0,k=0; while(j<5) { k+=10; j++; } printf("k=%d\n",k); } Програма надрукує к=50 Часто цикл WHILE використовується для організації переривання циклу на вимогу користувача. В наведеному прикладі цикл буде виконуватися доти, доки не буде натиснута будь-яка клавіша. Приклад: #include<stdio.h> #include<conio.h> #include<dos.h> main() { long int i=0; clrscr(); while(!kbhit()) i++; printf("\ni=%ld",i); } Програма надрукує значення і, яке залежатиме від часу натискання будь-якої клавіші. 2. Цикл DO WHILE: В циклі DO WHILE перевірка умови здійснюється після виконання тіла циклу. Синтаксис циклу: do оператор while (вираз); Виконання оператора повторюється доти, поки значення виразу залишається ненульовим. Перевірка виконується після кожного виконання оператора do. Вираз може бути арифметичним або логічним. Оператор у циклі DO WHILE на відміну від циклу WHILE буде виконуватися хоча б один раз жавжди. Приклад: main() { int a=2, b=10,c; clrscr(); do { b=b+a; c=10*a; a++; } while(a<5); printf("\nb=%d c=%d a=%d",b,c,a); } Програма надрукує b=19 c=40 a=5 3. Цикл FOR: Найбільш загальною формою циклу в мові С є цикл FOR. Синтаксис циклу: for ( необов’язковий вираз 1; необов’язковий вираз 2; необов’язковий вираз 3;) оператор; Вираз 1 призначений для ініціалізації циклу і виконується один раз. Здебільшого тут задаються початкові значення змінних циклу. Другий вираз задає виконувану перед кожною ітерацією перевірку, за якою здійснюється вихід із циклу. Третій вираз задає приріст, виконуваний після кожної ітерації. Вирази 1 і 3 або один із них можуть бути опущені. У цьому випадку опускати символ ; не можна. Відсутність першого виразу робить цикл незкінченним, що вимагає передбачення шляхів виходу з нього іншим способом. Якщо за допомогою одного одного із виразів необхідно виконати декілька дій, то використовують запис операторів розділених комою. Приклад: main() { long i; for(i=1000000; 1>=0; i=i-2) printf(“\n %ld”, i); } Програма виводить парні числа від 1000000 до 0. Приклад суматора: main() { int i,suma=0; for(i=0; i<=10; i++) suma+=i; printf(“\n %d”, suma); } Програма надрукує суму цілих чисел від 1 до 10. Слід пам’ятати, що змінній, яка використовується як ідентифікатор суми, перед обчисленням її в циклі необхідно присвоїти значення 0 (нуль) !!! 4. Оператор Break: break; викликає завершення найменшого охоплюючого оператору while, do, for або switсh управління передається на оператор, який слідує за завершеним. 5. Оператор Continue: continue; викликає передачу керування на кінець петлі циклу. ЗАВДАННЯ Виконати програму обчислення таблиці переведення температури за шкалою Фаренгейта в температуру за шкалою Цельсія. /* Celsius and Fahrengeit */ /* C=(5/9)*(F-32) */ #include <stdio.h> #include <conio.h> main() { int fahr,celsius; int lower,upper,step; clrscr(); lower=0; upper=300; step=20; fahr=lower; printf("\n\nCelsius Fahrengeit\n"); while( fahr <= upper ) { celsius = 5*(fahr-32)/9; printf("%10d\t%8d\n",fahr,celsius); fahr=fahr+step; } getch(); } 2. Здійснити зміну типу обчислюваних величин на float та відлагодити нову версію програми. 3. Змодифікувати оператор циклу на do, відлагодити нову версію. 4. Здійснити модифікацію цієї програми з оператором for: main() { int fahr; printf("\n\nCelsius Fahrengeit\n"); for(fahr=0;fahr<=300;fahr=fahr+20) printf("%10d\t%8.1f\n",fahr,(5.0/9.0)*(fahr-32)); } 5. Модифікувати програму виведення парних чисел від 1000000 до 0 застосувавши в операторі циклу FOR операцію “кома”. 6. Обчислити скільки зерен необхідно було би видати винахідникові шахів, якщо за першу клітинуу шахівниці він попросив видати одну зернину пшениці, а за кожну наступну в двічі більше за попередні. У шахівниці 64 клітини. 7. Для цілих чисел від 1 до 20 обчислити квадратні, кубічні та корені четвертого порядку. Результати звести у таблицю, використовуючи форматування функції printf(). 8. Застосувавши оператори циклу, модифікувати програму розв’язку алгебраїчного рівняння методом половинно ділення, коли інтервал невизначеності а-b ділять навпіл і перевіряють в якій половині знаходить корінь. Ця половина стає новим інтервалом невизначеності і вся процедура повторюється до тих пір док не буде досягнута задана точність розрахунку. #include<stdio.h> #include<conio.h> // Програма розв’язку рівнянь методом половинного ділення без застосування // операторів циклу. // Рівняння  // e – точність обчислення кореня, a,b – інтервал невизначеності. main() { float a=-100,b=100,e=0.001,x,y,y1; clrscr(); x=a; y=x*x-81; y1=y; m1: if((b-a)<e) goto m2; x=(a+b)/2; printf("x=%f\n",x); y=x*x-81; if(y*y1>=0) {a=x; goto m1;}; b=x; goto m1; m2: printf("korin'=%f",x); getch(); } 9. Протабулювати функцію, що з певними припущеннями з достатньою точністю моделює імпульс Максвела, який утворюється при ударному збудженні широкосмугової антени. Обчислення провести на для проміжку зміни і в межах [0-31] з кроком i=1, N=32. Результати вивести у вигляді таблиці. Визначити найбільше та найменше значення функції на цьому проміжку.  10. В обчислювальних задачах при програмуванні ітераційних алгоритмів, що закінчуються при досягненні заданої точності, часто необхідна оцінка”машинного нуля”, тобто числового значення, менше за яке неможливо задати точність даного алгоритму. Абсолютне значення ”машинного нуля” залежить від розрядної сітки застосовуваного комп’ютера, від прийнятої в конкретному трансляторі точності представлення дійсних чисел і від значень, що використовуються для оцінки точності. Наступна програма оцінює абсолютне значення ”машинного нуля” відносно близьких (за модулем) до одиниці змінних типу float. #include<stdio.h> #include<conio.h> #include<math.h> void main(void) // Otsinka mashynnoho nulia { int i=0; // і – лічильник ітерацій float precision,a; // а- допоміжна змінна clrscr(); precision=1.0; // precision – обчислювана точність відносно числа 1.0 m: precision=precision/2.; a=precision+1.0; i++; if (a>1.0) goto m; printf("\n число ділень на 2: %6d\n",i); printf("машинний нуль: %e\n ",precision); } Завдання: модифікувати програму застосувавши кожного разу один із трьох циклічних операторів. Оцінку ”машинного нуля” провести також для даних типу double - формат виведення %le, long double формат виведення %Le. 11. Заповнити екран монітора символами так, щоб утворити прямокутний трикутник зображений на рисунку, використавши для цього вкладені цикли. * ** *** **** ***** ****** ******* ******** ********* Символи для заповнення вибрати із таблиці ASCII згідно свого варіанту починаючи із коду, що дорівнює в десятковій системі 100 (символ d). 12. Обчислити значення скінченої суми, або добутку згідно свого варіанту. Врахувати, що навіть для невеликих чисел значення факторіала може вийти за гранично допустимі для даного типу даних. Аргумент тригонометричних функцій задавати в межах:  В.1 Дано натуральне число N=10. Обчислити:  В.2 Дано натуральне число N. Обчислити  В.3 Дано натуральне число N. Обчислити  В.4 Дано натуральне число N. Обчислити  В.5 Дано натуральні числа N і М=5. Обчислити  В.6 Дано натуральне число N. Обчислити  В.7 Дано натуральне число N. Обчислити  В.8 Дано натуральне число N, Обчислити  В.9 Дано натуральне число N. Обчислити  при x1=y1=1; xi+1=0.5*xi; yi+1=yi+xi, i=1,2,…N-1... В.10 Дано натуральне число N і дійсне х. Обчислити   В.11 Дано натуральне число N і дійсне x=0.1. Обчислити   В.12 Дано натуральне число N. Обчислити  В.13 Дано натуральне число N. Обчислити  В.14 Дано натуральне число N > 2. Обчислити  В.15 Дано натуральне число N. Обчислити  13. Відомо, що одним із методів обчислення багатьох функцій є розкладання їх в ряд Тейлора:     Завдання: для заданого х, яке уводиться з клавіатури під час роботи програми, обчислити значення функції y за допомогою бібліотечних функцій компілятора так і за допомогою вище наведеного явного розкладу її в ряд (ітераційний процес до досягнення заданої точності). Обчислити при цьому також кількість ітерацій або кількість членів ряду в розкладі функції. Точність обчислень, тобто значення члена ряду розкладу функції коли необхідно припиняти ітераційний процес, a=0.00001. Аргумент тригонометричних функцій задавати в межах:  Контрольні запитання. Призначення операторів циклу. Конструкція оператора циклу while. Конструкція оператора циклу do- while. Конструкція оператора циклу for. Призначення оператора continue. Призначення оператора break. Список рекомендованої літератури. Керниган, Ритчи. Программирование на С. М. – 1984, 1990. Березин А.К., Березина В.И. Программирование на С и С++. М. – 1996. Бочков С.О. Субботин Д.М. Язык программирования Си для персонального комп’ютера. М.- Диалог-1990. Подбельский В.В. Фомин С.С. Прграммирование на языке Си. М.-Финансы и статистика. – 2002.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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