Лаба 2 отчёт
.docxМинистерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Пермский национальный исследовательский политехнический университет Кафедра ИТАС
Лабораторная работа №2
«Программирование на языках высокого уровня»
Выполнил студент группы АСУ-12
Ожгибесов Вадим Денисович
Проверил доцент кафедры ИТАС, к. т. н.
Викентьева Ольга Леонидовна
Пермь, 2012
Постановка задачи
Вариант №16
- 
Дана последовательность из n целых чисел. Найти количество элементов этой последовательности, кратных числу K1 и не кратных числу K2.
 - 
Дана последовательность целых чисел, за которой следует 0. Найти сумму четных элементов этой последовательности.
 - 
Сформировать все числа Фибоначчи не превышающие заданное число Q.
 
Блок-схемы алгоритма решения
Задача
1
Задача 2
Задача 3
Программы для решения задач
Задача 1:
#include <iostream>
using namespace std;
void printNum(int num) {
switch (abs(num)%10) {
case 1: cout << " число "; break;
case 2: case 3: case 4: cout << " числа "; break;
default: cout << " чисел "; break;
}
}
inline void printMultiplicity(int num) {
abs(num)%10 == 1?cout << " кратно ":cout << " кратны ";
}
void main() {
setlocale(0,"");
cout << "Введите n: ";
int n;
cin >> n;
if (n<=0) {
cout << "Ошибка! n <= 0!\n";
return;
}
int K1, K2;
cout << "Введите K1: ";
cin >> K1;
cout <<"Введите K2: ";
cin >> K2;
if (K1==0||K2==0) {
cout << "Деление на 0!\n";
return;
}
cout << "Вводите данные:\n";
int K1_count = 0, K2_count = 0;
for (int i = 0, cur; i < n; i++) {
cout << "a[" << i << "]: ";
cin >> cur;
if (cur%K1 == 0) K1_count++;
if (cur%K2 != 0) K2_count++;
}
//cout << "Из данной последовательности " << K1_count << " чисел кратны K1, а " << K2_count << " чисел не кратны K2\n";
cout << "Из данной последовательности " << K1_count;
printNum(K1_count);
printMultiplicity(K1_count);
cout << "K1, а " << K2_count;
printNum(K2_count);
cout << "не";
printMultiplicity(K2_count);
cout << "K2\n";
}
Задача 2:
#include <iostream>
using namespace std;
void main() {
setlocale(0,"");
cout << "Вводите последовательность чисел. 0 означает конец последовательности\n";
int cur, sum = 0;
bool any = false;
do {
cin >> cur;
if ((cur%2 == 0)&&(cur!=0)) {
sum+=cur;
any = true;
}
} while (cur);
if (any)
cout << "Сумма чётных элементов последовательности равна " << sum << endl;
else
cout << "Пустая последовательность!\n";
}
Задача 3:
#include <iostream>
using namespace std;
void main() {
setlocale(0,"");
cout << "Введите Q: ";
int Q;
cin >> Q;
if (Q<0) {
cout << "Ошибка! Q < 0!\n";
return;
}
cout << "Числа Фибоначчи, не превышающие Q:\n";
if (Q == 0) {
cout << "0\n";
return;
}
cout << "1";
int cur = 1, prev = 0,temp;
while (cur+prev <= Q) {
temp = cur;
cur += prev;
prev = temp;
cout << "," << cur;
}
cout << endl;
}
Система тестов для проверки правильности работы программы
Задача 1:
| 
			 
  | 
		
			 Т1  | 
		
			 Т2  | 
		
			 Т3  | 
		
			 Т4  | 
		
			 Т5  | 
	
| 
			 1) Ошибка N <= 0  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
	
| 
			 2) Ошибка K1 = 0  | 
		
			 
  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
	
| 
			 3) Ошибка K2 = 0  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
	
| 
			 4) Последовательность из 1 элемента  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
		
			 
  | 
	
| 
			 5) Последовательность из 10 элементов  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
	
| 
			 Тест  | 
		
			 Вход. данные  | 
		
			 Вывод  | 
		
			 Тест пройден?  | 
	
| 
			 T1  | 
		
			 n = 0, k1 = 5, k2 = 3  | 
		
			 Сообщение об ошибке  | 
		
			 +  | 
	
| 
			 T2  | 
		
			 n = 10, k1 = 0, k2 = 3  | 
		
			 Сообщение об ошибке  | 
		
			 +  | 
	
| 
			 T3  | 
		
			 n = 10, k1 = 5, k2 = 0  | 
		
			 Сообщение об ошибке  | 
		
			 +  | 
	
| 
			 T4  | 
		
			 n = 1, k1 = 5, k2 = 3 5  | 
		
			 K1_count = 1 K2_count = 1  | 
		
			 +  | 
	
| 
			 T5  | 
		
			 n = 10, k1 = 5, k2 = 3 5 15 4 9 3 7 8 222 4 9  | 
		
			 K1_count = 5 K2_count = 4  | 
		
			 +  | 
	
| 
			 
  | 
		
			 Т1  | 
		
			 Т2  | 
		
			 Т3  | 
		
			 Т4  | 
		
			 Т5  | 
	
| 
			 Условие (n<=0) выполняется  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
	
| 
			 Условие (n<=0) не выполняется  | 
		
			 
  | 
		
			 +  | 
		
			 +  | 
		
			 +  | 
		
			 +  | 
	
| 
			 Условие (K1==0||K2==0) выполняется  | 
		
			 
  | 
		
			 +  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
	
| 
			 Условие (K1==0||K2==0) не выполняется  | 
		
			 
  | 
		
			 +  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
	
| 
			 Цикл не выполняется  | 
		
			 +  | 
		
			 +  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
	
| 
			 Цикл выполняется 1 раз  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
		
			 
  | 
	
| 
			 Цикл выполняется несколько раз  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
	
Задача 2:
| 
			 
  | 
		
			 Т1  | 
		
			 Т2  | 
		
			 Т3  | 
		
			 Т4  | 
		
			 Т5  | 
	
| 
			 1) Последовательность из 0 элементов  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
	
| 
			 2) Последовательность из 1 элемента  | 
		
			 
  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
	
| 
			 3) Последовательность из 10 элементов  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
	
| 
			 4) Последовательность только из чётных  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
		
			 
  | 
	
| 
			 5) --//-- из нечётных  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
	
| 
			 Тест  | 
		
			 Вход. данные  | 
		
			 Вывод  | 
		
			 Тест пройден?  | 
	
| 
			 Т1  | 
		
			 0  | 
		
			 0  | 
		
			 +  | 
	
| 
			 Т2  | 
		
			 5 0  | 
		
			 0  | 
		
			 +  | 
	
| 
			 Т3  | 
		
			 1 2 3 4 5 6 7 8 9 10 0  | 
		
			 30  | 
		
			 +  | 
	
| 
			 Т4  | 
		
			 2 4 8 16 32 64 0  | 
		
			 126  | 
		
			 +  | 
	
| 
			 Т5  | 
		
			 1 3 5 7 9 11 13 0  | 
		
			 0  | 
		
			 +  | 
	
| 
			 
  | 
		
			 Т1  | 
		
			 Т2  | 
		
			 Т3  | 
	
| 
			 Цикл выполняется 1 раз  | 
		
			 +  | 
		
			 +  | 
		
			 
  | 
	
| 
			 Цикл выполняется несколько раз  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
	
Задача 3:
| 
			 
  | 
		
			 T1  | 
		
			 T2  | 
		
			 T3  | 
		
			 T4  | 
	
| 
			 Q < 0  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
	
| 
			 Q = 0  | 
		
			 
  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
	
| 
			 Q = 1  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
		
			 
  | 
	
| 
			 Q > 1  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
	
| 
			 Тест  | 
		
			 Вход. данные  | 
		
			 Вывод  | 
		
			 Тест пройден?  | 
	
| 
			 Т1  | 
		
			 q = -1  | 
		
			 Сообщение об ошибке  | 
		
			 +  | 
	
| 
			 Т2  | 
		
			 q = 0  | 
		
			 0  | 
		
			 +  | 
	
| 
			 T3  | 
		
			 q = 1  | 
		
			 0, 1, 1  | 
		
			 +  | 
	
| 
			 Т4  | 
		
			 q = 666  | 
		
			 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610  | 
		
			 +  | 
	
| 
			 
  | 
		
			 T1  | 
		
			 T2  | 
		
			 T3  | 
		
			 T4  | 
	
| 
			 Условие (Q<0) выполняется  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
	
| 
			 Условие (Q<0) не выполняется  | 
		
			 
  | 
		
			 +  | 
		
			 +  | 
		
			 +  | 
	
| 
			 Условие (Q == 0) выполняется  | 
		
			 
  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
	
| 
			 Условие (Q == 0) не выполняется  | 
		
			 +  | 
		
			 
  | 
		
			 +  | 
		
			 +  | 
	
| 
			 Цикл не выполняется  | 
		
			 +  | 
		
			 +  | 
		
			 
  | 
		
			 
  | 
	
| 
			 Цикл выполняется 1 раз  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
		
			 
  | 
	
| 
			 Цикл выполняется много раз  | 
		
			 
  | 
		
			 
  | 
		
			 
  | 
		
			 +  | 
	
