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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2010, 09:43   #1
neomax38
Пользователь
 
Регистрация: 17.09.2010
Сообщений: 72
По умолчанию массив

Вот программа
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

TYPE
vector = array [1..100] of integer;
VAR
T1,b: vector;
s,t,i,j,c,n,p,e: integer; { t текущая длина массива от 1 до 12 }

BEGIN
{ 1. ВВОД МАССИВА }
Repeat
Write (' Vvedite chislo elementov  T ot 1 do 15 ');
Readln (t);
until (t>=1) and (t<= 15);
write('vvedite chislo c= '); Readln (c);
Writeln('v massive ', t,' elementov');
for i:=1 to t do
begin
write('T1[', i,'] ='); ReadLn(T1[i]);
end;
WriteLn ('konec vvoda');
readln;
j:=0;
for i:=1 to t do
begin
if ((T1[i]-C) mod 10 )<> 0 then
begin
j:=j+1;
B[j]:=T1[i];
end;
end;

p:=0; {массив Не упорядочен }
While p=0 do
begin
p:=1; { Предположим, массив уже упорядочен }
For i:=1 to t-1 do
if T1[i]<T1[i+1] then
begin {перестановка}
s:=T1[i]; T1[i]:=T1[i+1]; T1[i+1]:= s;
p:=0{ массив не был упорядочен }
end;
end;

 e:=0; {массив Не упорядочен }
While e=0 do
begin
e:=1; { Предположим, массив уже упорядочен }
For i:=1 to t-1 do
if T1[j]<T1[j+1] then
begin {перестановка}
s:=B[j]; B[j]:=B[j+1]; B[j+1]:= s;
e:=0{ массив не был упорядочен }
end;
end;

n:=j;

{ 2. ВЫВОД МАССИВА на ЭКРАН }
writeln(' Massiv T1[',t,'] ');
for i:=1 to t do
write(T1[i]:10);
writeln;
if n=0 then
write ('elementov net')
else
writeln(' Massiv B[',n,'] ');
for j:=1 to n do
write(B[j]:10);
writeln;
readln;


  { TODO -oUser -cConsole Main : Insert code here }
end.
Вот задание:
Задан вектор T(n) nЈ 15. Сформировать вектор В из тех элементов массива Т, в десятичной записи которых не встречается заданная цифра С.



Проблема вот в чем: Если ввести многозначное число то программа не ищет встречающиеся записи, а с 2-х 3х значными все рабоиает...
Что не правильно?
neomax38 вне форума Ответить с цитированием
Старый 01.12.2010, 10:25   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Переделал процесс поиска цифры в элементе массива. Вроде все работает
Код:
TYPE
vector = array [1..100] of integer;
VAR
T1,b: vector;
s,t,i,j,c,n,p,e,d,f: integer; { t текущая длина массива от 1 до 12 }
Flag:boolean;
BEGIN
{ 1. ВВОД МАССИВА }
Repeat
Write (' Vvedite chislo elementov  T ot 1 do 15 ');
Readln (t);
until (t>=1) and (t<= 15);
write('vvedite chislo c= '); Readln (c);
Writeln('v massive ', t,' elementov');
for i:=1 to t do
begin
write('T1[', i,'] ='); ReadLn(T1[i]);
end;
WriteLn ('konec vvoda');
readln;
j:=0;
for i:=1 to t do
begin
f:=T1[i];
Flag:=True;
While F <> 0 do
begin
  d:=F mod 10;
  If d = c then
  Begin
    Flag:=False;
    Break
  End;
  F:=F div 10
End;
If Flag then
Begin
j:=j+1;
B[j]:=T1[i];
end;
end;

p:=0; {массив Не упорядочен }
While p=0 do
begin
p:=1; { Предположим, массив уже упорядочен }
For i:=1 to t-1 do
if T1[i]<T1[i+1] then
begin {перестановка}
s:=T1[i]; T1[i]:=T1[i+1]; T1[i+1]:= s;
p:=0{ массив не был упорядочен }
end;
end;

 e:=0; {массив Не упорядочен }
While e=0 do
begin
e:=1; { Предположим, массив уже упорядочен }
For i:=1 to t-1 do
if T1[j]<T1[j+1] then
begin {перестановка}
s:=B[j]; B[j]:=B[j+1]; B[j+1]:= s;
e:=0{ массив не был упорядочен }
end;
end;

n:=j;

{ 2. ВЫВОД МАССИВА на ЭКРАН }
writeln(' Massiv T1[',t,'] ');
for i:=1 to t do
write(T1[i]:10);
writeln;
if n=0 then
write ('elementov net')
else
writeln(' Massiv B[',n,'] ');
for j:=1 to n do
write(B[j]:10);
writeln;
readln;

  { TODO -oUser -cConsole Main : Insert code here }
end.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Указатель на массив указателей на массив char'ов... SrgGld Общие вопросы C/C++ 0 19.11.2010 23:35
Как конвертировать массив символов в массив байт davinci C++ Builder 6 30.10.2010 18:09
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06