|
Главная | Правила | Регистрация | Дневники | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
Опции темы | Опции просмотра |
21.11.2012, 09:05 | #1 (permalink) |
Новичок
Регистрация: 30.09.2012
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Строки. Помогите написать программу
Строка состоит из натуральных чисел, разделенных пробелом, и диапазонов чисел (начальное число-тире-конечное число). Удалить из строки все числа, входящие в эти диапазоны. Оставшиеся числа вывести на экран по возрастанию (диапазоны не выводить). Входные данные: 15 9 2 5 3-6 1 3 7-10 Выходные данные: 1 2 15 помогите написать программу на Паскале |
21.11.2012, 09:05 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Я уверен, что это не займет много времени и по этому прошу вас прочитать сходные обсуждения Помогите написать программу Помогите написать программу Помогите написать программу Помогите написать программу Паскаль. Строки. Помогите оптимизировать программу Помогите написать программу |
21.11.2012, 10:45 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Код:
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. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|