- •Лабораторна робота №1. Тема: Побудова блок-схем алгоритмів засобами програми Word 2010.
- •Хід роботи
- •Лабораторна робота № 2. Тема: Робота та знайомство в середовищі програмування. Запуск програм на виконання. Редагування тексту.
- •Теоретичні відомості
- •Хід роботи
- •Лабораторна робота №3. Тема: Побудова алгоритмів за допомогою DiagramDesigner.
- •Теоретичні відомості
- •Хід роботи
- •Лабораторна робота №4. Тема:Створення лінійних програм. Процедури вводу та виводу в машинному коді. Описати кожний рядок програми в звіті рукописом!!!!!!!!!!!!!!!!!
- •Теоретичні положення
- •Лабораторна робота №5. Тема: Написання програм використовуючі математичні функції. Освоєння арифметичних операторів. Описати кожний рядок програми від руки.
- •Лабораторна робота №6. Тема: Написання програм використовуючи логічні значення Boolean.
- •Теоретичні відомості
- •Булеві значення.
- •Детальний розпис програми:
- •Лабораторна робота №7. Тема: Типи в програмах.
- •Теоретичні положення
- •Хід роботи
- •Лабораторна робота №8. Тема: Оператор вибору в циклах середовища пргограмування.
- •Хід роботи
- •Оператор вибору варiанту.
- •Циклiчнi алгоритми.
- •Циклiчнi алгоритми
- •Лабораторна робота №9. Тема: Використання процедур та функцiй. Звукові можливості Паскаля.
- •Теоретичні відомості
- •Хід роботи
- •Лабораторна робота №10. Тема: Використання перелiчуваного та обмеженого типу даних.
- •Теоретичні відомості
- •Хід роботи
- •Лабораторна робота №11. Тема: Одновимiрнi масиви.
- •Теоретичні відомості
- •1. Одновимірні масиви (рядки, вектори):
- •Можна і так:
- •Хід роботи
- •Двовимiрнi масиви.
- •Лабораторна робота №12. Тема: Використання множин.
- •Теоретичні відомості
- •Хід роботи
- •Лабораторна робота №13. Стандартн і модулі Crt, Dos, System, Graph, Printer. Робота з клавiатурою
- •Теоретичні відомості
- •Іі семестр. Мова програмування с Лабораторна робота №13. Тема: Проста програма на с: друк рядка тексту
- •Лабораторна робота №14. Тема: Арифметика в с. Використання операцій рівності і відношення
- •Лабораторна робота №15 . Тема: Структурна розробка програм. Структура вибору if. Структура вибору if/else. Структура повторення while
- •Операції інкремента і декремента
- •Лабораторна робота №16. Тема: Структурна розробка програм. Структура вибору if. Структура вибору if/else. Структура повторення while
- •Основи структур повторення while
- •Структура повторення for
- •8. Напишіть і запустіть програму на виконання що написана нижче. Потім напишіть програму що кінцевим числом виведе на екран ваш номер варіанту по списку.
- •Лабораторна робота №17. Тема: Програмні модулі в с. Функції математичної бібліотеки
- •Генерація випадкових чисел
- •Рекурсія
- •Обчислення факторіалів рекурсивною функцією
- •Лабораторна робота №18. Тема: Приклади роботи з масивами
- •Передача масивів у функції
- •Лабораторна робота №19. Тема: Сортування масивів
- •Пошук в масивах
- •Двійковий пошук в сортованому масиві
- •Ініціалізація багатовимірних масивів
- •Лабораторна робота №20. Тема: Покажчики
- •Лабораторна робота №21. Тема: Покажчики
- •Лабораторна робота №22. Тема: Форматоване введення/вивід
- •Лабораторна робота №23. Тема: Використання прапорів в рядку управління форматом printf
- •Лабораторна робота №24. Тема: Використання прапорів в рядку управління форматом printf
- •Лабораторна робота №25. Тема: Структури, об′єднання, операції з бітами і перечисленнями
- •10.18. Використання перечислення Лабораторна робота №26. Тема: Створення файлу послідовного доступу
Рекурсія
Програми, які ми обговорювали, мали в основному структуру функцій, які викликають інші функції, підкоряючись строгій ієрархії. Для деяких типів завдань корисно мати функції, які викликають самі себе. Рекурсивна функція - це функція, яка викликає саму себе або непосредственно або побічно через іншу функцію. Рекурсія - складний предмет, що вивчається лише в деяких курсах по комп'ютерних дисциплінах. У цьому і в наступних розділах наведені прості приклади рекурсії.
7. Напишіть і запустіть програму на виконання що написана нижче. Дослідіть хід її роботи.
/* Приклад по зонах дії */
#include <stdio.h>
void a(void); /* прототип функції */
void b(void); /* прототип функції */
void c(void); /* прототип функції */
int х = 1;/* глобальна змінна */
main ( )
{
int х = 5; /* локальна змінна для main */
printf ("local х in outer scope of main is %d\n", x);
{ /* початок нової зони дії */
int х = 7;
printf ("local x in inner scope of main is %d\n", x);
} /* кінець нової зони дії */
printf("local x in outer scope of main is %d\n", x);
a (); /* а містить автоматичну локальну x */
b (); /* b містить статичну локальну x */
c (); /* c використовує глобальну х */
а (); /* а наново ініціалізував автоматичну локальну х */
b (); /* статична локальна х зберігає попереднє значення */
c (); /* глобальна х також зберігає своє значення */
printf("local х in main is %d\n", x);
return 0;
}
void a(void)
{
int x = 25; /* ініціалізувався при кожному виклику а */
printf("\nlocal х in a is %d after entering a\n", x);
++x;
printf("local x in a is %d before exiting a\n", x);
}
void b(void)
{
static int x = 50; /* ініціалізація як static */
/* тільки при першому виклику b */
printf("\nlocal static х is %d on entering b\n", x);
++х;
printf("local static х is %d on exiting b\n", x)
}
void c(void)
{
printf("\nglobal x is %d on entering c\n", x);
x *= 10;
printf("global x is %d on exiting c\n", x);
local x in outer scope of main is 5
local x in inner scope of main is 7
local x in outer scope of main is 5
local x in a is 25 after entering a
local x in a is 26 before exiting a
local static x is 50 on entering b
local static x is 51 on exiting b
global x is 1 on entering c
global x is 10 on exiting c
local x in a is 25 after entering a
local x in a is 26 before exiting a
local static x is 51 on entering b
local static x is 52 on exiting b
global x is 10 on entering c
global x is 100 on exiting c
local x in main is 5
Програма, що ілюструє зони дії
8. Напишіть і запустіть програму на виконання що написана нижче. Дослідіть хід її роботи.
Відсутність повернення значення з рекурсивної функції, коли він потрібний.
/* Рекурсивна функція factorial */
#include <stdio.h>
long factorial(long);
main ( )
{
int i;
for (і = 1; і <= 10; i++)
printf("%2d != %ld\n", i, factorial (i));
return 0;
}
/* /* Рекурсивне визначення функції factorial */
long factorial(long number)
{
if (number <= 1)
return 1;
else
return (number * factorial(number - 1));
}
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
