Program forZnania; var x,a,b:integer; begin a:=0; b:=0; repeat readln(x); if x mod 2=0 then a:=a+1 else b:=b+x until x=0; a:=a-1; writeln('Количество четных чисел: ',a); writeln('Сумма нечетных чисел: ',b); end.
Наверное Вы удивитесь почему после цикла стоит 'a:=a-1'? Поясняю: когда Вы вводите последнее число 0, то программа воспринимает его за четное число и приписывает его к кол-ву четных чисел, поэто уменьшаем кол-во чет чисел на одно.
Type Point = record x: integer; y: integer; end; Line = record P: Point; Q: Point; Len: double; end;
procedure LineLength(var pL: Line); // Вычисляет и сохраняет значение длины отрезка begin pL.Len := sqrt(sqr(pL.Q.x - pL.P.x) + sqr(pL.Q.y - pL.P.y)) end;
var A, B, C, D: Point; AB, AC, AD, BC, BD, CD: Line;
begin writeln('Введите попарно координаты четырех точек'); readln(A.x, A.y, B.x, B.y, C.x, C.y, D.x, D.y); with AB do begin P.x := A.x; P.y := A.y; Q.x := B.x; Q.y := B.y; LineLength(AB); end; with AC do begin P.x := A.x; P.y := A.y; Q.x := C.x; Q.y := C.y; LineLength(AC); end; with AD do begin P.x := A.x; P.y := A.y; Q.x := D.x; Q.y := D.y; LineLength(AD); end; with BC do begin P.x := B.x; P.y := B.y; Q.x := C.x; Q.y := C.y; LineLength(BC); end; with BD do begin P.x := B.x; P.y := B.y; Q.x := D.x; Q.y := D.y; LineLength(BD); end; with CD do begin P.x := C.x; P.y := C.y; Q.x := D.x; Q.y := D.y; LineLength(CD); end; writeln(AB.Len, ' ', AC.Len, ' ', AD.Len, ' ', BC.Len, ' ', BD.Len, ' ', CD.Len); if AB.Len = CD.Len then begin // AB и CD - претенденты if AC.Len = BD.Len then // Нашли ABDC writeln('Параллелограмм ABDC') else if AD.Len = BC.Len then // Нашли ABCD writeln('Параллелограмм ABCD') end else if AC.Len = BD.Len then begin // AC и BD - претенденты if AD.Len = BC.Len then // Нашли ACBD writeln('Параллелограмм ACBD') else if AB.Len = CD.Len then // Нашли ABCD writeln('Параллелограмм ACDB') end else if AD.Len = BC.Len then begin // AD и ВС - претенденты if AC.Len = BD.Len then // Нашли ADBC writeln('Параллелограмм ADBC') else if AB.Len = CD.Len then // Нашли ADCB writeln('Параллелограмм ADCB') end else writeln('Параллелограмм построить невозможно'); end.
Контрольный прогон:
Введите попарно координаты четырех точек 5 1 10 3 8 9 3 6 5.3851648071345 8.54400374531753 5.3851648071345 6.32455532033676 7.61577310586391 5.8309518948453 Параллелограмм построить невозможно
var s,buf: string; P: array[1..n] of integer; i, k: integer; F: Text;
begin Assign(F, 'CharCount.txt'); Reset(F); s:=''; while not SeekEof(F) do begin Read(F,buf); s:=s+buf end; Writeln(s); for i := 1 to n do P[i] := 0; for i := 1 to length(s) do begin k := Pos(s[i], T); if k > 0 then P[k] := P[k] + 1 end; for i := 1 to n do if P[i] > 0 then writeln(T[i], ' - ', P[i]:3) end.
Тестовый пример: Ксаверий Феофалактович Грушин, следственный пристав Сыскного управления при московском обер-полицмейстере,облегченно вздохнул и отложил влево, в стопку "просмотрено", сводку важных преступлений за вчерашний день Г - 1 К - 1 С - 1 Ф - 1 а - 8 б - 2 в - 13 г - 2 д - 4 е - 17 ж - 2 х - 2 и - 11 й - 5 к - 6 л - 10 м - 4 н - 13 о - 20 п - 8 р - 11 с - 12 т - 8 у - 6 ф - 1 ц - 1 ч - 3 ш - 2 ы - 3 ь - 1 я - 1
var x,a,b:integer;
begin
a:=0;
b:=0;
repeat
readln(x);
if x mod 2=0 then a:=a+1 else b:=b+x
until x=0;
a:=a-1;
writeln('Количество четных чисел: ',a);
writeln('Сумма нечетных чисел: ',b);
end.
Наверное Вы удивитесь почему после цикла стоит 'a:=a-1'?
Поясняю: когда Вы вводите последнее число 0, то программа воспринимает его за четное число и приписывает его к кол-ву четных чисел, поэто уменьшаем кол-во чет чисел на одно.