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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2009, 15:13   #1
Fylhtq
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
Вопрос Нужно программу написать в одномерном массиве!!!

Вот условие прграммы!!!
Утроить все цифры, стоящие перед первой буквой текста

а вот программа с процедурами , но мне нужно в одномерном массиве!!!


program laba;
uses Crt;
procedure PrintInfo (str: string);
begin
writeln('Наш текст: ');
writeln(str);
end;
procedure VvodInfo (var str: string);
begin
writeln('введите текст');
readln(str);
end;
procedure ObrInfo (var str: string);
var
i, vr: byte;
tmp: string;
code: integer;
begin
i:=1;

Val(str[1], vr, code);

while (0 < vr) and (vr <= 9) do
begin
tmp:=Concat(str[i], str[i]);
Insert (tmp, str, i+1);
i:=i+3;
Val(str[i], vr, code);
end;
end;
var
text: string;
begin
ClrScr;
VvodInfo (text);
ObrInfo (text);
PrintInfo (text);
ReadKey;
end.
AndreiKA_PC
Fylhtq вне форума Ответить с цитированием
Старый 02.06.2009, 17:08   #2
Fylhtq
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

ммм, помогите пожалуйста , очень надо....
AndreiKA_PC
Fylhtq вне форума Ответить с цитированием
Старый 02.06.2009, 17:17   #3
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses Crt;
var s:string;
    i:integer;
    ch:char;
begin
ClrScr;
readln(s);
i:=length(s);
while i>=1 do
 begin
   if (s[i] in ['0'..'9']) and (s[i+1] in ['a'..'z','A'..'Z']) then begin
                                                                     ch:=s[i];
                                                                     insert(ch,s,(i));
                                                                     insert(ch,s,(i));
                                                                     dec(i);
                                                                    end
      else
      dec(i);
 end;
 writeln(s);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 03.06.2009 в 09:57.
alex_fcsm вне форума Ответить с цитированием
Старый 02.06.2009, 18:22   #4
Fylhtq
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

а мне нужен массив а не просто
AndreiKA_PC
Fylhtq вне форума Ответить с цитированием
Старый 03.06.2009, 09:42   #5
Fylhtq
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

ааа, прога только 3 утраивает.....

Например
354hdhj43
должно быть ответ так:
333555444hdhj43
AndreiKA_PC
Fylhtq вне форума Ответить с цитированием
Старый 03.06.2009, 09:58   #6
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses Crt;
var s:string;
    i,m:integer;
    ch:char;
begin
ClrScr;
readln(s);
i:=1;
m:=length(s);
while (i<=m) do
 begin
   if (s[i] in ['0'..'9'])  then begin
                                 ch:=s[i];
                                 insert(ch,s,(i));
                                 insert(ch,s,(i));
                                 i:=i+3;
                                 m:=length(s);
                                end;
  if  (s[i] in ['a'..'z','A'..'Z']) then break;
 end;
 writeln(s);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 03.06.2009 в 10:03.
alex_fcsm вне форума Ответить с цитированием
Старый 03.06.2009, 10:11   #7
Fylhtq
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

ну я это понял ,а где же тогда массив
AndreiKA_PC
Fylhtq вне форума Ответить с цитированием
Старый 03.06.2009, 10:25   #8
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код:
uses crt;
var a:array[1..1000] of char;
    i,j,n:integer;
    s:string;
begin
clrscr;
readln(s);
for i:=1 to length(s) do
   a[i]:=s[i];
i:=1;
n:=length(s);
while i<=n do
begin
 if a[i] in ['0'..'9'] then begin
                       for j:=n+2 downto i+2 do
                        a[j]:=a[j-2];
                        a[i+1]:=a[i];
                        a[i+2]:=a[i];
                        n:=n+2;
                        i:=i+2;
                       end;
 if a[i] in ['a'..'z','A'..'Z'] then break;
 inc(i);
end;
writeln;
for i:=1 to n do
 write(a[i]);
end.
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 03.06.2009, 12:47   #9
Fylhtq
Пользователь
 
Регистрация: 11.11.2008
Сообщений: 32
По умолчанию

вот спасибо!!!!!
AndreiKA_PC
Fylhtq вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Произведение отрицательных элементов в одномерном массиве - в чём ошибка? Жека:) Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 06.04.2009 16:10
Поиск в одномерном массиве Joxter Помощь студентам 6 13.12.2008 14:19
Колличество четных элементов в одномерном массиве forsy Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 21.05.2008 15:01
Как найти проиизведение в одномерном массиве? kitty Помощь студентам 10 30.11.2007 20:30
Нужно написать программу за $ avallanch Фриланс 2 13.06.2007 23:21