Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.11.2020
Сообщений: 14

Как прекратить работу цикла, при встрече в строке "0", например, чтобы из "1230456" можно было запомнить только "123"

18.01.2021, 18:17. Показов 668. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как прекратить работу цикла, при встрече в строке "0", например, чтобы из "1230456" можно было запомнить только "123".

Задача:
На вход программе подается набор символов, заканчивающийся символом 0 (в программе на языке Бейсик символы можно вводить по одному в строке, пока не будет введен ноль, или считывать данные из файла). Ноль в этом наборе единственный. Среди этих символов обязательно присутствуют другие десятичные цифры. Напишите эффективную, в том числе и по используемой памяти, программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет составлять из имеющихся цифр число максимальной длины, которое читается одинаково как слева направо, так и справа налево. Нулей в числе быть не должно (ноль является признаком окончания ввода, а не одним из символов). Если таких чисел несколько, то надо вывести минимальное из них. Все имеющиеся в наборе цифры использовать не обязательно, но количество цифр в ответе должно быть максимально возможным. Например, пусть на вход подаются следующие символы: for i:=9991 downto 10 В данном случае программа должна вывести 19991

Код программы (не моя, помогли здесь же):
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var
  c,l: char;
  i: integer;
  s: string;
  a: array ['0'..'9'] of integer;
begin
  for c:='0' to '9' do
    a[c]:=0;
  ReadLn(s);
  for i:=1 to length(s) do
    if (s[i]>'0')and(s[i]<='9') then
      inc(a[s[i]]);
  s:='';
  if a['0']>0 then l:='0'
  else l:=#0;
  for c:='1' to '9' do
    begin
      while a[c]>1 do
        begin
          s:=s+c;
          dec(a[c],2);
        end;
      if (a[c]>0)and(l=#0) then l:=c;
    end;
  write(s);
  if l>#0 then write(l);
  for i:=length(s) downto 1 do Write(s[i]);
  writeLn;
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.01.2021, 18:17
Ответы с готовыми решениями:

Как создать ограничение для ScrollBar? Например, чтобы можно было вправо прокрутить только 3 раза (нажать вправо мышкой только 3 раза, а дальше нельзя
Как создать ограничение для ScrollBar? Например, чтобы можно было вправо прокрутить только 3 раза (нажать вправо мышкой только 3 раза, а...

Как создать ограничение для ScrollBar? Например, чтобы можно было вправо прокрутить только нажав мышкой 3 раза? Тоже самое и для влево
Как создать ограничение для ScrollBar? Например, чтобы можно было вправо прокрутить только нажав мышкой 3 раза? Тоже самое и для влево.

Как например из Class1 чтобы можно было использовать те же функции
Как например из Class1 чтобы можно было использовать теже функции в основном классе с Main Скриншоты прилагаются

1
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,380
19.01.2021, 10:12
можно так
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var
  c,l: char;
  i: integer;
  s: string;
  a: array ['1'..'9'] of integer;
begin
  for c:='1' to '9' do
    a[c]:=0;
  ReadLn(s);
  i:=1;
  while (i<=length(s)) and (s[i]<>'0') do begin
      if (s[i]>'0')and(s[i]<='9') then inc(a[s[i]]);
      Inc(i)
  end;
  s := '';
  l:=#0;
  for c:='1' to '9' do
    begin
      while a[c]>1 do
        begin
          s:=s+c;
          dec(a[c],2);
        end;
      if (a[c]>0)and(l=#0) then l:=c;
    end;
  write(s);
  if l>#0 then write(l);
  for i:=length(s) downto 1 do Write(s[i]);
  writeLn;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.01.2021, 10:12
Помогаю со студенческими работами здесь

Как создать 3d модель, и соединить её с кодом с++, чтобы можно было например передвигать ее по плоскости?
Как создать 3d модель, и соединить её с кодом с++, чтобы можно было например передвигать ее по плоскости? Какие программы для этого нужны,...

Как сделать так чтобы при использовании библиотеки можно было импортировать только один файл Apps.cs?
Как сделать так чтобы при использовании библиотеки можно было импортировать только один файл Apps.cs? Ну например, есть библиотека...

Как прекратить отображение значков в трее, чтобы их там не было
Доброго времени суток. Помогите решить такой вопрос:&quot;Как прекратить отображение значков в трее?&quot;. П.С. чтобы их там вообще не...

Создать класс из процедуры так, чтобы в нём при вызове можно было менять направление отсчёта счётчика цикла
Могу-ли я создать класс из процедуры так, чтобы в нём при вызове можно было менять направление отсчёта счётчика цикла, и некоторые формулы...

Как создать массив строк или символов, чтобы потом можно было с цикла его заполнить?
Есть наработки, но не работает: while(c!=27){ FILE* file1; file1=fopen(&quot;zarplaty.txt&quot;,&quot;r&quot;); for(i=0;i&lt;lines_count;i++){...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru