68996

Оператор циклу. Масиви

Лекция

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

Алгоритм циклічної структури повинен містити такі етапи: 1 підготовку циклу задання початкових значень змінних циклу; 2 тіло циклу дії що виконуються в ньому; 3 модифікацію значень змінних циклу перед кожним новим його повторенням; 4 керування циклом перевірку умови продовження циклу і перехід...

Украинкский

2014-09-28

51.5 KB

0 чел.

Лекція № 6

Тема: Оператор циклу. Масиви.

План заняття:

  1.  Структура повторення
  2.  Цикл з параметром
  3.  Цикл з перед умовою
  4.  Цикл з післяумовою
  5.  Ітераційні цикли
  6.  Одновимірні масиви
  7.  Багатовимірні масиви
  8.  Особливості роботи з масивами

Структура повторення

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

Такий процес називають циклічним. Ділянки програми, які реалізують такий процес, називаються циклами, а змінні в циклі - циклічними змінними. Алгоритм циклічної структури повинен містити такі етапи:

1) підготовку циклу - задання початкових значень змінних циклу;

2) тіло циклу - дії, що виконуються в ньому;

3) модифікацію значень змінних циклу перед кожним новим його повторенням;

4) керування циклом - перевірку умови продовження циклу і перехід на початок циклу чи вихід із циклу залежно від виконання умови.

Цикл з параметром

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

Загальний вигляд оператора циклу з параметром такий:

for <параметр_циклу>:=<вираз1> [to|downto] <вираз2>

do <оператор>

де <параметр_циклу> - змінна будь-якого простого типу, крім дійсного; <вираз1 > і <вираз2> - вирази, тип яких повинен збігатися з типом змінної параметра циклу; <оператор> - будь-який оператор мови Паскаль.

Використовуючи оператор циклу з параметром, треба враховувати такі правила.

1. Заборонено змінювати всередині циклу, тобто в тілі циклу, значення <параметр_циклу>, <вираз1>, <вираз2>.

2. Заборонено входити в цикл, оминувши оператор for, оскільки значення <параметр_циклу>, <вираз1> і <вираз2> будуть невизначеними.

3. Цикл не виконується взагалі, якщо початкове значення більше (а у випадку downto - менше) від кінцевого.

4. Після закінчення виконання циклу значення змінної <па-раметр_циклу> не визначене і не може бути використане для подальших обчислень.

5. Після службового слова do може стояти тільки один оператор; якщо в циклі треба виконати групу операторів, то їх беруть в операторні дужки begin-end;

6.  Із складеного оператора можна вийти за допомогою оператора безумовного переходу goto. У цьому випадку останнє значення <параметр_циклу> зберігається.

Цикл з перед умовою

Часто на практиці доводиться стикатися з циклічними обчисленнями, коли кількість повторень циклу наперед невідома, зате задана деяка умова закінчення циклу. Для таких випадків у мові Паскаль є два типи операторів - цикл з передумовою і цикл з післяумовою.

Загальний вигляд оператора циклу з передумовою такий:

while <умова> do <оператор>,

де <умова> - це будь-який логічний вираз, <оператор> -довільний оператор мови Паскаль. Оператор виконується в циклі доти, доки умова має значення true. Як тільки значення умови стане false, відбувається вихід з циклу і виконуватиметься наступний оператор. Оператор у циклі з передумовою може не виконуватись зовсім, якщо умова дорівнює false з самого

початку.

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

sum:=0; numb:=0;

while sum<=board do begin

numb:=numb+1; sum:=sum+1/numb end

Цикл з післяумовою

Іншим способом організації циклічного процесу, коли кількість повторень невідома, є використання оператора циклу з післяумовою. Загальний вигляд цього оператора такий:

 repeat

<оператор 1>;

<оператор 2>;

<оператор п>

 until <умова>

де <умова> - це логічний вираз; <оператор 1> ... <оператор n> -будь-які оператори мови Паскаль.

Дія оператора з післяумовою подібна до дії оператора з передумовою (while), однак перевіряється умова закінчення циклу після виконання кожного циклу. Тому цикл з післяумовою виконується мінімум один раз. У ньому виконуються всі оператори, записані між словами repeat і until, які відіграють роль операторних дужок. Оператори виконуються доти, доки умова дорівнює false.

Ітераційні цикли

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

lim дп = а.

n->~

Це, звичайно, цикли з невідомою наперед кількістю повторень. Кожне наступне значення послідовності обчислюється через попереднє gn-1, і з урахуванням збіжності є точнішим наближенням до результату, тобто границі а. Цикли, що реалізують таку послідовність наближень, називаються ітерацій-ними.

Умова продовження (чи закінчення) в ітераційних циклах ґрунтується на властивості безмежного наближення елементів послідовності до границі а. Ітераційний цикл закінчуєтся, коли для деякого п виконується умова

abs (gт-gт-1) <= е,

де е- допустима похибка обчислень.

Одновимірні масиви

Масив - це впорядкований набір даних однакового типу. Приклади масивів: рядок тексту, компонентами якого є окремі символи; вектор, що є масивом дійсних чисел; матриця, як масив векторів.

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

var х, у, v: array [1..10] of real;

Можливий і такий опис:

s: array [1147..1999] of integer;

r: array [-754..-1] of integer;

тобто від'ємні числа обмежують діапазон.

Як тип індексу, крім діапозону integer і перелічуваного типу, можна використовувати типи boolean і char, як упорядковані.

Окремий компонент масиву вибирають, зазначаючи ідентифікатор масиву, після якого в квадратних дужках записують індексний вираз. Індексний вираз повинен набувати значення, що є в діапазоні, визначеному типом індексу. Наприклад, для описаних вище типів змінних можна писати, визначивши наперед:

і:=5; j:=2; v[i-j]:=7.5;

c[sr]:=false;

z[pred(nd)]:=c[sb];

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

Багатовимірні масиви

Оскільки, як зазначено, тип компонента масиву довільний, то він може бути й масивом. У результаті одержують багатовимірний масив. Приклад опису такого масиву:

var М: array [А..В] of array [C..D] of T;

де Т - раніше описаний тип (або стандартний).

Тоді j-й компонент (типу Т) i-го компонента масиву М матиме вигляд M[i][j]. Частіше для багатовимірних масивів використовують скорочену форму опису

var

М: array [A..B, C..D] of T;

а компоненти позначають M[i,j].

Сталі, що визначають тип індексів масиву у разі його опису (тут А,В,С, D), потрібно визначити перед їхнім застосуванням для опису масиву.

Наведений приклад є прикладом двовимірного масиву. Однак Т також може мати тип масиву. Якщо задано п типів індексів, то масив називається n-вимірним.

Особливості роботи з масивами

У випадку, коли змінні А і В є масивами тотожного типу, то присвоєння

А:=В

можливе, якщо масиви допускають покомпонентне присвоєння

А[і]:=В[і]

для всіх і. Таке присвоєння є скороченим записом покомпонентного присвоєння.

Для задания значень елементів масиву, крім операторів присвоєння, можна використати оператори введення даних. У мові Паскаль для введення і виведення масивів застосовують поелементне введення і виведення, коли вводять і виводять окремі елементи масиву. Наприклад:

program vvid;

var

v: array [1..3] of integer;;

mas: array [1..2, 1..3];

i,j: integer; begin

read(v[1], v[2], v[3]);

for i:=1 to 2 do

forj:=1 to 3 do read(mas[i,j]);

 {виведення масивів}

for i:=1 to 3 do writeln(v[i]:5);

 for i:=1 to 2 do begin

 writeln;

for j:=1 to 3 do

write(mas[i,j]:4);

 end

 end.

Під час роботи з масивами найчастіше виникають помилки, пов'язані з виходом індекса за допустимі межі. Частину таких помилок виявляє компілятор. Наприклад:

var М: array [1..8] of  real;

М[9]:=1.1;

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


 

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

34336. Области применения серной кислоты и технико-экономические показатели ее производства 32.5 KB
  Области применения серной кислоты и техникоэкономические показатели ее производства. Производство серной кислоты одной из самых сильных и дешевых кислот имеет важное народнохозяйственное значение обусловленное ее широким применением в различных отраслях промышленности. Контактным способом получают около 90 от общего объема производства кислоты так как при этом обеспечивается высокая концентрация и чистота продукта. В качестве сырья для производства серной кислоты применяются элементарная сера и серный колчедан; кроме того широко...
34337. Производство аммиака и азотной кислоты 35 KB
  Производство аммиака и азотной кислоты В соответствии с принципом ЛеШателье при повышении давления и уменьшении температуры равновесие этой реакции смещается в сторону образования аммиака. Основным агрегатом установки для производства аммиака служит колонна синтеза Производство азотной кислоты: Азотная кислота одна из важнейших минеральных кислот. Такая смесь кипит без изменения концентрации кислоты. Современное производство азотной кислоты основано на процессах окисления аммиака и последующей переработке оксидов азота.
34338. Пр-во азотных мин.удобрений и их классификация 30.5 KB
  Прво азотных мин. Большинство азотных удобрений получают нейтрализацией кислот щёлочами.глубину потери 225; поглощается по типу обменной адсорбции Карбамид мочевина 2NH3CO2=NH2COONH4= =CONH22H2O 2000C; 20 МПа 466 Лучшее удобрение для внекорневой подкормки растений Аммиачная селитра NH3HNO3=NH4NO3Q 3435 Закисляет почву гигроскопична слеживается взрывоопасна Сульфат аммония 2NH3H2SO4=NH42SO4Q 20521 Эффективен под орошаемые культуры рис хлопчатник Среди азотных удобрений самая большая массовая доля азота в...
34339. Фосфорная кислота 24 KB
  Н3РО4 безводная фосф кислота представляет собой бесцветное вещество плавящиеся при температуре 42. Однако на практике имеют дело с жидкой Н3РО4 что объясняется склонностью Н3РО4 к переохлаждению при темп 121С При небольшом переохлаждении она представляет собой густую сиропоподобную жидкость плотностью 188 г см^3 При нагревании водные растворы ортофосф кислоты теряют воду образуя пирафосфорная а затем метофосф кислота. Безводная ортофосф кислота очень агрессивна.
34340. Особенности производства калийных удобрений 29 KB
  Выделение хлористого калия из сильвинитовых руд может быть основано на различии механических физических или химических свойств составляющих компонентов. Переработка сильвинитов для получения хлористого калия по галургическому методу основана на физикохимических особенностях системы NCl КС1 Н2О. Эта особенность системы NCl КС1 Н2О используется для производства хлористого калия из сильвинитов по галургическому методу. Рационально построенная схема производства хлористого калия из сильвинита должна учитывать следующие технологические...
34341. Фосфорные минеральные удобрения 24 KB
  Фосфорные минеральные удобрения Фосф. К фосфорным удобрениям относятся простой и двойной суперфосфат принадлежащие к классу водорастворимых удобрений и комплексные удобрения. Фосфор вносят в почву и с помощью сложного удобрения аммофоса. Фосфорные удобрения получают как физическими так и химическими методами.
34342. Технология производства и экономическая эффективность выпуска и использования пластмасс 30.5 KB
  Технология производства и экономическая эффективность выпуска и использования пластмасс. Изделия из пластмасс наиболее часто получают методами горячего прессования литья под давлением экструзии выдувания обработки резанием. Прессование применяется главным образом для переработки термореактивных пластмасс. термореактивная смола переводится в плавкое состояние при котором и происходит вторая стадия процесса формование; затем происходит реакция поликонденсации и пластмасса отверждается становясь неплавкой и нерастворимой.
34343. Сырьевые материалы и основы производства резины 28 KB
  Резину изготавливают с помощью вулканизации. В результате вулканизации каучук превращается в прочную эластичную упругую массу резину. В результате вулканизации молекулы каучука сливаются между собой дисульфидными мостиками в одну трехмерную макромолекулу. Большую роль играют так называемые ускорители вулканизации органические соединения содержащие серу или азот меркаптобензтиазол дифенилгуанидин и др.
34344. Основные свойства и назначения природных и искусственных строительных материалов 21 KB
  Основные свойства и назначения природных и искусственных строительных материалов. Основные свойства строительных материалов можно разделить на несколько групп. К 1ой группе относятся физические свойства материалов: плотность и пористость. Ко 2й свойства характеризующие устойчивость материала к воздействию воды и низких температур: водопоглощение влажность влагоотдача гигроскопичность водопроницаемость водо морозостойкость.