Масиви: Обов'язкове домашнє завдання з дисципліни «Програмування та алгоритмічні мови»

Страницы работы

21 страница (Word-файл)

Содержание работы

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

СУМСЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ

Кафедра моделювання складних систем

ОДЗ

здисципліни «Програмування та алгоритмічні мови»

на тему “Масиви”

Варіант №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 () – головна функція, яка має місце в будь-якій програмі, що написана на мові. Їй в першу чергу передається керування.

Похожие материалы

Информация о работе