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

Р О Б О Ч А П Р О Г Р А М А

з курсу «Практикум на ЕОМ»

Кафедра теорії та технології програмування

1-й курс, 1-й семестр, спеціальність: інформатика.

Всього годин – 34.

Форма контролю – рейтингова .

Максимальна кількість балів – 100.

Залік – 61 бал.

Тема 1. Інформаційні моделі та їх життєвий цикл

Системи об’єктів та їх моделі. Еквівалентність систем. Числові моделі систем. Системи числення. Абстрактні процедури та алгоритми. Властивості алгоритмів. Структурні блок-схеми (СБС) та композиції алгоритмів. Поняття інформаційної моделі та її життєвого циклу. Інформатика як наукова дисципліна. Програмування як процес побудови та підтримки життєвого циклу інформаційних моделей систем. Обчислювальні системи. Аналiз вимог та специфiкацiя вхідної моделi. Функцiональнi та процедурнi специфiкацiї. Проектування. Обгрунтування коректності специфікацій. Рекурентні співвідношення. Інваріанти циклів. Трансформація рекурентних специфікацій в СБС.

ЗАДАЧІ

1.1. Побудувати таблиці двійкових кодів 1-байтних, 2-байтних та 4-байтних цілих чисел. Старший розряд – знаковий. Значення 0 є ознакою додатного числа, а 1 - від’ємного. Для подання від’ємних чисел використати додатковий код. Яким буде код найбільшого та найменшого числа у цих таблицях?

1.2. Оцінити кількість а) десяткових цифр у числах б) шістнадцятирічних цифр у числах .

1.3. Побудувати алгоритми для переведення 2-х чисел в 16-річні і навпаки.

1.4. Обґрунтувати еквівалентність 2-ї, 10-ї та 16-ї арифметик натуральних чисел з операціями додавання, віднімання, множення , ділення, рівністю та порядком “менше” .

1.5. Довести еквівалентність систем та .

1.6. Нехай система цілочисельних векторів з покоординатними операціями додавання та віднімання. Побудувати її модель у полі раціональних чисел .

1.7. Нехай і - алгебра всіх підмножин . Побудувати для її булеву модель , де .

1.8. Провести аналіз задач та побудувати СБС для процедур обчислення залежностей:

а) часова стрілка утворює кут з променем, що проходить крізь центр і точку з позначкою 12 годин на циферблаті, . Визначити значення кута для хвилинної стрілки, а також кількість годин та повних хвилин;

б) цілі числа показують момент часу відповідно у годинах та хвилинах. Визначити найменший час (число повних хвилин) до моменту, коли часова та хвилинна стрілки на циферблаті: 1) співпадуть, 2) розташуються перпендикулярно одна до одної;

в) для дійсного знайти значення , де  періодична функція з періодом 1.5, що співпадає на відрізку : 1) з функцією , 2) з функцією ;

г) для дійсного знайти значення , де  періодична функція з періодом 2, що співпадає на відрізку : 1) з функцією , 2) з функцією .

1.9. Довести, що будь-яка СБС над базисом , що обчислює показникову функцію , , має циклічну структуру.

В задачах 1.10 – 1.16 побудувати СБС над відповідним арифметичним базисом для обчислення залежності. Всі числа розглядаються в 10-й системі.

1.10. Дано

а) З’ясувати, чи містить десяткове подання числа входження цифри 7, підрахувати кількість таких входжень.

б) Поміняти місцями першу й останню цифри в числі

в) Приписати одиницю зліва й справа до числа

1.12. Дано Знайти найбільший спільний дільник НСД ( ) цих чисел. Використати алгоритм Евкліда для знаходження НСД двох натуральних чисел за допомогою віднімання.

1.13. Дано Обчислити:

а) ;

б) ;

в) ;

г) .

1.14 Дано Обчислити:

а) ;

б) ;

в) .

1.15. Дано Обчислити:

а) ;

б) добуток перших співмножників

1.16. Дано Обчислити, уникнувши вкладених циклів:

а) , б) , в) , г) ,

д) , е) , є) .

1.17. Дано Реалізувати “швидкі”:а) піднесення до степеня та б) множення з кількістю множень та додавань ~ .

1.18. Побудувати інваріанти циклів в задачах 1.13-1.18.

ТЕМА 2. МОВИ ПРОГРАМУВАННЯ С/C++.

Мови програмування. Синтаксис, семантика та прагматика програм. Деякі методологічні принципи програмування. Класифікація мов програмування. Мови програмування С/C++. Лексика мов. Синтаксична структура програм. Функція main(). Препроцесорні засоби. Директиви #include та #define. Вирази та оператори. Пріоритети операцій. Операції присвоєння (=, +=,…). Складений оператор ({ … }), розгалуження (if … else…), ітерація (while ... do …), повторення (do … whilel …), структурний цикл (for …), перемикач (switch…. ), оператор break, оператор goto, Стандартні типи даних. Константи та змінні. Цілі типи (char, int, short, long). Стандартні препроцесорні числові константи. Побітові операції. Дійсний тип (float, double). Внутрішнє подання стандартних типів даних. Автоматичне та примусове перетворення типів у виразах. Стандартні потоки введення/вивведення stdin та stdout (функції getchar(), putchar(), scanf(….), printf(…)), операції << та >>. Трансформація СБС в програмні структури мови С/C++.. Інтегровані середовища Турбо С та DevC++ .

ЗАДАЧІ

2.1 а) знайти значення препроцесорної константи EOF; б) перевірити, що вираз getchar()!= EOF має значення 0 або 1.

2.2. Підрахувати кількість прочитаних з клавіатури: а) символів, б) символів табуляції (‘\t’), прогаликів (‘ ‘) та рядків (‘\n’). Для завершення процесу читання ввести символ ‘Ctrl+Z’

2.3 а) скопіювати введені з клавіатури символи (тобто символи із стандартного вхідного потоку stdin) на екран( стандартний вихідний потік stdout); б) те саме, але при цьому усунути “зайві” прогалики..

2.4. Скопіювати введені з клавіатури символи у вихідний потік, розміщуючи по одному слову на рядок. Підрахувати кількість введених з клавіатури слів. Слово – це послідовність непорожніх символів, розташованих :1) між порожніми символами або 2) на початку (до першого порожнього символу) чи в кінці (після останнього порожнього символу) вхідного потоку.

2.5. Написати за СБС задач 1.8,1.10 - 1.16 відповідні програми.. Вхідні дані задавати за допомогою препроцесорних констант.

Наприклад, #define Х=3.28

# define N=10

2.6. Дано цілі числа . Знайти: а) всі їх загальні дільники; б) та .

2.7. Обчислити вираз :

а) зліва направо;

б) зліва направо, але спочатку знайти суму членів з непарними знаменниками, потім суму членів з парними знаменниками, а потім взяти їх різницю;

в) з права наліво;

г) див. б), але обчислення проводяться з права наліво.

Порівняти результати машинних обчислень.

2.8. Знайти “машинні нулі” в околі чисел та . Це найбільші числа вигляду такі, що та відповідно.

2.9. Знайти наближені значення функцій та з заданою точністю за допомогою степеневих рядів відповідно та . Враховувати тільки ті члени ряду, які за абсолютною величиною більші .

2.10. Знайти наближені значення наступних констант з заданою точністю , використовуючи їхні подання у вигляді нескінчених степеневих рядів та добутків. Для сум враховувати тільки ті члени ряду, які за абсолютною величиною більші , а для добутків – тільки ті співмножники, які відрізняються від 1 більш, ніж на .

а) ; б) ; в) ;

г) ; д) ;

е) ; є) .

2.11. Знайти наближені значення функцій з задачі 2.8 з урахуванням їх “повільного” спадання для великих аргументів. Використати тотожність

, та періодичність функції . Тут дробова частина числа . Обчислення першої за допомогою ряду звести тільки для , а другої - тільки для . З’ясувати як змінюється точність обчислення зі зростання х=0.1, 1.0,10.0,100.0 і т.д. для , порівнюючи відповідні значення зі значенням стандартних функцій та .

2.12. Протабулювати поліном на інтервалі з кроком 0.05. 2.13. Те саме, що і в 2.12, але результат табуляції подати у вигляді таблиці. Для побудови таблиці скористатися символами псевдографіки.

2.14. У вхідному потоці задано послідовність символів, що складають текст певної С–програми. Отримати у вихідному потоці варіант програми з вилученими: а) коментарями, б) зайвими «порожніми» символами (прогалики, табуляції \t, повернення-каретки \r, новий рядок \n).

2.15. З клавіатури вводиться символьна інформація. Потрібно: а) замінити в ній всі символи табуляції відповідною кількістю символів-прогаликів; б) максимально стиснути вхідну послідовність шляхом заміни серій із символів-прогаликів на символи табуляції. Стиснення є оберненою дією до дії з п. а). Тобто, якщо виконати над вхідною послідовністю почергово дії з п.п. а) та б), то це поверне нас знову до початкової вхідної послідовності.

2.16. Дано ціле . Отримати запис цього числа: а) українською мовою; б) в римській системі числення.

2.17. У вхідному потоці задано послідовність символів. Необхідно: а) замінити в тексті всі слова , що закінчуються на «ing», на ті ж самі слова тільки з закінченням на «ed»; б) замінити всі входження в текст даного слова на інше задане слово; в) те саме, що і в п.2), але замінювати потрібно не слова, а підслова на задане підслово і заміна має бути діалоговою.

2.18 . Що виведе наступний фрагмент програми:

а) {int x =011, y = 9, z = 4; printf("%d\n", x|z<<y);}

б) {int x, y, z; x = y = z = 1; ++x || ++y && ++z; printf("%d\t%d\t%d",x,y,z);}

в) {int x =011, y = 9, z = 5; printf("%d\n", x<=y ? x&~z:z&y);}

г) {int x,y,z; x = y = z = 1; x++ && ++y || ++z; printf("%d\t%d\t%d",x,y,z);} ?

Результат пояснити.

2.19 . Перевірити чи є задане натуральне число простим.

2.20 . Натуральне число називається досконалим, якщо воно збігається з сумою усіх .своїх власних (тобто менших самого числа) дільників. Наприклад, першим таким числом є . Знайти всі досконалі числа не більші .

2.21 . Нехай Дано дійсні , , натуральне . Знайти .

2.22 . Нехай Знайти .

2.23 . Нехай Дано натуральне . Отримати .

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