Помощь - Поиск - Пользователи - Календарь
Полная версия: Записи и строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
BAEVIK
Записи и строки
Дано целое число. Создать массив символов, содержащий цифры этого числа в исходном и в обратном порядках.
unsure.gif
amega
BAEVIK


program _1_;
uses crt;
var
   a:array [1..100] of integer;
   b:array [1..100] of integer;
   c:integer;
   i:integer;
   j:integer;
begin
clrscr;
writeln('vvedite 4islo');
readln(c);
i:=0;
writeln('masiv 1:');
while c<>0 do begin
  i:=i+1;
  a[i]:=c mod 10;
  c:=c div 10;
  write(a[i],' ');
end;
writeln;
writeln('masiv 2:');
j:=1;
while i<>0 do begin
  b[j]:=a[i];
  write(b[j],' ');
  i:=i-1;
  j:=j+1;
  end;
readln;
end.

volvo
Цитата
var
   a:array [1..100] of integer;
   b:array [1..100] of integer;

Это что, обязательно? Для того, чтобы запомнить максимум 9 цифр числа (больше в LongInt не помещается) резервировать место под 2*100 integer-ов, хотя достаточно 2*9 byte-ов? Как ты еще без goto обошелся - странно...

var
  a, b: array[1 .. 9] of byte;
  X: longint; i, j: integer;

begin
  X := 14567; { <--- Сделать ввод с клавиатуры }
  i := 0;
  while X > 0 do begin
    inc(i); a[i] := X mod 10;
    X := X div 10;
  end;

  for j := i downto 1 do
    b[i - j + 1] := a[j];

  for j := 1 to i do write(a[j]:4);
  writeln;
  for j := 1 to i do write(b[j]:4);
  writeln;
end.
Этого вполне достаточно...
amega
Цитата
Как ты еще без goto обошелся - странно...


blum.gif

Цитата
Это что, обязательно?

эт задачка осталась у меня со школьних практических по информатике, дак я ее просто скопирувал не думалши ниче cool.gif
BAEVIK
А всё равно не правильно нада чтобы не просто в обратном порядке а чтобы допустим число 1 заменялась буквай А ,а 2 заменялась В как это сделать ?
volvo
Цитата
А всё равно не правильно нада чтобы не просто в обратном порядке а чтобы допустим число 1 заменялась буквай А ,а 2 заменялась В
Об этом мы что, должны были сами догадаться, из твоего задания? Там ничего подобного сказано не было...

Цитата
как это сделать ?

var
  a: array[1 .. 9] of byte;
  b: array[1 .. 9] of char;
  X: longint; i, j: integer;
begin
  X := 14567;
  i := 0;
  while X > 0 do begin
    inc(i); a[i] := X mod 10;
    X := X div 10;
  end;
  for j := i downto 1 do
    b[i - j + 1] := Chr(Ord('A') + a[j]); { 0 заменяется на А, 1 на B и так далее... }
  for j := 1 to i do write(a[j]:4);
  writeln;
  for j := 1 to i do write(b[j]:4);
  writeln;
end.
, и в следующий раз будь добр приводить задачу полностью...
BAEVIK
Цитата(volvo @ 4.02.2009 12:48) *

Об этом мы что, должны были сами догадаться, из твоего задания? Там ничего подобного сказано не было...
var
  a: array[1 .. 9] of byte;
  b: array[1 .. 9] of char;
  X: longint; i, j: integer;
begin
  X := 14567;
  i := 0;
  while X > 0 do begin
    inc(i); a[i] := X mod 10;
    X := X div 10;
  end;
  for j := i downto 1 do
    b[i - j + 1] := Chr(Ord('A') + a[j]); { 0 заменяется на А, 1 на B и так далее... }
  for j := 1 to i do write(a[j]:4);
  writeln;
  for j := 1 to i do write(b[j]:4);
  writeln;
end.
, и в следующий раз будь добр приводить задачу полностью...

Да я сам не знал это училка типа так нада сделать а сразу наверно написать её не ьзя было !!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.