КАТЕГОРИИ: Архитектура-(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.
Дата добавления: 2014-01-07; Просмотров: 248; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |