Матфеопуло1006
?>

Заменить в группах символов, состоящих только из цифр, все цифры предыдущими по значению цифрами, а '0' заменить на точку. делфи

Информатика

Ответы

gaina6678

Заменить в группах символов, состоящих только из цифр, все цифры предыдущими по значению цифрами, а '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
Задание №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
Сумма всех четных чисел от 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' заменить на точку. делфи
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

ajuli2
shneider1969
mamanger
Алиференко_Елена342
Pavlovna897
Zelinskaya-Andrei
scorpion21c
grenysherg2873
Nikita
Letajushaya362
grebish2002
mishanay301csfp
tihonovrv477
Wlad967857
borisowaew