Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 30.10.2012, 16:11   #1 (permalink)
vitjok
Member
 
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Строки в Паскаль

Доброе время суток)))помогите пожалуйста составить код:
aacuiyiiue.jpg
vitjok вне форума   Ответить с цитированием

Старый 30.10.2012, 16:11
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Отправляю вам топики, которые по содержанию напоминают ваш

Паскаль, строки
Строки. Паскаль
Паскаль. Строки
Строки, Паскаль
Паскаль, символы и строки

Старый 30.10.2012, 19:33   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Что-то мне ваши задачи напоминают задания муниципального этапа олимпиады по информатике. Попробуйте меня в этом переубедить, скажите, откуда задачки?

Общими словами о решении задач.
По первой: в Pascal есть функция преобразования строки в число и числа в строку. Для решения задачи вам понадобится в цикле вырезать из строки по 1 символу, проверять, соответствует ли он числу или знаку арифметической операции и соответственно выполнять действие.
По второй: найдите первое и последнее включение пробела, промежуточным переменным присвойте вырезанное первое слово до пробела и слово из конца, при этом параметрами для вырезки будут порядковые номера символа пробел из определенных вначале. Затем результирующей переменной присвойте новое сочетание символов, полученное путем сложения промежуточных переменных и оставшейся части исходной строки.
AlexZir вне форума   Ответить с цитированием
Старый 31.10.2012, 17:01   #3 (permalink)
vitjok
Member
 
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

спасибо) это лабы по инфе 1-го курса, просто нам нифига не объясняют, к концу ноября надо сдать 8 лаб эта 5( а так же умудриться их защитить когда на зищите код получается намного сложнее а с программированием я познакомился ток в сентябре(
vitjok вне форума   Ответить с цитированием
Старый 31.10.2012, 20:45   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от vitjok Посмотреть сообщение
спасибо) это лабы по инфе 1-го курса, просто нам нифига не объясняют, к концу ноября надо сдать 8 лаб эта 5( а так же умудриться их защитить когда на зищите код получается намного сложнее а с программированием я познакомился ток в сентябре(
Ну ладно, поверим. Собственно, алгоритмы решения задач расписал AlexZir, я же, так и быть, выложу сами программы. При этом сразу оговорюсь: никакие вопли типа "а мне надо без циклов!" или "без Case", или "без множеств" и прочее НЕ принимаются.
Код:
Const
 Sig=['*','/','+','-'];
Var
 S,s1:String;
 i:Byte;
 Code:Integer;
 C:Char;
 a,Result:real;
Begin
 Writeln('Enter the string:');
 Readln(S);
 s1:='';
 i:=0;
 Repeat
  Inc(i);
  If Not (S[i] in Sig) then s1:=s1+S[i];
 Until S[i] in Sig;
 C:=S[i];
 Val(s1,a,Code);
 Result:=a;
 Repeat
  s1:='';
  Repeat
   Inc(i);
   If (Not (S[i] in Sig)) and (i<=Length(S)) then s1:=s1+S[i];
  Until (S[i] in Sig) or (i=Length(S));
  Val(s1,a,Code);
  Case C of
   '*': Result:=Result*a;
   '/': Result:=Result/a;
   '+': Result:=Result+a;
   '-': Result:=Result-a;
  end;
  If i<Length(S) then C:=S[i];
 Until i=Length(s);
 Writeln('Result: ',Result:0:3);
 Readln;
End.
Код:
Var
 S,s1,s2:String;
 n1,n2:Byte;
Begin
 Writeln('Enter the string:');
 Readln(S);
 n1:=0;
 n2:=0;
 Repeat
  Inc(n1);
 Until S[n1]=' ';
 Dec(n1);
 Repeat
  Inc(n2);
 Until S[Length(S)+1-n2]=' ';
 Dec(n2);
 s1:=Copy(S,1,n1);
 s2:=Copy(S,Length(S)+1-n2,n2);
 Delete(S,1,n1);
 Delete(S,Length(S)+1-n2,n2);
 Insert(s2,S,1);
 Insert(s1,S,Length(S)+1);
 Writeln(S);
 Readln;
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 14.11.2012, 13:10   #5 (permalink)
vitjok
Member
 
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

спасибо))) мне сейчас на то что проходили не проходили всеравно)) делаю как могу)))че не получается оюращаюсь к вам
vitjok вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 30.11.2012, 18:55   #6 (permalink)
vitjok
Member
 
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Здравствуйте)) объясните мне на пальцах, как из строки различных символов(ghjk&*(ghjk8987iuynl...) вывести только гласные буквы)) просто доконца не понимаю как составить для этого цикл
Код:
for i:=1 in legth(s)do
  begin
   if s[i] in [ 'e', 'o', 'i', 'a', 'u', 'y', 'A', 'O', 'I', 'E', 'U', 'Y'];  then
      begin
             {вот это место где нужно присвоить переменной значение}
vitjok вне форума   Ответить с цитированием
Старый 03.12.2012, 11:47   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от vitjok Посмотреть сообщение
просто доконца не понимаю как составить для этого цикл
Прежде всего, надо отвыкать от манеры писать программы абы как шаляй-валяй левой задней ногой. Программирование такого не прощает. Тут требуется предельная внимательность и точность. А Вы в двух строках умудрились аж 4 ошибки всадить!
1. У Вас цикл описан, как for..in..do, а правильно for..to..do
2. В слове length пропущена буква "n"
3. Перед "do" желателен отступ
4. В условном операторе if после условия перед then разделитель ; абсолютно недопустим

А задача решается так:
Код:
Var
 S,S1:String;
 i:byte;
Begin
 S:='ghjk8987iuynlwenFJKcvtrmj76faOWML:UTL&^(LUH';
 Writeln(S);
 S1:='';
 for i:=1 to length(S) do
  if S[i] in ['e','o','i','a','u','y','A','O','I','E','U','Y'] then S1:=S1+S[i];
 Writeln(S1);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 03.12.2012, 12:18   #8 (permalink)
vitjok
Member
 
Регистрация: 29.09.2012
Сообщений: 72
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

ошибки то само собой есть эт просто невнимательность)я не всегда понимаю что нужно писать после then)и в этом проблема)спасибо)
vitjok вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 00:37.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.