МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
СУМСЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ
Кафедра моделювання складних систем
ОДЗ
здисципліни «Програмування та алгоритмічні мови»
на тему “Масиви”
Варіант №83
Залікова книжка №0303019
Виконав:
Студент Петренко М. О.
Група СУ-31
Курс 1
Факультет фізико - технічний
Перевірив ст. викл. Базиль О.О.
СУМИ 2004
ЗМІСТ
Завдання. 3
Вступ. 4
Блок-схема. 7
Опис змінних та функцій програми. 9
Інструкція користувачу. 12
Програма. 13
Результат роботи програми. 19
Висновок по роботі 20
Список використаних джерел. 21
Множина попарно різних площин в трьохвимірному просторі задана перерахуванням точок, через які проходить кожна із площин. Вибрати максимальну підмножину попарно паралельних площин.
Примітка: під час роботи з масивами введення даних виконувати двома шляхами:
а) автоматичне визначення елементів;
б) введення масиву елементів з клавіатури.
Мова С бере свій початок від двох мов програмування – BCPL та B. У 1967 році Мартін Річардс розробив BCPL як мову для написання системного забезпечення та компіляторів. В 1970 році Кен Томпсон використав B для створення ранніх версій ОС UNIX на комп’ютері DEC PDP-7. Як в BCPL, так і в B змінні поділялись на два типи – кожне значення даних займало одне слово в пам’яті і відповідальність за розрізнення, наприклад, цілих та дійсних чисел цілком лягала на плечі програміста.
Мова C була розроблена (на основі B) Денісом Річі із Bell Laboratories та вперше була реалізована у 1972 році на комп’ютері DEC PDP-11. Свою відомість мова C отримала в якості ОС UNIX. Сьогодні практично всі операційні системи написані на C та/або C++.
Деніс Рітчі, що відомий як творець мови С, частково відновив незалежність мови С від конкретного устаткування, що було втрачено в мовах-попередниках. Мова С була мовою програмування відносно низького рівня, що дозволяло контролювати кожен нюанс в роботі алгоритму і досягати максимальної ефективності. Але водночас у С закладені принципи мови високого рівня, що дозволили уникнути залежності програм від особливостей архітектури конкретного комп’ютера. Звертання до бібліотечних функцій у програмах, котрі написані мовою С відбуваються настільки часто, що ці функції можна вважати складовою частиною мови. Але їх легко можна переписати без втрат для структури програми – це безумовна перевага С. Відсутність вбудованих функцій дає програмі можливість завантажувати тільки ті бібліотеки функцій, що дійсно потрібні.
Швидкість виконання програм мовою С порівняна зі швидкістю роботи їх асемблерних аналогів. Хоча програма на асемблерній мові безумовно виконується швидше ніж аналогічна написана мовою С, але на асемблері програмісту прийдеться „писати” значно більше ніж на С. Для підтвердження вище сказаних слів наведемо приклад. Це програма написана мовою С, що виконує функцію виведення тексту на екран в режимі консолі.
#include <iostream.h>
void main ()
{
cout << “Some TEXT!!”;
}
А нижче наведена программа, написана на асемблері і виконує ті самі дії.
.486
.model flat,stdcall
option casemap:none
includelib \masm32\lib\kernel32.lib
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
.const
sConsoleTitle db 'Console Title',0
sWriteText db 'Some TEXT',0
.code
Main proc
LOCAL hStdout :DWORD
;title of console
invoke GetStdHandle, -11
mov hStdout,eax
;вывод Hello...
invoke WriteConsoleA, hStdout, offset sWriteText, 16d, 0 ,0
invoke Sleep, 3000d
;Exit
invoke ExitProcess, NULL
Main endp
end Main
Навіть з такого простого прикладу видно скільки зайвої роботи виконує програміст. Але не потрібно забувати про те, що програми на асемблерних мовах виконуються швидше за програми написані на мовах програмування високого рівня. На асемблерних мовах програмування найчастіше пишуть ядра операційних систем, драйвера та ін. Тобто ті ділянки програми які потребують найбільшої швидкодії.
Тепер докладніше про мову С++. Мова С++ була розроблена на початку 80-х в Bell Labs Б’ярном Страустрапом. Дана мова зберегла всі можливості, надані мовою С, доповнивши їх засобами об’єктно-орієнтовного програмування. Вона дозволяє розв’язувати задачі на досить високому рівні абстракції, підтримує модульне програмування, але зберігає при цьому простоту, компактність і ефективність мови С.
Функція:
double coord (double y1, double y2, double y3, double z1, double z2, double z3)
{
double r;
r = (y1 - y2)*(z1 - z3) - (z1 - z2)*(y1 - y3);
return (r);
} – обчислює одну координату вектора нормалі площини.
Нижче наведена функція обчислює факторіал. Вона буде використана в формулі, яка на перед розраховує якою буде кількість площин та їх попарних комбінацій.
double factorial (float n)
{ int i;
double r = 1;
for (i = 1; i <= n; i++) r *= i;
return (r);
}
int main () – головна функція, яка має місце в будь-якій програмі, що написана на мові. Їй в першу чергу передається керування.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.