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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2008, 20:47   #1
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
По умолчанию Удвоить каждый из первых пяти цифровых символов и удалить 5 последних латинских букв

Попросили сделать лабу:
Удвоить каждый из первых пяти цифровых символов и удалить 5 последних латинских букв
Не пойму смысл что надо сделать, может кто понял задание?
Помогите плз.
{Паскаль}
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен

Последний раз редактировалось gred; 16.05.2008 в 20:55.
gred вне форума Ответить с цитированием
Старый 16.05.2008, 22:31   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Примерно так
Код:
//S - исходная строка
k := 0;
NewS := '';
for i := 1 to length(s) do begin
  s0 := copy(s, i, 1);
  if (k<=5) and (s0>='0') and (s0<='9') then begin
    inc(k);
    val(s0, w, q);
    w := w*2;
    str(w, s0)
  end;
  NewS := NewS + s0;
end;
//Далее уберём 5 последних латинских символов
k := 0;
S := '';
for i := length(NewS) downto 1 do begin
  s0 := copy(NewS, i, 1);
  if ((s0>='a')and(s0<='z'))
  or ((s0>='A')and(s0<='Z'))
  and (k<5) then inc(k)
  else S := s0 + S;
end;
write(S)
eoln вне форума Ответить с цитированием
Старый 16.05.2008, 22:35   #3
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 540
По умолчанию

Я так понял, что вводишь строку. затем...
Цитата:
Сообщение от gred Посмотреть сообщение
Удвоить каждый из первых пяти цифровых символов
Здесь нужно либо арифметичекую операцию сделать, либо просто добавить рядом такой же элемент.
текущая строка: 12345привет
1. 1122334455привет
2. 246810привет

Цитата:
Сообщение от gred Посмотреть сообщение
удалить 5 последних латинских букв
получается так: из приветhello получается привет

И в итоге сначала удвоить и потом снять 5 последних латинских цифр...
Я это так понимаю
Arkuz вне форума Ответить с цитированием
Старый 16.05.2008, 23:00   #4
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
По умолчанию

спс мозги ваше не варят друзья надовали лаб )
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен
gred вне форума Ответить с цитированием
Старый 16.05.2008, 23:05   #5
gred
Пока ещё
Форумчанин
 
Аватар для gred
 
Регистрация: 26.02.2008
Сообщений: 116
По умолчанию

чтот неработает он удаляет все латинские символы а не 5 последних
Код:
uses crt;
var
s,news,s0:string;
k,i,w,q,n:integer;
begin
readln(s);
 //S - исходная строка
 k := 0;
 n:=0;
 NewS := '';
 for i := 1 to length(s) do begin
   s0 := copy(s, i, 1);
   if (k<=4) and (s0>='0') and (s0<='9')  then begin
     inc(k);
     val(s0, w, q);
     w := w*2;
     str(w, s0);
     n:=n+1;
   end;
   NewS := NewS + s0;
 end;
 //Далее уберём 5 последних латинских символов
 k := 1;
 S := '';
 for i := length(NewS) downto 1 do begin
   s0 := copy(NewS, i, 1);
   if ((s0>='a')and(s0<='z'))
   or ((s0>='A')and(s0<='Z'))
   and (k<4) then inc(k)
   else S := s0 + S;
 end;
 write(S);
 end.
Я мегапрограммер потерявший память.
Если кому помог, поставте '+' я буду благодарен
gred вне форума Ответить с цитированием
Старый 16.05.2008, 23:20   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Извиняюсь, в форуме писал.
Вот работает - скобки добавил
Код:
var n,i,j,q,w,k:integer;
s, s0, news: string;
begin
readln(s);
 k := 0;
 n:=0;
 NewS := '';
 for i := 1 to length(s) do begin
   s0 := copy(s, i, 1);
   if (k<=4) and (s0>='0') and (s0<='9')  then begin
     inc(k);
     val(s0, w, q);
     w := w*2;
     str(w, s0);
     n:=n+1;
   end;  
   NewS := NewS + s0;  
 end;  
 writeln(news);

 k := 0;
 S := '';
 for i := length(NewS) downto 1 do begin
   s0 := copy(NewS, i, 1);
   if (((s0>='a')and(s0<='z'))
   or ((s0>='A')and(s0<='Z')))
   and (k<=4) then inc(k)
   else S := s0 + S;
 end;
 write(S);
 readln
end.
eoln вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение первых 2-х символов в MS Excel spike99 Microsoft Office Excel 4 24.06.2008 16:43
Дан текст из строчных латинских букв и других знаков. Вычеркнуть из текста все гласные буквы." XeRoX Помощь студентам 6 15.06.2008 09:41
Удвоить каждый символ строки, потом перевернуть строку Didi Помощь студентам 6 20.05.2008 15:33
кол-во букв в строке символов (Си) Newman Помощь студентам 1 04.12.2007 02:19