Const N = 13; Var A:array[1..N] of integer; i,Max,Min,S:integer; Begin Randomize; Write('Исходный массив A(',N,'):'); Min:=1; Max:=1; For i:= 1 to N do Begin A[i]:=random(201)-100; Write(' ',A[i]); if A[i]<A[Min] then Min:=i; if A[i]>A[Max] then Max:=i; S:=S+A[i]; End; WriteLn; WriteLn('Min(A) = A[',Min,'] = ',A[Min]); WriteLn('Max(A) = A[',Max,'] = ',A[Max]); WriteLn('Среднее арифметическое элементов массива = ',S/N); Write('Новый массив:'); S:=A[Min]; A[Min]:=A[Max]; A[Max]:=S; For i:= 1 to N do Write(' ',A[i]) End.
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017 // Внимание! Если программа не работает, обновите версию!
begin var s:=ReadlnString('Введите строку:').Select(c->LowCase(c)); var nd:=s.GroupBy(c->c).Select(c->(c.Key,c.Count)).OrderBy(kv->kv[0]); var n:=nd.Count; nd.Select(kv->(kv[0],kv[1]/n)).ForEach(kv->Writeln(kv[0],' : ',kv[1]:5:3)) end.
Пример работы Введите строку: В чащах юга жил бы цитрус? Да, но фальшивый экземплярЪ! : 0.250 ! : 0.028 , : 0.028 ? : 0.028 а : 0.139 б : 0.028 в : 0.056 г : 0.028 д : 0.028 е : 0.028 ж : 0.028 з : 0.028 и : 0.083 й : 0.028 к : 0.028 л : 0.083 м : 0.028 н : 0.028 о : 0.028 п : 0.028 р : 0.056 с : 0.028 т : 0.028 у : 0.028 ф : 0.028 х : 0.028 ц : 0.028 ч : 0.028 ш : 0.028 щ : 0.028 ъ : 0.028 ы : 0.056 ь : 0.028 э : 0.028 ю : 0.028 я : 0.028
2. Школьное решение в стиле ТурбоПаскаль 1983г.
uses Crt; const uc:string[33]=''; lc:string[33]=''; var s:string; i,n,k,p:integer; mc:array[1..255] of char; mn:array[1..255] of byte; c:char; begin ClrScr; Write('Введите строку: '); Readln(s); n:=Length(s); for i:=1 to 255 do mn[i]:=0; k:=0; for i:=1 to n do begin c:=s[i]; p:=Pos(c,uc); if p>0 then c:=lc[p]; p:=Ord(c); if mn[p]=0 then begin mc[p]:=s[i]; mn[p]:=1; k:=k+1 end else mn[p]:=mn[p]+1 end; for i:=1 to 255 do if mn[i]<>0 then Writeln(mc[i],' : ',mn[i]/k:5:3); ReadKey end.
если за 1 час - a деталей, то за 8 часов:
d=8*a