13.11.2014, 14:20 | #1 (permalink) |
Новичок
Регистрация: 13.11.2014
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Pascal: найти в строке все прогрессии
Строка представляет собой последовательность натуральных чисел, разделенных пробелом. Найти в ней все последовательности (не менее трех чисел), являющиеся арифметическими прогрессиями. Входные данные: 1 3 4 6 2 4 6 8 1 3 5 Выходные данные: 2 4 6 8 1 3 5 |
13.11.2014, 14:20 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Аналогичные обсуждения могут просветить решение проблемы Найти ошибку в математических формулах. Pascal Поиск в строке Turbo Pascal Дан массив A(n,m). Найти количество элементов в каждой строке, меньшего диагонального Pascal. Помогите найти ошибку Pascal ABC, ООП. Не могу найти ошибку |
13.11.2014, 15:00 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Например, так:
Код:
Const N=11; A:Array[1..N] of Integer=(1, 3, 4, 6, 2, 4, 6, 8, 1, 3, 5); Var i:Integer; flag,flag1:boolean; Begin for i:=1 to N do write(A[i],' '); writeln; i:=0; flag1:=false; flag:=true; Repeat Inc(i); repeat if (A[i+1]-A[i])=(A[i+2]-A[i+1]) then begin flag1:=true; if flag then begin write(A[i],' ',A[i+1],' ',A[i+2]); flag:=false; end else write(' ',A[i+2]); if i<N-2 then Inc(i); end; until (i>=N-2) or ((A[i+1]-A[i])<>(A[i+2]-A[i+1])); if i<N-2 then begin if flag1 then begin writeln; flag1:=false; end; flag:=true; end; Until i>=N-2; Readln End. |
13.11.2014, 15:53 | #5 (permalink) |
Новичок
Регистрация: 13.11.2014
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
13.11.2014, 16:23 | #8 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Вот:
Код:
Var N,i:Integer; flag,flag1:boolean; A:Array[1..100] of Integer; f:Text; S:String; Begin Writeln('Enter the string: '); Readln(S); Assign(f,'fff.txt'); Rewrite(f); Write(f,S); Close(f); Reset(f); N:=0; Repeat Inc(N); Read(f,A[N]); Until EoF(f); Close(f); Erase(f); writeln; i:=0; flag1:=false; flag:=true; Repeat Inc(i); repeat if (A[i+1]-A[i])=(A[i+2]-A[i+1]) then begin flag1:=true; if flag then begin write(A[i],' ',A[i+1],' ',A[i+2]); flag:=false; end else write(' ',A[i+2]); if i<N-2 then Inc(i); end; until (i>=N-2) or ((A[i+1]-A[i])<>(A[i+2]-A[i+1])); if i<N-2 then begin if flag1 then begin writeln; flag1:=false; end; flag:=true; end; Until i>=N-2; Readln End. |
13.11.2014, 16:31 | #10 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|