Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2009, 00:08   #11
Saka
Пользователь
 
Регистрация: 04.12.2009
Сообщений: 83
По умолчанию

А можно вас попросить исправить мой уже существующий код проги
Код:
program Project11;

{$APPTYPE CONSOLE}

uses
  SysUtils;

type
Titem=longint;
TDar=array of Titem;
Var
x,T1,w,p,n,k,j,i:longint;
c,A,B:Tdar;
T:Titem;
fl:boolean;
begin
  try
    { TODO -oUser -cConsole Main : Insert code here }
Begin
repeat
  writeln('Vvedite kol-vo elementov'); readln(n);
until n>0;
setLength(A,n);
i:=Low(A);
randomize;
repeat
A[i]:=random(100);
inc(i);
until i>High(A);
writeln('Massiv A');
if High(A)>=0 then
for i := Low(A) to High(A) do
  Write(A[i],' ') else
writeln('there are no elements');
writeln;
i:=Low(A);
k:=0;
repeat
begin
  inc(k);
Setlength(B,k);
B[k-1]:=A[i];
End;
inc(i);
until i>High(A);
writeln('Massiv B iz A:');
if High(b)>=0 then
 for i:=Low(B) to High(B) do
write(B[i],' ')
else
begin
write('there are no elements');
readln;
End;
writeln;


      for i:=Low(A) to High(A) do
      begin
        x := A[i];
        while (x > 0) do
        begin
          N := x mod 10;
          x := x div 10;
          if (n=5) then begin
            A[i] := 0;
            x := 0; {это чтобы выйти из цикла}
          end;
        end;
      end;

for i:=Low(B) to High(B) do
write(A[i],' ');
writeln;

  end;
  readln;
writeln('vvedite k');
readln(k);
x:=0;
p:=0;
for i:=1 to k do
begin
  T1 := A[High(A)];
        for j := High(A) downto Low(A)+1 do
           A[j] := A[j-1];
        A[Low(A)] := T1;
end;
        writeln('Massiv A posle sdviga:');
      if High(A) > 0 then
        for i := Low(A) to High(A) do
          Write(A[i], ' ');
      WriteLn;

  finally

  end;
  readln;
        end.
Saka вне форума Ответить с цитированием
Старый 21.12.2009, 02:04   #12
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

правильное решение:

Код:
program Project17;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  Len = 100;

{ Возвращает True, если число простое }
function PrimeNumber(X: Longint): Boolean;
var
  I: Integer;
begin
  PrimeNumber := True;
  if X <= 1 then
  begin
    PrimeNumber := False;
    Exit;
  end;
  for I := 2 to Trunc(Sqrt(X)) do
    if X mod I = 0 then
    begin
      PrimeNumber := False;
      Break;
    end;
end;

{ возвращает True, если число содержит цифру 5 }
function i5(X: Integer): Boolean;
begin
  i5 := False;
  while X <> 0 do
  begin
    if X mod 10 = 5 then i5 := True;
    X := X div 10;
  end;
end;

var
  a, b, tmp: Array[1..Len] of Integer;
  I, J, Q, N, M, L, K: Integer;
begin
  WriteLn('Enter dimension of a array');
  ReadLn(N);
  WriteLn('Enter array elements');
  for I := 1 to N do
    Read(a[I]);
  tmp := a; M := N; { запомним - в будущем пригодится... }

  { первая подзадача }
  L := 0;
  for I := 1 to N do
    if PrimeNumber(a[I]) then
    begin
      Inc(L);
      b[L] := a[I];
    end;
  WriteLn;
  WriteLn('Array B:');
  for I := 1 to L do
    Write(b[I], ' ');

  { вторая подзадача }
  I := 1;
  while I <= N do
  begin
    if i5(a[I]) then
    begin
      for J := I to N - 1 do
        a[J] := a[J + 1];
      Dec(N);
      Dec(I);
    end;
    Inc(I);
  end;
  WriteLn;
  WriteLn('The changed array A');
  for I := 1 to N do
    Write(a[I], ' ');
  WriteLn;

  { третья подзадача }
  WriteLn('Enter K');
  ReadLn(K);
  a := tmp; N := M; { пригодилось :) }
  for I := 1 to K do
  begin
    for J := N downto 1 do
      if J = N then Q := a[N]
      else
        a[J + 1] := a[J];
      a[1]:=q;
  end;
  WriteLn('Shifted array A:');
  for I := 1 to N do
    Write(a[I], ' ');

  ReadLn;
  ReadLn;
end.

Последний раз редактировалось Alex_FF; 21.12.2009 в 02:22.
Alex_FF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi.Задача на массивы в консоли. ant-igorevich Помощь студентам 7 26.11.2009 21:56
у меня никак не получается скомпелировать фаил finero Общие вопросы C/C++ 4 10.07.2008 19:29