Const n=10; type ar=array[1..n+1] of integer; var a:ar; i,p:integer; procedure pr(var a:ar; p:integer; var k:integer); begin k:=1; while a[k]<>p do k:=k+1; end; begin Randomize; writeln('Массив A:'); for i:=1 to n do begin a[i]:=random(31); write(a[i]:4); end; writeln; p:=17; a[n+1]:=p; pr(a,p,i); if i<n then writeln('Значение 17 найдено, номер элемента = ',i) else writeln('Значения 17 в массиве нет'); end.
Пример: Массив A: 14 5 7 17 25 15 28 0 24 0 Значение 17 найдено, номер элемента = 4
При работе со строками можно использовать много различных решения задачи. Здесь предлагается в котором применяются только две библиотечных подпрограммы (length и delete). Можно было сделать и без delete, а можно использовать trim, например. Короче говоря, вот такой вариант программы на паскале: var s,s1:string; mn:set of char; i,l:integer; begin writeln('Введите строку:'); readln(s); mn:=['.',',',';',':','!','?']; while s[1]=' ' do delete(s,1,1); while s[length(s)]=' ' do delete(s,length(s),1); while pos(' ',s)>0 do delete(s,pos(' ',s),1); s1:=s[1]; for i:=2 to length(s)-1 do if not((s[i]=' ')and(s[i+1] in mn)) then s1:=s1+s[i]; s1:=s1+s[length(s)]; s:=s1[1]; for i:=2 to length(s1)-1 do if (s1[i] in mn)and(s1[i+1]<>' ') then s:=s+s1[i]+' ' else s:=s+s1[i]; s:=s+s1[length(s1)]; writeln(s); end.
Пример: Введите строку: Дана строка ,состоящая из слов , разделенных пробелами . Дана строка, состоящая из слов, разделенных пробелами.
А-С-D-F
Объяснение:
4+2+1=7. Это наименьший возможный результат.