Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Подсказки


Автор: R.E.Mus 21.12.2005, 16:09
Язык турбо паскакль...
Код

program tp;
uses crt;
const n=2;
var x:array [1..n] of real;
i,p,k,s:integer;
begin
clrscr;
writeln('enter array');
for i:=1 to n do begin
write('x[',i:2,']=');
readln(x[i]);
end;

Как видети здесь есть массив(конечно вещ чисел)...мне просто нужно узнать каков будет код что-бы удолить все числа от 1 до 5 из каждой ячейки данного массива...
Нужно ли прообразовать массив в строковой:
Код

program r7;
uses CRT;
var X:array[1..3] of real;
    Y:array[1..3] of string;
    a,a1,a2,a3,l,c,h:integer;
begin
clrscr;
a1:=0;
a2:=0;
a3:=0;
for a:=1 to 3 do begin
writeln('enter array X[',a,']');
readln(X[a]);
STR(X[a],Y[a]);end;
for a:=1 to 3 do begin
delete(Y[a],16,5);end;
for a:=1 to 3 do begin
writeln('Y[',a,']=',Y[a]);
end;
for a:=1 to 3 do begin
delete(Y[a],16,5);
end;
readkey;
end.

Можно так сделать или Нет???
delete(Y[a],16,5)- это сверх мощное округление чтоб от "E" избавиться...(если что);Только код посоветуйте какой использовать smile ...

Автор: R.E.Mus 21.12.2005, 16:12
Ах да вспомнил ещё вопросик...Можно воспользоваться преобразованием real в integer (т.е. trunc() and (int)) вместо преобразования в строку
smile

Автор: R.E.Mus 21.12.2005, 16:13
Ах да вспомнил ещё вопросик...Можно воспользоваться преобразованием real в integer (т.е. trunc() and (int)) вместо преобразования в строку
smile

Автор: Romikgy 21.12.2005, 16:16
Цитата(R @ 21.12.2005, 16:09)
мне просто нужно узнать каков будет код что-бы удолить все числа от 1 до 5 из каждой ячейки данного массива...
и что дальше? уменьшить размерность массива, тогда его динамически делать надо

Автор: Zero 21.12.2005, 17:10
Цитата(R @ 21.12.2005, 17:09)
мне просто нужно узнать каков будет код что-бы удолить все числа от 1 до 5 из каждой ячейки данного массива...

чёто я не понял, это значит что если массив такой: {2,7,4,9}, то надо удалять элемент 1-ый и 3-ий, или как то по другому. А то у тебя код, делает совсем другое... Т.е. если судить по коду, то ты хочешь получить округление... Это делается типа такого:
Код

program tp;
uses crt;
const n=2;
var x:array [1..n] of real;
i,p,k,s:integer;
begin
clrscr;
writeln('enter array');
for i:=1 to n do
  begin
    write('x[',i,']=');
    readln(x[i]);
  end;

for i:=1 to n do
  writeln(x[i]:0:2);  {форматированый вывод}
end.

Добавлено @ 17:11
Или мож тебе нужно сдвинуть каждый элемент массива влево на 5???

Автор: R.E.Mus 21.12.2005, 18:15
smile Извеняюсь За не точность нужно удалить все цифры от одного до пяти в каждой ячейки массива...
А что за динамический массив?
Т.е ячейка 81234578...
получается 878... smile

Автор: Zero 21.12.2005, 22:52
Цитата(R @ 21.12.2005, 19:15)
нужно удалить все цифры от одного до пяти в каждой ячейки массива...

Ну тогда, ИМХО лучший способ будет преобразовать цифровой массив в строки, а в нём удалять символы 1..5.
Цитата(R @ 21.12.2005, 19:15)
А что за динамический массив?

это массив, память которого выделяется в процессе выполнения программы, в твоём случае он не требуется, Romikgy видемо тоже не понял, что ты в начале спрашивал... smile

Автор: Romikgy 22.12.2005, 11:00
От тож , так бы и сказал что работа со строками, и удалять нужно символы из строки

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)