• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте, чтобы узнать больше. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Строки в Паскаль

  • Автор темы Автор темы vitjok
  • Дата начала Дата начала

vitjok

Новые
Регистрация
29 Сен 2012
Сообщения
72
Реакции
0
Баллы
0
Строки в Паскаль

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

Общими словами о решении задач.
По первой: в Pascal есть функция преобразования строки в число и числа в строку. Для решения задачи вам понадобится в цикле вырезать из строки по 1 символу, проверять, соответствует ли он числу или знаку арифметической операции и соответственно выполнять действие.
По второй: найдите первое и последнее включение пробела, промежуточным переменным присвойте вырезанное первое слово до пробела и слово из конца, при этом параметрами для вырезки будут порядковые номера символа пробел из определенных вначале. Затем результирующей переменной присвойте новое сочетание символов, полученное путем сложения промежуточных переменных и оставшейся части исходной строки.
 
спасибо) это лабы по инфе 1-го курса, просто нам нифига не объясняют, к концу ноября надо сдать 8 лаб эта 5( а так же умудриться их защитить когда на зищите код получается намного сложнее:tehnari_ru_325: а с программированием я познакомился ток в сентябре(
 
спасибо) это лабы по инфе 1-го курса, просто нам нифига не объясняют, к концу ноября надо сдать 8 лаб эта 5( а так же умудриться их защитить когда на зищите код получается намного сложнее:tehnari_ru_325: а с программированием я познакомился ток в сентябре(
Ну ладно, поверим. Собственно, алгоритмы решения задач расписал 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.
 
спасибо))) мне сейчас на то что проходили не проходили всеравно)) делаю как могу)))че не получается оюращаюсь к вамtehno036
 
Здравствуйте)) объясните мне на пальцах, как из строки различных символов(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
             {вот это место где нужно присвоить переменной значение}
 
просто доконца не понимаю как составить для этого цикл
Прежде всего, надо отвыкать от манеры писать программы абы как шаляй-валяй левой задней ногой. Программирование такого не прощает. Тут требуется предельная внимательность и точность. А Вы в двух строках умудрились аж 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.
 
ошибки то само собой есть эт просто невнимательность)я не всегда понимаю что нужно писать после then)и в этом проблема)спасибо)
 
Назад
Сверху