Const n = 20; { размер массивов } p=0; { минимальное значение элемента } q=15; { максимальное значение элемента } type V=array[1..n] of integer;
procedure VInit(var a:V; s:string); { процедура заполняет элементы массива a случайными значениями из интервала [p;q]. Элементы сформированного массива выводятся с заголовком, в который добавляется значение s } var i,kol:integer; begin kol:=q-p+1; Writeln('Элементы массива ',s); for i:=1 to n do begin a[i]:=Random(kol)+p; Write(a[i],' ') end; Writeln end;
procedure SortBubble(var a:V); { сортировка методом пузырька } var i,j,t:integer; begin for i := 1 to n-1 do for j := 1 to n-i do if a[j] > a[j+1] then begin t := a[j]; a[j] := a[j+1]; a[j+1] := t end end;
procedure VOut(var a:V;s:string); { Элементы массива a выводятся с заголовком s } var i:integer; begin Writeln(s); for i:=1 to n do Write(a[i],' '); Writeln end;
function BinSearch(var a:V;key:integer):boolean; { двоичный поиск элемента со значением key в массиве a Возвращает true, если элемент найден и false, если нет } var li,ri,mi:integer; begin li:=1; ri:=n; while li<ri do begin mi:=(li+ri) div 2; if a[mi]<key then li:=mi+1 else ri:=mi; end; BinSearch:=(a[ri]=key) end;
var a,b,c:V; i,ai1,s:integer; found:boolean; begin Randomize; VInit(a,'A'); SortBubble(a); VOut(a,'Отсортированный массив A'); VInit(b,'B'); SortBubble(b); VOut(b,'Отсортированный массив B'); VInit(c,'C'); SortBubble(c); VOut(c,'Отсортированный массив C'); s:=0; found:=false; for i:=1 to n do begin if found then if a[i]=ai1 then Inc(s,ai1) else found:=false; if not found then begin found:=BinSearch(b,a[i]); if found then found:=BinSearch(c,a[i]); if found then begin ai1:=a[i]; Inc(s,ai1) end end end; Writeln('Искомая сумма равна ',s); end.
program n_1; type nazw = array[0..9] of String[15]; const ed : nazw = ('ноль','один','два','три','четыре','пять','шесть','семь','восемь','девять'); des: nazw = ('','десять','двадцать','тридцать','сорок','пятьдесят', 'шестьдесят','семьдесят','восемьдесят','девяносто'); sot: nazw = ('','сто','двести','тристо','четыресто','пятьсот','шестьсот','семьсот','восемьсот','девятьсот'); dd : nazw = ('','одинадцать','двенадцать','тринадцать','четырнадцать','пятнадцать', 'шестнадцать','семнадцать','восемьнадцать','девятнадцать'); var s,d,e,x : Integer; st : String; Begin Write('Введите число [0..1000] :'); Readln(x); if x=1000 then st:='тысяча' else begin s:= x div 100; x:=x mod 100; st:=sot[s]; d:= x div 10; e:=x mod 10; if (d=1) and (e<>0) then st:=st+dd[e] else st:=st+des[d]+ed[e]; end; writeln(st); End.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку