Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Приклад 11.4

Приклад 11.2

Результати прикладу 11.1

q FALSE; 2 TRUE; e FALSE; 4 TRUE; t FALSE;5 TRUE; 7 TRUE; 8 TRUE; 9 TRUE; h FALSE; j FALSE; 9 TRUE; 3 TRUE; j FALSE; 7 TRUE;

Задано одновимірний масив. Обчислити D:= r+C+B, де r – сума додатних елементів заданого масиву, C - сума елементів заданого масиву значення якого співпадають із значеннями їх індексів, B- максимальний елемент заданого масиву.

Схема алгоритму на Рис. 11.2.

Program test_21_11_09;

Const n=15;

Var D,r,C,B:real;

a:array [1..n] of real; i:integer; f:text;

Begin assign(f,’dani.pas’); reset(f);

r:=0; C:=0;

for i:=0 to n do begin read(f,a[i]);

if a[i]>0 then r:=r+a[i];

if a[i]=i then C:=C+a[i]; end;

B:=a[1];

for i:=2 to n do

if B<a[i] then B:=a[i];

D:=r+C+B; Writeln(f,’D=’,D); Close(f); End.

 

ai>0
Введ. ai
Початок
ai=i
r=r+ai
c=c+ ai
B= ai
B< ai  
D=r+B+C
B= ai  
Вивед. D
Кінець
r=0; c=0
i=2,n
T
F  
F
T  
T  
F  
i=1,n

 


Рис.11.2


T
T
T
F
F
F
i=1,50
Введ. ai
ai=a або ai =i
ai =j або ai =e
ai =o або ai =u
k=k+1
Вивед. k
Кінець
Початок
T
Приклад 11.3.

Рис.8.3

program golosni;

Var t,r:text;

a: array [1..50] of char;

k,i: byte;

begin assign(t,'golosd.pas'); reset(t);

assign(r,'golosr.pas'); rewrite(r);

for i:=1 to 50 do begin

read(t,a[i]); writeln(r,a[i]);

case a[i] of

'a','i','j','e','o','u': begin writeln(a[i]); k:=k+1; end;

end;end; writeln(r,k);

close(r);end.

I=1,9
Вив.ai
кінець
Вив. max  
n=n+1
c=ap
ap=max
aj =c
i=p +1
p=p+1
I=1,9
Введ ai
i=1,n=1,p=1
N<=5
ПОЧАТОК
max = ai
ai<>0
max<=ai
max=ai j = i
i=i+1
F
F
T
T
Рис.8.4
Задано одновимірний масив, один з елементів якого має значення 0. Знайти пять найбільших елементів цього масиву, що знаходяться до нуля та розташувати їх у порядку зростання на початку масиву. Схему алгоритма представлено на рис.11.4.

 

 


Program max1;

var a: array[1..9] of real;

max,c:real; p,n,i,j:integer; f:text;

Begin

assign(f, 'masmax5d.pas'); reset(f);

for i:=1 to 9 do begin

read(f,a[i]); write(a[i]:6:2); end;

writeln; i:=1;n:=1; P:=1;

While n<=5 do begin

max:=a[i];

While a[i]<>0 do begin

if (max<=a[i]) then

begin max:=a[i]; j:=i; end; i:=i+1; end;

writeln('max[',p,']=',max:6:2,' max=',j);

n:=n+1; c:=a[p]; a[p]:=max; a[j]:=c;

i:=p+1; p:=p+1; end; end.

Файл даних 'masmax5d.pas'

13.5 67.8 54.9 12.8 24.9 1.98 25.8 0.123 0

Результати виведені на екран

13.50 67.80 54.90 12.80 24.90 1.98 25.80 0.12 0.00

max[1]= 67.80 jmax=2

max[2]= 54.90 jmax=3

max[3]= 25.80 jmax=7

max[4]= 24.90 jmax=5

max[5]= 13.50 jmax=7

Змінна n використовується для визначення 5 найбільших елементів масиву. Змінна i визначає поточний порядковий номер масиву. У змінній j запам’ятовується номер найбільшого елемента. Змінна р використовується для того, щоб поміняти місцями найбільший елемент з поточним елементом на початку масиву.

Лекція 12

Перелічувальний тип

Перелічувальний тип

Перелічувальний тип – це не стандартний тип, а тип визначений програмістом. Перелічувальний тип підвищує наочність програми.

Структура перелічувального типу

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

Визначення значень перелічувального типу

Для будь-якого перелічувального типу, що визначений за допомогою запису

Type T = (p1, p2,…,pn), де

T – ідентифікатор типу;

p1, p2,…, pn - ідентифікатори значень перелічувального типу.

Обмеження на дані перелічувального типу

Ідентифікатори сталих перелічуваль-ного типу мають задовольняти наступним умовам:

1) pi pj, якщо ij (неоднаковість);

2) pi <pj, якщо i<j (впорядкованість);

3) значеннями типу T можуть бути тільки p1, p2,…, pn.

Приклад даних перелічувального типу

Перелічувальний тип colors (кольори) може складатися з ідентифікаторів: red (червоний), blue (блакитний), green (зелений), yellow (жовтий).

Приклади об’яви перелічувальних типів

У ТП 7.0 об’ява перелічувального типу виглядатиме

Type Colors = (red, yellow, blue, green);

Days = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

Position = (On, Off);

Direction = (Left, Up, Right, Down);

Значення змінних перелічувального типу

Змінним перелічувального типу можна привласнювати тільки значення ідентифікаторів із списку відповідного перелічувального типу.

Приклади значень змінних перелічувального типу

Наприклад, задано

Type Color=(red, white, green);

Traf= (blue, yellow, black);

Var sv: Color; cl: Traf;

Тоді змінній sv можна надавати лише значення або red, або white, або green, а змінній cl відповідно - або blue, або yellow, або black.

Обмеження на значення змінних перелічувального типу

У алгоритмічній мові Паскаль не можна використовувати однакові ідентифікатори в якості значень у декількох різних перелічувальних типах.

Приклад використання однакових ідентифікаторів у різних перелічувальних типах

Наприклад, задано

Type Color=(red, white, green);

Traf= (blue, yellow, red);

Два різні перелічувальні типи Color і Traf використовують однакову сталу red. У цьому випадку важко,буде визначити до якого з типів вона належить.

Операції відношення

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

Стандартні функції Succ(х) і Pred(х)

Функція Succ(х) повертає наступний за символом х символ, а Pred(х) – символ, що передує символу х. Наприклад,

Type Colors = (red, yellow, blue, green);

Succ(red)= yellow, а Pred(blue)= yellow.

Стандартна функція Ord(х)

Функція Ord(х) визначає порядковий номер значення перелічувального типу у списку відповідного типу.

Необхідно пам’ятати, що нумерація значень перелічувального типу починається з нуля.

Приклади використання стандартної функції Ord(х)

Type Color=(red, white, green);

Traf= (gray, yellow, blue);

Так для визначених вище типів:

ORD (red)=0 і ORD (gray)=0, а

ORD (white)=1 і ORD (yellow)=1 і т.д.

Приклад 12.1. Використання даних перелічувального типу

Program prim12_1;

Type Color=(red, white, green);

Days = (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday);

Position = (On, Off);

Direction = (Left, Up, Right, Down);

Var d1: days; pos1: position; dir: Direction;

x,y: integer; sex:(male, female);

Begin

For d1:= Monday to Sunday do

If (d1= Saturday) or (d1= Sunday) then writeln(‘Vyhidnyj’)

Else writeln(‘robochyj’);

If dir= Left then x:=x-1;

If dir= Right then x:=x+1;

If dir= Up then y:=y+1;

If dir:= Down then y:=y-1;

End.

<== предыдущая лекция | следующая лекция ==>
Приклад 11.1 | Приклад 12.4
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 259; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.032 сек.