Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 методичка ОПАМ.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.18 Mб
Скачать

3. Програма роботи

3.1. Записати запропанований викладачем варіант завдання з п. 5.

Ознайомитись з рекомендованою літературою та конспектом лекцій.

3.2. Програмування задачі:

– скласти таблицю символічних імен;

– скласти схему алгоритму або псевдокод (за вказіквою викладача);

– скласти програму розв’язання задачі мовою С++.

3.3. Розв’язання задачі на ПЕОМ.

На ПЕОМ набрати, відлагодити та розв’язати складену програму.

3.4. Оформлення звіту.

Звіт повинен містити:

– номер лабораторної роботи та її назву;

– умову задачі та дані свого варіанта;

– таблицю символічних імен;

– схему алгоритму (або псевдокод);

– лістинг (або рукопис) програми;

– результати розрахунку задачі;

– висновки.

4. Приклад

У масиві С= (с1, с2, …,с16) визначити середнє арифметичне sr негативних елементів першої половини масиву та добуток p позитивних елементів другої половини масиву.

Розв’язання.

Таблиця символічних імен

Математичне ім’я

Ім’я

у програмі

Смислове значення

Змінна

Тип

Значення

p

p

Добуток додатних елементів другої половини масиву

int

Результат

i

i

Індекс елементів масиву

int

Початкові дані

s

s

Сума від’ємних елементів

int

Результат

k

k

Кількість від’ємних елементів першої половини масиву

int

Результат

l

l

Кількість додатних елементів другої половини масиву

int

Результат

sr

sr

Середнє арифметичне від’ємних елементів першої половини масиву

float

Результат

m

m

Половина масиву

int

Результат

N

N

Кількість елементів у масиві

int

16

c

c

Масив з кількістю елементів N

int

Початкові дані

Текст програми мовою C++

для компіляторів Visual C++

# include <iostream.h>

#include <iomanip.h>

const int N = 16;

int main()

{

int c[ N ] = { 2, -6, 3, -8, 2, 3, 5, -5, -2, 5, 8,

6, -4, -9, 2, 5 }; // визначення масиву С

int p,i,m,k,l,s;

float sr;

cout << "Вхідний масив:" << endl;

for ( i = 0; i < N; i++ ) // ввід значень масиву

cout << c[ i ] << " ";

cout << endl;

cout << setprecision(3) << setiosflags(ios::fixed |

ios::showpoint);

k = 0; // початкове значення кількості від’ємних елементів

// першої половини масиву

s = 0; // початкове значення суми від’ємних елементів масиву

m = N/2; // половина масиву

for (i = 0; i < m; i++) //опрацьовується перша половина масиву

if ( c[ i ] < 0 ) // пошук від’ємних елементів

{

s += c[ i ]; // накопичення суми від’ємних елементів

k++; // накопичення кількості від’ємних елементів

}

p = 1; // початкове значення добутку додатних елементів

// другої половини масиву

l = 0; // початкове значення кількості додатних елементів масиву

for (i = m; i < N; i++) //опрацьовується друга половина масиву

if ( c[ i ] > 0 ) // пошук додатних елементів

{ p *= c[i]; // накопичення добутку додатних елементів

l++; // накопичення кількості додатних елементів

}

if ( k == 0 ) // перевірка на наявність від’ємних елементів

cout << "Немає від’ємних елементів у першій по

ловині масиву!" << endl;

else

{

sr = static_cast< float >( s )/k; // підрахунок середньо

// арифметичного значення

// вивід результатів

cout <<"Сума від’ємних елементів першої половини

масиву = "<< s << endl;

cout << "Кількість від’ємних елементів першої

половини масиву = "<< k << endl;

cout << "Середнє арифметичне. від’ємних елементів

першої половини масиву = "<< sr <<endl;

}

if ( l == 0 ) // перевірка на наявність додатних елементів

cout << "Немає додатних елементів у другій половині

масиву!" << endl;

else

{

// вивід результатів

cout << "Кількість додатних елементів у другій

половині масиву= " << l << endl;

cout << "Добуток додатних елементів у другій

половині масиву= " << p << endl;

}

return 0;

}