Probitbiz6
?>

Написать программу на паскале дан массив.вставить число к перед и после элементов, которые заканчиваются на ту же цифру, что и к

Информатика

Ответы

minaskorolev8
Const n=10;
type mas=array[1..3*n] of integer;
 procedure ins(var a:mas;k,nom:integer);
var i:integer;
begin
 for i:=3*n downto nom+3 do a[i]:=a[i-2];
 a[nom+1]:=a[nom]; a[nom]:=k; a[nom+2]:=k;
end;
var b : mas; k,i,j : integer;
begin
Randomize;
 for i:=1 to n do begin
   b[i]:=random(51);
   write(b[i]:4);
 end;
writeln;
write('K=');readln(k);
j:=1;
for i:=1 to n do
  if (b[j] mod 10 = k mod 10) then
    begin   ins(b,k,j); j:=j+3   end
  else j:=j+1;
for i:=1 to 3*n do write(b[i]:4);
  writeln;
end.
ivnivas2008
Такие задания нужно решать с конца, команды будут обратные: раздели на 2, вычесть 3.
1. Берём число 47, видим, что без остатка на 2 его разделить не получится, поэтому вычитаем 3. Получаем число 44. Мы использовали команду 1.
2. Видим, что теперь число 44 можно разделить на 2, делим, получаем 22. Мы использовали команду 2.
3. Число опять делится на 2, делим, получаем 11. Команда 2.
4. 11 не делится на 2, вычитаем 3, получаем 8. Команда 1, и т.д.
5. 8/2=4 . 2
6. 4 - 3 = 1. 1
Как раз у нас получилось 6 действий. Т.к. мы использовали обратные команды, то записываем их обратном порядке.
ответ: 121221,
Герасимова107
// PascalABC.NET 3.0, сборка 1128
begin
  var k:=ReadInteger('Укажите номер записи k:');
  var a:=ReadLines('T1.txt').Select(x->Length(x)).
         Where(x->x<>0).ToArray;
  var n:=a.Length;
  if k>n then Writeln('В файле записей меньше, чем ',k)
  else Writeln('Сумма равна ',a.Min+a[n-k+1])
end.

А теперь "школьный вариант"
// PascalABC.NET 3.0, сборка 1128
var
  t:text;
  min,l,m,n,k:integer;
  s:string;
begin
  k:=2; // вторая от конца запись
  Assign(t,'T1.txt'); Reset(t);
  min:=1000; m:=0;
  while not Eof(t) do begin
    ReadLn(t,s); Inc(m);
    l:=Length(s);
    if (l>0) and (l<min) then min:=l
    end;
  Close(t); Reset(t);
  k:=m-k+1;
  if k<1 then Writeln('В файле нет стольких строк')
  else begin
    m:=0;
    while m<>k do begin Readln(t,s); Inc(m) end;
    Writeln('Сумма равна ',min+Length(s))
    end;
  Close(t)
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Написать программу на паскале дан массив.вставить число к перед и после элементов, которые заканчиваются на ту же цифру, что и к
Ваше имя (никнейм)*
Email*
Комментарий*

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

Kushchenko-Monashev
Раисовна878
aleksandramir90
sergeykirushev
keldastrand
anitanemtsewa
ilyxa08
Peshkov
АлексейГагиковна1774
deadnobody
Nikolaevich_Vladimirovich1509
Рамиль211
info2471
Ерохин
lihacheva