Заменить в группах символов, состоящих только из цифр, все цифры предыдущими по значению цифрами, а '0' заменить на точку. Например, строка: ‘ 6е-1 75 bа12 123‘ ; результат: ‘ 6е-1 64 bа12 012‘
code: #pascaluses crt;varbo,bb:boolean;b3,b2,sc,ss,b,s:string;t,p,cc,j,e,i,c:integer;begin clrscr; sc:='0123456789'; writeln('VVEDITE STROKU'); readln(s); s:=s+' '; c:=length(s); for i:=1 to c do begin b:=copy(s,i,1); if b<>' ' then ss:=ss+b else begin cc:=length(ss); bo:=true; for j:=1 to cc do begin b2:=copy(ss,j,1); bb:=false; for t:=1 to 10 do begin b3:=copy(sc,t,1); if b3=b2 then bb:=true;end; if bb=false then bo:=false;end; if bo=true then begin for j:=1 to cc do begin b2:=copy(ss,j,1); val(b2,p,e); if p=0 then write('.') else write(p-1);end; write(' '); end else write(ss,' '); ss:='';end;end;readkey;end.
aromastil88
11.03.2021
Задание №1
//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) var b: array of real; i, n,pn: integer; ps,op,min:real; begin write('Количество элементов массива :');readln(n); SetLength(b, n); // задаем длину массива min:=MaxReal; op:=1; writeln('Исходный массив:'); for i:=0 to n-1 do begin repeat write('Введите ',i+1,' число из ',n,' : ');readln(b[i]); until (b[i]<=5) and (b[i]>=-20); if (b[i]>0) and (round(b[i]/2)*2=b[i]) then begin ps +=b[i];pn+=1; end else if b[i]<0 then op *=b[i]; if b[i]<min then min:=b[i]; end; writeln; writeln('сумма положительных и четных элементов массива :',ps:0:3); writeln('Среднее положительных и четных элементов массива :',ps/pn:0:3); writeln('Произведение отрицательных элементов массива :',op:0:3); writeln('Минимальный элемент массива :',min); writeln('Отсортированный массив по убыванию :'); b.sorteddescending.println; end.
Тестовое решение: Количество элементов массива :8 Исходный массив: Введите 1 число из 8 : -18.5 Введите 2 число из 8 : 3.4 Введите 3 число из 8 : 4 Введите 4 число из 8 : -12 Введите 5 число из 8 : 2.2 Введите 6 число из 8 : -6.3 Введите 7 число из 8 : 2 Введите 8 число из 8 : 5
сумма положительных и четных элементов массива :6.000 Среднее положительных и четных элементов массива :3.000 Произведение отрицательных элементов массива :-1398.600 Минимальный элемент массива :-18.5 Отсортированный массив по убыванию : 5 4 3.4 2.2 2 -6.3 -12 -18.5
Задание №2 //PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) var a: array of integer; i,n ,max,h,k: integer; begin write('Количество элементов массива :');readln(n); write('Число H :');readln(h); write('Число K :');readln(k); SetLength(a, n); // задаем длину массива max:=-MaxInt; writeln('Исходный массив:'); for i:=0 to n-1 do repeat write('Введите ',i+1,' число из ',n,' : ');readln(a[i]); if a[i]>max then max:=a[i]; until (a[i]<=7) and (a[i]>=-12); for i:=0 to n-1 do begin if (a[i]>h) and (a[i]mod k=0) then writeln('Число ', a[i],' больше ',h,' и кратно ',k); end; writeln('Максимальный элемент массива :',max); writeln('Отсортированный массив по возрастанию :'); a.sorted.println; end.
Тестовое решение: Количество элементов массива :8 Число H :-8 Число K :2 Исходный массив: Введите 1 число из 8 : -10 Введите 2 число из 8 : 6 Введите 3 число из 8 : -4 Введите 4 число из 8 : 3 Введите 5 число из 8 : 1 Введите 6 число из 8 : -1 Введите 7 число из 8 : -12 Введите 8 число из 8 : 4 Число 6 больше -8 и кратно 2 Число -4 больше -8 и кратно 2 Число 4 больше -8 и кратно 2 Максимальный элемент массива :6 Отсортированный массив по возрастанию : -12 -10 -4 -1 1 3 4 6
garunkhachatryan
11.03.2021
Сумма всех четных чисел от 1 до 200 - это на самом деле сумма чисел 2+4+6+...+198+200.
1. Самый короткий вариант
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016 begin Writeln(Range(2,200,2).Sum) end.
Результат: 10100
2. Более длинный и более "школьный" вариант
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016 begin var s:=0; var i:=2; while i<=200 do begin s:=s+i; i:=i+2 end; Writeln(s) end.
3. Совсем "тупой школьный" вариант (решение "в лоб")
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016 var i,s:integer; begin s:=0; for i:=1 to 200 do if i mod 2 =0 then s:=s+i; Writeln(s) end.
4. Улучшенный "школьный" вариант
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016 var i,s:integer; begin s:=0; for i:=1 to 100 do s:=s+2*i; Writeln(s) end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Заменить в группах символов, состоящих только из цифр, все цифры предыдущими по значению цифрами, а '0' заменить на точку. делфи
Заменить в группах символов, состоящих только из цифр, все цифры предыдущими по значению цифрами, а '0' заменить на точку. Например, строка: ‘ 6е-1 75 bа12 123‘ ; результат: ‘ 6е-1 64 bа12 012‘
code: #pascaluses crt;varbo,bb:boolean;b3,b2,sc,ss,b,s:string;t,p,cc,j,e,i,c:integer;begin clrscr; sc:='0123456789'; writeln('VVEDITE STROKU'); readln(s); s:=s+' '; c:=length(s); for i:=1 to c do begin b:=copy(s,i,1); if b<>' ' then ss:=ss+b else begin cc:=length(ss); bo:=true; for j:=1 to cc do begin b2:=copy(ss,j,1); bb:=false; for t:=1 to 10 do begin b3:=copy(sc,t,1); if b3=b2 then bb:=true;end; if bb=false then bo:=false;end; if bo=true then begin for j:=1 to cc do begin b2:=copy(ss,j,1); val(b2,p,e); if p=0 then write('.') else write(p-1);end; write(' '); end else write(ss,' '); ss:='';end;end;readkey;end.