Предмет: Информатика, автор: alfa010010100

Задан массив из N целых чисел от 1 до 3. Определить, входит ли в него последовательность символов 123, если да, то сколько раз и с каких позиций (N> 3).

пожалуйста помогите​

Ответы

Автор ответа: AllexeyDo122
0

unit ZadanieGUIpr060unit1;

{$mode objfpc}{$H+}

interface

uses

 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;

type

 { TForm1 }

 TForm1 = class(TForm)

   Button1: TButton;

   Memo1: TMemo;

   procedure Button1Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

 private

 public

 end;

var

 Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);

const

 n = 100;

var

 na: integer; {Переменная для хранения значения количества элементов массива}

 i: integer;  {Вспомогательная переменная для организации массива}

 k: integer;  {Переменная для хранения значения количества совпадений заданной последовательности}

 Err: boolean; {Вспомогательная переменная для корректного выхода из цикла}

 a: array [1..N] of '0'..'9'; { Переменная для хранения массива}

 s,s1: string;  {Промежуточные переменные для преобразования строковой информации}

begin

 Memo1.Clear;     {Очистка компонента Memo от информации}

 Err:= false;     {Начальные установки переменных}

 k:= 0;

 s:= '';

 repeat

   s:= InputBox('Ввод количества элементов', 'Введите количество элементов, которые будете вводить в массив (не более '+ inttostr(n)+')', '10');

   if TryStrToint(s,na) and (na <= n )then   {Проверка ввода на входимость в диапазон}

     break

   else

     MessageDlg ('Ошибка ввода!',mtError,[mbYes],0);

 until false;

 s:= '';

 s1:= '0';

 for i:= 1 to na do

   begin

     repeat

       if InputQuery('Ввод значений элемента', 'Введите значение ' + inttostr(i) + ' элемента: ', s1) then

         begin

           if (s1[1] in ['0'..'9']) then  {Проверка ввода на входимость в диапазон}

             break

           else

             MessageDlg ('Ошибка ввода!',mtError,[mbYes],0);

         end

       else

         begin

           MessageDlg ('Досрочный выход из режима ввода информации! Программа не выполнит своих задач.',mtInformation,[mbYes],0);

           Err:= true;  {Регистрация досрочного выхода из режима ввода информации}

           break;

         end;

     until false ;

     if Err then {Если обнаружен досрочный выход из режима ввода, то происходит выход из цикла}

       break;

     a[i]:= s1[1];     { Запоминание введенного символа в массиве}

     s:= s + '  ' + s1;  {Составление полной строки из элементов массива}

     s1:= '0';         { Очистка промежуточной переменной от предыдущего значения}

     Memo1.Clear;       { Очистка компонента Memo1 от информации}

     Memo1.Text:= s;    { Вывод в компонент Memo1 информации о хранящихся символах в массиве}

   end;

   if Err then

     Memo1.Lines.Add('Ввод информации в массив был аварийно завершен. Программа не может выполнить свою задачу.')

   else

     begin

       for i:= 1 to na-2 do

         if (a[i] = '1') and (a[i+1]= '2') and (a[i+2] = '3') then { Условие для проверки совпадений последовательности}

           inc(k);  {Подсчет количества совпадений}

       if k = 0 then   { Отображение ответа в зависимости от значения счетчика совпадений}

         Memo1.Lines.Add('В данном массиве последовательность чисел 1,2,3 не обнаружена. ')

       else

         Memo1.Lines.Add('В данном массиве обнаружена последовательность чисел 1,2,3. Она встречается ' + inttostr(k) +' раз.')

     end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

 Memo1.Clear;

end;

end.


alfa010010100: как всё сложно. а можно обычный паскаль, пожалуйста
AllexeyDo122: 533541!
alfa010010100: чего
Похожие вопросы
Предмет: Геометрия, автор: dzhantykovas
Предмет: Українська мова, автор: karolinnaaa
БУДЬ ЛАСКА БУДЬ ЛАСКА ДАЮ 50 БАЛІВ СПОЧНО ТРЕБА СКЛАСТИ ПЕРЕКАЗ ТЕКСТУ У ПУБЛІЦИСТИЧНОМУ СТИЛІ
ЧОМУ НАМ ПОТРІБНА ПОЕЗІЯ Часто доводиться чути: «Навіщо отi вiршi? Кому здалася ваша поезія? Будь-яку думку чудово можна висловити прозою. І простіше, і зрозуміліше. Ніж витрачати на оті поезії час, краще в комп'ютерну гру пограти! I швидкість реакції потренуєш, і задоволення отримаєш!» Та невже авторові цих слiв не доводилося переживати від по- етичних рядків потрясіння? Невже він ніколи не брав на самоті збірочку віршів і вдумливо не прочитав дві-три поезії? Невже отри- мане від їх читання задоволення можна порівняти з хай і цікавою, але такою бездушною грою? Поезія - звучання душі, адже душа не буває німою! Поезія пробуджує смуток і радість, заспокоює або викликає біль. Вплив поезії на людину неможливо передати словами. Вона - віддзерка- лення розмаїтого духовного світу. Знаете давньогрецьку легенду про гору Парнас? На ній що- весни водили танк и сестри Аполлона. Це - музи, прекрасні юні богинi. Кожна з них була покровителькою котр óгось виду мистецтва. Музи співали, Аполлон же перебирав струни своєï золотої кіфари. Звичайно, кожен чув вислів «зійти на Парнас». Це означае дорівнятися талантом до муз та Аполлона. Якось музи співали так гарно, що вся природа застигла від за- чарування, а гора Гелікон почала швидко рости й доросла до неба. Тодi олімпійські боги наказали крилатому коневі Пегасу повернути гору на місце. Кінь ударив копитом й утоптав гору в землю. На мiсці удару забило джерело Його чудодійна вода надавала поетам натхнення і наснаги.
Може комусь із вас відомий цей смак води цього джерела?Може,хтось пробую віршувати?Це чудово Проте не забувайте,що навчитися римувати-ще не означає стати поетом Тому не поспішайте кожен створений вами рядок читати товаришам або надсилати до редакції.Поети пишуть не заради слави,а для душі!
План ( за яким треба його скласти)
1. Роздуми про непотрібність поезії.
2.Поезія-звучання душі.
3.Давньогрецька легенда про гору Парнас.
4.Поети творять за ради душі.​