69751

Принцип локалізації

Домашняя работа

Информатика, кибернетика и программирование

Метод покрокової деталізації та апарат процедур якраз і дають змогу вести таку паралельну розробку програм. Створені часткові алгоритми подають у вигляді досить автономних частин програми - описів процедур, які потім достатньо вставити в розділ опису процедур і функцій програми.

Украинкский

2014-10-09

38 KB

1 чел.

Самостійне вивчення

Тема 9. Принцип локалізації

Для розв'язування складних задач за допомогою комп'ютера, як зазначено, застосовують метод низхідного програмування і покрокової деталізації. У цьому випадку задачу розділяють на простіші підзадачі, які доручають виготовляти різним програмістам або колективам, щоб пришвидшити виготовлення великої програми. Метод покрокової деталізації та апарат процедур якраз і дають змогу вести таку паралельну розробку програм. Створені часткові алгоритми подають у вигляді досить автономних частин програми - описів процедур, які потім достатньо вставити в розділ опису процедур і функцій програми. За такої організації роботи бажано, щоб реалізація окремих алгоритмів була якомога автономнішою, а в завданні з виготовлення певної процедури потрібно задавати тільки її функцію і зв'язки за вхідними і вихідними даними.

Однак у процесі розробки часткових алгоритмів виникає потреба вводити додаткові типи значень, програмних об'єктів, наприклад, допоміжних змінних для подання проміжних результатів. У цьому випадку можуть виникнути труднощі, пов'язані з тим, що однакові імена можуть мати тільки одне призначення і кожне з них може бути використане для позначення тільки однієї змінної.

Ці труднощі в мові Паскаль усунуті завдяки блоковій структурі програми і принципу локалізації, суть якого полягає в тому, що імена, введені в конкретній процедурі, чинні тільки в межах цієї процедури. Розглянемо такий приклад:

program LOC(output);

const n=1;

var t: real; x: char;

procedure P(x, y: real);

var n: real;

begin

n:=x+t;

t:=y;

writeln(n, t, x);

end,

begin

t:=n/2;

x:="+";

P(n, 0.8);

writeln(n, t, x);

end.

Це приклад програми, в тілі якої описана процедура Р. У блоці головної програми описано чотири ідентифікатори: n, t, х і Р. їхні описи чинні в усьому описі головної програми, за винятком, можливо, опису процедур і функцій.

Опис процедури може містити три типи ідентифікаторів: формальні параметри, глобальні й локальні ідентифікатори.

Щодо формальних параметрів, то відомо, що вони можуть бути параметрами-значеннями і параметрами-змінними. Змінні, що відповідають параметрам-значенням, діють тільки протягом виконання процедури; параметри-змінні тільки вказують на відповідні змінні програми, яка викликає, і є фактичними параметрами.

У наведеному вище прикладі параметрами процедури Р є формальні параметри-значення. У разі звертання їм будуть присвоєні значення фактичних параметрів x=1, v=0.8, а після виходу з процедури вони стають недоступними.

Глобальні ідентифікатори не є формальними параметрами і не описані в тілі процедури, вони можуть мати той самий сенс, що й до моменту входження в процедуру. В процедурі Р глобальним ідентифікатором є змінна t. У тілі процедури ця змінна має значення r=0.5. Отже, за допомогою глобальних ідентифікаторів можливий безпосередній зв'язок процедури з блоком, який її охоплює, обминаючи формальні параметри.

Локальні ідентифікатори також не є формальними параметрами, однак, на відміну від глобальних, описані в тілі процедури. Принцип локалізації полягає в такому: якщо якийсь ідентифікатор описаний у тілі процедури, то всередині процедури він набуває змісту згідно з описом. Якщо ж цей ідентифікатор був описаний ще й поза тілом процедури - в блоці, що її охоплює, то дія попереднього опису тимчасово (до виходу з процедури) припиняється. Зокрема, якщо ідентифікатор у попередньому описі був іменем деякого програмного об'єкта, то цей об'єкт стає недоступним з тіла процедури. Після виходу з процедури опис у тілі процедури вже не діє і цей ідентифікатор знову набуває того змісту, що мав до входження в процедуру (якщо він був описаний поза процедурою). Якщо ідентифікатор, локалізований у тілі процедури, є іменем програмного об'єкта, то у разі виходу з процедури він перестає діяти, а після входження знову функціонує.

У прикладі, який ми розглядаємо, п описана в головній програмі як стала. Після входження в процедуру вона втрачає сенс сталої і набуває сенсу дійсної змінної. Програма працює так: t=0.5; х='+'. Під час входження в процедуру змінним х і у, що є формальними параметрами, присвоюються значення х=1; y=0.8. Дійсна змінна n=1+0.5= 1.5 (оскільки t зберігає свій сенс і у процедурі як глобальна змінна), t=0.8. Отже, оператор виведення дає 1.5; 0.8; 1.0. Після виходу з процедури виводяться величини, позначені такими ж ідентифікаторами. Однак тепер будуть виведені дещо інші значення - 1; 0.8; +, оскільки перший і третій ідентифікатори набувають сенсу, описаного в головній програмі, і виводяться значення, які вони мали до входження в процедуру; тільки t, як глобальна змінна, має значення, одержане в процедурі.

Під час викликання фактичних параметрів за іменем (тобто коли формальні параметри є параметрами-змінними), може трапитись колізія між ними й ідентифікаторами, локалізованими в тілі процедури. Однак вона буде обов'язково усунена автоматично внаслідок зміни ідентифікаторів, локалізованих у тілі процедури, що забезпечує транслятор. Наприклад,

var x, у: real;

………….

procedure P1(b: real; var y: real);

………….

P1(x,y);

…………

Цю колізію транслятор усуває, вводячи в процедурі замість у іншу змінну, наприклад у 1.

Отже, як локалізовані в процедурі можна брати довільні ідентифікатори, які не використовуються як формальні параметри цієї процедури і не збігаються з глобальними ідентифікаторами. З іншими ідентифікаторами, що використані поза цією процедурою, вони можуть збігатися.

Зазначимо, що принцип локалізації стосується всіх описів, у тому числі й описів процедур. Під час описування деякої процедури Р може виникнути ситуація, коли треба використати інші процедури. Якщо ці процедури будуть використані тільки в Р, тобто вони мають локальний характер, то їхній опис доцільно ввести всередину Р. Наприклад,

procedure P(a: real; var b: real);

var с: integer;

procedure P1(d: integer; x: real);

………

begin

………

end;

procedure P2()

……..

begin

……..

end;

…….

Begin

…….

      P1();

      …….

      P2();

      …….

      end

Звертання до процедур P1 і Р2 можливе лише в процедурі Р, причому формальні параметри зовнішньої процедури можна використовувати як фактичні параметри у разі звертання до локалізованих у ній процедур.


 

А также другие работы, которые могут Вас заинтересовать

52936. Використання евристик на уроках математики 346.5 KB
  Завдання: Знайдіть графіки функцій змальованих на картині і запишіть ним відповідні формули. Завдання: Які чотирикутники змальовані на картині Перерахуєте їх дайте визначення кожному розкажіть якими властивостями і ознаками вони володіють. Що ви знаєте про вписані багатокутники Біля будьякого чотирикутника можна описати коло Біля яких чотирикутників на картині описані кола Прямокутник квадрат. Які багатокутники називаються описаними біля кола У які чотирикутники можна вписати коло Які описані чотирикутники змальовані на...
52937. Подорож по країні Excel. Введення та редагування даних різного типу. Автозаповнення. Копіювання, переміщення, вилучення, форматування таблиці 205.5 KB
  Домашнє завдання на наступний урок та інструктаж щодо його виконання: Достатній рівень: надр.процесорі таблицю Календар на 2011 рік Високий рівень: робота над проектом Розробка системи електронних таблиць що буде забезпечувати роботу певного магазину і складу при ньому 1 таблиця – Прайслист товарів послуг в різній валюті. Д Зберегти виконане завдання до своєї папки з ім'ям Розрахунки Домашнє завдання: Достатній рівень: надр.процесорі таблицю Календар на 2011 рік Високий рівень: робота над проектом Розробка...
52938. Екскурсія до військово – історичного музею Повітряних Сил Збройних Сил України 8.52 MB
  Вінниця 2012 Тема: Екскурсія до військово – історичного музею Повітряних Сил Збройних Сил України. Хід екскурсії Сьогодні експозиція музею Повітряних Сил Збройних Сил України нараховує 41 експонат військової техніки а у фонді налічується більше 2000 предметів. Колективом музею створено декілька тематичних експозицій: â€œВінничани – Герої Радянського Союзу†“43тя Ракетна армія та Ракетні війська стратегічного призначення†“Історія створення ВійськовоПовітряних Си놓Історія військ Протиповітряної оборон膓Авіаційна...
52939. ЕКСКУРСІЯ ПО МІСТАМ УКРАЇНИ 147.5 KB
  T. The last time we spoke about Zaporizhyan Sich and Zaporizhya, the city closely connected with Zaporizhyan Sich. But in the history of our Motherland there were very many other historical events. Today we’ll start our talk about Ukrainian towns and cities.
52940. Эйдетические формы обучения русскому языку 179.5 KB
  Владимир Троицкий А когда уроки для нас становятся светлыми и радостными праздниками Когда они проходят интересно плодотворно на одном дыхании Наверное когда у вас всё получается когда всё понимаете и запоминаете и эти знания вы можете применить на практике. Уже 17 лет на каждом уроке русского языка я провожу такой эксперемент используя различные формы и методы развития образной памяти и всякий раз убеждаюсь что применение эйдетической...
52941. Перетворюємо навчання у захоплюючу творчу гру 764 KB
  Синий слон Оранжевый –арбуз Голубой газета Желтый жук Красный карандаш Зеленый замок Фиолетовый фрукты Белый бант Чёрный часы Учитель называет слова один раз ученики повторяют в такой же последовательности а потом в разброс. Начинают игру словами: Бабушка укладывает в свой чемодан. Заучування вірша за піктограмами і словами вчителя. Етап проектування і покладання мети Давайте пригадаємо: що таке ейдетика Які прийоми ейдетики ми використовуємо щоб краще запам’ятати слова Цифри Сьогодні використовуючи різні...
52942. Задачі Ейлера 2.09 MB
  Захоплення математикою здебільшого починається з міркування над якоюсь цікавою задачею. Вона може зустрітися на уроці, на заняті математичного гуртка, в математичній літературі. Завдання сучасної школи виховати творчу особистість. Знання, навички уміння здобувають в результаті власної активної діяльності.
52943. Використання ігрового методу навчання іноземної мови на прикладі казок. Тестові завдання 49 KB
  A beautiful princess lives in a palace with her father the King and her seven sisters. She has got a golden ball. Every day she plays with her ball in the garden of the palace. There is a deep, dark pond in the garden. When the weather is hot, the princess likes to play near the pond. One day she drops her ball into the pond.
52944. 10 самых интересных фактов об автомате Калашникова 23 KB
  Его официальное название – 762мм автомат Калашникова образца 1947 года АК47. В США автомат Калашникова можно приобрести за 70350 долларов. Автомат Калашникова входит в Книгу рекордов Гиннесса как самое распространенное оружие в мире.