Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практичні_алгоритм.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
404 Кб
Скачать
☆

Контрольні запитання

  1. Основні оператори мови Сі.

  2. Який формат має оператор for?

  3. Яке значення виведе програма:

#include <stdio.h>

#include <conio.h>

void main(){

int a=2, b=10, c=8, result;

if (a==2 && b>10)

{

if (c>1 && a<2 )

result=a*b;

else if (c>8 || a<2)

result=c-a;

else if (b%2 && c<8)

result=b-a-c;

else

result=a+b;

}

else

result=a+b+c;

printf(“%d”,result);

getch();

}

Практична робота № 7

Тема: Використання складених операторів. Мета роботи: вивчити особливості використання операторів циклу while, for і do while. Теоретичні відомості Часто при створенні програм на ЕОМ потрібно багато разів виконати одну і ту ж групу операторів. Наприклад, для обчислення суми ряду довжиною N або перебору елементів масиву з метою визначення найбільшого або найменшого значення і т.п. У всіх цих випадках необхідний інструмент для реалізації повторюваних операцій і таким інструментом є оператори циклу.

Оператор циклу while За допомогою даного оператора реалізується цикл, який виконується до тих пір, поки істинно умова циклу. Синтаксис даного оператора наступний: while (<умова>) { <Тіло циклу> } Наведемо приклад реалізації даного циклу, в якому виконується підсумовування елементів ряду поки S <N:

int N=20, i = 0;

long S = 0L;

while(S < N)

{

S=S+i;

i++;

}

У даному прикладі реалізується цикл while з умовою i <N. Так як початкове значення змінної i = 0, а N = 20, то умова істинно і виконується тіло циклу, в якому здійснюється підсумовування змінної i і збільшення її на 1. Очевидно, що на 20 ітерації значення i = 20, умова стане хибним і цикл буде завершений. Продемонструємо гнучкість мови С, змінивши даний приклад наступним чином:

int N = 20, i = 0; long S = 0L; while ((S = S + i + +) <N);

В даному випадку при перевірці умови спочатку виконуються оператори, стоять в дужках, де і здійснюється підсумовування елементів ряду і тільки, потім, перевіряється умова. Результат виконання обох варіантів програм однаковий і S = 21. Однак остання конструкція буває зручною при реалізації опитування клавіатури, наприклад, за допомогою функції scanf ():

int num; while (scanf ("% d", & mun) == 1) { printf ("Ви ввели значення% d \ n", num); }

Даний цикл буде працювати, поки користувач вводить цілочисельні значення і зупиняється, якщо введена літера або дійсне число. Слід зазначити, що цикл while можна примусово завершити навіть при істинному умови циклу. Це досягається шляхом використання оператора break. Перепишемо попередній приклад так, щоб цикл завершувався, якщо користувач введе число 0.

int num; while (scanf ("% d", & mun) == 1) { if (num == 0) break; printf ("Ви ввели значення% d \ n", num); }

Цикл завершується відразу після використання оператора break, тобто в наведеному прикладі, при введенні з клавіатури нуля функція printf () виконуватися не буде і програма перейде на наступний оператор після while. Того ж результату можна добитися, якщо використовувати складене умова в циклі:

int num; while (scanf ("% d", & mun) == 1 && num! = 0) { printf ("Ви ввели значення% d \ n", num); }

Таким чином, в якості умови можливі такі ж конструкції, що й в операторі if.

Оператор циклу do while Всі представлені вище оператори циклів, так чи інакше, перевіряють умову перед виконанням циклу, завдяки чому існує ймовірність, що оператори усередині циклу ніколи не будуть виконані. Такі цикли називають цикли з передумовою. Проте бувають ситуації, коли доцільно виконувати перевірку умови після того, як будуть виконані оператори, що стоять всередині циклу. Це досягається шляхом використання операторів do while, які реалізують цикл з післеумовою. Наступний приклад демонструє реалізацію такого циклу.

const int secret_code = 13; int code_ent; do { printf ("Введіть секретний код:"); scanf ("% d", & code_ent); } while (code_ent! = secret_code);

З наведеного прикладу видно, що цикл з постумовою працює до тих пір, поки істинно умова, тобто в даному випадку поки значення введеного коду буде відрізнятися від значення секретного коду. Також слід звернути увагу на те, що після ключового слова while повинна стояти крапка з коми. При реалізації даного циклу можна використовувати складові умови, подібно циклу while, а також примусово виходити з циклу з допомогою оператора break.

Хід роботи

  1. Ознайомитись з інструкцією до практичної роботи.

  2. Запустити компілятор Borland 31.

Програма знаходиться на диску D:\OT\BatchFiles для запуску треба запустити файл bc31.bat. Після запуску з’явиться вікно зображене на рисунку 7.1.

Рисунок 5.1. – Головне вікно Borland 31

Для створення нового файлу треба натиснути File – New. Для збереження файлу File – Save (зберігає файл з стандартною назвою), File – Save as (зберегти файл та ввести назву файлу).

Компіляція файлу проводиться за допомогою клавіш Ctrl+F9.

Примітка: для правильної роботи курсору треба виконати наступні дії – на верхній частині вікна натиснути правою кнопкою миші – Свойства і у пункті Правка знати мітку з пункта “Выделение мышью” – натиснути ОК.

  1. Розробити програму на мові Сі згідно з варіантом. Варіанти видаються згідно з порядковим номером студента у журналі.

Індивідуальне завдання

1. Написати програму введення довільних чисел до тих пір, поки не буде введено число 0 2. Написати програму введення довільних символів до тих пір, поки не буде введений символ q 3. Написати програму підрахунку суми 8 чисел, що вводяться з клавіатури 4. Написати програму обчислення добутку 5 чисел, введених з клавіатури 5. Написати програму обчислення модулів введених чисел до тих пір, поки користувач не введе 0 6. Написати програму визначення знака введених чисел до тих пір, поки користувач не введе 0 7. Написати програму визначення мінімального введеного числа з 9 чисел 8. Написати програму визначення максимального введеного числа з 7 чисел 9. Написати програму визначення мінімального серед позитивних введених 4 чисел 10. Написати програму визначення максимального серед негативних введених 7 чисел 11. Написати програму введення довільних чисел до тих пір, поки не буде введено число 0 12. Написати програму введення довільних символів до тих пір, поки не буде введений символ x 13. Написати програму підрахунку суми 10 чисел, що вводяться з клавіатури 14. Написати програму обчислення добутку 5 чисел, введених з клавіатури 15. Написати програму обчислення модулів введених чисел до тих пір, поки користувач не введе 0 16. Написати програму визначення знака введених чисел до тих пір, поки користувач не введе 78 17. Написати програму визначення мінімального введеного числа з 10 чисел 18. Написати програму визначення максимального введеного числа з 5 чисел 19. Написати програму визначення мінімального серед позитивних введених 10 чисел 20. Написати програму визначення максимального серед негативних введених 9 чисел 21. Написати програму введення довільних чисел до тих пір, поки не буде введено число 0 22. Написати програму введення довільних символів до тих пір, поки не буде введений символ i 23. Написати програму підрахунку суми 10 чисел, що вводяться з клавіатури 24. Написати програму обчислення добутку 7 чисел, введених з клавіатури 25. Написати програму обчислення модулів введених чисел до тих пір, поки користувач не введе 14 26. Написати програму визначення знака введених чисел до тих пір, поки користувач не введе 0 27. Написати програму визначення мінімального введеного числа з 10 чисел 28. Написати програму визначення максимального введеного числа з 9 чисел 29. Написати програму визначення мінімального серед позитивних введених 10 чисел 30. Написати програму визначення максимального серед негативних введених 7 чисел

Зміст звіту

  1. Тема практичної роботи.

  2. Мета практичної роботи.

  3. Завдання за варіантом.

  4. Текст програми на мові С++.

  5. Результати роботи програми.

  6. Відповіді на контрольні запитання.

  7. Висновок.

Контрольні питання 1. У чому відмінності між операторами while і do while? 2. Дайте поняття вкладених циклів? 3. Що таке цикл з передумовою? 4. Що таке цикл з постумовою? 5. Умова зупинки циклу while? 6. Для яких цілей використовуються цикли в програмуванні? 7. Перерахуйте оператори циклів в мові С.

Практична робота № 8

Тема «Використання функцій » Мета роботи: Вивчення функцій в мові С++. Знайомство з функціями, які повертають одне значення.

Завдання. Скласти алгоритм вирішення задачі відповідно до свого варіанту і написати програму на мові С + +. У звіті надати блок-схеми функції згідно завдання і основної функції.

Варіанти завдань 1. Вводиться послідовність цілих чисел, 0 - кінець послідовності. Для кожного числа послідовності знайти кількість його дільників (Функцією оформити визначення кількості дільників числа). 2. Вводиться послідовність цілих чисел, 0 - кінець послідовності. Для кожного числа послідовності знайти суму його простих дільників (Функцією оформити визначення суми простих дільників числа). 3. Вводиться послідовність з N цілих чисел. Знайти найменшу по значенню цифру в кожному числі послідовності (функцією оформити визначення найменшої цифри числа). 4. Вводиться послідовність з N цілих чисел. Знайти найбільшу за значенню парну цифру в кожному числі послідовності (функцією оформити визначення найбільшою парної цифри числа). 5. Вводиться послідовність з N цілих чисел. Знайти в кожному числі послідовності суму парних цифр (функцією оформити визначення суми парних цифр числа). 6. Вводиться послідовність цілих чисел, 0 - кінець послідовності. Знайти в кожному числі послідовності кількість парних і непарних цифр (функціями оформити визначення кількості парних і непарних цифр числа). 7. Вводиться послідовність з N цілих чисел. знайти середнє арифметичне цифр кожного числа послідовності (функцією оформити визначення середнього арифметичного цифр числа).

8. Вводиться послідовність цілих чисел, 0 - кінець послідовності. Для кожного числа послідовності перевірити, чи представляють його цифри суворо убуваючу послідовність, наприклад, 6543 (результатом функції буде 1 - Да, 0 - НІ). 9. Вводиться послідовність цілих чисел, 0 - кінець послідовності. Для кожного числа послідовності перевірити, чи представляють його цифри суворо зростаючу послідовність, наприклад, 1234 (Результатом функції буде 1 - Да, 0 - НІ). 10. Вводиться послідовність з N цілих чисел. Знайти кількість двох-і кількість трехразрядного чисел в послідовності (функцією оформити визначення кількості розрядів числа). 11. Вводиться послідовність з N цілих чисел. Для кожного числа послідовності вивести нове число, яке вийде після запису цифр числа у зворотному порядку (функцією оформити визначення нового числа для заданого). 12. Вводиться послідовність з N цілих чисел. Для кожного числа послідовності знайти кількість цифр 5 (функцією оформити визначення кількість цифр 5). 13.Дано натуральне число N. Визначити M = N!. Перевірити, як змінилося кількість розрядів в числі M в порівнянні з кількістю розрядів числа N (функцією оформити визначення кількості розрядів числа) 14.Дано натуральне число N. Зменшити число в 2 рази (поділ остачі). Перевірити, чи змінилося в числі після зменшення кількість розрядів (Функцією оформити визначення кількості розрядів числа). 15.Дано натуральне число N, перевірити, просте воно чи ні. Збільшити його значення на натуральне число M. Перевірити, чи залишилося воно простим1 (Функцією оформити перевірку числа: функція повертає 1, якщо число просте, 0 - в іншому випадку). 16.Вводиться послідовність з N цілих чисел. Для кожного числа послідовності вивести нове число, яке складається тільки з парних цифр вихідного числа (функцією оформити визначення нового числа для заданого). 17. Вводиться послідовність з N цілих чисел. Для кожного числа послідовності визначити мінімальну цифру і її місцерозташування в числі (функція визначає кількість цифр у числі). 18. Вводиться послідовність з N цілих чисел. знайти максимальне вчинене число2 в послідовності, якщо таких декілька, вивести їх кількість (функцією оформити перевірку числа: результатом функції буде 1 - число досконале, 0 - ні).

19. Вводиться послідовність цілих чисел, 0 - кінець послідовності. Визначити середнє арифметичне простих чисел послідовності (Функцією оформити перевірку числа: результатом функції буде 1 – число просте, 0 - ні). 20. Вводиться послідовність цілих чисел, 0 - кінець послідовності. Знайти кількість скоєних і простих чисел в послідовності (Функцією оформити перевірку числа: результатами функцій буде: 1 - число просте, 0 - число непросте; 1 - число досконале, 0 - ні). 21. Вводиться послідовність цілих чисел, 0 - кінець послідовності. Визначити мінімальне просте число послідовності (функцією оформити перевірку числа: результатом функції буде 1 - число просте, 0 - Немає). 22. Вводиться послідовність з N цілих чисел. Кожне просте число послідовності збільшити в два рази, порахувати кількість простих чисел у вихідній послідовності (функцією оформити перевірку числа: результатом функції буде 1 - число просте, 0 - ні). 23. Вводиться послідовність цілих чисел, 0 - кінець послідовності. Знайти, яких чисел в послідовності більше - простих або скоєних (функцією оформити перевірку числа: результатами функцій буде: 1 - число просте, 0 - число непросте; 1 - число досконале, 0 - немає). 24.Найті перший непарне і друге парне надлишкове чісло3, (функцією оформити перевірку числа: результатом функції буде 1, якщо число надлишкове, 0 - у противному випадком).

25.Сформувати послідовність з перших 10 надлишкових чисел, знайти суму елементів цієї послідовності (функцією оформити перевірку числа: результатом функції буде 1, якщо число надлишкове, 0 – в противному випадком). 26.Вводиться послідовність з N цілих чисел. Сформувати послідовність, кожен елемент якої дорівнює сумі цифр вихідної послідовності. Знайти суму цифр в сформованою послідовності. (функцією оформити визначення суми цифр числа).

Зміст звіту

  1. Тема практичної роботи.

  2. Мета практичної роботи.

  3. Варіант індивідуального завдання.

  4. Текст програми на мові С++.

  5. Результати роботи програми.

  6. Відповіді на контрольні запитання.

  7. Висновок.

Контрольні запитання

  1. Визначення поняття «функція» та призначення функцій.

  2. Визначення, оголошення та виклик функцій.

  3. Коли необхідно застосувати прототипи функцій?

  4. Використання функції із змінною кількістю параметрів.

  5. Аргумент функції main()?

ЗМІСТ

Практична робота №3. Типи даних

Практична робота №4. Використання основних операцій

Практична робота №5. Використання операндів.

Практична робота №6. Використання операторів.

Практична робота №7. Використання складених операторів.

Практична робота №8. Використання функцій.