Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаба 2 отчёт

.docx
Скачиваний:
23
Добавлен:
29.03.2015
Размер:
45.57 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Пермский национальный исследовательский политехнический университет Кафедра ИТАС

Лабораторная работа №2

«Программирование на языках высокого уровня»

Выполнил студент группы АСУ-12

Ожгибесов Вадим Денисович

Проверил доцент кафедры ИТАС, к. т. н.

Викентьева Ольга Леонидовна

Пермь, 2012

Постановка задачи

Вариант №16

  1. Дана последовательность из n целых чисел. Найти количество элементов этой последовательности, кратных числу K1 и не кратных числу K2.

  2. Дана последовательность целых чисел, за которой следует 0. Найти сумму четных элементов этой последовательности.

  3. Сформировать все числа Фибоначчи не превышающие заданное число 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 раз

 

 

+

 

Цикл выполняется много раз

 

 

 

+

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]