Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 21.11.2012, 09:05   #1 (permalink)
Natashka
Новичок
 
Регистрация: 30.09.2012
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Строки. Помогите написать программу

Задание 1
Строка состоит из натуральных чисел, разделенных пробелом, и диапазонов чисел (начальное число-тире-конечное число). Удалить из строки все числа, входящие в эти диапазоны. Оставшиеся числа вывести на экран по возрастанию (диапазоны не выводить).

Входные данные:
15 9 2 5 3-6 1 3 7-10

Выходные данные:
1 2 15

помогите написать программу на Паскале
Natashka вне форума   Ответить с цитированием

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

Я уверен, что это не займет много времени и по этому прошу вас прочитать сходные обсуждения

Помогите написать программу
Помогите написать программу
Помогите написать программу
Помогите написать программу
Паскаль. Строки. Помогите оптимизировать программу
Помогите написать программу

Старый 21.11.2012, 10:45   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Natashka Посмотреть сообщение
помогите написать программу на Паскале
Код:
Const
 Nmax=50;

Var
 S,S1,Sx:String;
 N,N1,Nr,i,j:Byte;
 A,B,Min,Max:Array[1..Nmax] of Word;
 D:Word;
 Code:Integer;
 bo:boolean;

Begin
 Writeln('Enter the string:');
 Readln(S);
 N:=0;
 Nr:=0;
 i:=0;
 Repeat
  Sx:='';
  repeat
   Inc(i);
   if (S[i]<>' ') and (S[i]<>'-') and (i<=Length(S)) then Sx:=Sx+S[i];
  until (S[i]=' ') or (S[i]='-') or (i>Length(S));
  if S[i]=' ' then
   begin
    Inc(N);
    Val(Sx,A[N],Code);
   end
  else
   if S[i]='-' then
    begin
     Inc(Nr);
     Val(Sx,Min[Nr],Code);
     Sx:='';
     repeat
      Inc(i);
      if (S[i]<>' ') and (i<=Length(S)) then Sx:=Sx+S[i];
     until (S[i]=' ') or (i>Length(S));
     Val(Sx,Max[Nr],Code);
    end;
 Until i>Length(S);

 N1:=0;

 For i:=1 to N do
  begin
   bo:=true;
   for j:=1 to Nr do
    if (A[i]>=Min[j]) and (A[i]<=Max[j]) then bo:=false;
   if bo then
    begin
     Inc(N1);
     B[N1]:=A[i];
    end;
  end;

 For i:=1 to N1-1 do
  For j:=1 to N1-i do
   if B[j]>B[j+1] then
    begin
     D:=B[j];
     B[j]:=B[j+1];
     B[j+1]:=D;
    end;

 Str(B[1],S1);
 For i:=2 to N1 do
  begin
   Str(B[i],Sx);
   S1:=S1+' '+Sx;
  end;

 Writeln;
 Writeln('Result:');
 Writeln(S1);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

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

Опции темы
Опции просмотра

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

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




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

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