Лабораторная №6 Вириант 15
.docxОдеський національний політехнічний університет
Інститут комп’ютерних систем
Кафедра інформаційних систем
Варіант №1
Лабораторна робота №6
По дисципліні “Алгоритмізація і програмування”
Тема:“ Програмування алгоритмів циклічної структури.”
Виконав:
Студент гр. АІ-171
Анищенко М.О.
Перевірили:
Шпиньковський О.А.
Одеса 2017
Мета роботи:
Набуття практичних навичок у створенні програм з циклами while, do…while.
Завдання 6.1:
Дано послідовність чисел
x, x2 , x3,…, xi;
i=1, 2, 3, …
1. Дано дійсне число а (x <a)
1.1. Надрукуйте в стовпчик числа поки ni<a;
1.2. Знайти суму всіх роздрукованих чисел ;
1.3. Визначити, чи є серед цих чисел задане число а.
2. Дано дійсне число е (х<= e<= 1000)
2.1. Роздрукувати всі числа, для яких виконується умова: ni-ni-1 <=e
2.2. Знайдіть перше число ni і його номер і, якщо ni-ni-1>e
ТУТ БЛОК-СХЕМА
Код програми:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define L 9
int main()
{
int arr[L];
int x;
printf("Enter x\n");
scanf("%d", &x);
for(int i = 0; i < L; i++)
arr[i] = pow(x, i+1);
int a;
printf("\nEnter a\n");
scanf("%d", &a);
int i = 0;
printf("ni > a\n");
while(arr[i] < a)
printf("%d\n", arr[i++]);
int sum = 0;
for(int j = 0; j < i; j++)
sum += arr[j];
printf("Sum = %d\n", sum);
printf("a not belong [%d...%d]\n", arr[0], arr[i-1]);
int e;
printf("\nEnter e, e >= x and e <= 1000\n");
scanf("%d", &e);
for(i = 0; i < L-1; i++)
if((arr[i+1] - arr[i]) <= e)
printf("%d\n", arr[i+1]);
for(i = 0; i < L-1; i++)
if((arr[i+1] - arr[i]) > e)
{
printf("ni - ni-1 > e\nN = %d, i = %d", arr[i+1], i+2);
break;
}
return 0;
}
Приклад виконання:
x |
a |
e |
2 |
16 |
5 |
Enter x
2
Enter a
16
ni > a
2
4
8
Sum = 14
a not belong [2...8]
Enter e, e >= x and e <= 1000
5
4
8
ni - ni-1 > e
N = 16, i = 4
Process returned 0 (0x0) execution time : 14.694 s
Press any key to continue.
Контрольні запитання:
-
Цикли з передумовою(WHILE), цикли з післяумовою(DO WHILE), цикли з лічильником(FOR)
-
Цикл з передумовою — цикл, що виконується доки істинна деяка умова, вказана перед його початком. Ця умова перевіряється до початку виконання тіла циклу, тому тіло може бути не виконане жодного разу (якщо умова з початку хибна). У більшості процедурних мов програмування здійснюється за допомогою інструкції while, звідси його друга назва — while-цикл.
-
-
Цикл з умовою while(true) буде виконуватизя нескінченно, якщо у його тілі відсутня точка виходу. Це може призведе до нескінченного виконання програми.
Висновки:
Під час виконання ЛР була створена програма, яка працює з масивом чисел і виводить значення, що відповідають певній умові.
Під час написання програми не виникло помилок.