- •Національний технічний університет
- •Мета роботи
- •Оператори введення/виводу
- •Лабораторна робота № 2
- •Приклад виконання завдання
- •Вибір варіанта розрахунку. Використання операторів if, else, else if Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Оператор if
- •Використання оператора else в операторі if
- •Оператор else if
- •Лабораторна робота №4
- •Циклічні алгоритми.
- •Організація циклу за допомогою операторів while і do while
- •Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Циклічний алгоритм. Організація циклу за допомогою оператора for Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Робота з масивами символів. Використання функцій getchar (), putchar () Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Робота з масивами символів. Використання операторів continue, break і функції switch () Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Оператор continue
- •Оператор break
- •Множинний вибір: функція switch ()
- •Робота з рядками Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 9
- •Завдання
- •Вказівки до виконання завдання
- •Робота з одномірними масивами. Обчислення максимуму, мінімуму, кратність елементів
- •Сортування масиву Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Робота з двовимірними масивами. Організація введення / виводу елементів двовимірного масиву Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 13 робота з функціями Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Придбання і закріплення практичних навичок у використанні файлового введення/виводу при складанні програми мовою с.
- •Лабораторна робота № 15
- •Робота з функціямипідпрограмами Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 17 Програмування задач матричної алгебри Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 18 Обчислення визначеного інтегралу Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Лабораторна робота № 19 Робота зі структурами Мета роботи
- •Завдання
- •Вказівки до виконання завдання
- •Додаток 1 Завдання до лабораторної роботи № 2
- •1. Обчислити значення виразу , якщо ,
- •Додаток 2 Завдання до лабораторної роботи № 3
- •Додаток 3 Завдання до лабораторної роботи № 4
- •Додаток 4 Завдання до лабораторної роботи № 5
- •Додаток 5 Завдання до лабораторної роботи № 6
- •Додаток 6 Завдання до лабораторної роботи № 7
- •Додаток 7 Завдання до лабораторної роботи № 8
- •Додаток 8 Завдання до лабораторної роботи № 9
- •Додаток 9 Завдання до лабораторної роботи № 10
- •Додаток 10 Завдання до лабораторної роботи № 11
- •Додаток 11 Завдання до лабораторної роботи № 12
- •Додаток 12 Завдання до лабораторної роботи № 13
- •Додаток 13
- •Додаток 14
- •Додаток 15
- •Додаток 16
- •Додаток 17
- •Додаток 18
- •Список літератури
Циклічний алгоритм. Організація циклу за допомогою оператора for Мета роботи
Метою даної лабораторної роботи є ознайомлення зі способом організації циклу за допомогою оператора for, особливостями його застосування, а також ознайомлення зі способом реалізації циклічного алгоритму за допомогою оператора goto.
Завдання
1. Скласти алгоритм і написати мовою С для обчислення суми ряду. Алгоритм повинний включати наступні етапи:
1) визначення виду ряду: сходиться або розходиться;
2) обчислення суми ряду з певною точністю у випадку ряду, що сходиться;
3) обчислення суми перших 10 членів ряду у випадку розбіжного ряду;
4) роздруківка результатів розрахунку, що повинна включати вихідні дані, значення членів ряду з їх номерами і підсумкове значення суми ряду. Варіанти завдання дані в додатку 4. Номер варіанта призначається викладачем.
2. Здійснити налагодження програми і її тестування.
3. Скласти звіт про роботу.
Вказівки до виконання завдання
Для організації багаторазового виконання послідовності операторів крім операторів циклу while і do while використовується оператор циклу for.
Загальна форма запису:
for(ініціалізація; перевірка умови; коригуваний вираз)
оператор;
У запису оператора for зібрані всі умови для виконання циклу: ініціалізація лічильника (у циклах while і do while вона виконується до початку циклу); умова виконання циклу; відновлення значень лічильника після кожного виконання циклу. Умова виконання циклу записується за допомогою виразу, що може включати арифметичні, логічні операції й операції відносин. Оператором може бути як одиничний оператор, так і складений блок.
Принцип дії оператора for: спочатку виконується ініціалізація виразу (один раз), потім йде перевірка умови. Якщо умова правдива, виконується оператор циклу. Потім обчислюється коригувальний вираз і відбувається перевірка умови. Дані дії повторюються доти, поки перевірка не дасть значення «неправда». У цьому випадку виконання циклу припиниться, керування буде передано на оператор, що іде за циклом.
Приклад:
прорахувати суму перших 10 членів ряду
.
# include<stdio.h>
#include <match.h>
int main()
{
float s,s1;
int n;
s=0;
for(n=1;n<=10;n++)
{
s1=pow(n,2)/(2*n); /* Обчислення величини члена ряду */
s=s+s1;
}
printf(“Суму 10 членів ряду s=%7.2f \n”,s);
return 0;
}
Для збільшення гнучкості циклу for використовується операція «кома». Вона дозволяє включати в специфікацію циклу кілька ініціалізацій і коригувальних виразів. Операція «кома» зв'язує 2 вирази в одне і гарантує, що вони обчислюються в порядку зліва направо.
Приклад:
визначити суму членів ряду
.
Проаналізувавши вид ряду, можна помітити, що кожен наступний елемент ряду утвориться множенням попереднього на ½.
# include<stdio.h>
#include <match.h>
int main()
{
int n; /*n номер члена ряду*/
double s,x; /*s сума ряду; x перший член ряду*/
int limit; /*limit загальна кількість членів ряду*/
printf(“Уведіть кількість членів ряду, суму яких треба
знайти \n”);
scanf(“%d”,&limit);
for(s=0,x=1/2,n=1;n<=limit; n++, x*=1/2)
s+=x;
printf(“Сума %d членів ряду s=%f \n”,limit,s);
return 0;
}
З прикладу видно, що при використанні циклу for ми можемо ініціалізувати кілька значень, використовуючи операцію «кома»: s=0 початкове значення суми; x=1/2 перший член ряду; n=1 номер першого використовуваного члена ряду. Також є можливість вписати кілька коригувальних виразів: n++ зміна номера члена ряду; x*=1/2 новий член ряду.
У даному прикладі були використані додаткові операції присвоювання, що обновляють значення змінних. У мові програмування С використовуються наступні додаткові операції присвоювання:
«+=» – збільшує значення змінної, що стоїть ліворуч, на величину, указану праворуч: s+=x означає s=s+x;
«-=» – зменшує значення змінної, що стоїть ліворуч, на величину, указану праворуч: x-=2 означає x=x-2;
«*=» – множить значення змінної, що стоїть ліворуч, на величину, указану праворуч від знака: x*=1/2 означає x=x*(1/2);
«/=» – поділяє значення змінної, що стоїть ліворуч від знака, на величину, указану праворуч: x/=4 означає x=x/4.
Ці операції мають такий же пріоритет, як і основна операція присвоювання. Вони дозволяють зробити запис виразу більш компактним, особливо додаткові операції присвоювання корисні для запису виразів в операторі циклу for.
Крім операторів циклу while, do while і for, циклічне обчислення операторів можна організувати за допомогою оператора goto. Цей оператор має наступну загальну форму запису:
goto мітка;
і дозволяє передавати керування на той рядок програми, де стоїть мітка. Використання такої реалізації циклічного алгоритму добре видно у наведеному прикладі.
Приклад:
порахувати суму ряду
з точністю =0,001.
# include<stdio.h>
#include <match.h>
#include<stdlib.h>
int main()
{
int i, f, k;
float x,s,s1,eps;
printf(“Уведіть точність розрахунку\n”);
scanf(“%f”, &eps);
printf(“Уведіть значення x\n”);
scanf(“%f”,&x);
s=0; i=0;
a: f=1; k=1;
і=і+1; /* Лічильник повторень */
while (k<=і+1)
f=f*k++;
s1=pow(x,і)/f; /* обчислення члена ряду */
s=s+s1;
if (і>1000) /* додаткова умова виходу з циклу */,
goto b;
if (fabs(s1)>eps)
goto a; /* умова повторення розрахунку */
b: printf (“Сума %d членів ряду дорівнює %f. \n”,i, s);
return 0; }
У даному прикладі за допомогою оператора goto ми організували повторне виконання операторів доти, поки член ряду (абсолютна його величина) не стане менше заданого значення точності розрахунку. При такій постановці задачі існує можливість зациклення роботи програми. Це може відбутися в тому випадку, якщо члени ряду не будуть менше, ніж задана точність. Для того щоб виключити цю можливість, використана додаткова умова виходу з циклу, де вказується максимальна кількість циклів.
Звіт про роботу повинний містити блок–схему алгоритму рішення завдання, текст програми і результат її виконання.
Лабораторна робота № 6
