Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Тема: Комбінований тип (Записи) продовження

Приклад 23.1. Задано

type data=record{дата народження}

d: 1..31;

m: 1..12;

y: 1900..1990;

end;

anketa =record

pr: string[15];{ прізвищe }

p: (male, female);{ p-стать: (чол, жін);}

dn: data { день народження }

end;

gr=array[1..25] of anketa;

Описати процедуру druk(priz, lit), яка друкує усі прізвища людей з групи priz, прізвища яких починаються на літеру lit та дати їх народження.

 

program prizvyshche;

type

data=record

d:1..31;

m:1..12;

y:1920..2001;end;

anketa=record

pr:string[15];

p:(male,female);

dn:data;end;

gr=array[1..5] of anketa;

var a1:gr; r,i:byte; S,T:text;

procedure druk(a:gr;b:char);

var i:integer;

begin writeln(t);

writeln (t,'print parameter procedure');

for i:=1 to 5 do begin

if a[i].pr[1]=b then begin

Write (t,a[i].pr,' ',a[i].dn.d,' ',a[i].dn.m,' ',a[i].dn.y);

end; writeln(t); end; end;{end of procedure}

begin assign(S,'prdat.pas');reset(S);

assign(T,'prrez.pas');rewrite(T);

writeln(t,'main program');

for r:=1 to 5 do begin

readln (s,a1[r].pr);writeln(t,a1[r].pr);

with a1[r] do begin

readln (s,dn.d); writeln(t,dn.d);

readln (s,dn.m); writeln(t,dn.m);

readln (s,dn.y); writeln(t,dn.y);end;

end; druk(a1,'k'); writeln(t); close(t); end.

main program

Кitov 1 9 1964

Karev 6 7 1985

Sonov 3 4 1987

Ketan 5 6 1968

Donchev 4 1 1989

 

print parameter procedure

Кitov 1 9 1964

Karev 6 7 1985

Ketan 5 6 1968

 

 

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

Program sred_rost;

Type

name=(Anya, Valya,Genya,Petya,Sasha,Tanya,Shura, Yura);

dannye= record

pol:(male,female);

rost:140..200;

end;{end record dannye}

gruppa=array [name] of dannye;

VAR gr:gruppa;

k:name; x:real;

f1,f:text;

procedure srrost(var x:real);

var n:name;

s:word;

begin

x:=0; s:=0;

for n:=Anya to Yura do

if gr[n].pol=female then begin

x:=x+gr[n].rost;s:=s+1; end;

x:=x/s; end;

function odinrost:boolean;

var n,n1:name; rost:140..200;

f:boolean;

k1:integer;

begin

for n:=Anya to Yura do

rost:=gr[n].rost; f:=false; k1:=0;

for n1:=Valya to Yura do

if rost=gr[n1].rost then k1:=k1+1;f:=true;

odinrost:=f;

end;

begin

for k:=Anya to Yura do begin

if k in [Anya,Valya,Tanya] then gr[k].pol:=female

else gr[k].pol:=male;

readln(gr[k].rost); end;

srrost(x);

writeln(odinrost,x);

end.

 

 

Приклад 23.3. Написати програму, яка:

1) прочитає з файлу наступну інформацію про 200 аудиторій інституту, враховуючи, що кафедра може відповідати за одну або декілька аудиторій:

· номер аудиторії;

· рік ремонту аудиторії;

· назва кафедри, яка відповідає за аудиторію;

2) виведе у файл номери аудиторій, за які відповідає кафедра приладобудування і які ремонтувалися раніше ніж у 2000 році;

3) виведе у файл в алфавітному порядку назви всіх кафедр (без повторення назв), які відповідають за стан аудиторій.

 

Program remont;

const N=7;

type audit=record

nomer:100..500;

rik:1996..2006;

kaf:string;

end;

var a:array[1..N] of audit;

k,j,i:integer; t,t1:text; ta:string;

begin

assign(t,'dat.pas');reset(t);

assign(t1,'rez.pas'); rewrite(t1);

for i:=1 to N do begin

readln(t,a[i].nomer);

readln(t,a[i].rik);

readln(t,a[i].kaf);

end;

writeln(t1,'potribno remontuvaty');

for i:=1 to N do begin

if (a[i].rik<2000) and (a[i].kaf='prib')

then writeln(t1,a[i].nomer);

end;

writeln(t1,'za alfavitom');

for i:=1 to N-1 do begin

for j:=2 to N do begin

if a[i].kaf>=a[j].kaf then begin

ta:=a[i].kaf;

a[i].kaf:=a[j].kaf;

a[j].kaf:=ta;

end;

end;

end;

k:=1;

writeln(t1,a[k].kaf);

for i:=2 to N do begin

if a[i].kaf<>a[k].kaf then

begin writeln(t1,a[i].kaf);

k:=i;

end;

end;

close(t1);end.

 

prib

prib

prib

prib

teh

teh

nav

 

potribno remontuvaty

za alfavitom

nav

teh

prib

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

 

program var12_Rec;

type naselennja=record

Town:string[10];

Popular:longint;end;

Country=record

Name__country:string[12];

Count_popular:array[1..3] of naselennja; end;

Continent =record

Name_cont: string[12];

Countries: array[1..2] of country; end;

var Inf_continent:array[1..3] of Continent;

n, j, і:integer;

Source,Turget:text;

begin

assign(Source,'recv_12d.pas');reset(Source); assign(Turget,'recvl_2r.pas');rewrite(Turget);

for i:=l to 3 do

with Inf_continent[i] do begin

readln(Source,Name_cont); {назва континенту}

writeln(Turget,Name_cont);

for j:=1 to 2 do

with Countries[j] do begin{назва країни}

readln(Source,Name_country);

writeln(Turget,Name_country);

for n:=l to 3 do with Count_popular[n] do begin

readln(Source,town);

writeln(Turget,town);{назва міста}

readln(Source,popular);

writeln(Turget,popular);{кількість населення}

end; end; end; end;

close(Turget);end.

 

 

<== предыдущая лекция | следующая лекция ==>
Лекція 23 | Землеустрій та землевпорядний процес
Поделиться с друзьями:


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


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



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




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