Домашнее задание:
Составить массив из пяти записей следующей структуры:
Фамилия президента;
Страна;
Возраст;
Годовой доход;
Марка любимого автомобиля.
Рассортировать массив в алфавитном порядке по фамилии президентов и вывести информацию на экран.
Подсказка
Описать структуру подобно как в задаче на уроке.
Type
worker=record
surname:string[15];
year:word
end;
В описании структуры массива указать тип элемента записи, такого же типа должна быть переменная х. В процедуре сортировки в операторе if a[j-1]'>'a[j] then нужно указать уточненное имя поля. if a[j-1].surname'>'a[j].surname then, где surname - имя поля для хранения фамилии президента.
Type
ar=array[1..100] of real;
Var
a:ar;
n:integer;
Procedure BubbleSort(n:integer;Var a:ar);
Var
i,j:integer;
x:real;
Begin
For i:=2 to n do
For j:=n downto i do
if a[j-1]'>'a[j] then
Begin
x:=a[j-1];
a[j-1]:=a[j];
a[j]:=x
end
End;
РЕШЕНИЕ Д/З
Program n1;
type
prisedent=record
surname:string[30];{фамилия президента}
country:string[30];{страна}
year:word; {возраст}
doxod:longint; {годовой доход}
machine:string[30]; {марка любимого автомобиля}
end;
om=array[1..5]of prisedent;{массив записей}
var
a:om;
x:prisedent;{переменная для обмена}
i,j:integer;
begin
for i:=1 to 5 do
with a[i] do
begin {заполнение полей записи с клавиатуры}
readln(surname);
readln(country);
readln(year);
readln(doxod);
readln(machine);
end;
{Сортировка массива из 5 записей}
for i:=2 to 5 do
for j:=5 downto i do
with a[j-1] do {использовали оператор присоединения для a[j-1]}
if surname'>'a[j].surname then
begin
x:=a[j];
a[j]:=a[j-1];
a[j-1]:=x;
end;
for i:=1 to 5 do
writeln('prisedent',a[i].surname,a[i].country:20);
end.
суббота, 20 февраля 2010 г.
среда, 17 февраля 2010 г.
Работа со строками
Program n1;
Uses crt;
Var
mst,st:string;
Procedure Poiskshot(Var st,mst:string);
Var
i,n,k,min:integer;
p:string;
Begin
n:=length(st);
i:=1;
min:=n;
mst:='';
While i'<='n do Begin While (St[i]=' ') and (i'<='n) do i:=i+1; p:=''; While (St[i]'<>'' ') and (i<=n) do Begin p:=p+St[i]; i:=i+1; End; if p'<>'''then
Begin
k:=length(p);
if k'<'min then begin min:=k; mst:=p; end; end; end; end; begin clrscr; Writeln('vvod stroki'); readln(st); st:=' '+st+' '; poiskshot(st,mst); Writeln(mst); end. st - данная строка символов
mst - самое короткое слово в строке
i - порядковый номер символа в строке
n - фактическая длина строки
k - фактическая длина слова
min - минимальная длина
p - слово
Uses crt;
Var
mst,st:string;
Procedure Poiskshot(Var st,mst:string);
Var
i,n,k,min:integer;
p:string;
Begin
n:=length(st);
i:=1;
min:=n;
mst:='';
While i'<='n do Begin While (St[i]=' ') and (i'<='n) do i:=i+1; p:=''; While (St[i]'<>'' ') and (i<=n) do Begin p:=p+St[i]; i:=i+1; End; if p'<>'''then
Begin
k:=length(p);
if k'<'min then begin min:=k; mst:=p; end; end; end; end; begin clrscr; Writeln('vvod stroki'); readln(st); st:=' '+st+' '; poiskshot(st,mst); Writeln(mst); end. st - данная строка символов
mst - самое короткое слово в строке
i - порядковый номер символа в строке
n - фактическая длина строки
k - фактическая длина слова
min - минимальная длина
p - слово
Подписаться на:
Комментарии (Atom)
